Macro type: type S (E form / L form / D form / C form / M form) (see "Macro types")
The IMPNFIL macro catalogs node files stored on Net-Storage volumes for which the calling job has the ownership right. DMS creates the catalog entry for a node file in the TSOSCAT and in the file catalog of the Net-Storage volume of the NETSTOR type on the basis of the Inode attributes on the NFS server. For node files on a Net Storage volume of the NETVOL type, the catalog entry is only created in TSOSCAT, also based on the inode attributes on the NFS server. There is no file catalog on the Net-Storage volume for files on a Net-Storage of the NETVOL type.
By specifying a partially qualified file name or wildcard the user can also import more than one file with one call.
Notes
Co-owners of a user ID may import node files under this ID.
When entries in the user catalog need to be replaced (REPLACE= *YES/*NFU), these may not be locked and write access must be permissible.
Format
Operation | Operands |
|
|
| |
| |
,MACID= MAN / <macid> |
Operand descriptions
VOLUME
Volume serial number (VSN) of the Net-Storage volume on which the node files to be imported are stored.
=<c-string: 1..6>
VSN of the Net-Storage volume.
=<var: char:8>
Only possible with MF=M:
Symbolic address of a memory area of 6 bytes in which the VSN of the Net-Storage volume is stored.
FILENAM
Selection of the node files which are to be imported.
=<c-string 1..80: filename 1..54 with-wild-without-cat(80)>
Path name of the node file on the Net-Storage volume. A catalog ID may not be specified. Specification of a wildcard enables the selection of a file set.
Nonprivileged users can only import files of their user ID. Privileged users (TSOS privilege) can also import files of other users. Wildcards may be specified in the user ID.
=<var: char:80>
Only possible with MF=M:
Symbolic address of a memory area of 80 bytes in which the path name or the wildcard string for the desired file(s) is stored.
PUBSET
Determines the pubset in which the files are to be cataloged. The Net-Storage volume specified in the VOLUME operand must be assigned to the pubset specified here.
=*STD
The catalog entries are configured in the file catalog of the default pubset of the user ID.
=<c-string: 1..4>
Pubset Id of the pubset. The catalog entries are configured in the specified pubset’ file catalog.
=<var: char:4>
Only possible with MF=M:
Symbolic address of a memory area of 4 bytes in which the pubset Id is stored.
FILESTR
Determines the FILE-STRUCTURE attribute of the node file which is entered in the file catalog in accordance with the REPLACE operand.
=*STD
The following applies when REPLACE=*NO/*YES: A node file is imported into BS2000 as a PAM file when the file size on the NFS file system is not equal to zero. If the file size on the NFS file system is equal to zero, the imported file is assigned the default attributes of a file generated with CREATE-FILE.
The following applies when REPLACE=*NFU: The catalog entries of the node files are updated in BS2000 irrespective of the FILE-STRUCTURE attribute.
=*PAM
The following applies when REPLACE=*NO/*YES: A node file is imported into BS2000 as a PAM file irrespective of the file size on the NFS file system.
When REPLACE=*NFU, the catalog entries of PAM node files in BS2000 are updated.
=*SAM
For REPLACE=*NO/*YES the following applies: a node file will be imported into BS200 as a SAM file, irrespective of the file size on the NFS file system. At node file creation, the Net-Storage coded character set is entered according to its definition in the user entry. The resulting NETCCS of the file is identified based on the following table:
CCS entry 1 | NETCCS entry 1 | Resulting NETCCS in the catalog entry of the node file |
EDF03IRV/*NONE | *ISO | ISO88591; during code conversion, EDF041 is assumed for CCS |
EDF03DRV | *ISO | ISO88591; during code conversion, EDF04DRV is assumed for CCS |
EDF04DRV | *ISO | ISO88591 |
EDF04x | *ISO | ISO8859x with x=1,2,..F |
ISO8859x | *ISO or *NO-CONV | ISOx |
UTFx | *ISO or *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> |
1User entry (SYSSRPM) or CATALOG or CREATE-FILE or MODIFY-FILE-ATTRIBUTES entry
If REPLACE=*NFU, the catalog entries of SAM node files are updated in BS2000.
=<var: enum-of_filestr_s: 1>
Name of the field with the value for FILESTR.
REPLACE
Specifies whether files which already exist in BS2000 are replaced or whether only the catalog entries are updated on the NFS server on the basis of the Inode attributes.
=*NO
Files which already exist are not replaced, nor are their catalog entries updated.
=*YES
Files which already exist on the pubset are replaced by the specified node files. Any files on public space or on Net-Storage are deleted, and files on private disk are exported. When the node files are imported, the entries in the TSOSCAT and in the file catalog of the Net-Storage volume are created anew.
=*NFU
In the case of files which already exist, the entries in the TSOSCAT and in the file catalog of the Net-Storage volume are updated on the basis of the Inode attributes on the NFS server. Here the FILESTR operand determines that the update of the catalog
entries only takes place for files with the specified file structure. When FILESTR=*STD, the files are updated irrespective of the file structure.
=<var: enum-of_replace_s: 1>
Name of the field containing the value for REPLACE.
IGNPROT
This operand is only available to privileged users (TSOS privilege).
Specifies whether files which are already cataloged are to be overwritten regardless of an existing write protection.
=*NO
The write protection is observed.
=*YES
The write protection is ignored.
=<var: enum-of_ignprot_s: 1>
Name of the field containing the value for IGNPROT.
LIST
Specifies whether a processing log is to be output to SYSOUT and/or SYSLST. The default value is *NONE, i.e. no log is created.
=*NO
No output takes plce.
=*SYSOUT
The processing log is output to SYSOUT.
=*SYSLST
The processing log is output to SYSLST.
=*BOTH
The processing log is output to SYSOUT and SYSLST.
=<var: enum-of_list_s: 1>
Name of the field containing the value for LIST.
REPORT
Determines the scope of the log when a processing log was requested in the LIST operand.
=ERROR
Only files which could not be imported are listed. The reason is displayed in each case with a message code.
=*FULL
All files are listed. The reason is specified with a message code for each file which could not be imported.
=<var: enum-of_report_s: 1>
Name of the field containing the value for REPORT.
EQUATES
Control operand only for MF=C and MF=D:
Specifies whether equates should also be generated for the values of the parameter area’s fields when the parameter area is expanded.
= *YES
Equates are also generated for the values of the fields of the parameter area when the parameter area is expanded.
= *NO
No equates are generated for the values of the fields of the parameter area when the parameter area is expanded.
Return codes
The return code is placed in the standard header of the parameter area. The parameter area may then not be located in the read-only area, otherwise the program terminates.
Standard header: ccbbaaaa
The following code relating to execution of the IMPNFIL macro is returned in the standard header (cc = SUBCODE2, bb = SUBCODE1, aaaa = MAINCODE):
X'cc' | X'bb' | X'aaaa' | Meaning |
X'00' | X'00' | X'0000' | No error |
X'00' | X'40' | X'0501' | CMS or FILE: Requested catalog not available |
X'00' | X'40' | X'0512' | Pubset Id is not entered in the MRSCAT |
X'00' | X'40' | X'051B' | User ID not known in specified pubset |
X'00' | X'40' | X'051C' | User has no access right to specified pubset |
X'00' | X'40' | X'0535' | There is no access right to the file catalog entry |
X'00' | X'20' | X'0578' | Internal error in the file protection check |
X'00' | X'82' | X'0594' | Not enough virtual memory available |
X'00' | X'20' | X'05C7' | Internal error in DMS |
X'00' | X'01' | X'05EE' | Path name too long after completion |
X'00' | X'40' | X'05FC' | Specified user ID not on home pubset |
X'00' | X'40' | X'0610' | Execution of the function returned a return code for at least one of the selected file names |
X'00' | X'01' | X'0624' | File name invalid |
X'00' | X'40' | X'0640' | Access to Net-Storage is rejected by the ONETSTOR subsystem because of communication problems with the net client |
X'00' | X'04' | X'0642' | Large files not permitted on pubset |
X'00' | X'40' | X'0643' | Net client reports access error |
X'00' | X'40' | X'0644' | Net client reports internal error |
X'00' | X'40' | X'0645' | File does not exist on Net-Storage |
X'00' | X'40' | X'0649' | Net server reports ACL error |
X'00' | X'40' | X'064A' | Net client reports that access to files on the Net-Storage volume is forbidden |
X'00' | X'40' | X'064B' | Access to node files from the net client not supported |
X'00' | X'40' | X'064C' | Directory of the specified user ID does not exist on net server |
X'00' | X'40' | X'064D' | File is not a node file |
X'00' | X'40' | X'064E' | Node file not located on the specified Net-Storage volume |
X'00' | X'40' | X'064F' | FCB-TYPE of file and specified file structure do not match |
X'00' | X'40' | X'0650' | No node file found which can be imported or updated |
X'00' | X'40' | X'0651' | File exists, import not possible |
X'00' | X'40' | X'06CC' | Only with wildcard selection: No file matches the specified selection entry |
X'00' | X'01' | X'FFFF' | Wrong function number in standard header |
X'00' | X'03' | X'FFFF' | Wrong version number in standard header |
Further return codes, whose meanings are defined by conventions valid for all macros, can be found in the table on "Standard header" (standard header).
The calling program is terminated if one of the following errors occurs with respect to the parameter list:
the list is not assigned to the caller
the list is not aligned on a word boundary
the list is write-protected.
Layout of the operand list
Macro expansion with MF=D, and default values for EQUATES, PREFIX and 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
Sample calling sequence
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'