Getting ICE218A 3 message for ICETOOL program
Posted: Mon Mar 25, 2013 6:15 pm
Hi ,
I want to insert the character 'X' at the end of each records. For this, i have coded the icetool program like the below.
Control cards:
COPY FROM(DATEFL) TO(TEMP1) USING(CTL1)
SUBSET FROM(INFL) TO(TEMP2) REMOVE INPUT HEADER TRAILER USING(CTL2)
CTL1:
OUTFIL FNAMES=TEMP1,FTOV,
BUILD=(1:C'H#',3:C'ABCDEFGH',11:2X,13:1,8,21:2112X,2133:C'X')
CTL2:
OUTFIL FNAMES=TEMP2,FTOV,
BUILD=(1:1,2132,2133:C'X'),
TRAILER1=(1:C'T#',3:C'ABCDEFGH',
11:2X,13:COUNT=(EDIT=(TTTTTTTT)),2133:C'X'),
REMOVECC
***************************************************
date file:
----+----1
**********
20010124
Input file:
DETAIL RECORD1
DETAIL RECORD2
.
.
.
.
DETAIL RECORD777
Expected output:
output file:
H#ABCDEFGH 20010124 X(LAST FIELD)
DETAIL RECORD1 X(LAST FIELD)
DETAIL RECORD2 X(LAST FIELD)
. X(LAST FIELD)
. X(LAST FIELD)
. X(LAST FIELD)
. X(LAST FIELD)
DETAIL RECORD777 X(LAST FIELD)
T#ABCDEFGH 00000777 X(LAST FIELD)
Input file --> LRECL = 2136, VB File
Output file--> LRECL = 2137, VB File(to insert last character as X)
when i submit the job i am getting the below abend. i tried modifying the control cards in trial and error methods but invain.
Abend: ICE218A 3 360 BYTE VARIABLE RECORD IS SHORTER THAN 2132 BYTE MINIMUM FOR TEMP2
Note: Detail record lengh can be vary like 360, 361, 400.
The above code works fine for header and trailer but not for detail records. ie, when i remove the below build statement, my JOB works fine but the indicator value(X) appears only for header and trailer.
So Can anyone please confirm whether the below statement is valid for CTL2.
BUILD=(1:1,2132,2133:C'X'),
I want to insert the character 'X' at the end of each records. For this, i have coded the icetool program like the below.
//STEP010 EXEC PGM=ICETOOL
//DATEFL DD DSN=<Date file>,DISP=SHR
//INFL DD DSN=<Input file>,DISP=SHR
//TEMP1 DD DSN=&&TEMP1,DISP=(,PASS),
// RECFM=VB,LRECL=2137,
// DATACLAS=&DCLAS,DSORG=PS
//TEMP2 DD DSN=&&TEMP2,DISP=(,PASS),
// RECFM=VB,LRECL=2137,
// DATACLAS=&DCLAS,DSORG=PS
//TOOLIN DD DSN=<CTRL1>,DISP=SHR
//CTL1CNTL DD DSN=<CTRL2>,DISP=SHR
//CTL2CNTL DD DSN=<CTRL3>,DISP=SHR
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYMNOUT DD SYSOUT=*
//*
//STEP020 EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD DSN=&&TEMP1,DISP=(OLD,DELETE)
// DD DSN=&&TEMP2,DISP=(OLD,DELETE)
//SYSUT2 DD DSN=<New file>
//DATEFL DD DSN=<Date file>,DISP=SHR
//INFL DD DSN=<Input file>,DISP=SHR
//TEMP1 DD DSN=&&TEMP1,DISP=(,PASS),
// RECFM=VB,LRECL=2137,
// DATACLAS=&DCLAS,DSORG=PS
//TEMP2 DD DSN=&&TEMP2,DISP=(,PASS),
// RECFM=VB,LRECL=2137,
// DATACLAS=&DCLAS,DSORG=PS
//TOOLIN DD DSN=<CTRL1>,DISP=SHR
//CTL1CNTL DD DSN=<CTRL2>,DISP=SHR
//CTL2CNTL DD DSN=<CTRL3>,DISP=SHR
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYMNOUT DD SYSOUT=*
//*
//STEP020 EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD DSN=&&TEMP1,DISP=(OLD,DELETE)
// DD DSN=&&TEMP2,DISP=(OLD,DELETE)
//SYSUT2 DD DSN=<New file>
Control cards:
COPY FROM(DATEFL) TO(TEMP1) USING(CTL1)
SUBSET FROM(INFL) TO(TEMP2) REMOVE INPUT HEADER TRAILER USING(CTL2)
CTL1:
OUTFIL FNAMES=TEMP1,FTOV,
BUILD=(1:C'H#',3:C'ABCDEFGH',11:2X,13:1,8,21:2112X,2133:C'X')
CTL2:
OUTFIL FNAMES=TEMP2,FTOV,
BUILD=(1:1,2132,2133:C'X'),
TRAILER1=(1:C'T#',3:C'ABCDEFGH',
11:2X,13:COUNT=(EDIT=(TTTTTTTT)),2133:C'X'),
REMOVECC
***************************************************
date file:
----+----1
**********
20010124
Input file:
DETAIL RECORD1
DETAIL RECORD2
.
.
.
.
DETAIL RECORD777
Expected output:
output file:
H#ABCDEFGH 20010124 X(LAST FIELD)
DETAIL RECORD1 X(LAST FIELD)
DETAIL RECORD2 X(LAST FIELD)
. X(LAST FIELD)
. X(LAST FIELD)
. X(LAST FIELD)
. X(LAST FIELD)
DETAIL RECORD777 X(LAST FIELD)
T#ABCDEFGH 00000777 X(LAST FIELD)
Input file --> LRECL = 2136, VB File
Output file--> LRECL = 2137, VB File(to insert last character as X)
when i submit the job i am getting the below abend. i tried modifying the control cards in trial and error methods but invain.
Abend: ICE218A 3 360 BYTE VARIABLE RECORD IS SHORTER THAN 2132 BYTE MINIMUM FOR TEMP2
Note: Detail record lengh can be vary like 360, 361, 400.
The above code works fine for header and trailer but not for detail records. ie, when i remove the below build statement, my JOB works fine but the indicator value(X) appears only for header and trailer.
So Can anyone please confirm whether the below statement is valid for CTL2.
BUILD=(1:1,2132,2133:C'X'),