Mit der Anweisung MODIFY-STMT ändern Sie in der geöffneten Syntaxdatei die Definition einer Anweisung. Diese Anweisung muss „aktuelles“ Objekt sein. Anschließend ist der erste Operand dieser Anweisung „aktuelles“ Objekt. Die Anweisung MODIFY-STMT gleicht weitgehend der Anweisung ADD-STMT.
Default-Wert für alle Operanden von MODIFY-STMT ist *UNCHANGED, d.h. es werden nur die Teile der Anweisungsdefinition verändert, die explizit angegeben sind.
Im geführten Dialog wird im Operandenfragebogen statt *UNCHANGED die aktuelle Operandenbesetzung angezeigt. Wenn Sie zu einem Operanden einen Wert ungleich *UNCHANGED angeben, so werden die alten Angaben in der Anweisungsdefinition durch die neuen ersetzt. Das gilt auch dann, wenn Listenangabe zulässig ist, d.h. die Werteliste wird nicht um den angegebenen Wert ergänzt, sondern durch ihn ersetzt.
Für den STANDARD-NAME gibt es eine Sonderregelung. Wenn das Kommando in einer zugewiesenen Referenzdatei definiert ist (siehe OPEN-SYNTAX-FILE), bleiben die alten Angaben für STANDARD-NAME erhalten und der in MODIFY-STMT angegebene Name kommt additiv hinzu. Alle für die Anweisung vergebenen Namen müssen eindeutig in Bezug auf die Menge der zu dem Programm gehörenden Anweisungen sein.
Die Definitionen der zu der Anweisung gehörenden Operanden und Operandenwerte werden nicht mit der Anweisung MODIFY-STMT, sondern mit der Anweisung MODIFY-OPERAND bzw. MODIFY-VALUE geändert.
MODIFY-STMT |
NAME = *UNCHANGED / <structured-name 1..30> ,PROGRAM = *UNCHANGED / <structured-name 1..30> ,STANDARD-NAME = *UNCHANGED / *NO / list-poss(2000): *NAME / <structured-name 1..30> ,ALIAS-NAME = *UNCHANGED / *NO / list-poss(2000): <structured-name 1..30> ,MINIMAL-ABBREVIATION = *UNCHANGED / *NO / <structured-name 1..30> ,HELP = *UNCHANGED / *NO / list-poss(2000): <name 1..1>(...) <name 1..1>(...)
,MAX-STRUC-OPERAND = *UNCHANGED / *STD / <integer 1..3000> ,REMOVE-POSSIBLE = *UNCHANGED / *YES / *NO ,DIALOG-ALLOWED = *UNCHANGED / *YES / *NO ,DIALOG-PROC-ALLOWED = *UNCHANGED / *YES / *NO ,GUIDED-ALLOWED = *UNCHANGED / *YES / *NO ,BATCH-ALLOWED = *UNCHANGED / *YES / *NO ,BATCH-PROC-ALLOWED = *UNCHANGED / *YES / *NO ,NEXT-INPUT = *UNCHANGED / *STMT / *DATA / *ANY ,PRIVILEGE = *UNCHANGED / *ALL / *EXCEPT(...) / *ADD(...) / *REMOVE(...) / list-poss(64): <structured-name 1..30> *EXCEPT(...)
*ADD(...)
*REMOVE(...)
,STMT-VERSION = *UNCHANGED / *NONE / <integer 1..999> |
NAME = *UNCHANGED / <structured-name 1..30>
(externer) Anweisungsname, der bei der Anweisungseingabe anzugeben ist. Der Benutzer kann ihn im Gegensatz zum STANDARD-NAME und zum ALIAS-NAME bei der Anweisungseingabe abkürzen.
STANDARD-NAME = *UNCHANGED / *NO / list-poss(2000): *NAME /<structured-name 1..30>
zusätzlicher externer Anweisungsname, der bei der Anweisungseingabe alternativ benutzt werden kann. Er ist bei der Eingabe nicht abkürzbar. Ein STANDARD-NAME darf im Gegensatz zum ALIAS-NAME nicht gelöscht werden. Er ist der Systemsoftwareentwicklung von Fujitsu vorbehalten und wird deshalb hier nicht beschrieben.
ALIAS-NAME = *UNCHANGED / *NO / list-poss(2000): <structured-name 1..30>zusätzlicher externer Anweisungsname, der bei der Anweisungseingabe alternativ benutzt werden kann. Er ist bei der Eingabe nicht abkürzbar. Ein ALIAS-NAME darf im Gegensatz zum STANDARD-NAME gelöscht werden.
MINIMAL-ABBREVIATION = *UNCHANGED / *NO / <structured-name 1..30>zusätzlicher externer Anweisungsname, der die kürzest mögliche Abkürzung für die Anweisung festlegt. Eine kürzere Abkürzung wird dann nicht akzeptiert, selbst wenn sie in Bezug auf andere Anweisungen eindeutig wäre.
Folgendes ist zu beachten:
Die Überprüfung der Minimal-Abkürzung erfolgt erst nachdem SDF die Eingabe auf Eindeutigkeit überprüft hat. Es kann also passieren, dass SDF zwar die richtige Anweisung auswählt, sie aber dann ablehnt, weil bei der Eingabe die Abkürzung kürzer als die vorgeschriebene Minimal-Abkürzung gewählt wurde.
Die Minimal-Abkürzung muss aus dem Anweisungsnamen (NAME) entstehen.
Die ALIAS-NAMEs und STANDARD-NAMEs der Anweisung dürfen nicht kürzer als die Minimal-Abkürzung sein, wenn sie Abkürzung des Anweisungsnamens sind.
In einer Syntax-Datei-Hierarchie darf nur eine Verkürzung der Minimal-Abkürzung (aber keine Verlängerung) vorgenommen werden.
HELP =
Bestimmt, ob und ggf. welche Hilfetexte es für die Anweisung gibt.
HELP = *UNCHANGED
Keine Änderung bezüglich der Hilfetexte.
HELP = *NO
Es gibt keine Hilfetexte.
HELP = list-poss(2000): <name 1..1>(...)
Es gibt Hilfetexte in den angegebenen Sprachen (E=Englisch, D=Deutsch). SDF benutzt bevorzugt die Sprache, die für die Meldungsausgabe festgelegt ist.
TEXT = *UNCHANGED / <c-string 1..500 with-low>
Hilfetext. UNCHANGED ist nur zulässig, wenn für den Sprachschlüssel bereits ein Hilfetext definiert ist.
Der Hilfetext kann die spezielle Zeichenfolge „\n“ für den Zeilenumbruch enthalten.
MAX-STRUC-OPERAND = *UNCHANGED / *STD / <integer 1..3000>
Anzahl der in der strukturierten Übergabe auf oberster Ebene zu reservierenden Operandenpositionen. Bei der Angabe STD wird das Operanden-Array so groß wie erforderlich angelegt. Für geplante künftige Erweiterungen lässt es sich aber auch größer anlegen.
REMOVE-POSSIBLE = *UNCHANGED / *YES / *NO
Bestimmt, ob die Anweisung gelöscht werden darf (vgl. REMOVE, ). Dieser Operand kann für die Standardanweisungen nicht geändert werden.
DIALOG-ALLOWED = *UNCHANGED / *YES / *NO
Bestimmt, ob die Anweisung im Dialogbetrieb zugelassen ist. Dieser Operand kann für die Standardanweisungen nicht geändert werden.
DIALOG-PROC-ALLOWED = *UNCHANGED / *YES / *NO
Bestimmt, ob die Anweisung im Dialogbetrieb innerhalb einer Prozedur zugelassen ist. Dieser Operand kann für die Standardanweisungen nicht geändert werden.
GUIDED-ALLOWED = *UNCHANGED / *YES / *NO
Bestimmt, ob die Anweisung im geführten Dialog zugelassen ist. Dieser Operand kann für die Standardanweisungen nicht geändert werden.
BATCH-ALLOWED = *UNCHANGED / *YES / *NO
Bestimmt, ob die Anweisung im Stapelbetrieb zugelassen ist. Dieser Operand kann für die Standardanweisungen nicht geändert werden.
BATCH-PROC-ALLOWED = *UNCHANGED / *YES / *NO
Bestimmt, ob die Anweisung im Stapelbetrieb innerhalb einer Prozedur zugelassen ist. Dieser Operand kann für die Standardanweisungen nicht geändert werden.
NEXT-INPUT =
Bestimmt, was für eine Eingabe nach der Anweisung erwartet wird. Diese Angabe benötigt SDF zur Steuerung des geführten Dialogs.
NEXT-INPUT = *UNCHANGED
Keine Änderung bezüglich der nachfolgenden Eingabe.
NEXT-INPUT = *STMT
Eine Anweisung wird für die nachfolgende Eingabe erwartet. SDF interpretiert Eingaben im NEXT-Feld des geführten Dialogs als Anweisung.
NEXT-INPUT = *DATA
Daten werden für die nachfolgende Eingabe erwartet. SDF interpretiert Eingaben im NEXT-Feld des geführten Dialogs als Daten.
NEXT-INPUT = *ANY
Die Art der nachfolgenden Eingabe ist nicht vorhersehbar.
PRIVILEGE = *UNCHANGED / *ALL / *EXCEPT(...) / *ADD(...) / *REMOVE(...) /list-poss(64): <structured-name 1..30>
Gibt an, welche Privilegien der Anweisung zugeordnet werden.
PRIVILEGE = *ALL
Die Anweisung erhält alle zurzeit definierten Privilegien sowie alle Privilegien, die zu einem späteren Zeitpunkt definiert werden.
PRIVILEGE = *EXCEPT(...)
Die Anweisung erhält mit Ausnahme der bei *EXCEPT(...) angegebenen Privilegien alle zurzeit definierten Privilegien sowie alle Privilegien, die zu einem späteren Zeitpunkt definiert werden.
EXCEPT-PRIVILEGE = list-poss(64): <structured-name 1..30>
Gibt an, welche Privilegien nicht der Anweisung zugeordnet werden.
PRIVILEGE = *ADD(...)
Die Anweisung erhält zusätzlich zu den bereits zugeordneten Privilegien die bei *ADD(...) angegebenen Privilegien.
ADD-PRIVILEGE = list-poss(64): <structured-name 1..30>
Gibt an, welche Privilegien der Anweisung zusätzlich zugeordnet werden.
PRIVILEGE = *REMOVE(...)
Der Anweisung werden die bei *REMOVE(...) angegebenen Privilegien entzogen.
REMOVE-PRIVILEGE = list-poss(64): <structured-name 1..30>
Gibt an, welche Privilegien der Anweisung entzogen werden.
PRIVILEGE = list-poss(64): <structured-name 1..30>
Die Anweisung erhält nur genau die Privilegien, die Sie in dieser Liste angeben.
STMT-VERSION = *UNCHANGED / *NONE / <integer 1..999>
Version der Anweisung. Der Wert wird im normierten Übergabebereich übergeben.
*NONE bedeutet, dass ein NULL-Wert im normierten Übergabebereich eingetragen wird. STMT-VERSION wird ignoriert, falls das Programm, zu dem die Anweisung gehört, nicht mit den neuen Makros CMDRST und CMDTST arbeitet bzw. noch das alte Format des normierten Übergabebereiches verwendet. Mehr zum Format des normierten Übergabebereiches und zu den SDF-Makros finden Sie im Kapitel „SDF-Programmschnittstelle“ und SDF-Makros.