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()) // ' ***'))