Code: Select all
PUNCH TYPORG=PO
Code: Select all
PUNCH TYPORG=PO
Code: Select all
//IEHLIST JOB ACCT,'LIST PDS',MSGCLASS=A,CLASS=B
Code: Select all
//STEP0001 EXEC PGM=IEHLIST
//SYSPRINT DD SYSOUT=*
//PDS1 DD DSN=your.pds.name,DISP=OLD
//SYSIN DD *
LISTPDS DSNAME=your.pds.name,FORMAT
/*
Code: Select all
MEMBERS TTRC
TESTMEM1 0000100F
TESTMEM2 0000040F <-- First member IEBPTPCH will process
TESTMEM3 00003C0F <-- Last member IEBPTPCH will process
TESTMEM4 00000A0F
TESTMEM5 00000B0F
TESTMEM6 00000C0F
TESTMEM7 00000D0F
TESTMEM8 00000E0F
TESTMEM1 0000060F <-- Second member IEBPTPCH will process
There is another method apart from what Enrico has suggested:IEBPTPCH currently does not specify the order in which it will print or punch members of a PDS or PDSE. When MEMBER control statements are not used (the entire PDS/PDSE is printed/punched), the members are processed in TTR order. When MEMBER control statements are used, the members are processed in the order in which the members are specified.
Code: Select all
//S1 EXEC SAS
Code: Select all
// OPTIONS='MACRO'
//PDSIN DD DISP=SHR,DSN=your.pds.name
//PSDOUT DD DSN=output-dataset,
// DISP=OLD,
// UNIT=SYSDA,SPACE=(CYL,(10,20),RLSE),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=0)
//SYSIN DD *,DLM=ZZ
PROC SOURCE
INDD=PDSIN
OUTDD=PSDOUT
NOPRINT
NULL;
RUN;
ZZ
Code: Select all
./ ADD NAME=member-name
Code: Select all
//S1 EXEC SAS
// OPTIONS='MACRO'
//PDSIN DD DISP=SHR,DSN=your.pds.name
//PSDOUT DD DSN=output-dataset,
// DISP=OLD,
// UNIT=SYSDA,SPACE=(CYL,(10,20),RLSE),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=0)
//SYSIN DD *,DLM=ZZ
PROC SOURCE
INDD=PDSIN
OUTDD=PSDOUT
NOPRINT
NULL;
FIRST '%%%%%% START of entire dataset %%%%%%';
BEFORE'%%%%%% START OF NEW MEMBER %%%%%%';
AFTER '%%%%%% END OF MEMBER %%%%%%';
LAST '%%%%%% END entire dataset %%%%%%';
RUN;
ZZ
You need to be a member in order to post a reply
Not a member? register to join our community
Members can start their own topics & subscribe to topics
It’s free and only takes a minute