Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Regeln für die Eingabe von SDF-P-Kommandos im Dialog

&pagelevel(4)&pagelevel

Aufbau der Eingabezeilen

Es gelten für Kommandos generell die gleichen Syntaxregeln wie in einer Prozedur, Ausnahmen bilden der einleitende Schrägstrich und das Zeilenendezeichen.

Der einleitende Schrägstrich am Beginn der Eingabezeile kann entfallen.

Dies gilt sowohl, wenn einzelne SDF-P-Kommandos eingegeben werden, als auch in Kommandoblöcken.

Zeilenende

Eingabezeilen können mit der -Taste abgeschlossen werden oder mit einem logischen Zeilenende (-Taste). Generell gilt: Sobald die -Taste gedrückt wird, gilt die Eingabe als abgeschlossen.

Wie eine Eingabezeile abgeschlossen werden muss, hängt von verschiedenen Faktoren ab:

  • Besteht die Eingabe nur aus einer einzelnen Zeile, wird sie mit abgeschlossen. Das Kommando wird analysiert und sofort ausgeführt.

  • Wenn mehrere Eingabezeilen zusammenhängend eingegeben werden sollen, die Kommandos jedoch nicht in einen Kommandoblock eingebettet sind, muss jede Eingabezeile mit dem Zeichen logisches Zeilenende abgeschlossen werden (Taste). Erst zum Abschluss der letzten Eingabezeile darf die -Taste gedrückt werden.

  • Wenn mehrere Eingabezeilen zusammenhängend eingegeben werden sollen und die Kommandos in einen Kommandoblock eingebettet sind, kann jede Zeile mit abgeschlossen werden.
    Der Inhalt der gerade eingegebenen Zeile wird dann voranalysiert und zwischengespeichert, jedoch noch nicht ausgeführt. Sobald ein Fehler entdeckt wird (zum Beispiel eine falsche Folge von Kontrollstrukturkommandos), wird der Block abgebrochen. Erst wenn der Kommandoblock mit dem entsprechenden Blockabschlusskommando (und Taste ) beendet wird, wird der gesamte Kommandoblock ausgeführt.
    Wenn Kommandoblöcke im Dialog eingegeben werden, erscheint die Blockbezeichnung im Betriebssystem-Prompt. Erst wenn der Block beendet oder durch Fehler abgebrochen wird, erscheint wieder das normale Betriebssystem-Prompt.

Daten und Anweisungen

Damit innerhalb von Kommandoblöcken Daten von Kommandos unterschieden werden können, müssen Daten als Argumente des Kommandos SEND-DATA eingegeben werden (siehe "SEND-DATA Datensatz an ein Programm übergeben").

Wenn eine Zeile eine Anweisung enthalten soll, muss sie mit zwei Schrägstrichen „//“ beginnen oder als Argument des Kommandos SEND-STMT eingegeben werden.

Es muss vor dem Programmaufruf /ASSIGN-SYSDTA *SYSCMD gesetzt werden, damit das Programm die Daten oder Anweisungen aus dem Dialogblock liest.

Ausdrucksersetzung

Ausdrucksersetzung ist sowohl im geführten als auch im ungeführten Dialog möglich. Die Ersetzung erfolgt jedoch erst, wenn das Kommando ausgeführt wird.

Im Gegensatz zur &-Ersetzung in S-Prozeduren gilt, dass der zu ersetzende Ausdruck unverändert erhalten bleibt, wenn bei der Auswertung ein Fehler festgestellt wird.

Beispiel

/WRITE-TEXT '&(1 // 2)'

Der Ausdruck 1 // 2 ist fehlerhaft, da Zahlen nicht verkettet werden dürfen. In einer S-Prozedur wird daher die Fehlerbehandlung angestoßen. Im Dialog wird dagegen die Zeichenkette &(1 // 2) unverändert ausgegeben.

Im Dialog ist standardmäßig auch die Jobvariablenersetzung wirksam.

Unterbrechung/Abbruch

Mit der Taste oder kann die Eingabe innerhalb eines Kommandoblocks jederzeit abgebrochen werden. Es erscheint dann das normale Betriebssystem-Prompt.

Die Ausführung eines Kommandoblocks kann jederzeit mit der Taste  unterbrochen und mit RESUME-PROCEDURE fortgesetzt werden.

Geführter/ungeführter Dialog

Werden SDF-P-Kommandos einzeln im Dialog eingegeben, kann der geführte Dialog genutzt werden.

In Kommandoblöcken können Kommandos nur im ungeführten Dialog eingegeben werden; auch die Eingabe „kommando?“ wird zwischengespeichert. Der geführte Dialog wird erst bei Kommandoausführung eingeleitet. Vorwegeingaben werden dabei berücksichtigt.

Der geführte Dialog wird in Dialogblöcken nur wirksam, wenn er mit dem Kommando MODIFY-SDF-OPTIONS PROCEDURE-DIALOGUE=*YES eingeschaltet wurde.

Ausdrucksersetzung kann im geführten Dialog genutzt werden.