Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

MAINCODE( ) Fehlerschlüssel abfragen

&pagelevel(3)&pagelevel

Anwendungsgebiet: Kommando-Returncode

Die Funktion MAINCODE( ) greift auf den Returncode des letzten Kommandos zu, das einen Fehler auslöste oder dem ein /SAVE-RETURNCODE folgte. Sie liefert den sieben Byte langen Fehlerschlüssel des Returncodes, der gleichzeitig der Meldungsschlüssel für eine Fehlermeldung ist (die übrigen Komponenten des Kommando-Returncodes werden mit den Funktionen SUBCODE1( ) und SUBCODE2( ) abgefragt).

Der Fehlerschlüssel, den die Funktion MAINCODE( ) liefert, besteht aus zwei Teilen: die ersten drei Byte bezeichnen die Meldungsklasse, die letzten vier Byte spezifizieren den Fehler. Der Fehlerschlüssel kann anschließend in der Funktion MSG( ) als Meldungsschlüssel eingesetzt werden, MSG( ) liefert dann - falls verfügbar den dazugehörenden Meldungstext.

Außerhalb von Dialogblöcken und Prozeduren kann MAINCODE( ) bzw. können allgemein Kommando-Returncodes nicht abgefragt werden.

Format

MAINCODE( )

MC( )


Ergebnistyp

STRING (<string 7..7>)

Eingabeparameter

Keine

Ergebnis

Fehlerschlüssel als String

Fehlermeldungen

SDP0428   KOMMANDO-RETURN-CODE KANN IM DIALOG NICHT ABGEFRAGT WERDEN 
SDP0435   GEWUENSCHTE INFORMATION NICHT VERFUEGBAR 

Beispiel

Fehlerbehandlung mit MAINCODE( )

/BL1: BEGIN-BLOCK
/... 
/  IF-BLOCK-ERROR
/    WRITE-TEXT '&(MSG(MAINCODE()))'
/  END-IF
/...
/END-BLOCK BLOCK = BL1

Tritt in dem entsprechenden Block (hier BL1) ein Fehler auf, wird der aktuelle Maincode ausgewertet und die entsprechende Meldung ausgegeben.

Es muss berücksichtigt werden, dass die Meldung &(MSG(MAINCODE())) ebenfalls Klammern und Hochkommas enthalten kann und dies bei der WRITE-TEXT-Angabe zu Problemen führt. Diese können durch Benutzung der Funktion TO-C-LITERAL() vermieden werden, z.B.:

/WRITE-TEXT &(TO-C-LITERAL('*** ' // MSG(MAINCODE()) // ' ***'))