Für ein im SHOW-Kommando angegebenes Objekt (z. B. eine Datei, SHOW-FILE-ATTRIBUTES FILE-NAME=name
) wird eine Struktur definiert. Werden mehrere Objekte angegeben (z.B. als Musterzeichenfolge, SHOW-FILE-ATTRIBUTES FILE-NAME=nam*
) oder werden in eine S-Variable mehrere Kommandoausgaben geschrieben (siehe ASSIGN-STREAM
, "Zuweisen von S-Variablenströmen"), wird eine Liste von Strukturen angelegt. Für jede Einzelinformation zu diesem Objekt (z.B. Katalogkennung, Dateigröße) wird eine S-Variable als Element dieser Struktur definiert und die Einzelinformation als Inhalt zugewiesen.
Beispiel 1
/declare-var var-name=out(type=*structure),multiple-elements=*list /execute-cmd cmd=(show-file-attr file-name=job*,inf=*name-and-space), text-output=*none,structure-output=out /show-var out,inf=*par(list-index-number=*yes) OUT#1.F-NAME = :2OSG:$USER1.JOBA OUT#1.CAT-ID = 2OSG OUT#1.USER-ID = USER1 OUT#1.SHORT-F-NAME = JOBA OUT#1.F-SIZE = 3 OUT#2.F-NAME = :2OSG:$USER1.JOBB OUT#2.CAT-ID = 2OSG OUT#2.USER-ID = USER1 OUT#2.SHORT-F-NAME = JOBB OUT#2.F-SIZE = 3 OUT#3.F-NAME = :2OSG:$USER1.JOBC OUT#3.CAT-ID = 2OSG OUT#3.USER-ID = USER1 OUT#3.SHORT-F-NAME = JOBC OUT#3.F-SIZE = 3
Erläuterung von Beispiel 1
Die vom Anwender definierte S-Variable OUT
enthält die Gesamtausgabe. Die Zeichenfolge (#i)
zeigt an, dass OUT
eine Listenvariable ist, die mehrere Elemente enthalten kann. Im Beispiel sind es drei Elemente (i = 1 bis 3).
Zu jedem mit file-name=job*
ausgewählten Objekt wird eine Struktur erzeugt, die sich aus verschiedenen Einzelinformationen aufbaut. Jede Einzelinformation wird in einer S-Variablen abgespeichert, so z. B. enthält die S-Variable OUT(#i).CAT-ID
die Einzelinformation „Katalogkennung“.
Beispiel 2
/execute-cmd cmd=(show-file-attr file-name=job*,inf=*par(alloc=*yes)), text-output=*none,structure-output=out /show-var out,inf=*par(list-index-number=*yes) OUT#1.F-NAME = :2OSG:$USER1.JOBA OUT#1.CAT-ID = 2OSG OUT#1.USER-ID = USER1 OUT#1.SHORT-F-NAME = JOBA OUT#1.F-SIZE = 3 OUT#1.SUP = *PUB OUT#1.HIGHEST-USED-PAGES = 1 OUT#1.LAST-BYTE = 0 OUT#1.LAST-BYTE-VALID = FALSE OUT#1.SEC-ALLOC = 24 OUT#1.BLOCK-COUNT = 0 OUT#1.EXT#1.VOL = GVS2.2 OUT#1.EXT#1.DEV = D3435 OUT#1.EXT#1.NUM-OF-EXT = 1 OUT#1.NUM-OF-EXT = 1 OUT#2.F-NAME = :2OSG:$USER1.JOBB OUT#2.CAT-ID = 2OSG OUT#2.USER-ID = USER1 OUT#2.SHORT-F-NAME = JOBB OUT#2.F-SIZE = 3 OUT#2.SUP = *PUB OUT#2.HIGHEST-USED-PAGES = 1 OUT#2.LAST-BYTE = 0 OUT#2.LAST-BYTE-VALID = FALSE OUT#2.SEC-ALLOC = 24 OUT#2.BLOCK-COUNT = 0 OUT#2.EXT#1.VOL = GVS2.3 OUT#2.EXT#1.DEV = D3435 OUT#2.EXT#1.NUM-OF-EXT = 1 OUT#2.NUM-OF-EXT = 1 OUT#3.F-NAME = :2OSG:$USER1.JOBC OUT#3.CAT-ID = 2OSG OUT#3.USER-ID = USER1 OUT#3.SHORT-F-NAME = JOBC OUT#3.F-SIZE = 3 OUT#3.SUP = *PUB OUT#3.HIGHEST-USED-PAGES = 1 OUT#3.LAST-BYTE = 0 OUT#3.LAST-BYTE-VALID = FALSE OUT#3.SEC-ALLOC = 24 OUT#3.BLOCK-COUNT = 0 OUT#3.EXT#1.VOL = GVS2.0 OUT#3.EXT#1.DEV = D3435 OUT#3.EXT#1.NUM-OF-EXT = 1 OUT#3.NUM-OF-EXT = 1
Erläuterung von Beispiel 2
Die vom Anwender in Beispiel 1 definierte Listenvariable OUT
enthält in Beispiel 2 wiederum drei Elemente. Mit inf=*par(alloc=*yes)
werden für die ausgewählten Dateien alle Dateimerkmale ausgegeben, die die Speicherplatzbelegung betreffen. Die Dateimerkmale F-NAME, CAT-ID, USER-ID,....,EXT
bilden die Elemente der Struktur. Das Element EXT
ist wiederum eine Liste, die aus den Elementen VOL
, DEV
und NUM-OF-EXT
besteht.
Lassen sich die Informationen zu einem Objekt hierarchisch weiter untergliedern (siehe Element EXT
), wird für jede Hierarchie eine zusammengesetzte S-Variable als Element der übergeordneten Struktur definiert. Eine hierarchisch untergeordnete S-Variable kann dabei eine einfache S-Variable (siehe VOL
, DEV
, NUM-OF-EXT
), eine Struktur oder eine Liste einfacher S-Variablen und/oder Strukturen sein.
Namensbestandteile der S-Variablen
Die Namen der Listenelemente (z. B. F-NAME, F-SIZE
) sind für das jeweilige SHOW-Kommando vorgegeben. Sie schließen sich an den vom Anwender deklarierten S-Variablennamen an. Die Namen entsprechen, soweit möglich, den korrespondierenden Operandennamen. Ist die Information auf dieser Ebene weiter hierarchisch untergliedert, schließen sich weitere Namen, durch einen Punkt getrennt, an.
Inhalt der S-Variablen
Die Inhalte der S-Variablen entsprechen, soweit möglich, den korrespondierenden Operandenwerten. Der Datentyp und damit der Zeichenvorrat, den BS2000 zur Ausgabe der Werte verwendet, ist für jede Variable im Handbuch angegeben: String, Integer oder Boolean.
Datentypen der S-Variablen
Der Typ der S-Variablen ist immer *ANY.