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.