Ansicht
Dokumentation
ABAPGENERATE_SUBR_ERROR_HANDLING - GENERATE SUBR ERROR HANDLING
TXBHW - Original Tax Base Amount in Local Currency rdisp/max_wprun_time - Maximum work process run timeDiese Dokumentation steht unter dem Copyright der SAP AG.
GENERATE SUBROUTINE POOL, error_handling
... $[MESSAGE mess$]
$[INCLUDE incl$]
$[LINE lin$]
$[WORD wrd$]
$[OFFSET off$]
$[MESSAGE-ID mid$]
$[SHORTDUMP-ID sid$] ...
Zusätze:
1. ... MESSAGE mess
2. ... INCLUDE incl
3. ... LINE lin
4. ... WORD wrd
5. ... OFFSET off
6. ... MESSAGE-ID mid
7. ... SHORTDUMP-ID sid
Wirkung
Mit diesen Zusätzen können Syntax- und Generierungsfehler der Anweisung GENERATE SUBROUTINE POOL analysiert werden. Syntaxfehler können entweder in dem in itab angegebenen Quelltext oder in dort mit der Anweisung INCLUDE eingebundenen Include-Programmen auftreten. Generierungsfehler können unter anderem auftreten, wenn das Programm Fehler in Deklarationsanweisungen enthält, die bei der statischen Syntaxprüfung nicht erkannt werden.
An allen Operandenpositionen hinter diesen Zusätzen können angegeben werden:
- Eine vorhandene zum Operandentyp passenden Variable.
- Eine Inline-Deklaration DATA(var)
oder FINAL(var), wobei eine zum Operandentyp passende Variable deklariert wird.
Zusatz 1
... MESSAGE mess
Wirkung
Wenn der Subroutinen-Pool einen oder mehrere Syntaxfehler enthält, wird der Text der Fehlermeldung des ersten Syntaxfehlers der Variablen mess zugewiesen. Für mess kann eine zeichenartige Variable angegeben werden, oder eine Inline-Deklaration, die eine Variable vom Typ string erzeugt.
Wenn es zu einem Generierungsfehler kommt (siehe Zusatz SHORTDUMP-ID), wird mess ebenfalls
mit der zugehörigen Fehlermeldung versorgt. Wenn der Subroutinen-Pool generiert werden kann, wird der Inhalt von mess nicht geändert.
Zusatz 2
... INCLUDE incl
Wirkung
Wenn im Subroutinen-Pool ein oder mehrere Include-Programme eingebunden sind und eines den ersten Syntaxfehler des Subroutinen-Pools enthält, wird der Name dieses Include-Programms der Variablen incl zugewiesen. Für incl kann eine zeichenartige Variable angegeben werden, oder eine Inline-Deklaration, die eine Variable vom Typ PROGNAME erzeugt.
Wenn der erste Syntaxfehler im Quelltext in itab auftritt, wird incl der interne Name zugewiesen, der bei erfolgreicher Generierung in prog zurückgegeben worden wäre. Dieser Name beginnt immer mit "%_".
Wenn es zu einem Generierungsfehler kommt (siehe Zusatz SHORTDUMP-ID), wird incl ebenfalls mit dem Namen des zugehörigen
Include-Programms
versorgt. Wenn der Subroutinen-Pool generiert werden kann, wird der Inhalt von incl nicht geändert.
Zusatz 3
... LINE lin
Wirkung
Wenn der Subroutinen-Pool einen oder mehrere Syntaxfehler enthält, wird die Zeilennummer des ersten Syntaxfehlers bezogen auf das Programm, in dem er auftritt (entweder der Quelltext in itab oder ein dort eingebundenes Include-Programm), der Variablen lin zugewiesen. Für lin kann eine Variable vom Typ i angegeben werden, oder eine Inline-Deklaration, die eine solche Variable erzeugt.
Wenn es zu einem Generierungsfehler kommt (siehe Zusatz SHORTDUMP-ID), wird lin ebenfalls
mit der zugehörigen Zeilennummer versorgt. Wenn der Subroutinen-Pool generiert werden kann, wird der Inhalt von lin nicht geändert.
Zusatz 4
... WORD wrd
Wirkung
Wenn der Subroutinen-Pool einen oder mehrere Syntaxfehler enthält, wird das erste fehlerhafte Token der Variablen wrd zugewiesen. Für wrd kann eine zeichenartige Variable angegeben werden, oder eine Inline-Deklaration, die eine Variable vom Typ string erzeugt.
Wenn es zu einem Generierungsfehler kommt (siehe Zusatz SHORTDUMP-ID), wird wrd ebenfalls
mit dem zugehörigen Token versorgt. Wenn der Subroutinen-Pool generiert werden kann, wird der Inhalt von wrd nicht geändert.
Zusatz 5
... OFFSET off
Wirkung
Wenn der Subroutinen-Pool einen oder mehrere Syntaxfehler enthält, wird der Offset des ersten fehlerhaften Tokens bezogen auf die Zeile im Quelltext der Variablen off zugewiesen. Für off kann eine Variable vom Typ i angegeben werden, oder eine Inline-Deklaration, die eine solche Variable erzeugt.
Wenn es zu einem Generierungsfehler kommt (siehe Zusatz SHORTDUMP-ID), wird off ebenfalls
mit dem zugehörigen Offset versorgt. Wenn der Subroutinen-Pool generiert werden kann, wird der Inhalt von off nicht geändert.
Zusatz 6
... MESSAGE-ID mid
Wirkung
Wenn der Subroutinen-Pool einen oder mehrere Syntaxfehler enthält, wird der Schlüssel, unter dem die erste Fehlermeldung in der Datenbanktabelle TRMSG abgelegt ist, der Variablen mid zugewiesen.
Wenn es zu einem Generierungsfehler kommt (siehe Zusatz SHORTDUMP-ID), wird mid ebenfalls mit dem zugehörigen Schlüssel versorgt. Wenn der Subroutinen-Pool generiert werden kann, wird der Inhalt von mid nicht geändert.
Der Schlüssel der Datenbanktabelle TRMSG besteht aus den Komponenten SPRAS der Länge 1, KEYWORD der Länge 20 und MSGNUMBER der Länge 4. Die Komponente MSGNUMBER dient der Aufnahme einer dreistelligen Kennung. Die vierte Stelle kann ein Leerzeichen oder einen Buchstaben enthalten. Bei mehrteiligen Fehlermeldungen, die mehr als eine Zeile in der Datenbanktabelle TRMSG belegen, haben alle Teile die gleiche dreistellige Kennung, während die vierte Stelle einen Teil der Meldung bezeichnet.
Das Datenobjekt mid muss den Datentyp TRMSG_KEY
aus dem ABAP Dictionary haben, der sich aus den Komponenten SPRAS der Länge 1, KEYWORD der Länge 20 und MSGNUMBER der Länge 3 zusammensetzt. Eine
Inline-Deklaration erzeugt eine solche Struktur.
Hinweis
Der Rückgabewert in mid enthält nur die dreistellige Kennung einer Syntaxfehlermeldung.
Um beispielsweise mit SELECT alle Teile einer Fehlermeldung aus der Tabelle TRMSG auszulesen,
muss die Schlüsselkomponente MSGNUMBER in der WHERE-Bedingung
generisch angegeben werden, z.B. mit LIKE unter Verwendung des Maskenzeichens "%".
Zusatz 7
... SHORTDUMP-ID sid
Wirkung
Wenn der Subroutinen-Pool zwar keine statisch erkennbaren Syntaxfehler enthält, während der Generierung aber eine Ausnahme auftritt, wird die Kennung des Laufzeitfehlers, welcher der Ausnahme zugeordnet ist, der Variablen sid zugewiesen. Für sid kann eine zeichenartige Variable angegeben werden, oder eine Inline-Deklaration, die eine Variable vom Typ string erzeugt.
Wenn der Subroutinen-Pool generiert werden kann, wird der Inhalt von mid nicht geändert.
Hinweise
- Eine Ausnahme während der Generierung bricht diese ab, führt aber nicht zu einem Programmabbruch. Der Laufzeitfehler wird zwar intern behandelt, führt aber dennoch zu einem Datenbank-Rollback und zum Speichern des Kurzdumps.
- Die Kennungen von Laufzeitfehlern sind Inhalt der Schlüsselspalte ERRID der Datenbanktabelle SNAPT, in der ihnen Texte zugeordnet sind.
Beispiel
Feststellen und Ausgabe der Syntax- und Generierungsfehler bei der Generierung eines fehlerhaften Subroutinen-Pools.
rdisp/max_wprun_time - Maximum work process run time rdisp/max_wprun_time - Maximum work process run time
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 11374 Date: 20240328 Time: 222413 sap01-206 ( 184 ms )