Wenn ein mittels Prozedur implementiertes Kommando allgemein verfügbar sein soll, muss
die Prozedurdatei ausführend mehrbenutzbar sein
die Benutzerkennung, unter der die Prozedurdatei katalogisiert ist, als Teil des Dateinamens in der Kommandodefinition angegeben sein (siehe ADD-CMD).
In der Operandenliste, die SDF an die Prozedur übergibt, können die Operanden als Schlüsselwort- oder als Stellungsoperanden definiert sein. Bei einem Schlüsselwortoperanden kann ein anderer Operandenname übergeben werden, als der, der in der Kommandosyntax steht (siehe ADD-OPERAND...,RESULT-OPERAND-NAME=).
Operandendefinitionen | Kommandoeingabe | an die Prozedur |
//ADD-OPER OP1,...,RES-OPER-N=*POS(1) | /KDO W,X,Y,Z | ('W','X',OP3='Y', |
Mehrere Operanden des Kommandos können zu einem einzigen Operanden verkettet an die Prozedur übergeben werden (siehe ADD-OPERAND...,RESULT-OPERAND-NAME=, CONCATENATION-POS=).
Operandendefinitionen | Kommandoeingabe | an die Prozedur |
//ADD-OPER OP1,...,RES-OPER-N=*POS(2), | /KDO X,Y,Z /KDO X,OP3=Z, | ('Z','YX') |
//ADD-OPER OP1,...,RES-OPER-N=OP2, | /KDO X,Y,Z /KDO X,OP3=Z, | ('Z',OP2='YX') |
Ein Operand, für den es nur einen einzigen zulässigen Wert gibt, lässt sich so definieren, dass er zwar an die Prozedur übergeben wird, aber nicht in der Kommandosyntax erscheint (siehe ADD-OPERAND...,PRESENCE=*INTERNAL-ONLY). Steht dieser Operand als einziger Operand in einer Struktur, so ist auch die Struktur in der Kommandosyntax unsichtbar.
Das lässt sich u.a. dazu nutzen, an die Prozedur Sprungziele zu übergeben, zu denen in Abhängigkeit von Eingabealternativen in der Prozedur verzweigt wird (siehe „Beispiel 1: Kommando zum Assemblieren").
Andererseits lässt sich ein Operand, der z.B. nur zur Strukturierung der Kommandosyntax, aber nicht zur Implementierung benötigt wird, bei der Operandenübergabe an die Prozedur unterdrücken (siehe ADD-OPERAND...,PRESENCE=*EXTERNAL-ONLY). Mit ADD-
VALUE...,VALUE=<c-string>(...,OUTPUT=...,...),... können Sie festlegen, dass SDF definierte Einzelwerte vor der Übergabe an die Prozedur in andere Werte umwandelt oder deren Übergabe unterdrückt. Beispielsweise können Sie festlegen, dass SDF statt des für die Eingabe definierten Werts ’YES’ den Wert ’ISD’ an die Prozedur übergibt (siehe „Beispiel 1:Kommando zum Assemblieren“).
Mit ADD-VALUE...,OUTPUT=*NORMAL(STRING-LITERALS=...) können Sie festlegen, ob SDF einen Operandenwert vor der Übergabe an die Prozedur umcodiert (<c-string> zu <x-string> oder umgekehrt).
Mit ADD-VALUE...,STRUCTURE=*YES(SIZE=...,...),... bestimmen Sie, ob in der
MINIMUM- und MEDIUM-Stufe des geführten Dialogs eine Struktur in den Operandenfragebogen integriert wird oder ob SDF für sie einen eigenen Unterfragebogen ausgibt.
Normalerweise können Sie bei der Definition eines Kommandos weitgehend die Default-Werte der ADD-Anweisungen benutzen. Diese Anweisungen bieten Ihnen aber auch viele Möglichkeiten, die Kommandodefinition auf Ihre ganz speziellen Erfordernisse auszurichten. Einzelheiten dazu finden Sie in der Beschreibung der ADD-Anweisungen.