Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Nicht-S-Prozedur

&pagelevel(3)&pagelevel

Die folgende Liste gilt für Prozeduren, die im Vordergrund aufgerufen werden, das heißt, für Prozeduren, die im Dialogbetrieb ablaufen sollen oder von anderen Prozeduren aufgerufen werden.

  1. Prozedurkopf und Prozedurende

    1. SDF-P-Prozedurkopf erzeugen:
      Das Kommando BEGIN-PROCEDURE bzw. PROCEDURE entfernen.
      Die Prozedur hat dann implizit einen Prozedurkopf. Es gelten dann für die Prozedureigenschaften die Voreinstellungen des Kommandos SET-PROCEDURE-OPTIONS. Prozedurparameter können nicht übergeben werden.

    2. Prozedur korrekt beenden:
      Das Kommando END-PROCEDURE bzw. ENDP entfernen.
      Kommando EXIT-PROCEDURE einsetzen.

  2. Wenn nötig: Prozedurparameter deklarieren:

    DECLARE-PARAMETER-Block erzeugen (oder Kommando DECLARE-PARAMETER aufrufen).
    Wenn an die S-Prozedur Prozedurparameter übergeben werden sollen, müssen diese im Prozedurkopf deklariert werden.
    Dabei sollte jeder Parameter separat mit einem Aufruf des Kommandos DECLARE-PARAMETER deklariert werden. Diese Kommandoaufrufe müssen dann in einen DECLARE-PARAMETER-Block eingebunden werden, der mit dem Kommando BEGIN-PARAMETER-DECLARATION eingeleitet und mit dem Kommando END-PARAMETER-DECLARATION abgeschlossen wird.

  3. Prozedurparameter initialisieren:Nicht-S-Prozeduren (umstellen):

    Operand INITIAL-VALUE im Kommando DECLARE-PARAMETER mit einem Wert versehen.
    Wenn ein Prozedurparameter mit dem Defaultwert INITIAL-VALUE = *NONE deklariert wird, muss ihm beim Prozeduraufruf ein Wert übergeben werden. Andernfalls wird eine Fehlermeldung ausgegeben.
    Wenn ein Prozedurparameter mit INITIAL-VALUE = *PROMPT deklariert wird, wird der Wert nach dem Prozeduraufruf im Dialog abgefragt. Ist keine Dialogabfrage möglich, wird dem Prozedurparameter implizit die leere Zeichenkette zugewiesen. Wird dem Prozedurparameter mit INITIAL-VALUE ein Wert zugewiesen, braucht ihm beim oder nach dem Prozeduraufruf kein Wert übergeben zu werden. Der definierte Anfangswert (INITIAL-VALUE) wird dann standardmäßig eingesetzt.

  4. Wenn nötig, Jobvariablenersetzung einstellen:

    Standardmäßig gibt es in S-Prozeduren keine Jobvariablenersetzung. Diese ist nur dann möglich, wenn im Prozedurkopf mit dem Kommando SET-PROCEDURE-OPTIONS der Operand JV-REPLACEMENT auf den Wert AFTER-BUILTIN-FUNCTION gesetzt wird (oder später im Prozedurrumpf im Kommando MODIFY-PROCEDURE-OPTIONS). Es wird aber empfohlen, die Voreinstellung nicht zu ändern. Stattdessen sollte &(jobvar) ersetzt werden durch &(JV('jobvar')).

  5. Wenn nötig, Prozedureigenschaften einstellen:

    Mit dem Kommando SET-PROCEDURE-OPTIONS im Prozedurkopf Prozedureigenschaften definieren, die von den Voreinstellungen abweichen sollen. Dies gilt zum Beispiel für das Escape-Zeichen (= Fluchtsymbol) in Datensätzen oder für das Verhalten beim Auftreten von Fehlern in Datensätzen. Das Escape-Zeichen wird mit dem Operanden DATA-ESCAPE-CHARACTER definiert, das Verhalten bei Fehlern mit dem Operanden DATA-ERROR-HANDLING.

  6. Prozeduraufruf umstellen:

    1. CALL-Kommando:
      Durch CALL-PROCEDURE oder INCLUDE-PROCEDURE ersetzen. Das ISP-Kommando CALL wird von SDF-P kompatibel unterstützt; intern wird es auf das erweiterte CALL-PROCEDURE-Kommando abgebildet. Daher gelten bei Prozeduraufruf mit CALL die Voreinstellungen des Kommandos CALL-PROCEDURE. Prozeduraufruf mit CALL sollte dennoch durch CALL-PROCEDURE oder INCLUDE-PROCEDURE ersetzt werden.

    2. CALL-PROCEDURE-Kommando anpassen:
      Das Kommando CALL-PROCEDURE wurde für SDF-P erweitert. Wenn diese Erweiterungen im Kommandoaufruf nicht berücksichtigt sind, gelten jeweils die Voreinstellungen. Sollen andere Einstellungen gelten, müssen die entsprechenden Operanden in den Kommandoaufruf aufgenommen werden.

    3. Prozeduraufruf mit DO-Kommando:
      Auf CALL-PROCEDURE oder INCLUDE-PROCEDURE umstellen:
      Prozeduraufruf mit dem Kommando DO wird zwar weiterhin unterstützt; da mit DO jedoch keine echte Aufrufschachtelung möglich ist, sollten Prozeduren nur noch mit den Kommandos CALL-PROCEDURE oder INCLUDE-PROCEDURE aufgerufen werden.
      Bei einer Umstellung des Prozeduraufrufs von DO nach CALL- oder INCLUDE-PROCEDURE ist das unterschiedliche Beendigungsverhalten zu beachten.

  7. Gültige Sprungmarken erzeugen:

    1. Nicht-S-Marken (Format: .marke) ersetzen durch S-Marken (marke:):SDF-P unterstützt Marken im Nicht-S-Format nur in der obersten Blockebene, nicht in geschachtelten Blöcken. Nicht-S-Marken können nur in Sprüngen mit dem Kommando SKIP-COMMANDS (SKIP, SKIPJV, SKIPUS) sowie in Kommandos zur bedingungsabhängigen Auftragssteuerung (MODIFY-JV-CONDITIONALLY, WAIT-EVENT, ADD-CJC-ACTION, WAIT, ON) adressiert werden.

    2. Kommando SKIP-COMMANDS bzw. SKIP, SKIPJV und SKIPUS durch Kontrollflusskommandos ersetzen:
      Wenn mit SKIP-COMMANDS unbedingte Sprünge durchgeführt wurden, kann SKIP-COMMANDS durch das Kommando GOTO ersetzt werden: Sprünge mit SKIP-COMMANDS sind nur in der Schachtelungstiefe 0 möglich, das heißt, nicht in Kommandoblöcken. Sprünge innerhalb von Kommandoblöcken oder in umgebende Kommandoblöcke werden mit GOTO durchgeführt.
      Wenn mit SKIP-COMMANDS bedingte Sprünge durchgeführt wurden, kann SKIP-COMMANDS durch einen IF-Block (evtl. auch IF-BLOCK-ERROR-Block oder IF-CMD-ERROR-Block) ersetzt werden.

  8. Fehlerbehandlung einfügen:

    SET-JOB-STEP-Kommandos bzw. STEP durch IF-BLOCK-ERROR oder IF-CMD-ERROR ersetzen:
    In S-Prozeduren wird Fehlerbehandlung in Fehlerbehandlungsblöcken durchgeführt, die mit den Kommandos IF-BLOCK-ERROR oder IF-CMD-ERROR eingeleitet werden. Diesen Fehlerbehandlungsblöcken darf kein SET-JOB-STEP- oder STEP-Kommando vorangehen, da SET-JOB-STEP und STEP die Fehlersituation aufheben. IF-BLOCK-ERROR oder IF-CMD-ERROR kann dann die ursprüngliche Fehlersituation nicht mehr erkennen.
    Zu beachten ist, dass IF-BLOCK-ERROR keine Schalter zurücksetzt!

  9. Gleichheitszeichen als erstes Zeichen im Kommandoaufruf löschen:

    Bei einigen Kommandos darf auf den Kommandonamen ein beliebiges Zeichen folgen. Wenn dieses erste Zeichen nach dem Kommandonamen ein Gleichheitszeichen ist, interpretiert SDF-P die Kommandozeile als Wertzuweisung an eine Variable, deren Variablenname der Kommandoname ist.

  10. Auftragsschalter durch Variablen ersetzen:

    Der Ablauf von S-Prozeduren sollte nicht über Auftragsschalter gesteuert werden. SDF-P bietet zur Ablaufsteuerung die Kontrollflusskommandos, mit denen sich Verzweigungen und Schleifen programmieren lassen. Bei der Abfrage der entsprechenden Bedingungen werden Variablen eingesetzt.

    Hinweis

    Bei Abhängigkeiten zu Nicht-S-Prozeduren, die die Steuerung über Auftragsschalter nutzen,kann es notwendig sein, dass Auftragsschalter weiterhin abgefragt oder gesetzt werden müssen. In diesem Fall können Auftragschalter auch über das implizit deklarierte Array SYSSWITCH abgefragt oder modifiziert werden (siehe AAbschnitt „Reservierte Variablennamen“).

  11. Wenn nötig: Anweisungen kennzeichnen:

    Prozedurzeilen, die Anweisungen enthalten, müssen mit zwei Schrägstrichen beginnen.