CL_APL_ECATT_LINE_INTERPRETER - eCATT Script Line Interpreter

General Data in Customer Master   PERFORM Short Reference  
Diese 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 )