Skolusu
Senior Member
Joined: 07 Dec 2007 Posts: 2205 Location: San Jose
|
|
|
|
Puspojit,
Here is a DFSORT job which will give you the desired results. The number of files you want to split is dynamically generated. If the funds file is empy the job will not generate the dynamic JCL
Verify the output from step0200. It will have the actual Job required to split the input file. Once verified that JCL is created correctly change the following statement in step0200
Code: |
//SORTOUT DD SYSOUT=*
|
to the following
Code: |
//SORTOUT DD SYSOUT=(*,INTRDR)
|
The following JCL will create a dynamic JCL based on the policy numbers.
Code: |
//STEP0100 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTIN DD *
AAA
BBB
CCC
//DDOUT DD DSN=&&DD,DISP=(,PASS),SPACE=(CYL,(1,1),RLSE)
//CCOUT DD DSN=&&CC,DISP=(,PASS),SPACE=(CYL,(1,1),RLSE)
//SORTOUT DD DUMMY
//SYSIN DD *
SORT FIELDS=COPY
OUTFIL NULLOFL=RC4
OUTFIL FNAMES=DDOUT,REMOVECC,NODETAIL,BUILD=(80X),
SECTIONS=(1,3,
HEADER3=('//*',80:X),
TRAILER3=('//',1,3,6X,'DD DSN=TAX.',1,3,',',/,
'//',12X,'DISP=(NEW,CATLG,DELETE),',/,
'//',12X,'UNIT=SYSDA,',/,
'//',12X,'SPACE=(CYL,(2,1),RLSE)',80:X))
OUTFIL FNAMES=CCOUT,REMOVECC,NODETAIL,BUILD=(80X),
HEADER1=(1:'//SYSIN DD *',/,
3:'OPTION COPY'),
SECTIONS=(1,3,
TRAILER3=(3:'OUTFIL FNAMES=',1,3,
',INCLUDE=(1,3,CH,EQ,C''',1,3,'''',C')',80:X)),
TRAILER1=('//*',80:X)
//*
//STEP0200 EXEC PGM=SORT,COND=(4,EQ,STEP0100)
//SYSOUT DD SYSOUT=*
//SYSIN DD *
OPTION COPY
/*
//SORTOUT DD SYSOUT=*
//SORTIN DD DATA,DLM=$$
//SPLITJOB JOB 'SPLIT JOB',
// CLASS=A,
// MSGCLASS=Y,
// MSGLEVEL=(1,1),
// NOTIFY=T-ID
//*
//STEP0100 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTIN DD DSN=YOUR.TAX.FILE.TO.BE.SPLIT,
// DISP=SHR
$$
// DD DSN=&DD,DISP=(OLD,PASS)
// DD DSN=&CC,DISP=(OLD,PASS)
//* |
The output generated from the above jcl is
Code: |
//SPLITJOB JOB 'SPLIT JOB',
// CLASS=A,
// MSGCLASS=Y,
// MSGLEVEL=(1,1),
// NOTIFY=T-ID
//*
//STEP0100 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTIN DD DSN=YOUR.TAX.FILE.TO.BE.SPLIT,
// DISP=SHR
//*
//AAA DD DSN=TAX.AAA,
// DISP=(NEW,CATLG,DELETE),
// UNIT=SYSDA,
// SPACE=(CYL,(2,1),RLSE)
//*
//BBB DD DSN=TAX.BBB,
// DISP=(NEW,CATLG,DELETE),
// UNIT=SYSDA,
// SPACE=(CYL,(2,1),RLSE)
//*
//CCC DD DSN=TAX.CCC,
// DISP=(NEW,CATLG,DELETE),
// UNIT=SYSDA,
// SPACE=(CYL,(2,1),RLSE)
//SYSIN DD *
OPTION COPY
OUTFIL FNAMES=AAA,INCLUDE=(1,3,CH,EQ,C'AAA')
OUTFIL FNAMES=BBB,INCLUDE=(1,3,CH,EQ,C'BBB')
OUTFIL FNAMES=CCC,INCLUDE=(1,3,CH,EQ,C'CCC')
//*
|
|
|