We are using PDSMAN FASTCOPY to unload a PDS of program objects (LOADLIB). We want to load this into a PDSE. The PDSE load fails:
//COPY EXEC PGM=IEBCOPY //FCOPYON DD DUMMY //SYSPRINT DD SYSOUT=* //SYSIN DD * * V4PDS -) SEQ COPY INDD=((INTDC,R)),OUTDD=HDSEQ S M=TESTPGM * SEQ -) PDSE COPY INDD=((HDSEQ,R)),OUTDD=HDPDE S M=TESTPGM /* //INTDC DD DISP=SHR,DSN=LOADLIB.PDS //HDPDE DD DISP=SHR,DSN=LOADLIB.PDSE //HDSEQ DD DISP=SHR,DSN=LOADLIB.SEQ ... FCO477A IGW01160T NON-PROGRAM OBJECT MEMBER ENCOUNTERED DURING FCO477A LOAD PROCESSING OF A PROGRAM LIBRARY. MEMBER TESTPGM WAS NOT LOADED
The unloaded PDSE (program object) is in a different format so you cannot unload a PDS and reload that to PDSE (or vice versa).
There are a couple of approaches that can be used:
Selective FastCopy Processing
Processing of IEBCOPY COPY, COPYMOD, and ALTERMOD operations can be selectively enabled or disabled at the job step level.
//FCOPYOFF DD DUMMY
Note: This override is ignored if the output is a PDSE or program object library for which PDSMAN has interest (as defined by one or more PDSMAN Initialization Control Statements) and the input is also a PDSE or program object library.
//FCOPYON DD DUMMY
Specifying these DD statements overrides the value coded on the $IEBCOPY FASTCOPY= parameter.