Mit der Anweisung ADD-VALUE definieren Sie in der gerade geöffneten Syntaxdatei einen Operandenwert. Der Operand, für den Sie den Operandenwert definieren, muss in der Syntaxdatei bereits definiert sein.
An welcher Stelle der Operandenwert eingefügt wird, hängt davon ab, ob der Operand selbst oder einer seiner bereits definierten Werte „aktuelles“ Objekt ist (siehe "ADD-OPERAND Operand definieren"):
Ist der Operand selbst „aktuelles“ Objekt, so wird der definierte Operandenwert als erster Wert dieses Operanden in die Kommando- bzw. Anweisungsdefinition eingefügt.
Ist ein bereits definierter Wert des Operanden „aktuelles“ Objekt, so wird der neu definierte Operandenwert unmittelbar hinter diesem bereits vorhandenen Wert eingefügt.
In beiden Fällen wird der neu definierte Operandenwert anschließend „aktuelles“ Objekt.
Alle für den Operandenwert vergebenen Namen müssen in Bezug auf seine Umgebung eindeutig sein. Wenn Sie die Namen nicht explizit definieren, sondern die Namensvergabe SDF-A überlassen, kann es beim Datentyp KEYWORD vorkommen, dass der von SDF-A standardmäßig gebildete interne Name unzulässig ist.
Einen Operandenwert für ein durch System-Module implementiertes Kommando können Sie nur definieren, wenn die Kommandodefinition in einer Gruppen- oder Systemsyntaxdatei steht.
ADD-VALUE |
TYPE = *ALPHANUMERIC-NAME(...) / *CAT-ID / *COMMAND-REST(...) / *COMPOSED-NAME(...) / *C-STRING(...) / *DATE(...) / *DEVICE(...) / *FIXED(...) / *FILENAME(...) / *INTEGER(...) / *LONG- INTEGER(...) / *KEYWORD(...) / *KEYWORD-NUMBER(...) / *LABEL(...) / *NAME(...) / *PARTIAL-FILENAME(...) / *POSIX-PATHNAME(...) / *POSIX-FILENAME(...) / *PRODUCT-VERSION(...) / *STRUCTURED-NAME(...) / *TEXT(...) / *TIME(...) / *VSN(...) / *X-STRING(...) / *X-TEXT(...) / *ALPHANUMERIC-NAME(...)
*YES(...) TYPE = *SEL ECTOR / *CONSTRUCTOR ,LONGEST-LOGICAL-LEN = *LONG EST -L ENGTH / <integer 1..255>* COMMAND-REST(...) LOWER-CASE = *NO / *YES *COMPOSED-NAME(...) SHORTEST-LENGTH= *ANY / <integer 1..1800> , LONGEST-LENGTH = *ANY / <integer 1..1800> , UNDERSCORE= *NO / *YES , WILDCARD = *NO / *YES(...) *YES(...) TYPE = *SELECTOR / *CONSTRUCTOR , LONGEST-LOGICAL-LEN = *LONGEST-LENGTH / <integer 1..1800> *C-STRING(...) SHORTEST-LENGTH = *ANY / <integer 1..1800> , LONGEST-LENGTH = *ANY / <integer 1..1800> , LOWER-CASE = *NO / *YES *DATE(...) COMPLETION = *NO / *YES *DEVICE(...) CLASS-TYPE = *DISK(...) / list-poss(2000): *DISK(...) / *TAPE(...) *DISK(...) EXCEPT= *NO / list-poss(50): <text 1..8 without-sep> , SCOPE = *ALL / *STD-DISK *TAPE(...) EXCEPT = *NO / list-poss(50): <text 1..8 without-sep> , ALIAS-ALLOWED= *YES / *NO , VOLUME-TYPE-ONLY = *NO / *YES , RESULT-VALUE = *BY-NAME / *BY-CODE *FIXED(...) LOWEST = *ANY / <fixed -2147483648..2147483647> , HIGHEST = *ANY / <fixed -2147483648..2147483647> *FILENAME(...) SHORTEST-LENGTH = *ANY / <integer 1..80> , USER-ID = *YES / *NO *YES(...) , PATH-COMPLETION = *NO / *YES *INTEGER(...)
* LONG-INTEGER(...) LOWEST = <long-integer -9223372036854775808..9223372036854775807> , HIGHEST = <long-integer -9223372036854775808..9223372036854775807> ,OUT-FORM = *STD / *BINARY / *PACKED / *UNPACKED / *CHAR / *STD *KEYWORD(...)
*KEYWORD-NUMBER(...)
*LABEL(...)
*NAME(...)
, WILDCARD= *NO / *YES(...) *YES(...) TYPE = *SELECTOR / *CONSTRUCTOR , LONGEST-LOGICAL-LEN = *LONGEST-LENGTH / <integer 1..255> *PARTIAL-FILENAME(...) SHORTEST-LENGTH = *ANY / <integer 2..79> ,LONGEST-LENGTH = *ANY / <integer 2..79> ,CATALOG-ID = *YES / *NO ,USER-ID = *YES / *NO ,WILDCARD= *NO / *YES(...) *YES (...) TYPE = *SELECTOR / *CONSTRUCTOR , LONGEST-LOGICAL-LEN = *LONGEST-LENGTH / <integer 2..79> * POSIX-PATHNAME(...) SHORTEST-LENGTH = *ANY / <integer 1..1023> ,LONGEST-LENGTH = *ANY / <integer 1..1023> , WILDCARD = *YES / *NO , QUOTES = *OPTIONAL / *MANDATORY * POSIX-FILENAME (...) SHORTEST-LENGTH= *ANY / <integer 1..255> ,LONGEST-LENGTH= *ANY / <integer 1..255> ,WILDCARD = *YES / *NO ,QUOTES = *OPTIONAL / *MANDATORY * PRODUCT-VERSION(...) USER-INTERFACE= *YES (...) / *NO / *ANY(...) *YES(...) CORRECTION-STATE= *YES / *NO / *ANY *ANY(...) CORRECTION-STATE= *ANY / *NO / *YES *STRUCTURED-NAME(...)
*YES(...) *TEXT(...)
*TIME(...) *VSN(...)
*X-STRING(...)
*X-TEXT(...)
, INTERNAL-NAME = *STD / <alphanum-name 1..8> , REMOVE-POSSIBLE = *YES / *NO , SECRET-PROMPT = *SAME / *NO , DIALOG-ALLOWED = *YES / *NO , DIALOG-PROC-ALLOWED = *YES / *NO , GUIDED-ALLOWED = *YES / *NO , BATCH-ALLOWED = *YES / *NO , BATCH-PROC-ALLOWED = *YES / *NO , STRUCTURE = *NO / *YES(...) *YES(...)
, LIST-ALLOWED = *NO / *YES , VALUE = *NO / list-poss(2000): <c-string 1..1800 with-low>(...) <c-string 1..1800 with-low>(...)
*COMPOSED-NAME / *C-STRING / *DATE / *DEVICE / *FIXED / *FILENAME / *INTEGER / *LONG- INTEGER / *KEYWORD / *KEYWORD-NUMBER / *LABEL / *NAME / *PARTIAL-FILENAME / *PRODUCT-VERSION / *POSIX-PATHNAME / *POSIX-FILENAME / *STRUCTURED-NAME / *TEXT / *TIME / *VSN / *X-STRING / *X-TEXT
, OUTPUT = *NORM AL(...) / *SECRET-PROMPT *NORMAL(...)
*YES(...) , PRIVILEGE = *SAME / *EXCEPT(...) / list-poss(64): <structured-name 1..30> *EXCEPT(...) |
TYPE =
Bestimmt, von welchem Datentyp der Operandenwert ist. Die verschiedenen, zu einem Operanden definierten Werte dürfen sich hinsichtlich des Datentyps nicht ausschließen (siehe "Sich ausschließende Datentypen"). (Ist dies in Ausnahmefällen nicht möglich, so muss in der Anweisung ADD-OPERAND oder MODIFY-OPERAND für VALUE-OVERLAPPING der Wert *YES angegeben werden.) Ansonsten ist es beispielsweise nicht möglich, für einen Operanden einen Wert vom Typ NAME und einen alternativen Wert vom Typ STRUCTURED-NAME zu definieren. Lediglich der Datentyp KEYWORD darf in mehr als einer alternativen Operandenwertdefinition angegeben sein. Bei der Kommando- oder Anweisungseingabe prüft SDF, ob ein eingegebener Operandenwert von dem für ihn definierten Typ ist. Bei der folgenden Beschreibung der Datentypen wird wiederholt der Begriff „alphanumerisches Zeichen“ benutzt. Dieses kann ein Buchstabe (A,B,C,..,Z), eine Ziffer (0,1,2,...,9) oder ein Sonderzeichen (@,#,$) sein.
TYPE = *ALPHANUMERIC-NAME(...)
Bestimmt, dass der Operandenwert vom Datentyp ALPHANUMERIC-NAME ist. Dieser ist definiert als eine Folge von alphanumerischen Zeichen.
SHORTEST-LENGTH = * ANY / <integer 1..255>
Bestimmt, ob die Zeichenfolge eine Mindestlänge haben muss und ggf. welche (Angabe in Byte).
LONGEST-LENGTH = *ANY / <integer 1..255>
Bestimmt, ob die Zeichenfolge eine Maximallänge nicht überschreiten darf und ggf. welche (Angabe in Byte).
WILDCARD =
Bestimmt, ob Platzhalterzeichen („Wildcards“,siehe SDF-Metasyntax "SDF-Syntaxdarstellung") an Stelle von Zeichen(-folgen) innerhalb des Namens bei der Kommando- bzw. Anweisungseingabe angegeben werden dürfen.
WILDCARD = *NO
Als Eingabe für den Operandenwert sind keine Wildcards zulässig.
WILDCARD = *YES(...)
Wildcards dürfen angegeben werden.
TYPE =
Gibt an, ob die Zeichenfolge ein Wildcard-Suchmuster oder ein Wildcard-Konstruktor sein kann. Wildcard-Konstruktoren werden zur Namensbildung aus Zeichenfolgen genutzt, die mithilfe eines Wildcard-Suchmusters entstanden sind.
TYPE = *SELECTOR
Die Zeichenfolge kann ein Wildcard-Suchmuster sein. Der Datentyp erhält den
Zusatz with-wild (siehe SDF-Metasyntax "SDF-Syntaxdarstellung").
TYPE = *CONSTRUCTOR
Die Zeichenfolge kann ein Wildcard-Konstruktor sein. Der Datentyp erhält den
Zusatz with-wild-constr (siehe SDF-Metasyntax "SDF-Syntaxdarstellung").
LONGEST-LOGICAL-LEN =
Gibt die maximale Länge des Namens an, zu dem der Wildcard-Ausdruck (Suchmuster oder Konstruktor) noch als passend erkannt werden soll.
LONGEST-LOGICAL-LEN = *LONGEST-LENGTH
Die maximale Länge des zum Wildcard-Ausdruck passenden Namens ist gleich der beim Operanden LONGEST-LENGTH angegebenen Länge (aus Gründen der Kompatibilität).
LONGEST-LOGICAL-LEN = <integer 1..255>
Bestimmt, dass der zum Wildcard-Ausdruck passende Name die angegebene Länge nicht überschreiten darf.
TYPE = *CAT-ID
Bestimmt, dass der Operandenwert vom Datentyp CAT-ID ist. Dieser ist als Folge von maximal 4 Zeichen (A-Z, 0-9; Sonderzeichen $, @, # sind nicht erlaubt). Die Begrenzungszeichen ’:’ werden nicht mitgezählt. Eine 4 Zeichen lange CAT-ID darf nicht mit der Zeichenfolge ’PUB’ beginnen.
TYPE = *COMMAND-REST(...)
Bei den Datentypen *CMD-REST und *TEXT erhält der Operand LOWER-CASE=*YES eine Struktur, die die Behandlung von Groß-/Kleinschreibung außerhalb von Hochkommata steuert.
Diese Datentypen sind der Software-Entwicklung vorbehalten und werden deshalb hier nicht beschrieben.
TYPE = *COMPOSED-NAME(...)
Bestimmt, dass der Operandenwert vom Datentyp COMPOSED-NAME ist.
Erlaubt sind Buchstaben, Zahlen und die Sonderzeichen: ’@’ , ’$’ , ’#’ , ’.’ und ’-’.
Ob zusätzlich das Sonderzeichen ’_’ erlaubt ist, hängt vom Operanden UNDERSCORE ab.
die Zeichen ’-’ und ’.’ dürfen nur als Separator zwischen anderen Zeichen angegeben werden. Nicht erlaubt ist z.B. ’..’ , ’--’ , ’.-’ oder ’-.’. Außerdem dürfen ’.’ und ’-’ nicht am Anfang oder am Ende eines composed-name stehen.
keine Einschränkung der Länge auf maximal 54 Zeichen
es muss nicht zwingend ein Buchstabe vorhanden sein
SHORTEST-LENGTH = *ANY / <integer 1..1800>
Bestimmt, ob die Zeichenfolge eine Mindestlänge haben muss und ggf. welche (Angabe in Byte).
LONGEST-LENGTH = *ANY / <integer 1..1800>
Bestimmt, ob die Zeichenfolge eine Maximallänge nicht überschreiten darf und ggf. welche (Angabe in Byte).
UNDERSCORE = *NO / *YES
Bestimmt, ob der Unterstrich ’_’ akzeptiert wird.
WILDCARD =
Bestimmt, ob Platzhalterzeichen („Wildcards“, siehe SDF-Metasyntax "SDF-Syntaxdarstellung") an Stelle von Zeichen(-folgen) innerhalb des Namens bei der Kommando- bzw. Anweisungseingabe angegeben werden dürfen.
WILDCARD = *NO
Als Eingabe für den Operandenwert sind keine Wildcards zulässig.
WILDCARD = *YES(...)
Wildcards dürfen angegeben werden.
TYPE =
Gibt an, ob die Zeichenfolge ein Wildcard-Suchmuster oder ein Wildcard-Konstruktor sein kann. Wildcard-Konstruktoren werden zur Namensbildung aus Zeichenfolgen genutzt, die mithilfe eines Wildcard-Suchmusters entstanden sind.
TYPE = *SELECTOR
Die Zeichenfolge kann ein Wildcard-Suchmuster sein. Der Datentyp erhält den
Zusatz with-wild (siehe SDF-Metasyntax "SDF-Syntaxdarstellung").
TYPE = *CONSTRUCTOR
Die Zeichenfolge kann ein Wildcard-Konstruktor sein. Der Datentyp erhält den
Zusatz with-wild-constr (siehe SDF-Metasyntax "SDF-Syntaxdarstellung").
LONGEST-LOGICAL-LEN =
gibt die maximale Länge des Namens an, zu dem der Wildcard-Ausdruck (Suchmuster oder Konstruktor) noch als passend erkannt werden soll.
LONGEST-LOGICAL-LEN = *LONGEST-LENGTH
Die maximale Länge des zum Wildcard-Ausdruck passenden Namens ist gleich der beim Operanden LONGEST-LENGTH angegebenen Länge (aus Gründen der Kompatibilität).
LONGEST-LOGICAL-LEN = <integer 1..1800>
Bestimmt, dass der zum Wildcard-Ausdruck passende Name die angegebene Länge nicht überschreiten darf.
TYPE = *C-STRING(...)
Bestimmt, dass der Operandenwert vom Datentyp C-STRING ist. Dieser ist definiert als eine Folge von EBCDIC-Zeichen, die in Hochkommas eingeschlossen ist. Ihr kann der Buchstabe C vorangestellt sein. Ein Hochkomma als Wert innerhalb der begrenzenden Hochkommas ist bei der Eingabe doppelt anzugeben.
SHORTEST-LENGTH = *ANY / <integer 1..1800>
Bestimmt, ob die Zeichenfolge eine Mindestlänge haben muss und ggf. welche (Angabe in Byte).
LONGEST-LENGTH = *ANY / <integer 1..1800>
Bestimmt, ob die Zeichenfolge eine Maximallänge nicht überschreiten darf und ggf. welche (Angabe in Byte).
LOWER-CASE = *NO / *YES
Bestimmt, ob in Hochkommas eingeschlossene Kleinbuchstaben erhalten bleiben.
TYPE = *DATE(...)
Bestimmt, dass der Operandenwert vom Datentyp DATE ist. Dieser ist definiert als eine Folge von einer vierstelligen und zwei zweistelligen Zahlen, die durch Bindestrich miteinander verbunden sind (<Jahr>-<Monat>-<Tag>). Das Jahr kann auch mit zwei Ziffern an Stelle von vier angegeben werden.
COMPLETION = *NO / *YES
Bestimmt, ob eine zweistellige Jahresangabe komplettiert wird. Bei Angabe von *YES ergänzt SDF zweistellige Jahresangaben (Datum der Form jj-mm-tt) zu:
20jj-mm-tt falls jj < 60
19jj-mm-tt falls jj
>=
60.
TYPE = *DEVICE(...)
Bestimmt, dass der Operandenwert vom Datentyp DEVICE ist. Für Operanden, deren Operandenwert mit dem Datentyp DEVICE definiert ist, wird dem Benutzer im geführten Dialog eine Liste der im System verfügbaren Platten- oder Bandgeräte angeboten (siehe auch
Handbuch „Systeminstallation“ [9]).
CLASS-TYPE = *DISK(...) / list-poss(2000): *DISK(...) / *TAPE(...)
Gibt die Geräteklasse an.
CLASS-TYPE = *DISK(...)
Das Gerät gehört zur Klasse der Plattengeräte.
EXCEPT = *NO / list-poss(50): <text 1..8 without-sep>
Bestimmt, welche Plattengeräte nicht in der Liste der verfügbaren Geräte erscheinen sollen.
SCOPE =
Gibt an, ob alle derzeit unterstützten Datenträgertypen in der Liste angezeigt werden oder auch ältere Typen, die aus Kompatibilitätsgründen noch von DMS akzeptiert werden.
SCOPE = *ALL
Alle Plattengeräte erscheinen in der Liste.
SCOPE = *STD-DISK
Nur die Plattengeräte, die im DVS als Standard-Plattengeräte festgelegt sind, erscheinen in der Liste.
CLASS-TYPE = *TAPE(...)
Das Gerät gehört zur Klasse der Bandgeräte.
EXCEPT = *NO / list-poss(50): <text 1..8 without-sep>
Bestimmt, welche Geräte nicht in der Liste der verfügbaren Geräte erscheinen sollen.
ALIAS-ALLOWED = *YES / *NO
Bestimmt, ob die Angabe des Alias-Namens des Gerätes erlaubt ist.
VOLUME-TYPE-ONLY = *NO / *YES
Bestimmt, ob der Volumetyp akzeptiert wird.
RESULT-VALUE =
Bestimmt, in welcher Form SDF die Information an die Implementierung übergibt.
RESULT-VALUE = *BY-NAME
SDF übergibt den externen Gerätenamen. Der externe Gerätename ist 8 Zeichen lang.
RESULT-VALUE = *BY-CODE
SDF übergibt den internen Geratecode. Der interne Gerätecode ist 2 Byte lang.
TYPE = *FIXED(...)
Bestimmt, dass der Operandenwert vom Datentyp FIXED ist. Dieser ist wie folgt definiert:[Zeichen][Ziffern].[Ziffern]
[Zeichen] entspricht + oder –
[Ziffern] entspricht 0..9
FIXED muss aus mindestens einer Ziffer, darf aber höchstens aus 10 Zeichen (Ziffern und ein ’.’) bestehen. Im normierten Übergabebereich wird der Wert im folgenden Format abgelegt:
n : 1 Byte für die Anzahl der Ziffern nach dem Komma
4 Byte für die Fest-
punktzahl * 10n
LOWEST = *ANY / <fixed -2147483648..2147483647>
Bestimmt, ob es für die Festpunktzahl eine untere Grenze gibt und ggf. welche.
HIGHEST = *ANY / <fixed -2147483648..2147483647>
Bestimmt, ob es für die Festpunktzahl eine obere Grenze gibt und ggf. welche.
TYPE = *FILENAME(...)
Bestimmt, dass der Operandenwert vom Datentyp FILENAME ist. Für die einzugebende Zeichenfolge gilt die Definition, die im Handbuch „Einführung in das DVS“ [7] für den vollqualifizierten Dateinamen angegeben ist.
SHORTEST-LENGTH = *ANY / <integer 1..80>
Bestimmt, ob die Zeichenfolge eine Mindestlänge haben muss und ggf. welche (Angabe in Byte).
LONGEST-LENGTH = *ANY / <integer 1..80>
Bestimmt, ob die Zeichenfolge eine Maximallänge nicht überschreiten darf und ggf. welche (Angabe in Byte).
CATALOG-ID = *YES / *NO
Bestimmt, ob die Katalogkennung als Teil des Dateinamens angegeben werden darf.
USER-ID = *YES / *NO
Bestimmt, ob die Benutzerkennung als Teil des Dateinamens angegeben werden darf.
GENERATION = *YES / *NO
Bestimmt, ob eine Generationsnummer als Teil des Dateinamens angegeben werden darf. Wird dem Dateinamen eine Struktur angehängt, so muss *NO angegeben werden.
VERSION = *YES / *NO
Bestimmt, ob eine Versionsbezeichnung als Teil des Dateinamens angegeben werden darf. Wird dem Dateinamen eine Struktur angehängt, so muss *NO angegeben werden.
WILDCARD =
Bestimmt, ob Platzhalterzeichen („Wildcards“, siehe SDF-Metasyntax "SDF-Syntaxdarstellung") an Stelle von Zeichen(-folgen) innerhalb des Namens bei der Kommando- bzw. Anweisungseingabe angegeben werden dürfen.
WILDCARD = *NO
Als Eingabe für den Operandenwert sind keine Wildcards zulässig.
WILDCARD = *YES(...)
Wildcards dürfen angegeben werden.
Der Datentyp <filename x..y with-wild> beinhaltet auch teilqualifizierte Dateinamen, d.h. es ist nicht notwendig, für den Operanden zusätzlich einen Wert vom Datentyp <partial-filename> zu definieren.
TYPE =
Gibt an, ob die Zeichenfolge ein Wildcard-Suchmuster oder ein Wildcard-Konstruktor sein kann. Wildcard-Konstruktoren werden zur Namensbildung aus Zeichenfolgen genutzt, die mithilfe eines Wildcard-Suchmusters entstanden sind.
TYPE = *SELECTOR
Die Zeichenfolge kann ein Wildcard-Suchmuster sein. Der Datentyp erhält den Zusatz with-wild (siehe SDF-Metasyntax "SDF-Syntaxdarstellung").
TYPE = *CONSTRUCTOR
Die Zeichenfolge kann ein Wildcard-Konstruktor sein. Der Datentyp erhält den Zusatz with-wild-constr (siehe SDF-Metasyntax "SDF-Syntaxdarstellung").
LONGEST-LOGICAL-LEN =
Gibt die maximale Länge des Namens an, zu dem der Wildcard-Ausdruck (Suchmuster oder Konstruktor) noch als passend erkannt werden soll.
LONGEST-LOGICAL-LEN = *LONGEST-LENGTH
Die maximale Länge des zum Wildcard-Ausdruck passenden Namens ist gleich der beim Operanden LONGEST-LENGTH angegebenen Länge (aus Gründen der Kompatibilität).
LONGEST-LOGICAL-LEN = <integer 1..80>
Bestimmt, dass der zum Wildcard-Ausdruck passende Name die angegebene Länge nicht überschreiten darf.
PATH-COMPLETION = *NO / *YES
Legt fest, ob der Dateiname bei der Übergabe an die Implementierung zum vollständigen Pfadnamen ergänzt wird. Das schließt auch die Ersetzung von Aliasnamen durch die ACS-Funktion ein.
PATH-COMPLETION=*YES darf nur angegeben werden, wenn CATALOG-ID und USER-ID erlaubt sind und wenn Wildcards im Dateinamen nicht erlaubt sind.
TEMPORARY-FILE = *YES / *NO
Gibt an, ob temporäre Dateinamen erlaubt sind.
TYPE = *INTEGER(...)
Bestimmt, dass der Operandenwert vom Datentyp INTEGER ist. Dieser ist definiert als eine Folge von Ziffern, der ein Vorzeichen vorangestellt sein kann.
LOWEST = <integer -2147483648 .. 2147483647>
Bestimmt, ob es für die Ganzzahl eine untere Grenze gibt und ggf. welche. Wenn nicht angegeben, wird -2147483648 angenommen.
HIGHEST = <integer -2147483648 .. 2147483647>
Bestimmt, ob es für die Ganzzahl eine obere Grenze gibt und ggf. welche. Wenn nicht angegeben, wird 2147483647 angenommen.
OUT-FORM = *STD / *BINARY / *PACKED / *UNPACKED / *CHAR
Bestimmt, in welchem Format SDF die Ganzzahl an die Implementierung übergibt. Erfolgt die Übergabe in einem Übergabebereich (siehe Abschnitt „Aufbau des normierten Übergabebereichs“), so setzt SDF-A *STD in *BINARY um. Bei Übergabe einer Zeichenkette (Kommandos, die mit IMPLEMENTOR=*PROCEDURE(...) oder IMPLEMENTOR=*TPR(...,CMD-INTERFACE=*STRING,...) definiert sind, siehe ADD-CMD) setzt SDF-A OUT-FORM=*STD in *CHAR um. Wenn die Zahl im Binärformat übergeben wird, erzeugt SDF mindestens 4 Byte (siehe Operand OUTPUT). Wird die Zahl im *PACKED-Format übergeben, erzeugt SDF mindestens 4 Byte und in den anderen Formaten (*CHAR, *UNPACKED) mindestens 1 Byte.
TYPE = *LONG-INTEGER(...)
Bestimmt, dass der Operandenwert vom Datentyp LONG-INTEGER ist. Dieser ist definiert als eine Folge von Ziffern, der ein Vorzeichen vorangestellt werden kann.
LOWEST = <long-integer -9223372036854775808..9223372036854775807>
Bestimmt, ob und ggf. welcher untere Grenzwert für die Integer gilt. Wenn er nicht angegeben ist, wird der kleinste mögliche Wert, d.h. -9223372036854775809, festgelegt.
HIGHEST = <long-integer -9223372036854775808..9223372036854775807>
Bestimmt, ob und ggf. welcher untere Grenzwert für die Integer gilt. Wenn er nicht angegeben ist, wird der größte mögliche Wert, d.h. 9223372036854775807, festgelegt.
OUT-FORM = *STD / *BINARY / *PACKED / *UNPACKED / *CHAR
Bestimmt, in welchem Format die Integer von SDF an die Implementierung übergeben wird. Wenn die Übergabe in einem Übergabebereich (siehe Abschnitt „Aufbau des normierten Übergabebereichs“) erfolgreich ist, konvertiert SDF-A *STD in *BINARY. Bei Übergabe einer Zeichenkette (Kommandos, die mit IMPLEMENTOR=*PROCEDURE(...) oder IMPLEMENTOR=*TPR(...,CMD-INTERFACE=*STRING,...) definiert sind, siehe ADD-CMD) konvertiert SDF-A OUT-FORM=*STD in *CHAR. Wenn die Zahl im Binärformat übergeben wird, erzeugt SDF mindestens 8 Byte (siehe Operand OUTPUT). Wird die Zahl im *PACKED-Format übergeben, erzeugt SDF mindestens 16 Byte und in den anderen Formaten (*CHAR, *UNPACKED) mindestens 1 Byte.
TYPE = *KEYWORD(...)
Bestimmt, dass der Operandenwert vom Datentyp KEYWORD ist. Dieser ist definiert als eine Folge von alphanumerischen Zeichen. Diese Zeichenfolge kann in mehrere Teilzeichenfolgen gegliedert sein, die durch Bindestrich miteinander verbunden sind. Teilzeichenfolgen dürfen den Punkt enthalten. Der Punkt darf jedoch nicht am Beginn oder Ende einer Teilzeichenfolge stehen. Die gesamte Zeichenfolge, d.h. ggf. die erste Teilzeichenfolge muss mit einem Buchstaben oder Sonderzeichen beginnen. Der Wertebereich für einen Operandenwert vom Typ KEYWORD ist auf einen oder auf eine endliche Anzahl von genau festgelegten Einzelwerten beschränkt (siehe Operand VALUE in dieser Anweisung).
Ab SDF-A/SDF Version 2.0 wird auch der Wert ’*...’ akzeptiert. Dieser Wert kann verwendet werden, wenn für einen Operanden eine Liste von Schlüsselwörtern definiert werden muss (z.B. die Definition für alle externen Geräte). Damit können neue Schlüsselwörter (z.B. neue Gerätenamen) eingefügt werden, ohne dass die Syntaxdatei verändert werden muss, denn mit ’*...’ akzeptiert SDF zusätzliche Werte und analysiert sie als Schlüsselwörter. Der Datentyp KEYWORD darf maximal 30 Zeichen lang sein.
STAR =
Bestimmt, ob bei der Eingabe der Zeichenfolge ein Stern vorangestellt werden muss.
STAR = *OPTIONAL
Ein Stern darf, muss aber nicht vorangestellt werden.
Falls ein Stern vorangestellt ist, wird er bei der Übergabe an die Implementierung unterdrückt.
STAR = *MANDATORY
Ein Stern muss vorangestellt werden (erforderlich zur Unterscheidung von alternativen Datentypen).
TYPE = *KEYWORD-NUMBER(...)
Bestimmt, dass der Operandenwert vom Datentyp KEYWORD-NUMBER ist. Dieser Datentyp ist nur für spezielle Zwecke der Systemsoftwareentwicklung von Fujitsu vorgesehen. Er wird deshalb hier nicht beschrieben.
TYPE = *LABEL(...)
Bestimmt, dass der Operandenwert vom Datentyp LABEL ist. Dieser Datentyp ist nur für spezielle Zwecke der Systemsoftwareentwicklung von Fujitsu vorgesehen. Er wird deshalb hier nicht beschrieben.
TYPE = *NAME(...)
Bestimmt, dass der Operandenwert vom Datentyp NAME ist. Dieser ist definiert als eine Folge von alphanumerischen Zeichen, die mit einem Buchstaben oder Sonderzeichen beginnt.
SHORTEST-LENGTH = *ANY / <integer 1..255>
Bestimmt, ob die Zeichenfolge eine Mindestlänge haben muss und ggf. welche (Angabe in Byte).
LONGEST-LENGTH = *ANY / <integer 1..255>
Bestimmt, ob die Zeichenfolge eine Maximallänge nicht überschreiten darf und ggf. welche (Angabe in Byte).
UNDERSCORE = *NO / *YES
Bestimmt, ob ’_’ (Unterstrich) akzeptiert wird.
LOWER-CASE = *NO / *YES
Legt fest, ob Kleinbuchstaben erhalten bleiben.
WILDCARD =
Bestimmt, ob Platzhalterzeichen („Wildcards“, siehe SDF-Metasyntax "SDF-Syntaxdarstellung") an Stelle von Zeichen(-folgen) innerhalb des Namens bei der Kommando- bzw. Anweisungseingabe angegeben werden dürfen.
WILDCARD = *NO
Als Eingabe für den Operandenwert sind keine Wildcards zulässig.
WILDCARD = *YES(...)
Wildcards dürfen angegeben werden.
TYPE =
Gibt an, ob die Zeichenfolge ein Wildcard-Suchmuster oder ein Wildcard-Konstruktor sein kann. Wildcard-Konstruktoren werden zur Namensbildung aus Zeichenfolgen genutzt, die mithilfe eines Wildcard-Suchmusters entstanden sind.
TYPE = *SELECTOR
Die Zeichenfolge kann ein Wildcard-Suchmuster sein. Der Datentyp erhält den Zusatz with-wild (siehe SDF-Metasyntax "SDF-Syntaxdarstellung").
TYPE = *CONSTRUCTOR
Die Zeichenfolge kann ein Wildcard-Konstruktor sein. Der Datentyp erhält den Zusatz with-wild-constr (siehe SDF-Metasyntax "SDF-Syntaxdarstellung").
LONGEST-LOGICAL-LEN =
Gibt die maximale Länge des Namens an, zu dem der Wildcard-Ausdruck (Suchmuster oder Konstruktor) noch als passend erkannt werden soll.
LONGEST-LOGICAL-LEN = *LONGEST-LENGTH
Die maximale Länge des zum Wildcard-Ausdruck passenden Namens ist gleich der beim Operanden LONGEST-LENGTH angegebenen Länge (aus Gründen der Kompatibilität).
LONGEST-LOGICAL-LEN = <integer 1..255>
Bestimmt, dass der zum Wildcard-Ausdruck passende Name die angegebene Länge nicht überschreiten darf.
TYPE = *PARTIAL-FILENAME(...)
Bestimmt, dass der Operandenwert vom Datentyp PARTIAL-FILENAME ist. Für die einzugebende Zeichenfolge gilt die Definition, die im Handbuch „Einführung in das DVS“ [7] für den teilqualifizierten Dateinamen angegeben ist.
SHORTEST-LENGTH = *ANY / <integer 2..79>
Bestimmt, ob die Zeichenfolge eine Mindestlänge haben muss und ggf. welche (Angabe in Byte).
LONGEST-LENGTH = *ANY / <integer 2..79>
Bestimmt, ob die Zeichenfolge eine Maximallänge nicht überschreiten darf und ggf. welche (Angabe in Byte).
CATALOG-ID = *YES / *NO
Bestimmt, ob die Katalogkennung als Teil des Dateinamens angegeben werden darf.
USER-ID = *YES / *NO
Bestimmt, ob die Benutzerkennung als Teil des Dateinamens angegeben werden darf.
WILDCARD =
Bestimmt, ob Platzhalterzeichen („Wildcards“, siehe SDF-Metasyntax "SDF-Syntaxdarstellung") an Stelle von Zeichen(-folgen) innerhalb des Namens bei der Kommando- bzw. Anweisungseingabe angegeben werden dürfen.
WILDCARD = *NO
Als Eingabe für den Operandenwert sind keine Wildcards zulässig.
WILDCARD = *YES(...)
Wildcards dürfen angegeben werden.
TYPE =
Gibt an, ob die Zeichenfolge ein Wildcard-Suchmuster oder ein Wildcard-Konstruktor sein kann. Wildcard-Konstruktoren werden zur Namensbildung aus Zeichenfolgen genutzt, die mithilfe eines Wildcard-Suchmusters entstanden sind.
TYPE = *SELECTOR
Die Zeichenfolge kann ein Wildcard-Suchmuster sein. Der Datentyp erhält den Zusatz with-wild (siehe SDF-Metasyntax "SDF-Syntaxdarstellung").
TYPE = *CONSTRUCTOR
Die Zeichenfolge kann ein Wildcard-Konstruktor sein. Der Datentyp erhält den Zusatz with-wild-constr (siehe SDF-Metasyntax "SDF-Syntaxdarstellung").
LONGEST-LOGICAL-LEN =
Gibt die maximale Länge des Namens an, zu dem der Wildcard-Ausdruck (Suchmuster oder Konstruktor) noch als passend erkannt werden soll.
LONGEST-LOGICAL-LEN = *LONGEST-LENGTH
Die maximale Länge des zum Wildcard-Ausdruck passenden Namens ist gleich der beim Operanden LONGEST-LENGTH angegebenen Länge (aus Gründen der Kompatibilität).
LONGEST-LOGICAL-LEN = <integer 2..79>
Bestimmt, dass der zum Wildcard-Ausdruck passende Name die angegebene Länge nicht überschreiten darf.
TYPE = *POSIX-PATHNAME(...)
Bestimmt, dass der Operandenwert vom Datentyp POSIX-PATHNAME ist. Für die einzugebende Zeichenfolge gelten folgende Konventionen:
erlaubt sind Buchstaben, Ziffern und die Zeichen ’_’ , ’-’ , ’.’ und ’/’ ,wobei ’/’ immer als Trennzeichen zwischen den Verzeichnissen und Dateinamen dient. Steuerzeichen sind nicht erlaubt.
Ein POSIX-PATHNAME besteht aus POSIX-FILENAMEs, die durch ’/’ getrennt sind. Ein POSIX-PATHNAME darf insgesamt nicht länger als 1023 Zeichen sein.
Das Zeichen ’\’ (Backslash) entwertet Metazeichen in allen POSIX-spezifischen Namen. Es wird nicht mitgezählt. Das Metazeichen * wird ebenfalls nicht mitgezählt.
Metazeichen sind Zeichen, die für Wildcard-Ausdrücke verwendet werden. Folgende Metazeichen können auftreten:
* | kein, ein oder mehrere beliebige Zeichen |
? | genau ein beliebiges Zeichen |
[S] | genau ein Zeichen aus der mit S bestimmten Zeichenmenge |
[!S] | genau ein Zeichen, das aber nicht Element der mit S bestimmten Zeichenmenge sein darf |
wobei S | eine Menge von Zeichen (z.B. abcd) oder |
POSIX-PATHNAMEs, die andere als die oben genannten Zeichen oder ’?’ oder ’!’ am Anfang enthalten, müssen bei der Eingabe in Hochkommas eingeschlossen sein (wie C-STRINGs). Im normierten Übergabebereich bzw. im Übergabe-String werden die Hochkommas von SDF wieder entfernt, da sie nicht zum Dateinamen gehören. Hochkommas, die zum Dateinamen gehören, müssen verdoppelt werden.
In Prozeduren sollte zur Vermeidung von Kompatibilitätsproblemen immer die C-String-Syntax verwendet werden.
SHORTEST-LENGTH = *ANY / <integer 1..1023>
Bestimmt, ob die Zeichenfolge eine Mindestlänge haben muss und ggf. welche (Angabe in Byte).
LONGEST-LENGTH = *ANY / <integer 1..1023>
Bestimmt, ob die Zeichenfolge eine Maximallänge nicht überschreiten darf und ggf. welche (Angabe in Byte).
WILDCARD = *YES / *NO
Bestimmt, ob Metazeichen (siehe oben) an Stelle von Zeichen(-folgen) innerhalb des Namens bei der Kommando- bzw. Anweisungseingabe angegeben werden dürfen.
QUOTES = *OPTIONAL / *MANDATORY
Legt fest, ob der Pfadname bei der Eingabe in Hochkommas eingeschlossen sein kann (*OPTIONAL) oder muss (*MANDATORY).
TYPE = *POSIX-FILENAME(...)
Bestimmt, dass der Operandenwert vom Datentyp POSIX-FILENAME ist. Für die einzugebende Zeichenfolge gelten die Konventionen wie für POSIX-PATHNAMEs (siehe "ADD-VALUE Operandenwert definieren"f), mit folgenden Einschränkungen:
’/’ (Slash) darf nicht enthalten sein.
Die Länge ist auf maximal 255 Zeichen begrenzt.
SHORTEST-LENGTH = *ANY / <integer 1..255>
Bestimmt, ob die Zeichenfolge eine Mindestlänge haben muss und ggf. welche (Angabe in Byte).LONGEST-LENGTH = *ANY / <integer 1..255>
Bestimmt, ob die Zeichenfolge eine Maximallänge nicht überschreiten darf und ggf. welche (Angabe in Byte).
WILDCARD = *YES / *NO
Bestimmt, ob Metazeichen (siehe POSIX-PATHNAME) an Stelle von Zeichen(-folgen) innerhalb des Namens bei der Kommando- bzw. Anweisungseingabe angegeben werden dürfen.
QUOTES = *OPTIONAL / *MANDATORY
Legt fest, ob der Dateiname bei der Eingabe in Hochkommas eingeschlossen sein kann (*OPTIONAL) oder muss (*MANDATORY).
TYPE = *PRODUCT-VERSION(...)
Bestimmt, dass der Operandenwert vom Datentyp PRODUCT-VERSION ist. Die Produktversion hat folgendes Format:
Die optionalen Zeichen C, V und Hochkomma werden im SDF-Übergabebereich unterdrückt.
USER-INTERFACE =
Legt fest, ob der Freigabestand der Benutzerschnittstelle angegeben werden muss oder darf.
USER-INTERFACE = *YES(...)
Der Freigabestand der Benutzerschnittstelle muss angegeben werden.
CORRECTION-STATE =
Legt fest, ob auch der Korrekturstand angegeben werden muss oder darf.
CORRECTION-STATE = *YES
Der Korrekturstand muss angegeben werden. Angaben zum Datentyp PRODUCT-VERSION haben dann folgendes Format:
[[C]’][V][m]m.naso[’].
CORRECTION-STATE = *NO
Der Korrekturstand darf nicht angegeben werden. Angaben zum Datentyp PRODUCT-VERSION haben dann folgendes Format:
[[C]’][V][m]m.na[’].
CORRECTION-STATE = *ANY
Der Korrekturstand kann angegeben werden.
USER-INTERFACE = *NO
Der Freigabestand der Benutzerschnittstelle und der Korrekturstand dürfen nicht angegeben werden. Angaben zum Datentyp PRODUCT-VERSION haben dann folgendes Format:
[[C]’][V][m]m.n[’].
USER-INTERFACE = *ANY(...)
Der Freigabestand der Benutzerschnittstelle kann angegeben werden.
CORRECTION-STATE =
Legt fest, ob der auch Korrekturstand angegeben werden muss oder darf.
CORRECTION-STATE = *ANY
Der Korrekturstand kann angegeben werden.
CORRECTION-STATE = *NO
Der Korrekturstand darf nicht angegeben werden. Angaben zum Datentyp PRODUCT-VERSION haben dann folgendes Format:
[[C]’][V][m]m.na[’].
CORRECTION-STATE = *YES
Der Korrekturstand muss angegeben werden, wenn der Freigabestand angegeben wird. Angaben zum Datentyp PRODUCT-VERSION haben dann folgendes Format:[[C]’][V][m]m.naso[’].
TYPE = *STRUCTURED-NAME(...)
Bestimmt, dass der Operandenwert vom Datentyp STRUCTURED-NAME ist. Dieser ist definiert als eine Folge von alphanumerischen Zeichen. Diese Zeichenfolge kann in mehrere Teilzeichenfolgen gegliedert sein, die durch Bindestrich miteinander verbunden sind. Die gesamte Zeichenfolge, d.h. ggf. die erste Teilzeichenfolge muss mit einem Buchstaben oder Sonderzeichen beginnen.
SHORTEST-LENGTH = *ANY / <integer 1..255>
Bestimmt, ob die Zeichenfolge eine Mindestlänge haben muss und ggf. welche (Angabe in Byte).
LONGEST-LENGTH = *ANY / <integer 1..255>
Bestimmt, ob die Zeichenfolge eine Maximallänge nicht überschreiten darf und ggf. welche (Angabe in Byte).
WILDCARD =
Bestimmt, ob Platzhalterzeichen („Wildcards“, siehe SDF-Metasyntax "SDF-Syntaxdarstellung") an Stelle von Zeichen(-folgen) innerhalb des Namens bei der Kommando- bzw. Anweisungseingabe angegeben werden dürfen.
WILDCARD = *NO
Als Eingabe für den Operandenwert sind keine Wildcards zulässig.
WILDCARD = *YES(...)
Wildcards dürfen angegeben werden.
TYPE =
Gibt an, ob die Zeichenfolge ein Wildcard-Suchmuster oder ein Wildcard-Konstruktor sein kann. Wildcard-Konstruktoren werden zur Namensbildung aus Zeichenfolgen genutzt, die mithilfe eines Wildcard-Suchmusters entstanden sind.
TYPE = *SELECTOR
Die Zeichenfolge kann ein Wildcard-Suchmuster sein. Der Datentyp erhält den Zusatz with-wild (siehe SDF-Metasyntax "SDF-Syntaxdarstellung").
TYPE = *CONSTRUCTOR
Die Zeichenfolge kann ein Wildcard-Konstruktor sein. Der Datentyp erhält den Zusatz with-wild-constr (siehe SDF-Metasyntax "SDF-Syntaxdarstellung").
LONGEST-LOGICAL-LEN =
Gibt die maximale Länge des Namens an, zu dem der Wildcard-Ausdruck (Suchmuster oder Konstruktor) noch als passend erkannt werden soll.
LONGEST-LOGICAL-LEN = *LONGEST-LENGTH
Die maximale Länge des zum Wildcard-Ausdruck passenden Namens ist gleich der beim Operanden LONGEST-LENGTH angegebenen Länge (aus Gründen der Kompatibilität).
LONGEST-LOGICAL-LEN = <integer 1..255>
Bestimmt, dass der zum Wildcard-Ausdruck passende Name die angegebene Länge nicht überschreiten darf.
TYPE = *TEXT(...)
Bei den Datentypen *CMD-REST und *TEXT erhält der Operand LOWER-CASE=*YES eine Struktur, die die Behandlung von Groß-/Kleinschreibung außerhalb von Hochkommata steuert.
Diese Datentypen sind der Software-Entwicklung vorbehalten und werden deshalb hier nicht beschrieben.
TYPE = *TIME(...)
Bestimmt, dass der Operandenwert vom Datentyp TIME ist. Dieser ist definiert als eine Folge von ein, zwei oder drei vorzeichenlosen Zahlen, die durch Doppelpunkt miteinander verbunden sind (<Stunden>[:<Minuten> [:<Sekunden>]]). Die Angabe für Stunden, Minuten und Sekunden darf maximal zweistellig sein. Einstelligen Zahlen dürfen Nullen vorangestellt sein. Der Wertebereich für Minuten und Sekunden liegt zwischen 0 und 59.
OUT-FORM = *STD / *BINARY / *CHAR
Bestimmt, in welchem Format SDF die Zahlendarstellung der Zeitangabe an die Implementierung übergibt.
OUT-FORM = *STD
Erfolgt die Übergabe in einem Übergabebereich (siehe Abschnitt „Aufbau des normierten Übergabebereichs“), wird die Zeitangabe im Binär-Format übergeben. Bei Übergabe in einer Zeichenkette (bei Kommandos, die mit IMPLEMENTOR= *PROCEDURE(...) oder IMPLEMENTOR=*TPR(...,CMD-INTERFACE=*STRING,...) definiert sind, siehe ADD-CMD) wird die Zeitangabe im Character-Format übergeben.
OUT-FORM = *BINARY
Die Zeitangabe wird im Binär-Format übergeben.
OUT-FORM = *CHAR
Die Zeitangabe wird im Character-Format übergeben.
TYPE = *VSN(...)
Bestimmt, dass der Operandenwert vom Datentyp VSN ist. SDF unterscheidet zwischen zwei Typen:
VSN mit einem Punkt:
Diese VSN muss aus 6 Zeichen bestehen. Neben einem einzelnen Punkt werden nur die Buchstaben A-Z und die Ziffern 0-9 akzeptiert.
Eine solche VSN hat das Formatpvsid.sequence-number
, wobeipvsid
aus 2 bis 4 Zeichen undsequence-number
aus 1 bis 3 Zeichen besteht.
Diesem untergeordneten Typ von VSN darf PUB nicht vorangestellt werden:
z.B. ist PUBA.0 oder PUB.02 ungültig. Der Punkt kann 3., 4. oder 5. Zeichen der VSN sein.VSN ohne Punkt:
Diese VSN besteht aus einer Zeichenfolge von maximal 6 Zeichen. Nur die Buchstaben A-Z, Ziffern 0-9 und die Sonderzeichen $, @, # sind erlaubt. Eine solche VSN kann mit PUB beginnen. In diesem Fall dürfen die folgenden Zeichen keine Sonderzeichen sein (z.B. wird PUB@1 oder PUB$## zurückgewiesen). VSN, die mit der Zeichenfolge „PUB“ beginnen, müssen außerdem 6 Zeichen lang sein.
SDF macht keine weiteren Unterschiede zwischen Public oder Private VSN oder PUBRES.SHORTEST-LENGTH = *ANY / <integer 1..6>
Bestimmt, ob die Zeichenfolge eine Mindestlänge haben muss und ggf. welche (Angabe in Byte).LONGEST-LENGTH = *ANY / <integer 1..6>
Bestimmt, ob die Zeichenfolge eine Maximallänge nicht überschreiten darf und ggf. welche (Angabe in Byte).
TYPE = *X-STRING(...)
Bestimmt, dass der Operandenwert vom Datentyp X-STRING ist. Dieser ist definiert als eine Folge von Sedezimalzeichen (Ziffern 0-9, Großbuchstaben A-F), die in Hochkommas eingeschlossen ist. Ihr vorangestellt ist der Buchstabe X.
SHORTEST-LENGTH = *ANY / <integer 1..1800>
Bestimmt, ob die Zeichenfolge eine Mindestlänge haben muss und ggf. welche (Angabe in Byte).
LONGEST-LENGTH = *ANY / <integer 1..1800>
Bestimmt, ob die Zeichenfolge eine Maximallänge nicht überschreiten darf und ggf. welche (Angabe in Byte).
TYPE = *X-TEXT(...)
Bestimmt, dass der Operandenwert vom Datentyp X-TEXT ist. Dieser Datentyp entspricht weitgehend dem Datentyp X-STRING, hat jedoch keine Hochkommas und kein vorangestelltes ’X’.
SHORTEST-LENGTH = *ANY / <integer 1..3600>
Bestimmt, ob die Zeichenfolge eine Mindestlänge haben muss und ggf. welche (Angabe in Halbbyte).
LONGEST-LENGTH = *ANY / <integer 1..3600>
Bestimmt, ob die Zeichenfolge eine Maximallänge nicht überschreiten darf und ggf. welche (Angabe in Halbbyte).
ODD-POSSIBLE = *YES / *NO
Bestimmt, ob eine ungerade Zahl von Zeichen akzeptiert wird.
INTERNAL-NAME = *STD / <alphanum-name 1..8>
Interner Operandenwertname. SDF identifiziert einen Operandenwert mithilfe dieses Namens. Standardmäßig nimmt SDF-A die ersten acht Zeichen (ohne Bindestrich) des Datentyps, den Sie beim Operanden TYPE angegeben haben. Bei Operandenwerten vom Datentyp KEYWORD nimmt SDF-A standardmäßig die ersten acht Zeichen (ohne Bindestrich) des ersten Werts, den Sie beim Operanden VALUE angegeben haben.
SECRET-PROMPT = *SAME / *NO
Gibt an, ob der Operandenwert als geheim behandelt werden soll.
SECRET-PROMPT=*SAME übernimmt die Einstellung des Operanden, zu dem der hier definierte Operandenwert gehört (siehe ADD-OPERAND ...,SECRET-PROMPT= , "ADD-OPERAND Operand definieren"). Das Eingabefeld wird für geheime Operandenwerte dunkelgesteuert und die Protokollierung wird unterdrückt.
Bei SECRET-PROMPT=*NO wird der Operandenwert nicht als geheim behandelt.
Ist ein geheimer Operand mit einem nicht geheimen Wert vorbesetzt, so wird das Eingabefeld nicht dunkelgesteuert. Durch Eingabe des Zeichens ^ oder eines mit OUTPUT= *SECRET-PROMPT definierten Wertes kann die Dunkelsteuerung des Eingabefeldes angefordert werden.
REMOVE-POSSIBLE = *YES / *NO
Bestimmt, ob der Operandenwert gelöscht werden darf (siehe REMOVE, "REMOVE Objekte der Syntaxdatei löschen").
DIALOG-ALLOWED = *YES / *NO
Bestimmt, ob der Operandenwert im Dialogbetrieb zugelassen ist. Die Angabe *YES setzt voraus, dass der Operand, zu dem der Wert gehört, im Dialogbetrieb zugelassen ist.
DIALOG-PROC-ALLOWED = *YES / *NO
Bestimmt, ob der Operandenwert im Dialogbetrieb innerhalb einer Prozedur zugelassen ist. Die Angabe *YES setzt voraus, dass der Operand, zu dem der Wert gehört, im Dialogbetrieb innerhalb einer Prozedur zugelassen ist.
GUIDED-ALLOWED = *YES / *NO
Bestimmt, ob der Operandenwert im geführten Dialog angeboten wird. Die Angabe *YES setzt voraus, dass der Operand, zu dem der Wert gehört, im geführten Dialog zugelassen ist.
BATCH-ALLOWED = *YES / *NO
Bestimmt, ob der Operandenwert im Stapelbetrieb zugelassen ist. Die Angabe *YES setzt voraus, dass der Operand, zu dem der Wert gehört, im Stapelbetrieb zugelassen ist.
BATCH-PROC-ALLOWED = *YES / *NO
Bestimmt, ob der Operandenwert im Stapelbetrieb innerhalb einer Prozedur zugelassen ist. Die Angabe *YES setzt voraus, dass der Operand, zu dem der Wert gehört, im Stapelbetrieb innerhalb einer Prozedur zugelassen ist.
STRUCTURE =
Bestimmt, ob der Operandenwert eine Struktur einleitet.
STRUCTURE = *NO
Der Operandenwert leitet keine Struktur ein.
STRUCTURE = *YES(...)
Der Operandenwert leitet eine Struktur ein.
SIZE = *SMALL / *LARGE
Bestimmt, ob in der MINIMUM- oder MEDIUM-Stufe des geführten Dialogs die Struktur in den übergeordneten Fragebogen integriert wird (*SMALL) oder ob für sie ein eigener Fragebogen angelegt wird (*LARGE).
FORM = *FLAT / *NORMAL
nur relevant für Anweisungen und mit IMPLEMENTOR=*TPR(...,CMD-INTERFACE =*NEW/*TRANSFER-AREA,...) definierte Kommandos (siehe ADD-CMD). Falls LIST-ALLOWED=*YES ist, muss FORM=*NORMAL angegeben werden. Im Standardfall (*FLAT) wird die Struktur im Übergabebereich für die Implementierung linearisiert, die Operanden der Struktur werden in ein übergeordnetes Operanden-Array integriert.
Im Fall *NORMAL erhält die Struktur ein eigenes Operanden-Array. In ihm werden die Operanden übergeben, für die als RESULT-OPERAND-LEVEL eine höhere Strukturebene definiert ist als für den Operanden, zu dem der hier definierte struktureinleitende Operandenwert gehört (siehe ADD-OPERAND...,RESULT-OPERAND-LEVEL=,... und Abschnitt „Aufbau des normierten Übergabebereichs“).
MAX-STRUC-OPERAND = *STD / <integer 1..3000>
Anzahl der in der strukturierten Übergabe zu reservierenden Operandenpositionen. Standardmäßig wird das Operanden-Array so groß wie für die Struktur erforderlich angelegt. Für geplante künftige Erweiterungen lässt es sich aber auch größer anlegen. Dieser Operand bezieht sich auf die durch den Operandenwert eingeleitete Struktur und ist nur relevant, wenn im vorigen Operanden *NORMAL angegeben ist.
LIST-ALLOWED = *NO / *YES
Bestimmt, ob bei der Kommando- bzw. Anweisungseingabe für den Operandenwert die Angabe einer Liste zulässig ist. Das setzt voraus, dass der Operand, zu dem der Wert gehört, mit LIST-POSSIBLE=*YES definiert ist (siehe ADD-OPERAND). Für Anweisungen und Kommandos, die mit IMPLEMENTOR=*TPR(...,CMD-INTERFACE=*NEW/*TRANSFER-AREA,...) und STRUCTURE=*YES mit FORM=*FLAT definiert sind, darf nur LIST-ALLOWED=*NO angegeben werden.
VALUE =
Bestimmt, welche Werte als Eingabe zulässig sind.
VALUE = *NO
Alle dem Operandentyp entsprechenden Werte sind zulässig. Einschränkungen gibt es nur, sofern diese bei der Festlegung des Operandentyps angegeben sind (z.B. Längenbegrenzungen). Für Operanden des Typs KEYWORD ist *NO nicht zulässig.
VALUE = list-poss(2000): <c-string 1..1800 with-low>(...)
Die erlaubten Werte sind auf die angegebenen Werte beschränkt. Im Gegensatz zu STANDARD-NAME und ALIAS-NAME kann der Benutzer angegebene Werte des Typs KEYWORD bei der Eingabe abkürzen. Für Werte vom Typ KEYWORD kann keine Liste von Einzelwerten verwendet werden (ein spezifisches ADD-VALUE muss für jeden einzelnen Wert eingegeben werden).
STANDARD-NAME = *NAME / *NO / list-poss(2000): <structured-name 1..30> / <c-string 1..30>
ist nur für Operandenwerte des Typs KEYWORD relevant. Er bestimmt den Standardnamen des Operandenwerts, der bei der Kommando- bzw. Anweisungseingabe alternativ benutzt werden kann. Dieser ist bei der Eingabe nicht abkürzbar. Ein STANDARD-NAME darf im Gegensatz zum ALIAS-NAME nicht gelöscht werden und ist für die Systemsoftwareentwicklung von Fujitsu vorbehalten.
ALIAS-NAME = *NO / list-poss(2000): <structured-name 1..30>
ist nur für Operandenwerte des Typs KEYWORD relevant. Er bestimmt den Aliasnamen des Operandenwerts, der bei der Kommando- bzw. Anweisungseingabe alternativ benutzt werden kann. Dieser ist bei der Eingabe nicht abkürzbar. Ein ALIAS-NAME darf im Gegensatz zum STANDARD-NAME gelöscht werden.
GUIDED-ABBREVIATION = *NAME / <structured-name 1..30> / <c-string 1..30>
ist nur für Operandenwerte des Typs KEYWORD relevant. Er bestimmt den Namen, mit dem SDF in der mittleren Hilfestufe des geführten Dialogs den Operandenwert bezeichnet. Standardmäßig nimmt SDF-A als GUIDED-ABBREVIATION den Einzelwert, den Sie beim Operanden VALUE angegeben haben.
MINIMAL-ABBREVIATION = *NO / <structured-name 1..30> / <c-string 1..30>
nur für Operandenwerte vom Typ KEYWORD:
bestimmt die kürzest mögliche Abkürzung für den Operandenwert. Eine kürzere Abkürzung wird von SDF dann nicht akzeptiert.
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 den richtigen Operandenwert auswählt, ihn 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 KEYWORD entstehen.
Die ALIAS-NAMEs und STANDARD-NAMEs des Operandenwerts dürfen nicht kürzer als die Minimal-Abkürzung sein, wenn sie Abkürzung des Operandenwerts sind.
In einer Syntax-Datei-Hierarchie darf nur eine Verkürzung der Minimal-Abkürzung (keine Verlängerung) vorgenommen werden.
NULL-ABBREVIATION = *NO / *YES
ist nur für Operandenwerte des Typs KEYWORD relevant, die definiert sind mit STRUCTURE=*YES. Er bestimmt, ob der Operandenwert bei der Kommando- bzw. Anweisungseingabe vor der öffnenden Strukturklammer weggelassen werden kann,
z.B. ein struktureinleitender Operandenwert, zu dem es keine alternativen Operandenwerte gibt.
OUTPUT =
Bestimmt, welcher Wert im Fall OUTPUT=*NORMAL (siehe "ADD-VALUE Operandenwert definieren") an die Implementierung übergeben wird.
OUTPUT = *SAME
Der beim Operanden VALUE angegebene Wert wird übergeben.
OUTPUT = *EMPTY-STRING
Ein leerer String wird übergeben.
OUTPUT = *DROP-OPERAND
Die Übergabe des Operanden wird unterdrückt.
OUTPUT = <c-string 1..1800>
Der hier angegebene Wert wird übergeben.
OUTPUT = <x-string 1..3600>
Der hier angegebene Wert wird übergeben.
OUT-TYPE = *SAME / *ALPHANUMERIC-NAME / *CAT-ID / *COMMAND-REST / *COMPOSED-NAME / *C-STRING / *DATE / *DEVICE/ *FIXED/ *FILENAME / *INTEGER / *LONG-INTEGER / *KEYWORD / *KEYWORD-NUMBER / *LABEL / *NAME / *PARTIAL-FILENAME / *PRODUCT-VERSION / *POSIX-PATHNAME /
*POSIX-FILENAME / *STRUCTURED-NAME / *TEXT / *TIME / *VSN /
*X-STRING / *X-TEXT
ist nur relevant für Anweisungen und mit IMPLEMENTOR=*TPR(...,CMD-INTERFACE= *NEW/*TRANSFER-AREA,...) definierte Kommandos (siehe ADD-CMD).
Bestimmt, ob und ggf. wie SDF den Datentyp des Operandenwertes ändert, wenn der Wert im Übergabebereich für die Implementierung abgelegt wird (siehe Abschnitt „Aufbau des normierten Übergabebereichs“). Standardmäßig verändert SDF den Datentyp nicht.
OVERWRITE-POSSIBLE = *NO / *YES
ist nur relevant für Anweisungen und mit IMPLEMENTOR=*TPR(...,CMD-INTERFACE= *NEW/*TRANSFER-AREA,...) definierte Kommandos (siehe ADD-CMD).
Bestimmt, ob der eingegebene Operandenwert durch einen von der Implementierung dynamisch erzeugten Wert überschrieben wird (siehe Operand DEFAULT in den Makros CMDRST und CMDTST). Der vom Programm erzeugte Wert muss gültiger Operandenwert sein. Im geführten Dialog zeigt SDF den von der Implementierung erzeugten Wert im Fragebogen. Beispiel: Den Wert UNCHANGED in den MODIFY-Anweisungen von SDF-A überschreibt SDF-A mit dem aktuellen Wert.
OUTPUT =
Bestimmt, ob und ggf. wie SDF den eingegebenen Operandenwert an die Implementierung übergibt.
OUTPUT = *NORMAL(...)
SDF übergibt den Operandenwert an die Implementierung.
AREA-LENGTH = *VARIABLE / <integer 1..3000>
Bestimmt die Länge des Feldes, in dem SDF den Operandenwert für die Implementierung ablegt. Das Feld muss lang genug sein, um den größten Wert aufnehmen zu können, der in der Ablaufphase eingegeben werden kann. Wird für AREA-LENGTH ein kleinerer Wert als für LONGEST-LENGTH eingegeben, gibt SDF eine Warnung aus und akzeptiert den für AREA-LENGTH angegebenen Wert.
Bei der Analyse eines Wertes, der länger als AREA-LENGTH und kürzer als LONGEST-LENGTH ist, können 2 Fälle auftreten:
Werte vom Typ C-STRING mit LONGEST-LENGTH
<=
32, die zu einem geheimen Operanden gehören, werden von SDF komprimiert und in einem sedezimalen String mit der Länge AREA-LENGTH abgelegt. Dieses Verhalten kann zum Beispiel für Kennworte genutzt werden. Die Kennworte werden mithilfe eines Hash-Algorithmus komprimiert und sind durch die sedezimale Ablageform gegen unberechtigte Zugriffe gesichert.Hinweise:
Es wird derselbe Hash-Algorithmus wie bei der in SDF-P verfügbaren HASH-STRING-Funktion verwendet.
Der Kommandoserver oder das Programm, das den von SDF analysierten Wert verarbeitet, muss möglicherweise angepasst werden, wenn die Kennwort-Definition zur Unterstützung von Hash-Kennworten geändert wurde. Eventuell wird der von SDF zurückgegebene Hash-Wert von der Semantik-Analyse des Programmes oder Kommandoservers abgewiesen.
In allen von 1. abweichenden Fällen wird der Wert auf die bei AREA-LENGTH angegebene Länge gekürzt.
LEFT-JUSTIFIED = *STD / *YES / *NO
ist nur relevant, wenn für das Ablagefeld eine feste Länge bestimmt wurde. Mit LEFT-JUSTIFIED wird bestimmt, ob SDF den Operandenwert links- oder rechtsbündig in dem Feld ablegt. Bei numerischen Werten setzt SDF-A *STD in *NO um, bei allen anderen Werten in *YES.
FILLER = *STD / <c-string 1..1> / <x-string 1..2>
ist nur relevant, wenn für das Ablagefeld eine feste Länge bestimmt wurde. Mit FILLER wird bestimmt, mit welchem Zeichen SDF das Feld im Bedarfsfall auffüllt. Bei Werten vom Typ X-STRING oder INTEGER setzt SDF-A *STD in X’00’ um, bei allen übrigen in C’’ (Leerzeichen).
STRING-LITERALS = *NO / *HEX / *CHAR
Bestimmt, ob SDF den Operandenwert für die Übergabe an die Implementierung in den Datentyp X-STRING oder C-STRING umwandelt. Standardmäßig verändert SDF den Datentyp nicht. In diesem Fall ist bei Operandenwerten vom Typ C-STRING zu beachten, dass SDF nur den Inhalt des Strings übergibt (ohne Hochkomma und vorangestelltes C). Dieser Operand ist nur gültig, wenn VALUE=*NO angegeben wird.
HASH = *NO / *YES(...)
Legt fest, ob der Eingabewert mittels eines Hash-Algorithmus in einen Wert mit einer definierten Länge umgewandelt wird.
HASH = *YES(...)
ist nur erlaubt für Operandenwerte vom Datentyp C-STRING, die mit LONGEST-LENGTH <=
32 definiert werden.
Die anderen Operanden in der Struktur OUTPUT=*NORMAL(...) formatieren den Wert erst nach Ausführung der Hash-Funktion. Der Wert hat anschließend den Datentyp X-STRING und enthält dann eventuell auch nicht druckbare Zeichen.
OUTPUT-LENGTH = <integer 2..32>
Länge des Wertes, in den der Eingabewert umgewandelt wird.
OUTPUT = *SECRET-PROMPT
Der Operandenwert wird nicht an die Implementierung übergeben, sondern bewirkt, dass SDF den Benutzer auffordert, einen der zu dem Operanden gehörenden alternativen Werte einzugeben. Die folgende Eingabe erfolgt dann mit dunkelgesteuertem Eingabefeld und wird nicht protokolliert. Voraussetzungen sind:
der Operand ist als geheim definiert
(siehe ADD-OPERAND...,SECRET-PROMPT=*YES)die Eingabe erfolgt im ungeführten Dialog oder in einer Vordergrund-Prozedur
für den mit SECRET-PROMPT definierten Operandenwert ist als zulässige Eingabe ein Einzelwert angegeben (siehe Operand VALUE=<c-string>, im Normalfall ist er vom Typ KEYWORD)
Im geführten Dialog ergibt sich folgender Anwendungsfall:
Das Eingabefeld für einen geheimen Operanden, der mit einem nichtgeheimen Wert vorbesetzt ist, wird nicht dunkelgesteuert. Durch Eingabe eines mit OUTPUT=*SECRET-PROMPT definierten Wertes kann das Eingabefeld dunkelgesteuert werden.
PRIVILEGE =
Gibt an, welche Privilegien dem Operandenwert zugeordnet werden.
PRIVILEGE = *SAME
Der Operandenwert erhält die gleichen Privilegien wie der Operand, zu dem dieser Operandenwert definiert wird.
PRIVILEGE = *EXCEPT(...)
Der Operandenwert 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 dem Operandenwert zugeordnet werden.
PRIVILEGE = list-poss(64): <structured-name 1..30>
Der Operandenwert erhält nur genau die Privilegien, die Sie in dieser Liste angeben.