Makrotyp: S-Typ (E-Form/L-Form/D-Form/C-Form/M-Form) (siehe "Typen von Makroaufrufen")
Der IMPNFIL-Makroaufruf katalogisiert auf Net-Storage-Volumes gespeicherte Node-Files, für die der aufrufende Auftrag das Eigentumsrecht hat. Das DVS legt den Katalogeintrag für ein Node-File auf einem Net-Storage-Volume vom Typ NETSTOR im TSOSCAT und im Dateikatalog des Net-Storage-Volumes anhand der Inode-Attribute auf dem NFS-Server an. Für Node-Files auf einem Net-Storage-Volume vom Typ NETVOL wird der Katalogeintrag nur im TSOSCAT, ebenfalls anhand der Inode-Attribute auf dem NFS-Server angelegt. Für Dateien auf einem Net-Storage vom Typ NETVOL gibt es keinen Dateikatalog auf dem Net-Storage-Volume.
Mit Angabe eines teilqualifizierten Dateinamens oder mit Wildcards kann der Benutzer mit einem Aufruf auch mehrere Dateien importieren.
Hinweise
Mit-Eigentümer einer Benutzerkennung dürfen unter dieser Kennung Node-Files importieren.
Wenn Einträge im Benutzerkatalog ersetzt werden müssen (REPLACE= *YES/*NFU), dürfen diese nicht gesperrt sein und Schreibzugriff muss zulässig sein.
Format
Operation | Operanden |
|
|
| |
| |
|
Operandenbeschreibung
VOLUME
Archivnummer (VSN) des Net-Storage-Volumes, auf dem die zu importierenden Node-Files gespeichert sind.
=<c-string: 1..6>
VSN des Net-Storage-Volumes.
=<var: char:8>
Nur mit MF=M möglich:
Symbolische Adresse eines Speicherbereichs von 6 Byte, in dem die VSN des Net-Storage-Volumes abgelegt ist.
FILENAM
Auswahl der Node-Files, die importiert werden sollen.
=<c-string 1..80: filename 1..54 with-wild-without-cat(80)>
Pfadname des Node-Files auf dem Net-Storage-Volume. Eine Katalogkennung darf nicht angegeben werden. Die Wildcard-Angabe (Musterzeichen) ermöglicht die Auswahl einer Dateimenge.
Der nicht privilegierte Benutzer kann nur Dateien seiner Benutzerkennung importieren. Der privilegierte Benutzer (Privileg TSOS) kann auch Dateien anderer Benutzer importieren. Die Angabe von Wildcards in der Benutzerkennung ist erlaubt.
=<var: char:80>
Nur mit MF=M möglich:
Symbolische Adresse eines Speicherbereichs von 80 Byte, in dem der Pfadname bzw. die Musterzeichenfolge für die gewünschte(n) Datei(en) abgelegt ist.
PUBSET
Bestimmt den Pubset, in dem die Dateien katalogisiert werden sollen. Das im Operanden VOLUME angegebene Net-Storage-Volume muss dem hier angegebenen Pubset zugeordnet sein.
=*STD
Die Katalogeinträge werden im Dateikatalog des Default-Pubsets der Benutzerkennung eingerichtet.
=<c-string: 1..4>
Pubset-Id des Pubsets. Die Katalogeinträge werden im Dateikatalog des angegebenen Pubsets eingerichtet.
=<var: char:4>
Nur mit MF=M möglich:
Symbolische Adresse eines Speicherbereichs von 4 Byte, in dem die Pubset-Id abgelegt ist.
FILESTR
Bestimmt das Attribut FILE-STRUCTURE des Node-Files, das in Abhängigkeit vom Operanden REPLACE in den Dateikatalog eingetragen wird.
=*STD
Bei REPLACE=*NO/*YES gilt: Ein Node-File wird als PAM-Datei ins BS2000 importiert, wenn die Dateigröße auf dem NFS-Dateisystem ungleich Null ist. Wenn die Dateigröße auf dem NFS-Dateisystem gleich Null ist, so erhält die importierte Datei die Standard-Attribute einer mit CREATE-FILE erzeugten Datei.
Bei REPLACE=*NFU gilt: Die Katalogeinträge der Node-Files werden im BS2000 unabhängig von dem Attribut FILE-STRUCTURE aktualisiert.
=*PAM
Bei REPLACE=*NO/*YES gilt: Ein Node-File wird unabhängig von der Dateigröße auf dem NFS-Dateisystem als PAM-Datei ins BS2000 importiert.
Bei REPLACE=*NFU werden die Katalogeinträge von PAM-Node-Files im BS2000 aktualisiert.
=*SAM
Bei REPLACE=*NO/*YES gilt: Ein Node-File wird unabhängig von der Dateigröße auf dem NFS-Dateisystem als SAM-Datei ins BS2000 importiert. Das Net-Storage-Coded-Character-Set wird beim Anlegen eines Node-Files anhand seiner Definition im Benutzereintrag eingetragen. Das resultierende NETCCS der Datei wird gemäß folgender Tabelle ermittelt:
CCS-Eintrag 1 | NETCCS-Eintrag 1 | Resultierendes NETCCS im |
EDF03IRV/*NONE | *ISO | ISO88591; bei der Code-Umsetzung wird für CCS EDF041 angenommen |
EDF03DRV | *ISO | ISO88591; bei der Code-Umsetzung wird für CCS EDF04DRV angenommen |
EDF04DRV | *ISO | ISO88591 |
EDF04x | *ISO | ISO8859x mit x=1,2,..F |
ISO8859x | *ISO oder *NO-CONV | ISOx |
UTFx | *ISO oder *NO-CONV | UTFx |
<name_a 1..8> | <name_b 1..8> | <name_b 1..8> |
<name_a 1..8> | *NO-CONV | <name_a 1..8> |
1 Benutzereintrag (SYSSRPM) bzw. Angabe im CATALOG bzw. CREATE-FILE oder MODIFY-FILE-ATTRIBUTES
Bei REPLACE=*NFU werden die Katalogeinträge von SAM-Node-Files im BS2000 aktualisiert.
=<var: enum-of_filestr_s: 1>
Name des Feldes mit dem Wert für FILESTR.
REPLACE
Gibt an, ob im BS2000 bereits existierende Dateien ersetzt werden oder ob nur der Katalogeintrag anhand der Inode-Attribute auf dem NFS-Server aktualisiert wird.
=*NO
Bereits existierende Dateien werden weder ersetzt noch ihre Katologeinträge aktualisiert.
=*YES
Bereits existierende Dateien auf dem Pubset werden durch die angegebenen Node-Files ersetzt. Dabei werden Dateien auf Public-Space und auf Net-Storage gelöscht, und Dateien auf Privatplatte werden exportiert. Beim Importieren der Node-Files werden werden die Einträge im TSOSCAT und im Dateikatalog des Net-Storage-Volumes neu erstellt.
=*NFU
Bei bereits existierenden Dateien werden die Einträge im TSOSCAT und im Dateikatalog des Net-Storage-Volumes anhand der Inode-Attribute auf dem NFS-Server aktualisiert. Dabei bestimmt der Operand FILESTR, dass die Aktualisierung der Katalogeinträge nur für Dateien mit der angegebenen Dateistruktur erfolgt. Mit FILESTR=*STD werden die Dateien unabhängig von der Dateistruktur aktualisiert.
=<var: enum-of_replace_s: 1>
Name des Feldes mit dem Wert für REPLACE.
IGNPROT
Der Operand steht nur dem privilegierten Benutzer (Privileg TSOS) zur Verfügung.
Gibt an, ob bereits katalogisierte Dateien ohne Beachtung eines bestehenden Schreibschutzes überschrieben werden sollen.
=*NO
Der Schreibschutz wird beachtet.
=*YES
Der Schreibschutz wird ignoriert.
=<var: enum-of_ignprot_s: 1>
Name des Feldes mit dem Wert für IGNPROT.
LIST
Gibt an, ob ein Verarbeitungsprotokoll nach SYSOUT und/oder SYSLST ausgegeben werden soll. Voreingestellt ist *NONE, d.h. es wird kein Protokoll erstellt.
=*NO
Es erfolgt keine Ausgabe.
=*SYSOUT
Das Verarbeitungsprotokoll wird nach SYSOUT ausgegeben.
=*SYSLST
Das Verarbeitungsprotokoll wird nach SYSLST ausgegeben.
=*BOTH
Das Verarbeitungsprotokoll wird nach SYSOUT und SYSLST ausgegeben.
=<var: enum-of_list_s: 1>
Name des Feldes mit dem Wert für LIST.
REPORT
Bestimmt den Umfang des Protokolls, wenn im Operanden LIST ein Verarbeitungsprotokoll angefordert wurde.
=ERROR
Es werden nur Dateien aufgelistet, die nicht importiert werden konnten. Die Ursache wird jeweils mit einem Meldungsschlüssel angezeigt.
=*FULL
Es werden alle Dateien aufgelistet. Für die nicht importierbaren Dateien wird die Ursache jeweils mit einem Meldungsschlüssel angezeigt.
=<var: enum-of_report_s: 1>
Name des Feldes mit dem Wert für REPORT.
EQUATES
Steuerungs-Operand nur für MF=C und MF=D:
Gibt an, ob bei der Expansion des Parameterbereichs auch Equates für die Werte der Felder des Parameterbereichs generiert werden sollen.
= *YES
Bei der Expansion des Parameterbereichs werden auch Equates für die Werte der Felder des Parameterbereichs generiert.
= *NO
Bei der Expansion des Parameterbereichs werden keine Equates für die Werte der Felder des Parameterbereichs generiert.
Returncodes
Der Returncode wird im Standardheader des Parameterbereichs abgelegt. Der Parameterbereich darf dann nicht im Read-only-Bereich liegen, sonst erfolgt Programmterminierung.
Standardheader: ccbbaaaa
Über die Ausführung des Makros IMPNFIL wird im Standardheader folgender Returncode übergeben (cc = SUBCODE2, bb = SUBCODE1, aaaa = MAINCODE):
X'cc' | X'bb' | X'aaaa' | Erläuterung |
X'00' | X'00' | X'0000' | kein Fehler |
X'00' | X'40' | X'0501' | CMS oder FILE: angeforderter Katalog nicht verfügbar |
X'00' | X'40' | X'0512' | Pubsetkennung ist nicht im MRSCAT eingetragen |
X'00' | X'40' | X'051B' | Benutzerkennung im angegebenen Pubset unbekannt |
X'00' | X'40' | X'051C' | Benutzer hat kein Zugriffsrecht auf angegebenen Pubset |
X'00' | X'40' | X'0535' | Es besteht keine Zugriffsberechtigung auf den Katalogeintrag der Datei |
X'00' | X'20' | X'0578' | interner Fehler bei Dateischutzprüfung |
X'00' | X'82' | X'0594' | nicht genügend virtueller Speicher verfügbar |
X'00' | X'20' | X'05C7' | interner Fehler im DMS |
X'00' | X'01' | X'05EE' | Pfadname nach Komplettierung zu lang |
X'00' | X'40' | X'05FC' | angegebene Benutzerkennung nicht im Home-Pubset |
X'00' | X'40' | X'0610' | Mindestens für einen der ausgewählten Dateinamen lieferte die Funktionsausführung einen Returncode |
X'00' | X'01' | X'0624' | Dateiname ungültig |
X'00' | X'40' | X'0640' | Zugriff auf Net-Storage wird vom Subsystem ONETSTOR wegen Kommunikationsproblemen mit dem Net-Client abgewiesen |
X'00' | X'04' | X'0642' | große Dateien auf Pubset nicht erlaubt |
X'00' | X'40' | X'0643' | Net-Client meldet Zugriffsfehler |
X'00' | X'40' | X'0644' | Net-Client meldet internen Fehler |
X'00' | X'40' | X'0645' | Datei auf Net-Storage nicht vorhanden |
X'00' | X'40' | X'0649' | Net-Server meldet ACL-Fehler |
X'00' | X'40' | X'064A' | Net-Client meldet, Zugriff auf Dateien auf dem Net-Storage-Volume verboten ist |
X'00' | X'40' | X'064B' | Zugriff auf Node-Files vom Net-Client nicht unterstützt |
X'00' | X'40' | X'064C' | Verzeichnis der angegebenen Benutzerkennung existiert nicht auf Net-Server |
X'00' | X'40' | X'064D' | Datei ist kein Node-File |
X'00' | X'40' | X'064E' | Node-File liegt nicht auf dem angegebenen Net-Storage-Volume |
X'00' | X'40' | X'064F' | FCB-TYPE der Datei und angegebene Dateistruktur stimmen nicht überein |
X'00' | X'40' | X'0650' | kein Node-File gefunden, das importiert oder aktualisiert werden kann |
X'00' | X'40' | X'0651' | Datei existiert, Import nicht möglich |
X'00' | X'40' | X'06CC' | nur bei Auswahlangabe (Wildcard): Keine Datei entspricht der Auswahlangabe |
X'00' | X'01' | X'FFFF' | falsche Funktionsnummer im Standardheader |
X'00' | X'03' | X'FFFF' | falsche Versionsnummer im Standardheader |
Weitere Returncodes, deren Bedeutung durch Konvention makroübergreifend festgelegt ist, können der Tabelle auf "Standardheader" (Standardheader) entnommen werden.
Das aufrufende Programm wird beendet, wenn bezüglich der Parameterliste folgende Fehler auftreten:
Die Liste ist dem Aufrufer nicht zugewiesen.
Die Liste ist nicht auf Wortgrenze ausgerichtet.
Die Liste ist gegen Schreibzugriff geschützt.
Layout der Operandenliste
Makroauflösung mit MF=D, sowie Standardwerten für EQUATES, PREFIX und MACID:
IMPNFIL MF=D MFTST MF=D,PREFIX=D,MACID=MAN,ALIGN=F, DMACID=MAN,SUPPORT=(E,D,C,M,L),DNAME=MANGLPL DMANGLPL DSECT , *,##### PREFIX=D, MACID=MAN ##### * PARAMETER AREA DMANHDR FHDR MF=(C,DMAN),EQUATES=NO DMANHDR DS 0A DMANFHE DS 0XL8 0 GENERAL PARAMETER AREA HEADER * DMANIFID DS 0A 0 INTERFACE IDENTIFIER DMANFCTU DS AL2 0 FUNCTION UNIT NUMBER * BIT 15 HEADER FLAG BIT, * MUST BE RESET UNTIL FURTHER NOTICE * BIT 14-12 UNUSED, MUST BE RESET * BIT 11-0 REAL FUNCTION UNIT NUMBER DMANFCT DS AL1 2 FUNCTION NUMBER DMANFCTV DS AL1 3 FUNCTION INTERFACE VERSION NUMBER * DMANRET DS 0A 4 GENERAL RETURN CODE DMANSRET DS 0AL2 4 SUB RETURN CODE DMANSR2 DS AL1 4 SUB RETURN CODE 2 DMANSR1 DS AL1 5 SUB RETURN CODE 1 DMANMRET DS 0AL2 6 MAIN RETURN CODE DMANMR2 DS AL1 6 MAIN RETURN CODE 2 DMANMR1 DS AL1 7 MAIN RETURN CODE 1 DMANFHL EQU 8 8 GENERAL OPERAND LIST HEADER LENGTH * DMANVOLUM DS CL6 VOLUME DMANFNAME DS CL80 FILENAME DMANPUBID DS CL4 PUBSET DMANFILS DS FL1 FILESTRUC * FILESTRUC VALUES DMANSTDF EQU 0 FILESTRUC = STD DMANPAMF EQU 1 FILESTRUC = PAM DMANSAMF EQU 2 FILESTRUC = SAM * DMANREPL DS FL1 REPLACE * REPLACE VALUES DMANREPN EQU 0 REPLACE=NO DMANREPY EQU 1 REPLACE=YES DMANREPU EQU 2 REPLACE=NODE FILE * DMANIGNP DS FL1 IGNPROT * IGNPROT VALUES DMANIGNO EQU 0 IGNPROT = NO DMANIGYE EQU 1 IGNPROT = YES * DMANLIST DS FL1 LIST * LIST VALUES DMANLISN EQU 0 LIST = NO DMANOUTO EQU 1 LIST = SYSOUT DMANOUTL EQU 2 LIST = SYSLST DMANOUTB EQU 3 LIST = BOTH * DMANREPO DS FL1 REPORT * REPORT VALUES DMANREPE EQU 0 REPORT = NO DMANREPF EQU 1 REPORT = FULL * DMANRES1 DS XL5 ALIGNMENT DMAN# EQU *-DMANHDR
Beispiel für eine Aufruffolge
MVC IMPNMFC(DMAN#),IMPNMFL IMPNFIL MF=M, - PARAM=IMPNMFC, - VOLUME='P@BX00',FILENAM='*', - PUBSET='X' IMPNFIL MF=E,PARAM=IMPNMFC . . IMPNMFC IMPNFIL MF=C IMPNMFL IMPNFIL MF=L,VOLUME='*DUMMY',FILENAM='AAA'