Skolusu
Senior Member
Joined: 07 Dec 2007 Posts: 2205 Location: San Jose
|
|
|
|
samuel_Inba,
The following DFSORT JCL will give you the desired results. This job will generate a dynamic JCL which will be submitted via intrdr which in turn will create the report
Verify the output from step0200 and if you see the JCL is generated correctly replace the following statement in step0200
Code: |
//SORTOUT DD SYSOUT=*
|
with
Code: |
//SORTOUT DD SYSOUT=(*,INTRDR)
|
Code: |
//STEP0100 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTIN DD *
PUT MF FILE NAME1 ' NON-MF FILE NAME1'
PUT MF FILE NAME2 ' NON-MF FILE NAME2'
PUT MF FILE NAME3 ' NON-MF FILE NAME3'
PUT MF FILE NAME4 ' NON-MF FILE NAME4'
//TOOL DD DSN=&&T,DISP=(,PASS),SPACE=(CYL,(5,5,),RLSE)
//INDD DD DSN=&&I,DISP=(,PASS),SPACE=(CYL,(5,5,),RLSE)
//CTLDD DD DSN=&&C,DISP=(,PASS),SPACE=(CYL,(5,5,),RLSE)
//SYSIN DD *
SORT FIELDS=COPY
INREC PARSE=(%00=(STARTAFT=C'PUT',ENDBEFR=X'7D',FIXLEN=080),
%01=(ENDBEFR=X'7D',FIXLEN=080)),
BUILD=(%00,JFY=(LEAD=C'DISP=SHR,DSN=',SHIFT=LEFT),%01)
OUTFIL FNAMES=TOOL,REMOVECC,
BUILD=(C' COPY FROM(INP',SEQNUM,3,ZD,
C') TO(OUT) USING(C',SEQNUM,3,ZD,C')',80:X),
TRAILER1=(C'/*',80:X)
OUTFIL FNAMES=INDD,
BUILD=(C'//INP',SEQNUM,3,ZD,3X,C'DD ',1,54,80:X)
OUTFIL FNAMES=CTLDD,REMOVECC,
BUILD=(C'//C',SEQNUM,3,ZD,C'CNTL DD *',/,
C' OUTFIL FNAMES=OUT,VTOF,NODETAIL,BUILD=(80:X),',/,
C' TRAILER1=(''',81,44,C' : ''',C',COUNT)',80:X),
TRAILER1=(C'/*',80:X)
/*
//STEP0200 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SYSIN DD *
SORT FIELDS=COPY
/*
//SORTOUT DD SYSOUT=*
//SORTIN DD DATA,DLM=$$
//TIDXXXXA JOB 'COPY',
// CLASS=A,
// MSGCLASS=Y,
// MSGLEVEL=(1,1),
// NOTIFY=TID
//*
//STEP0100 EXEC PGM=ICETOOL
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//OUT DD DSN=OUTPUT COUNT OF ALL DSN,
// DISP=(MOD,CATLG,DELETE),
// UNIT=SYSDA,
// SPACE=(CYL,(X,Y),RLSE)
//TOOLIN DD *
$$
// DD DSN=&T,DISP=(OLD,PASS)
// DD DSN=&C,DISP=(OLD,PASS)
// DD DSN=&I,DISP=(OLD,PASS)
|
The output from step0200 will be something like this
Code: |
//TIDXXXXA JOB 'COPY',
// CLASS=A,
// MSGCLASS=Y,
// MSGLEVEL=(1,1),
// NOTIFY=TID
//*
//STEP0100 EXEC PGM=ICETOOL
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//OUT DD DSN=OUTPUT COUNT OF ALL DSN,
// DISP=(MOD,CATLG,DELETE),
// UNIT=SYSDA,
// SPACE=(CYL,(X,Y),RLSE)
//TOOLIN DD *
COPY FROM(INP001) TO(OUT) USING(C001)
COPY FROM(INP002) TO(OUT) USING(C002)
COPY FROM(INP003) TO(OUT) USING(C003)
COPY FROM(INP004) TO(OUT) USING(C004)
/*
//C001CNTL DD *
OUTFIL FNAMES=OUT,VTOF,NODETAIL,BUILD=(80:X),
TRAILER1=(' NON-MF FILE NAME1 : ',COUNT)
//C002CNTL DD *
OUTFIL FNAMES=OUT,VTOF,NODETAIL,BUILD=(80:X),
TRAILER1=(' NON-MF FILE NAME2 : ',COUNT)
//C003CNTL DD *
OUTFIL FNAMES=OUT,VTOF,NODETAIL,BUILD=(80:X),
TRAILER1=(' NON-MF FILE NAME3 : ',COUNT)
//C004CNTL DD *
OUTFIL FNAMES=OUT,VTOF,NODETAIL,BUILD=(80:X),
TRAILER1=(' NON-MF FILE NAME4 : ',COUNT)
/*
//INP001 DD DISP=SHR,DSN=MF FILE NAME1
//INP002 DD DISP=SHR,DSN=MF FILE NAME2
//INP003 DD DISP=SHR,DSN=MF FILE NAME3
//INP004 DD DISP=SHR,DSN=MF FILE NAME4
|
|
|