Funktion
Setzt einen Breakpoint in einem Skript des aktuellen Kontexts. Bei Ausführung des Skripts hält es an der angegebenen Zeile an und überführt das Skript in den Debugging-Modus.
Importing Parameter
SCRIPT_NAME (Typ STRING)
Name des Skripts im aktuellen Kontext.
LINE_NUMBER (Typ I)
Zeilennummer, in der der Breakpoint gesetzt wird. Wenn die Zeilennummer nicht im Skript vorhanden oder nicht ausführbar ist, wird der Breakpoint auf die nächstliegende Zeile gesetzt.
Beispiel
report DEMO_JAVA_SCRIPT_SET_BREAK.
data SOURCE type STRING.
data GET_VALUE type STRING.
data JS_PROCESSOR type ref to CL_JAVA_SCRIPT.
JS_PROCESSOR = CL_JAVA_SCRIPT=>CREATE( ).
concatenate
'var string = "Hello World,"; '
'string += " this"; '
'string += " is"; '
'string += " JavaScript!"; '
'string; '
into SOURCE separated by CL_ABAP_CHAR_UTILITIES=>CR_LF.
call method JS_PROCESSOR->COMPILE
exporting
SCRIPT_NAME = 'HELLO_WORLD.JS'
SCRIPT = SOURCE.
do 10 times.
call method JS_PROCESSOR->SET_BREAKPOINT
exporting
SCRIPT_NAME = 'HELLO_WORLD.JS'
LINE_NUMBER = SY-INDEX.
JS_PROCESSOR->EXECUTE(
exporting SCRIPT_NAME = 'HELLO_WORLD.JS' ).
if JS_PROCESSOR->LAST_CONDITION_CODE =
CL_JAVA_SCRIPT=>CC_BREAKPOINT.
GET_VALUE = JS_PROCESSOR->GET( NAME = 'string' ).
write: JS_PROCESSOR->BREAKPOINT_LINE_NUMBER,
JS_PROCESSOR->BREAKPOINT_SCRIPT_NAME,
GET_VALUE.
skip.
endif.
JS_PROCESSOR->CLEAR_SCRIPT_BREAKPOINTS(
exporting SCRIPT_NAME = 'HELLO_WORLD.JS' ).
enddo.
In einer DO-Schleife werden mit SET_BREAKPOINT im kompilierten Skript HELLO_WORLD.JS hintereinander Breakpoints in verschiedenen Zeilen gesetzt und mit
CLEAR_SCRIPT_BREAKPOINTS wieder gelöscht. Dazwischen wird das Skript ausgeführt. Mit dem Instanzattribut LAST_CONDITION_CODE wird festgestellt, dass ein Breakpoint erreicht wurde, und die Attribute BREAKPOINT_SCRIPT_NAME und BREAKPOINT_LINE_NUMBER sowie der mit der Methode GET gelesene aktuelle Wert der Variable string ausgegeben. Alle Breakpoints, die auf Zeilennummern gesetzt werden sollen, die größer sind als die gesamte Zeilenzahl, werden in der letzten ausführbaren Zeile des Skripts gesetzt.