In diesem Abschnitt werden die Einschränkungen beschrieben, die für Nicht-SDF-P-Kommandos in S-Prozeduren gelten sowie die Einschränkungen für SDF-P-Kommandos beim Prozedurablauf.
(Sprung-)Marken und AID-Sequenzen
(Sprung-)Marken
Marken des Formats .marke können nur in Verbindung mit den SKIP-Kommandos und den Kommandos zur bedingungsabhängigen Auftragssteuerung verwendet werden (siehe unten).
Marken des Formats marke: können nur mit SDF-P-Kommandos verwendet werden.
AID-Sequenzen
AID-Sequenzen sind Folgen von Kommandos an AID, die jeweils durch ein Semikolon voneinander getrennt sind.
In diesen Sequenzen dürfen keine SDF-P-Kontrollflusskommandos verwendet werden. AID-Kommandos, denen eine Kommando- bzw. Unterkommandoliste folgt, dürfen nicht durch Variablenersetzung erzeugt werden.
Nicht-SDF-P-Kommandos
ADD-CJC-ACTION (bzw. ON)
In ADD-CJC-ACTION-Blöcken sind nur ENTER-JOB-, ENTER-PROCEDURE- und MODIFY-JV-Kommandos erlaubt.
BEGIN-PROCEDURE (bzw. PROCEDURE)Wird nicht unterstützt.
CALL-PROCEDURE (bzw. CALL)
Ein Semikolon außerhalb von Klammern (bzw. außerhalb von Kommentaren) wird als Kommandotrenner interpretiert.
CANCEL-PROCEDURE
Wenn das Kommando CANCEL-PROCEDURE eingesetzt wird, um eine Fehlersituation zu beenden, müssen ihm folgende Kommandos vorausgehen:IF-BLOCK-ERROR
END-IF
DO (ISP-Kommando)
Darf nicht verwendet werden beim Aufruf von Prozeduren, in denen Prozedurparameter mit TRANSFER-TYPE = *BY-REFERENCE deklariert werden.
Ein Semikolon außerhalb von Klammern wird als Kommandotrenner interpretiert.
EXIT-JOB (bzw. ABEND)
Wenn das Kommando EXIT-JOB eingesetzt wird, um in einer Fehlersituation den Auftrag zu beenden, so muss es in folgende Kommandos eingeschlossen werden:IF-BLOCK-ERROR
END-IF
INTR (ISP-Kommando)
Ein Semikolon außerhalb von Klammern wird als Kommandotrenner interpretiert.
LOGOFF
Wenn das Kommando LOGOFF eingesetzt wird, um in einer Fehlersituation den Auftrag zu beenden, so muss es in folgende Kommandos eingeschlossen werden:IF-BLOCK-ERROR
END-IF
LOGON
Wird nicht unterstützt.
PAUSE (ISP-Kommando)
Das Gleichheitszeichen darf nicht erstes signifikantes Zeichen sein. Das Kommando wird sonst als Wertzuweisung interpretiert (SET-VARIABLE ohne Kommandonamen).
Ein Semikolon außerhalb von Klammern wird als Kommandotrenner interpretiert.
REMARK
Wie bei SDF-Kommandos üblich, muss beachtet werden, dass
das Gleichheitszeichen nicht das erste signifikante Zeichen sein darf. Das Kommando wird sonst als Wertzuweisung interpretiert (SET-VARIABLE ohne Kommandonamen).
ein Semikolon außerhalb von Klammern als Kommandotrenner interpretiert wird.
Klammern, einfache und doppelte Anführungszeichen nicht einzeln, sondern nur in Paaren auftreten dürfen.
SET-JOB-STEP (STEP)
Darf nicht durch Variablenersetzung entstehen.
SET-LOGON-PARAMETERSWird nicht unterstützt.
SKIP-COMMANDS (ISP-Kommandos SKIP, SKIPJV, SKIPUS)
Kann nur in Schachtelungstiefe 0 hineinspringen, das heißt, nur in die oberste Blockebene.
TYPE (ISP-Kommando)
Das Gleichheitszeichen darf nicht erstes signifikantes Zeichen sein. Das Kommando wird sonst als Wertzuweisung interpretiert (SET-VARIABLE ohne Kommandonamen).
Ein Semikolon außerhalb von Klammern wird als Kommandotrenner interpretiert.
WAIT-EVENT (bzw. WAIT), MODIFY-JV-CONDITIONALLY
Da hier Sprungkommandos nur mit Nicht-S-Marken möglich sind, sollte das Kommando WAIT-EVENT nicht innerhalb von Blöcken verwendet werden
Selbstdefinierte Kommandos
Mit SDF-A können eigene Kommandos definiert werden. Solche Kommandos können mit dem Operandenwert „Kommandorest“ definiert sein, in dem semantisch Semikolons zugelassen sind.
Werden solche Kommandos in S-Prozeduren eingesetzt, ist - wie in normalen SDF-Kommandos üblich - zu beachten, dass
das Gleichheitszeichen nicht das erste signifikante Zeichen sein darf. Das Kommando wird sonst als Wertzuweisung interpretiert (SET-VARIABLE ohne Kommandonamen).
ein Semikolon außerhalb von Klammern als Kommandotrenner interpretiert wird.
Klammern, einfache und doppelte Anführungszeichen nicht einzeln, sondern nur in Paaren auftreten dürfen.
SDF-P-Kommandos
EXIT-PROCEDURE
Wenn das Kommando EXIT-PROCEDURE eingesetzt wird, um in einer Fehlersituation den Auftrag zu beenden, so muss es in folgende Kommandos eingeschlossen werden:IF-BLOCK-ERROR
END-IF
MODIFY-PROCEDURE-TEST-OPTIONS
Hat keine Wirkung auf Nicht-S-Prozeduren.
Einschränkungen bei Datensätzen
Handelt es sich bei der S-Prozedur um eine ISAM-Datei, so werden die darin enthaltenen Datensätze an das lesende Programm ohne ISAM-Schlüssel übergeben.