SYSDTA einer Eingabequelle zuordnen
Komponente: | SYSFILE |
Funktionsbereich: | Auftragsverarbeitung |
Anwendungsbereich: | JOB |
Privilegierung: | STD-PROCESSING |
Funktionsbeschreibung
Das Kommando ASSIGN-SYSDTA weist die System(eingabe)datei SYSDTA einer Eingabequelle zu. Primärzuweisung und Eigenschaften von SYSDTA sind im Abschnitt „Systemdateien" beschrieben.
Einschränkungen
Die Zuweisung einer Systemdatei zu einer Variablen mit TO=*VARIABLE(...) ist nur möglich, wenn das kostenpflichtige Subsystem SDF-P geladen ist.
Format
ASSIGN-SYSDTA | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Operandenbeschreibung
TO =
Eingabequelle, der SYSDTA zuzuordnen ist.
TO = <filename 1..54>
Name der Datei, der SYSDTA zuzuweisen ist. Die Datei muss mit folgenden Merkmalen katalogisiert sein:
variable Satzlänge
Zugriffsmethode SAM oder ISAM
Beginn des ISAM-Schlüssels: Byte 5
Länge des ISAM-Schlüssels: 8 Byte
TO = *VARIABLE(...)
Name einer zusammengesetzten S-Variablen vom Typ Liste (Folge von Elementen gleichen Variablentyps, auf die nur sequenziell zugegriffen werden kann).
Die Verwendung einer zusammengesetzten S-Variablen ist nur möglich, wenn das kostenpflichtige Subsystem SDF-P geladen ist (siehe Handbuch „SDF-P“ [34]).
Das Kommando wird abgewiesen, wenn die angegebene Liste nicht deklariert ist oder die Listenelemente nicht vom Variablentyp STRING (bzw. ANY) sind.
VARIABLE-NAME = <composed-name 1..254>
Name der S-Variablen.
TO = *LIBRARY-ELEMENT(...)
Eingabequelle ist ein PLAM-Bibliothekselement.
LIBRARY = <filename 1..54 without-gen-vers>
Name einer PLAM-Bibliothek.
ELEMENT = <composed-name 1..64 with-under>(...)
Name eines Elements aus der angegebenen Bibliothek.
VERSION = *HIGHEST-EXISTING / *STD / <composed-name 1..24>
Ergänzung des Elementnamens durch die Versionsangabe. Voreingestellt ist die höchste existierende Version des angegebenen Elements.
TYPE = S / <alphanum-name 1..8>
Typ des Elements.
S | Elementtyp S (Quellprogramme); Default-Wert |
D | Elementtyp D (Textdaten) |
M | Elementtyp M (Makros) |
TO = *PRIMARY
Setzt SYSDTA auf die Primärzuweisung zurück (siehe Abschnitt „Systemdateien").
TO = *SYSCMD
Schaltet SYSDTA mit SYSCMD zusammen, d.h. das System liest über SYSCMD nicht nur Kommandos, sondern auch Daten ein.
DATA-ESCAPE-CHAR =
Legt fest, ob in Datensätzen Variablen ersetzt werden sollen.
DATA-ESCAPE-CHAR = *COMPATIBLE
Die Ersetzung von Variablen bzw. Ausdrücken in Datensätzen soll kompatibel zu dem bisherigen Verhalten erfolgen:
Bei einer Zuweisung von SYSDTA ungleich SYSCMD findet in Datensätzen keine Ersetzung statt.
Bei einer Zuweisung von SYSDTA=SYSCMD erfolgt die Ersetzung in Datensätzen wie es im Kommando SET-PROCEDURE-OPTIONS, MODIFY-PROCEDURE-OPTIONS oder BEGIN-PROCEDURE festgelegt wurde.
DATA-ESCAPE-CHAR = ’&&’ / ’#’ / ’*’ / ’@’ / ’$’ / *STD
Diese Angabe ist nur möglich bei einer Zuweisung von SYSDTA ungleich SYSCMD. Im Falle von TO=*SYSCMD bzw. TO=*PRIMARY wird die Angabe zurückgewiesen.
In Datensätzen sollen Variable und Ausdrücke, die mit dem angegebenen Zeichen beginnen, ersetzt werden. Mögliche Zeichen sind &, #, *, @ oder $. Die Angabe & ist gleichbedeutend mit der Angabe *STD (wie auf Kommandoebene). Soll das Zeichen & explizit angegeben werden, muss es verdoppelt werden.
Kommando-Returncode
(SC2) | SC1 | Maincode | Bedeutung |
|---|---|---|---|
0 | CMD0001 | Kommando ausgeführt | |
2 | 0 | SSM3200 | Kommando ausgeführt mit Warnung |
2 | 0 | SSM3034 | Die Systemdatei ist bereits *PRIMARY zugewiesen |
1 | SSM2036 | Operand fehlerhaft | |
32 | SSM1013 | Systemfehler während der Kommandoausführung | |
64 | SSM1025 | Diskettengerät nicht verfügbar | |
64 | SSM1026 | Diskettengerät nicht verfügbar oder die Diskette konnte nicht montiert werden | |
64 | SSM2061 | Fehler bei Zugriff auf PLAM-Bibliothekselement | |
64 | SSM2064 | Systemdatei kann nicht über RFA zugewiesen werden | |
64 | SSM3031 | Semantikfehler | |
64 | SSM3055 | fehlerhaftes Satz- oder Dateiformat | |
64 | SSM3056 | OPEN-Fehler bei Eingabe (DMS-Fehler ist als Insert in der SYSOUT-Meldung enthalten) | |
64 | SSM3100 | S-Variable existiert nicht | |
64 | SSM3101 | S-Variable nicht vom Typ Liste | |
64 | SSM3102 | Subsystem SDF-P nicht verfügbar | |
64 | SSM3104 | DATA-ESCAPE-CHAR ungleich *COMPATIBLE nicht erlaubt bei SYSDTA=SYSCMD | |
64 | SSM3105 | Angabe von DATA-ESCAPE-CHAR ungültig in der aktuellen Software-Konfiguration | |
64 | SSM3200 | Fehler bei Zugriff auf PLAM-Bibliothek oder Element | |
65 | SSM2074 | Subsystem SPOOL nicht geladen; Zugriff auf ein Diskettengerät ist nicht möglich |
Hinweise
Mit einem ASSIGN-SYSDTA-Kommando kann nur eine Datei zugewiesen werden. Will der Benutzer mehrere Dateien zuweisen, so muss er die entsprechende Anzahl von ASSIGN-SYSDTA-Kommandos geben.
Auf Prozedurebene ist die Systemdatei SYSDTA nicht mehr zugewiesen, wenn das Ende des Dateibestands erreicht ist. Jedes weitere Lesen erzeugt die Meldung SYSDTA NOT ASSIGNED. Bei Rückkehr auf eine niedrigere Prozedurebene wird SYSDTA demjenigen Gerät zugewiesen, das auf dieser niedrigeren Ebene definiert war.
Die Variablen-Ersetzung, die im Operanden DATA-ESCAPE-CHAR für SYSDTA ungleich SYSCMD vereinbart wird, beschränkt sich auf S-Prozeduren.
Mit dieser Einstellung gilt:
Wenn Daten im Kontext einer Nicht-S-Prozedur oder ENTER-Datei gelesen werden, wird das Lesen mit der Meldung SSM3106 zurückgewiesen.
Wenn bei der Variablen-Ersetzung ein Fehler auftritt, wird der Datensatz zurückgewiesen und das Lesen von der Eingabequelle mit EOF beendet.
Wenn während des Lesens aus der Eingabequelle (Datei, Bibliothekselement oder S-Variable) auf die Primärzuweisung umgeschaltet wird, findet keine Variablen-Ersetzung statt (z.B. schaltet EDT nach Auftreten von EOF auf Primärzuweisung um).
Beispiele
Beispiel 1
/start-assembh ————————————————————————————————————————————————————— (1)
% BLS0523 ELEMENT 'ASSEMBH', VERSION '013', TYPE 'C' FROM LIBRARY ':1OSH:$TSOS. SYSPRG.ASSEMBH.013' IN PROCESS % BLS0500 PROGRAM 'ASSEMBH', VERSION '01.3A02' OF '2012-04-04' LOADED % BLS0552 COPYRIGHT (C) FUJITSU TECHNOLOGY SOLUTIONS 2012. ALL RIGHTS RESERVED % ASS6010 V01.3A02 OF BS2000 ASSEMBH READY % //compile source=*sysdta,... . . . % ASS6012 END OF ASSTRAN
/assign-sysdta to=src.testprog —————————————————————————————————————— (2)
/start-assembh
% BLS0523 ELEMENT 'ASSEMBH', VERSION '013', TYPE 'C' FROM LIBRARY ':1OSH:$TSOS. SYSPRG.ASSEMBH.013' IN PROCESS % BLS0500 PROGRAM 'ASSEMBH', VERSION '01.3A02' OF '2012-04-04' LOADED % BLS0552 COPYRIGHT (C) FUJITSU TECHNOLOGY SOLUTIONS 2012. ALL RIGHTS RESERVED % ASS6010 V01.3A02 OF BS2000 ASSEMBH READY % ASS6011 ASSEMBLY TIME: 385 MSEC % ASS6018 0 FLAGS, 0 PRIVILEGED FLAGS, 0 MNOTES % ASS6019 HIGHEST ERROR-WEIGHT: WARNING % ASS6006 LISTING GENERATOR TIME: 121 MSEC % ASS6012 END OF ASSEMBH
/assign-sysdta to=*primary —————————————————————————————————————————— (3)
(1) | Die Systemdatei SYSDTA hat Primärzuweisung. Der Assembler liest seine Eingaben über den Bildschirm ein. |
(2) | SYSDTA wird der Datei SRC.TESTPROG zugewiesen. Der Assembler liest die Eingaben aus dieser Datei (COMPILE-Anweisung und Quellprogramm, falls in der COMPILE-Anweisung SOURCE=*SYSDTA vereinbart ist). |
(3) | SYSDTA erhält wieder die Primärzuweisung. |
Beispiel 2
/assign-sysdta to=*lib-elem(lib=biblio,elem=testprog)
/start-assembh
% BLS0523 ELEMENT 'ASSEMBH', VERSION '013', TYPE 'C' FROM LIBRARY ':1OSH:$TSOS. SYSPRG.ASSEMBH.013' IN PROCESS % BLS0500 PROGRAM 'ASSEMBH', VERSION '01.3A10' OF '2012-10-11' LOADED % BLS0552 COPYRIGHT (C) FUJITSU TECHNOLOGY SOLUTIONS 2012. ALL RIGHTS RESERVED % ASS6010 V01.3A10 OF BS2000 ASSEMBH READY % ASS6011 ASSEMBLY TIME: 429 MSEC % ASS6018 0 FLAGS, 0 PRIVILEGED FLAGS, 0 MNOTES % ASS6019 HIGHEST ERROR-WEIGHT: WARNING % ASS6006 LISTING GENERATOR TIME: 154 MSEC % ASS6012 END OF ASSEMBH
/assign-sysdta to=*primary
Der Assembler liest seine Eingaben aus dem Element TESTPROG der Bibliotheksdatei BIBLIO. Nach Beendigung des Compilerlaufes erhält SYSDTA wieder die Primärzuweisung.
Beispiel 3
/BEG-PROC LOG=*ALL, PAR=*YES(PROC-PAR=(&SFFILE1,&SFFILE2)) /ASS-SYSDTA TO=*SYSCMD /START-SDF-A //OPEN-SYNTAX-FILE FILE=&SFFILE1, TYPE=*SYSTEM,MODE=*UPDATE //COPY OBJECT=*COMMAND(NAME=*ALL),FROM-FILE=&SFFILE2 //END /END-PROC
Durch das Kommando ASSIGN-SYSDTA liegt SYSDTA bei Ablauf der Nicht-S-Prozedur genau wie SYSCMD auf der Datei, in der die Prozedur gespeichert ist. Das ermöglicht nun auch, dass das Dienstprogramm SDF-A die Anweisungen aus dieser Prozedurdatei liest.