Ansicht
Dokumentation

ABAPGENERATE_SUBR_ERROR_HANDLING - GENERATE SUBR ERROR HANDLING

ABAPGENERATE_SUBR_ERROR_HANDLING - GENERATE SUBR ERROR HANDLING

TXBHW - Original Tax Base Amount in Local Currency   rdisp/max_wprun_time - Maximum work process run time  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

GENERATE SUBROUTINE POOL, error_handling

Kurzreferenz



... $[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 )