Finally I made the sort to convert those numeric fields...
Code: Select all
//********************************************************************
//STEP0040 EXEC PGM=ICETOOL
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//SHOWDEF DD SYSOUT=*
//ENT1 DD DSN=ENTRADA1
//SAL1 DD DSN=SALIDA1,DISP=(NEW,CATLG),
// SPACE=(CYL,(5,5),RLSE),
// DCB=(RECFM=FB,DSORG=PS,LRECL=250,BLKSIZE=0)
//ENT2 DD DSN=ENTRADA2,DISP=SHR
//SAL2 DD DSN=SALIDA2,DISP=(NEW,CATLG),
// SPACE=(CYL,(5,5),RLSE),
// DCB=(RECFM=FB,DSORG=PS,LRECL=250,BLKSIZE=0)
//TOOLIN DD *
SUBSET FROM(ENT1) TO(SAL1) REMOVE OUTPUT HEADER TRAILER USING(FOR1)
SUBSET FROM(ENT2) TO(SAL2) REMOVE OUTPUT HEADER TRAILER USING(FOR2)
//FOR1CNTL DD *
OUTFIL FNAMES=SAL1,REMOVECC,
BUILD=(001,12,
013,15,SFF,TO=PD,LENGTH=8,
028,15,SFF,TO=PD,LENGTH=8,
043,15,SFF,TO=PD,LENGTH=8,
058,15,SFF,TO=PD,LENGTH=8,
073,15,SFF,TO=PD,LENGTH=8,
088,15,SFF,TO=PD,LENGTH=8,
103,15,SFF,TO=PD,LENGTH=8,
118,15,SFF,TO=PD,LENGTH=8,
133,15,SFF,TO=PD,LENGTH=8,
148,15,SFF,TO=PD,LENGTH=8,
163,15,SFF,TO=PD,LENGTH=8,
250:C'*')
//FOR2CNTL DD *
OUTFIL FNAMES=SAL2,REMOVECC,
BUILD=(001,12,
013,15,SFF,TO=PD,LENGTH=8,
028,15,SFF,TO=PD,LENGTH=8,
043,15,SFF,TO=PD,LENGTH=8,
058,15,SFF,TO=PD,LENGTH=8,
073,15,SFF,TO=PD,LENGTH=8,
088,15,SFF,TO=PD,LENGTH=8,
103,15,SFF,TO=PD,LENGTH=8,
118,15,SFF,TO=PD,LENGTH=8,
133,15,SFF,TO=PD,LENGTH=8,
148,15,SFF,TO=PD,LENGTH=8,
163,15,SFF,TO=PD,LENGTH=8,
250:C'*')
The problem is the inverse (PD to SFF). The problem is the sign, I managed to put it at the start of the field instead in the end. The function "EDIT(TTT....),SIGNS(+,-)" does not work in that case. Any body know why?
This is what I got:
Code: Select all
//********************************************************************
//STEP0040 EXEC PGM=SORT
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SORTIN DD DSN=ENTRADA
//SORTOUT DD DSN=SALIDA,
// SPACE=(CYL,(5,5),RLSE),
// DCB=(RECFM=FB,DSORG=PS,LRECL=500,BLKSIZE=0)
//SYSIN DD *
OPTION COPY
OUTFIL FNAMES=SORTOUT,REMOVECC,
HEADER1=(C'HDR - ',
DATENS=(4MD),
500:C'*'),
BUILD=(001,12,
013,08,PD,M26,
021,08,PD,M26,
029,08,PD,M26,
037,08,PD,M26,
045,08,PD,M26,
053,08,PD,M26,
061,08,PD,M26,
069,08,PD,M26,
077,08,PD,M26,
085,08,PD,M26,
093,08,PD,M26,
101,08,PD,M26,
109,08,PD,M26,
117,08,PD,M26,
125,08,PD,M26,
133,08,PD,M26,
141,08,PD,M26,
149,08,PD,M26,
157,08,PD,M26,
165,08,PD,M26,
173,08,PD,M26,
181,08,PD,M26,
189,03,
500:C'*'),
TRAILER1=(C'TRL - ',
C'CANT. REG = ',
COUNT(M11,LENGTH=10),
500:C'*')
//