Ansicht
Dokumentation

CL_APL_ECATT_LOG - eCATT Protokoll

CL_APL_ECATT_LOG - eCATT Protokoll

Vendor Master (General Section)   CPI1466 during Backup  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Funktionalität

Die Methoden in der Klasse CL_APL_ECATT_LOG bieten folgende Funktionen:

1. Schreiben von Log-Einträgen durch den Interpreter

2. Lesen von Log-Einträgen zur Protokollausgabe

3. Löschen von Log-Einträgen

4. Verwalten von Log-Einträgen

Derzeit sind die beiden ersten Funktionen wie folgt realisiert (teilweise):

1. Schreiben von Log-Einträgen

1.1 Nach dem Eröffnen der Klasse wird die Methode INIT_NEW_LOG aufgerufen mit dem Parameter IM_LOG_KEY = 0.
Darin wird über die private Methode GET_NEXT_LOG_KEY die nächste freie Log-Id vergeben.Der Kopfsatz wird in der Tabelle ECLOG_HEAD auf der Datenbank abgelegt. Im Log-Objekt wird das nächste Log-Objekt initialisiert für den Block zum Schreiben der nachfolgenden Abläufe auf Level 1.

1.2 Die Daten zu einem Testfall (auf Level 1) und zu jeder Scriptzeile (ab Level 2) werden über die Methode ADD_ENTRY übergeben.
Der Struktur-Parameter LOG_SCR type ETLOG_LINE enthält die Scriptdaten,
der Tabellen-Parameter LOG_CNT enthält Scriptzusatzzeilen, derzeit Messages,
der Tabellen-Parameter LOG_DAT type ETLOG_DATA_TABTYPE enthält Werte und Skriptfolgedaten.
Die Scriptdaten und die Scriptfolgezeilen werden im aktuellen Block an oberster Stelle eingetragen, die Werte und die Scriptfolgedaten werden an die voher entsprechend initialsisiereten Datenobjekte der Klasse CL_APL_ECATT_LOG_DATA mit der Methode ADD_LOG_DATA bergeben.
Die Schnittstelle bei TESTCASE und REF wird an das Log-Objekt übergeben durch zwei zusätzliche Quasi-Scriptfunktionen IMPORT und EXPORT.
Durch das Feld SCR_EXPAND im Parameter LOG_SCR wird gesteuert, ob der nächste Scripteintrag im gleichen Objekt vorgesehen ist, oder ob z.B. bei IF in einem neuen Block fortgesetzt wird.
Durch das Feld FUNC im Parameter LOG_SCR wird gesteuert, ob (bei TESTCASE oder REF) zusätzlich ein neuer Datenblock zu initialisieren ist.
Tritt in einer Scriptzeile ein Fehler auf, der über einen Errorcode > 0 an das Logobjekt gegeben wird, so wird dieser über den Exportparameter ERRCODE aufgrund des rekursiven Aufrufs der Methode ADD_ENTRY rückwärts in allen oberen Levels auch als Fehler eingetragen, sofern dort nicht schon ein Fehler aus einer zuvor abgearbeiteten Scriptzeile eingetragen ist. Es wird also auf jeder Ebene nur der jeweils erste auftretende Fehler bis nach oben zur Ablaufebene eingetragen. Die zum Fehler gehörenden Messages werden ebenfalls als Scriptfolgezeilen zurückgegeben und in den Log-Objekten eingetragen

1.3 Durch die Methode CLOSE_BLOCK wird aus dem Interpreter heraus das Schließen eines Blockes veranlaßt, wenn z.B. alle Anweisungen eines IF-Blockes abgearbeitet sind, und die nachfolgende Anweisung ENDIF und folgende wieder auf dem davorliegendem Level fortgeführt werden.
Da die zum Block gehörenden Anweisungen später nicht mehr geändert werden, wird zu diesem Zeitpunkt mit der Methode SAVE_BLOCK_TO_DB der gesamte Block auf der auf der Datenbank abgelegt, zusammen mit den Daten der zugehörigen Datenobjekte. Über den Parameter LOG_MOD kann veranlaßt werden, daß in dem Eintrag, an dem der Block hing, noch die im Parameter LOG_VDATA übergebenen Log-Daten modifiziert werden, die zum darüberliegenden Log-Eintrag gehören. Dies ist nur beim EXPORT nach einem REF vorgesehen.
Am Ende der Methode wird der Eintrag für die nachfolgende Scriptzeile initialisiert, die vom Interpreter wieder mit ADD_ENTRY eingetragen wird.

2. Lesen von Log-Einträgen

2.1 Nach dem Eröffnen der Klasse wird die Methode INIT_NEW_LOG aufgerufen mit dem Parameter IM_LOG_KEY = Log-Id (ungleich 0).
Die Daten des gewünschten Vorgangs werden im Log-Objekt eingelesen.

2.2 Die Methode GET_BLOCK liefert ausgehend von einer Logzeile einen darunterliegenden Block von Scriptzeilen, z.B. die nach IF und vor ENDIF durchlaufenen Scriptzeilen nach erfolgreicher IF-Bedingung.
Über die Parameter OBJ_LNR (lfd. Ablaufnummer) und SCR_LNR (lfd. Scriptnummer) wird gesteuert, zu welcher Scriptzeile der Folgeblock angefordert wird. Über (0, 0) wird zum Vorgang der Folgeblock auf Level1 mit den Ablaufdaten angefordert, über (1,0) wird zum ersten Ablauf der oberste Scriptblock angefordert.
Im (Tabellen-)Parameter LOG_SCR type ETLOG_LINE_TABTYPE werden die Scriptzeilen des Blockes zurückgegeben.

2.3 Die Methode GET_DATA liefert zu einer Logzeile Script-Daten und Value-Daten zurück.
Der Aufruf wird wie bei GET_BLOCK über LOG_SCR und SCR_LNR gesteuert. Der Scripteintrag selbst wird auch zurückgegeben im (Struktur-)Parameter LOG_SCR.
Aus einem Value-Daten-Eintrag geht hervor, ob XML-Daten vorhanden sind.

2.4 Die Methode GET_XML_DATA liefert zu einer Value-Daten-Eintrag einer Logzeile XML-Daten zurück.
Der Aufruf wird wie bei GET_DATA über LOG_SCR und SCR_LNR gesteuert. Die File-Nummer des XML-Files wird im Parameter FIL_LNR abgegeben.

Beziehungen

obj scr ptr     obj scr ptr     obj scr ptr

+-----------+   +-----------+   +-----------+

| 0 | 0 |-> |-> | 3 | 0 |-> |-> | 3 | 7 |   |<--aktueller Eintrag

+---+---+---+   +---+---+---+   +---+---+---+

                | 2 | 0 |-> |   | 3 | 6 |   |    obj scr ptr

                +---+---+---+   +---+---+---+   +---+---+---+

                | 1 | 0 |-> |   | 3 | 2 |-> |-> | 3 | 5 |   |

                +---+---+---+   +---+---+---+   +---+---+---+

Level 0                        | 3 | 1 |   |   | 3 | 4 |   |

Vorgang                        +---+---+---+   +---+---+---+

                 Level 1                        | 3 | 3 |   |

                 Testfaelle                     +---+---+---+

                                 Level 2  ff

                                 Scriptbefehle eines Testfalls

Beispiel

Hinweise

Weiterführende Informationen






BAL_S_LOG - Application Log: Log header data   General Data in Customer Master  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 9210 Date: 20240425 Time: 073357     sap01-206 ( 120 ms )