CL_APL_ECATT_LINE_INTERPRETER - eCATT Script Line Interpreter
General Data in Customer Master PERFORM Short ReferenceDiese Dokumentation steht unter dem Copyright der SAP AG.
Funktionalität
In der Klasse CL_APL_ECATT_LINE_INTERPRETER gibt es die Methoden
1. LINE_EXECUTE
Der Aufrufer (SCRIPT_EXECUTE) kommunizert mit ihr über die Schnittstelle:
Changing-Parameter ,,IF_FLAG ,,,,(ETONOFF = SPACE)
Ist IF_FLAG = OFF, werden Scriptbefehle bearbeitet,
ist IF_FLAG = ON, wird als einziger Scriptbefehl ENDIF bearbeitet.
Dort wird IF_FLAG = OFF gesetzt.
Bei positiver Bedingung oder beim Ausführen des ELSE-Falles muß veranlaßt werden,daß nicht der im aktuellen Block nachfolgende Scriptbefehl ausgeführt wird, sondern der zur Anweisung gehörende Folgescriptblock.
Importing-Parameter ,,LOOP_COUNT,,,,(NUM8 = 0)
Der Inhalt des Parameterwertes wird in die CATT-Standardvariable &LPC gestellt, damit ein im Block ablaufender CATT-Befehl den aktuellen Loopzählers der innersten Schleife verwenden kann.
Exporting-Parameter,,EXIT_FLAG,,,,(ETONOFF = SPACE)
In der Scriptabarbeitung führt eine EXIT-Anweisung mit Bedingung TRUE dazu, daß das EXIT-FLAG= ON gesetzt wird. In diesem Fall wird für alle nachfolgenden Anweisungen des Blocks der LINE_EXECUTE nicht mehr aufgerufen.
Exporting-Parameter,,ABEND_FLAG,,,,(ETONOFF = SPACE)
In der Scriptabarbeitung führt eine Prüfung mit Errorcode > 0 oder auch eine Prüfungbei CHEVAR mit Bedingung FALSE dazu, daß das ABEND-FLAG = ON gesetzt wird. In diesem Fall wirdfür alle nachfolgenden Anweisungen aller vorgehgehender Blöcke auch REF und TESCASE der LINE_EXECUTE nicht mehr aufgerufen, falls dies über die Behandlung des Abbruchkennzeichens veranlaßt wird.
Importing-Parameter: ,,SCR_LINE,,,,(Script-Daten, etc)
noch zu definieren
IF - ELSEIF - ELSE - ENDIF- Bearbeitung
Ausgangspunkt: Man befindet sich in der normalen Abarbeitung eines Scriptblockes außerhalb einer IF-Bearbeitung.
IF_FLAG
,,OFF,,Die IF-Anweisung wird bearbeitet, d.h. die Bedingung wird geprüft
,,,,Ergebnis: TRUE
,,ON ,,,,Ein neuer Block wird geöffnet,Scriptbearbeitung
,,,,,,unabhängig vom aktuellen Block bis zum
,,,,,,Ende des Abarbeitung des IF-Blockes
,,,,Nächste Anweisung im aktuellen Block nach IF ist ELSEIF.
,,,,,,Nicht bearbeiten, da IF_FLAG = ON
,,,,Nächste Anweisung im aktuellen Block nach IF ist ELSE.
,,,,,,Nicht bearbeiten, da IF_FLAG = ON
,,,,Nächste Anweisung im aktuellen Block nach IF ist ENDIF.
,,,,,,ENDIF setzt IF_FLAG = OFF
,,OFF
,,,,Die IF-Anweisung wird bearbeitet, d.h. die Bedingung wird geprüft
,,,,Ergebnis: FALSE
,,OFF,,,,Keine Scriptbearbeitung des IF-Blocks
,,,,Nächste Anweisung im aktuellen Block nach IF ist ELSEIF.
,,,,Die ELSEIF-Anweisung wird bearbeitet, d.h. die Bedingung wird geprüft
,,,,Ergebnis: TRUE
,,ON ,,,,Ein neuer Block wird geöffnet,Scriptbearbeitung
,,,,,,unabhängig vom aktuellen Block bis zum
,,,,,,Ende des Abarbeitung des ELSEIF-Blockes
,,,,Nächste Anweisung im aktuellen Block nach IF ist ELSE.
,,,,,,Nicht bearbeiten, da IF_FLAG = ON
,,,,Nächste Anweisung im aktuellen Block nach IF ist ENDIF.
,,,,,,ENDIF setzt IF_FLAG = OFF
,,OFF
Bei positiver Bedingung oder beim Ausführendes ELSE-Falles muß veranlaßt werden, daß nicht der im aktuellen Block nachfolgende Scriptbefehl ausgeführt wird, sondern der zur Anweisung gehörende Folgescriptblock.
DO - ENDDO- Bearbeitung
Ausgangspunkt: Man befindet sich in der normalen Abarbeitung eines Scriptblockes außerhalb einer DO-Bearbeitung. LOOP_COUNT = 0. Außerdem ist EXIT_FLAG = OFF.
Bei der DO-Anweisung wird LOOP_COUNT um 1 erhöht.und verglichen, ob das Maximum überschritten ist, oder das EXIT_FLAG = ON ist.
Ist beides nicht der Fall, wird die DO-Schleife bearbeitet
Es wird veranlaßt, daß nicht der im aktuellen Block nachfolgende Scriptbefehl ENDDO ausgeführtwird, sondern der zur DO-Anweisung gehörende Folgescriptblock. Dabei wird der aktuelle LOOP_COUNTin die CATT-Standardvariable &LPC gestellt. Das im Folgescript für eigene DO-Schleifen benötigte Attribut LOOP_COUNT wird wieder initialisiert.
In der Scriptabarbeitung führt eine EXIT-Anweisung mit Bedingung TRUE dazu, daß das EXIT-FLAG = ON gesetzt wird. In diesem Fall werden alle nachfolgenden Anweisungen des Blocks nicht mehr bearbeitet.
Die DO-Anweisung wird solange erneut wieder bearbeitet, bis das vorgesehene Maximum überschritten oder das EXIT_FLAG = ON ist, dann wird die DO-Schleife beendet, das EXIT-FLAG = OFF gesetzt.
Zu der im Scriptblock unmittelbar nachfolgenden ENDDO-Anweisung erfolgt keine Bearbeitung, auch ein Protokolleintrag ist derzeit nicht vorgesehen.
2. CHECK_CONDITION
Die in der Klasse CL_APL_ECATT_LINE_INTERPRETER private Methode wird aus dem LINE_EXECUTE bei allenFunktionen heraus aufgerufen, die eine Bedingung verwenden (IF, ELSEIF, EXIT, CHEVAR) über folgende Schnittstelle:
Importing-Parameter ,,SCR_LINE ,,,,TYPE ETSCR
Gesamtstruktur einer ECATT Scriptzeile, interne Darstellung
Die Scriptzeile enthält die Bedingung, die zu prüfen ist.
Der Zugriff auf die erforderlichen Werte erfolgt über den aktuellen Datencontainer
Exporting-Parameter ,,COND_FLAG ,,,,TYPE ETONOFF
Ist die Bedingung erfüllt, wird CONT_FLAG auf 'X' = TRUE gesetzt.
Exporting-Parameter ,,ERRCD ,,,,TYPE ETLOG_ERCD
Kann die Bedingung nicht geprüft werden, z.B. wegen Typungleichheiten, so wird der ERRCD auf 203 gesetzt. Hiebei wird das COND_FLAG nicht auf TRUE gesetzt.
3. SET_VARIABLE
Die in der Klasse CL_APL_ECATT_LINE_INTERPRETER private Methode wird aus dem LINE_EXECUTE bei derFunktion ASSIGNMENT aufgerufen, die eine Zuweisung an eine CATT-Variable oder Parameter ausführt über folgende Schnittstelle.
Importing-Parameter ,,SCR_LINE ,,,,TYPE ETSCR
Gesamtstruktur einer ECATT Scriptzeile, interne Darstellung
Die Scriptzeile enthält die Zuweisung, die auszuführen ist.
Der Zugriff auf die erforderlichen Werte erfolgt über den aktuellen Datencontainer
Exporting-Parameter ,,LOG_DATA ,,,,TYPE ETLOG_DATA
Ist die im Script beschriebene Zuweisung erfolgt, enthält LOG_DATA den Wert in der Form, daß er mit dem Variablennamen zusammen im Log abgelegt werden kann.
,,--- Die genaue Form der Übergabe ist noch nicht festgelegt ---
Exporting-Parameter ,,ERRCD ,,,,TYPE ETLOG_ERCD
Kann die Zuweisung nicht erfolgen, z.B. wegen Typungleichheiten, oder weil z.B ein Datum als Ergebniswertungültig ist, so wird der ERRCD auf größer Null gesetzt. Als Standardfehler wirdERRCD = 204 gesetzt, aber auch andere sind denkbar. Die Zuweisung findet in diesem Fall nicht statt, ERG_VALUE wird nicht versorgt, der Parameter oder die Variable erhält keiten neuen Wert.
4. TRANSFORM_COMMAND
Die in der Klasse CL_APL_ECATT_LINE_INTERPRETER private Methode wird aus dem LINE_EXECUTE bei derFunktion ASSIGNMENT aufgerufen, die eine Zuweisung an eine CATT-Variable oder Parameter ausführt über folgende Schnittstelle.
Importing-Parameter ,,ORIG_LINES ,,,,TYPE ETXML_LINE_TABTYPE
ECATT Anweisungszeilen zu einer Scriptzeile in der internen Darstellung mit symbolischen Namen
Importing-Parameter ,,ASGN_TAB ,,,,ETARGASGN_TABTYPE
Umsetztabelle der symbolischen Scriptnamen in die vom Benutzer verwendeten Scriptnamen.
Exporting-Parameter ,,TARG_LINES ,,,,TYPE ETXML_LINE_TABTYPE
ECATT Anweisungszeilen zu einer Scriptzeile in der im Script Editor verwedneten Darstellung mit tasächlichen Parameter- und Variablennamen
5. GET_MESSAGE_TEXT
Die in der Klasse CL_APL_ECATT_LINE_INTERPRETER private Methode wird aus dem LINE_EXECUTE aufgerufen, wenn eine Scriptzeile eine Fehlermeldung in das Protokoll zu schreiben hat. Schnittstelle:
Importing-Parameter ,,ERRCD ,,,,TYPE ETLOG_ERCD
Errorcode, maximal 3-stellig, wird als Fehlernummer zum Lesen in der Tabelle T100 verwendet.
Exporting-Parameter ,,MESSAGE,,,,TYPE ETLOG_CONT
In der Tabelle T100 Arbeitsgebiet ECATT wird zunächst die Message über Sprache SY_LANGU gelesen, dach fest mit Sprache E.
Beziehungen
Beispiel
Hinweise
Weiterführende Informationen
Vendor Master (General Section) rdisp/max_wprun_time - Maximum work process run time
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 9002 Date: 20120527 Time: 084912 triton ( 271 ms )






