Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Kommando-Returncode

&pagelevel(3)&pagelevel

Alle SDF-P-Kommandos liefern Returncodes, die den Benutzer über die Ausführung des Kommandos informieren. Dieser Kommando-Returncode ist vergleichbar mit dem Returncode auf Programmebene. Der Kommando-Returncode ermöglicht es dem Benutzer, auf Fehlersituationen zu reagieren.

Der Kommando-Returncode besteht aus drei Teilen:

  • dem Subcode1, der die aufgetretene Fehlersituation in eine Fehlerklasse einordnet, aus der abgeleitet werden kann, wie schwer wiegend ein Fehler ist. Der Wert von Subcode1 wird dezimal ausgegeben. Folgende fünf Fehlerklassen sind im BS2000 definiert:

    • Klasse A: kein Fehler
      Der Wert ist Null. Es kann normal weitergearbeitet werden.

    • Klasse B: Syntaxfehler
      Der Wert ist eine Zahl von 1 bis 31. Das Kommando wurde syntaktisch falsch eingegeben. Eine Wiederholung der Eingabe ist nur nach Korrektur des Syntaxfehlers sinnvoll.

    • Klasse C: interner Fehler (Systemfehler)
      Der Wert ist 32. Eine Wiederholung der Eingabe ist nur sinnvoll, wenn der interne Fehler behoben wurde.

    • Klasse D: Fehler, die keiner anderen Fehlerklasse zuzuordnen sind
      Der Wert ist eine Zahl von 64 bis 127. Zur Bestimmung der weiteren Vorgehensweise sollte der Maincode ausgewertet werden.

    • Klasse E: Kommando kann vorübergehend nicht ausgeführt werden

      Der Wert ist eine Zahl von 128 bis 130. Die Eingabe kann unverändert wiederholt werden. Das Kommando kann nach einer Wartezeit wieder ausgeführt werden. Die Dauer der Wartezeit wird eingeteilt in kurzfristig, langfristig und unbefristet.

      • Kurzfristig entspricht dem Wert 128 und bedeutet, dass ein Warten im Dialog als sinnvoll angesehen wird.

      • Langfristig entspricht dem Wert 129 und bedeutet, dass ein Warten im Stapelbetrieb als sinnvoll angesehen wird.

      • Unbefristet entspricht dem Wert 130 und bedeutet, dass es unsicher ist, ob der Fehler überhaupt behoben wird.

  • dem Subcode2, der Zusatzinformationen zur Fehlerklasse enthalten kann.

  • dem Maincode, der einem Meldungsschlüssel entspricht und differenzierte Fehlerinformationen liefert. Mit diesem Meldungsschlüssel kann über die vordefinierte Funktion MSG( ) oder mit dem Kommando HELP-MSG-INFORMATION die entsprechende Fehlermeldung ausgegeben werden (siehe Handbuch „Kommandos“ [3]).

Der Kommando-Returncode kann mit den vordefinierten Funktionen SUBCODE1( ), SUBCODE2( ) und MAINCODE( ) abgefragt werden.

Es gibt für jedes Kommando eigene Returncodes. Auch gibt es neben den eigenen Returncodes für bestimmte Kommandotypen noch übergreifende Returncodes, die hier anschließend aufgelistet werden.

Hinweise

  • Die Ausführung eines Kommandos wird gewöhnlich beendet, wenn ein Fehler auftritt. Wenn mehr als ein Fehler auftreten sollte, kann nicht immer festgestellt werden, dass der gemeldete Fehler auch der zuerst aufgetretene Fehler ist, weil die Reihenfolge der überprüften Operanden nicht garantiert ist.

  • Die Returncodes und Meldungen sind nur für S-Prozeduren garantiert, nicht aber für Nicht-S-Prozeduren oder Stapelaufträge.

  • Die folgenden Kommandos werden teilweise oder sogar ganz während der Voranalyse einer S-Prozedur überprüft. Jeder während dieser Voranalyse auftretende Fehler ist ein Fehler im Kommando während der Prozedurvorbereitung, und das Kommando wird nicht ausgeführt. Darum sind die Fehlermeldungen, die tatsächlich während der Ausführung des Kommandos auftauchen, sehr begrenzt. Wenn eines dieser Kommandos durch Ausdrucksersetzung erzeugt wird, tritt ein Kontextfehler auf. Die Kommandos sind:


    BEGIN-BLOCK
    BEGIN-PARAMETER-DECLARATION
    CYCLE
    DECLARE-PARAMETER
    ELSE
    ELSE-IF
    END-BLOCK
    END-FOR
    END-IF
    END-PARAMETER-DECLARATION
    END-WHILE

    EXIT-BLOCK
    FOR
    GOTO
    IF
    IF-BLOCK-ERROR
    IF-CMD-ERROR
    INCLUDE-BLOCK
    REPEAT
    SET-PROCEDURE-OPTIONS
    UNTIL
    WHILE

  • Wenn ein Fehler während der Ausführung eines Kommandos auftritt, das einen Block einleitet, dann kann dieser Fehler nur in einem IF-BLOCK-ERROR-Block bearbeitet werden; und zwar nach dem Ende des Blocks, der durch das fehlerhafte Kommando gestartet wurde.

  • Die Voreinstellung ist CMD0001 für den Maincode und jeweils 0 für den Subcode1 und Subcode2

Die allgemeinen Returncodes (d. h. Returncodes, die bei jedem Kommando auftreten können) sind:

(SC2)

SC1

Maincode

Bedeutung 1)


0CMD0001Ohne Fehler

1CMD0202Syntaxfehler

3CMD2203Falsche Syntaxdatei

32CMD0221Systemfehler (interner Fehler)

130SDP0099Kein Adressraum mehr verfügbar

1) Enthält die Tabelle auch garantierte Meldungen, wird die Bedeutungsspalte mit „/ garantierte Meldungen“ ergänzt.

Bei allen Kommandos, Anweisungen und Datensätzen, in denen eine Ausdrucksersetzung stattfindet, können die folgenden Returncodes auftreten, wenn bei der Ausdrucksersetzung Fehler passieren:

(SC2)

SC1

Maincode

Bedeutung


1SDP0140Syntaxfehler während der Ersetzung

64SDP0141Semantikfehler während der Ersetzung

Bei allen Datenzeilen in falschem Kontext kann folgender Returncode auftreten:

(SC2)

SC1

Maincode

Bedeutung


64

SDP0091

Semantikfehler

Bei allen Anweisungen in falschem Kontext kann folgender Returncode auftreten:

(SC2)

SC1

Maincode

Bedeutung


64

SDP0091

Semantikfehler