Page 1 of 2

ICETOOL

PostPosted: Thu Nov 21, 2013 7:45 pm
by sange-sherin
Hello,

Below is the requirement

I receive 2 files. One with data (file 1) and the other with just the record count (file 2). What I need to do is count the number of records in file 1 and check to see if the value matches with what is present on file 2. If the counts match need to set RC = 0 and if not set it to something else so that it can be handled accordingly in the next step in the JCL.

Thanks

Re: ICETOOL

PostPosted: Thu Nov 21, 2013 7:47 pm
by sange-sherin
when i try the following JCL- i am getting retur code as "0" even if the counts are not matching. Can anyone help me to slove the issue

//S1    EXEC  PGM=ICETOOL
//TOOLMSG DD SYSOUT=*
//DFSMSG  DD SYSOUT=*
//RCDS DD DSN=...  input file1 (FB/80)
//CT DD DSN=...    input file2 (FB/80)
//CTL2CNTL DD DSN=&&T1,UNIT=SYSDA,SPACE=(TRK,(1,1)),DISP=(,PASS)
//TOOLIN DD *
COPY FROM(RCDS) USING(CTL1)
COUNT FROM(CT) EMPTY RC8 USING(CTL2)
//CTL1CNTL DD *
  OUTFIL FNAMES=CTL2CNTL,REMOVECC,NODETAIL,
   TRAILER1=('  INCLUDE COND=(1,10,ZD,EQ,',
     COUNT=(TO=ZD,LENGTH=10),C') ')     
/*

Re: ICETOOL

PostPosted: Thu Nov 21, 2013 8:26 pm
by NicC
Please use a descriptive title - ICETOOL does not describe your problem.
Have you checked your syntax for TRAILER1 against that described in the manual? I do not seem able to match it up.

Re: ICETOOL

PostPosted: Thu Nov 21, 2013 9:36 pm
by skolusu
sange-sherin,

The JCL you posted should give you the desired results. Show us the contents of COUNT file and also the complete DFSMSG sysout

Re: ICETOOL

PostPosted: Fri Nov 22, 2013 12:12 pm
by sange-sherin
COUNT file contents:

Command ===> S
****** ***************************** Top of Data **************
000001 0000005
****** **************************** Bottom of Data ************

DFSMSG message:
********************************* TOP OF DATA **********************************
SYNCSORT FOR Z/OS 1.4.1.0RI U.S. PATENTS: 4210961, 5117495 (C) 2010 SYNCSO
Prudential Financial z/OS 1.13.0
SYNCSORT LICENSED FOR CPU SERIAL NUMBER 1D3F7, MODEL 2827 506 LICEN
CTL1CNTL :
OUTFIL FNAMES=CTL2CNTL,REMOVECC,NODETAIL,
TRAILER1=(COUNT=(TO=ZD,LENGTH=7))
PARMLIST :
OPTION RESINV=0,ARESINV=0,MSGDDN=DFSMSG,SORTIN=RCDS,SORTDD=CTL1,COPY
WER428I CALLER-PROVIDED IDENTIFIER IS "0001"
WER276B SYSDIAG= 26778, 3052152, 3052152, 4818600
WER415I DSM FACILITY ACTIVE: STORAGE ADJUSTED BY 0 BYTES
WER164B 9,052K BYTES OF VIRTUAL STORAGE AVAILABLE, MAX REQUESTED,
WER164B 0 BYTES RESERVE REQUESTED, 2,373,442 BYTES USED
WER146B 20K BYTES OF EMERGENCY SPACE ALLOCATED
WER108I RCDS : RECFM=VB ; LRECL= 313; BLKSIZE= 27966
WER073I RCDS : DSNAME=BEJGB2.X186625.FXDWDT.DATA.NULL.D131113
WER110I CTL2CNTL : RECFM=VB ; LRECL= 313; BLKSIZE= 27998
WER074I CTL2CNTL : DSNAME=SYS13325.T083026.RA000.X186625M.T1.H04
WER410B 7,848K BYTES OF VIRTUAL STORAGE AVAILABLE ABOVE THE 16MEG LINE,
WER410B 0 BYTES RESERVE REQUESTED, 2,225,986 BYTES USED
WER405I CTL2CNTL : DATA RECORDS OUT 0; TOTAL RECORDS OUT 1
WER211B SYNCSMF CALLED BY SYNCSORT; RC=0000
WER449I SYNCSORT GLOBAL DSM SUBSYSTEM ACTIVE
WER416B RCDS : EXCP'S=1,UNIT=3390,DEV=976C,CHP=(9497B0B3,1),VOL=TST261
WER416B OUTFIL WAS USED FOR CTL1OUT
WER054I RCD IN 8, OUT 8
WER169I RELEASE 1.4 BATCH 0525 TPF LEVEL 1.0
WER052I END SYNCSORT - X186625M,STEP01,,DIAG=E800,7348,C08A,00CC,A076,4CE3,82
****************************** BOTTOM OF DATA ********************************


TOOLMSG:

********************************* TOP OF DATA **********************************
SYT000I SYNCTOOL RELEASE 1.7.1 - COPYRIGHT 2008 SYNCSORT INC.
SYT001I INITIAL PROCESSING MODE IS "STOP"
SYT002I "TOOLIN" INTERFACE BEING USED

COPY FROM(RCDS) USING(CTL1)
SYT020I SYNCSORT CALLED WITH IDENTIFIER "0001"
SYT030I OPERATION COMPLETED WITH RETURN CODE 0

COUNT FROM(CT) EMPTY USING(CTL2) RC8
SYT050E INVALID OPERAND ON "COUNT" STATEMENT
SYT030I OPERATION COMPLETED WITH RETURN CODE 12

SYT015I PROCESSING MODE CHANGED FROM "STOP" TO "SCAN" DUE TO OPERATION FAILURE

SYT004I SYNCTOOL PROCESSING COMPLETED WITH RETURN CODE 12
******************************** BOTTOM OF DATA ********************************

Re: ICETOOL

PostPosted: Fri Nov 22, 2013 12:16 pm
by sange-sherin
If i try with RC8- i am getting MAXCC code as "12".

//TOOLIN DD *
COPY FROM(RCDS) USING(CTL1)
COUNT FROM(CT) EMPTY USING(CTL2) RC8

And if i try by changing the return code RC8 to RC4..... i am getting MAXCC code as "0" even though the counts are matching..

TOOLMSG:
********************************* TOP OF DATA **********************
SYT000I SYNCTOOL RELEASE 1.7.1 - COPYRIGHT 2008 SYNCSORT INC.
SYT001I INITIAL PROCESSING MODE IS "STOP"
SYT002I "TOOLIN" INTERFACE BEING USED

COPY FROM(RCDS) USING(CTL1)
SYT020I SYNCSORT CALLED WITH IDENTIFIER "0001"
SYT030I OPERATION COMPLETED WITH RETURN CODE 0

COUNT FROM(CT) EMPTY USING(CTL2) RC4
SYT020I SYNCSORT CALLED WITH IDENTIFIER "0002"
SYT056I CONDITION FOR RECORD COUNT NOT SATISFIED - RC=0 SET
SYT030I OPERATION COMPLETED WITH RETURN CODE 0

SYT004I SYNCTOOL PROCESSING COMPLETED WITH RETURN CODE 0


DFSMSG:

SYNCSORT FOR Z/OS 1.4.1.0RI U.S. PATENTS: 4210961, 5117495 (C) 2010 SYNCSO
Prudential Financial z/OS 1.13.0
SYNCSORT LICENSED FOR CPU SERIAL NUMBER 1D3F7, MODEL 2827 506 LICEN
CTL1CNTL :
OUTFIL FNAMES=CTL2CNTL,REMOVECC,NODETAIL,
TRAILER1=(COUNT=(TO=ZD,LENGTH=7))
PARMLIST :
OPTION RESINV=0,ARESINV=0,MSGDDN=DFSMSG,SORTIN=RCDS,SORTDD=CTL1,COPY
WER428I CALLER-PROVIDED IDENTIFIER IS "0001"
WER276B SYSDIAG= 1988912, 4031486, 4031486, 4727550
WER415I DSM FACILITY ACTIVE: STORAGE ADJUSTED BY 0 BYTES
WER164B 9,052K BYTES OF VIRTUAL STORAGE AVAILABLE, MAX REQUESTED,
WER164B 0 BYTES RESERVE REQUESTED, 2,373,442 BYTES USED
WER146B 20K BYTES OF EMERGENCY SPACE ALLOCATED
WER108I RCDS : RECFM=VB ; LRECL= 313; BLKSIZE= 27966
WER073I RCDS : DSNAME=BEJGB2.X186625.FXDWDT.DATA.NULL.D131113
WER110I CTL2CNTL : RECFM=VB ; LRECL= 313; BLKSIZE= 27998
WER074I CTL2CNTL : DSNAME=SYS13326.T014451.RA000.X186625A.T1.H04
WER410B 7,848K BYTES OF VIRTUAL STORAGE AVAILABLE ABOVE THE 16MEG LINE,
WER410B 0 BYTES RESERVE REQUESTED, 2,225,986 BYTES USED
WER405I CTL2CNTL : DATA RECORDS OUT 0; TOTAL RECORDS OUT 1
WER211B SYNCSMF CALLED BY SYNCSORT; RC=0000
WER449I SYNCSORT GLOBAL DSM SUBSYSTEM ACTIVE
WER416B RCDS : EXCP'S=1,UNIT=3390,DEV=976C,CHP=(9497B0B3,1),VOL=TST261
WER416B OUTFIL WAS USED FOR CTL1OUT
WER054I RCD IN 8, OUT 8
WER169I RELEASE 1.4 BATCH 0525 TPF LEVEL 1.0
WER052I END SYNCSORT - X186625A,STEP01,,DIAG=8600,5146,AA04,00E6,CEFA,68CB,AE0
SYNCSORT FOR Z/OS 1.4.1.0RI U.S. PATENTS: 4210961, 5117495 (C) 2010 SYNCSO
Prudential Financial z/OS 1.13.0
SYNCSORT LICENSED FOR CPU SERIAL NUMBER 1D3F7, MODEL 2827 506 LICEN
CTL2CNTL : 0000008
*
PARMLIST :
OPTION RESINV=0,ARESINV=0,MSGDDN=DFSMSG,SORTIN=CT,STOPAFT=000000000000001,SORTD
=CTL2
SORT FIELDS=COPY
WER428I CALLER-PROVIDED IDENTIFIER IS "0002"
WER131I PARM FIELD ERROR -
WER161B ALTERNATE PARM USED
WER276B SYSDIAG= 1988714, 4030244, 4030244, 4727550
WER415I DSM FACILITY ACTIVE: STORAGE ADJUSTED BY 0 BYTES
WER164B 9,052K BYTES OF VIRTUAL STORAGE AVAILABLE, MAX REQUESTED,
WER164B 0 BYTES RESERVE REQUESTED, 1,345,808 BYTES USED
WER146B 20K BYTES OF EMERGENCY SPACE ALLOCATED
WER108I CT : RECFM=FB ; LRECL= 80; BLKSIZE= 32720
WER073I CT : DSNAME=BEJGB2.X186625.CTRLFL.TRAILER
WER410B 7,848K BYTES OF VIRTUAL STORAGE AVAILABLE ABOVE THE 16MEG LINE,
WER410B 0 BYTES RESERVE REQUESTED, 160K BYTES USED
WER055I INSERT 0, DELETE 1
WER211B SYNCSMF CALLED BY SYNCSORT; RC=0000
WER449I SYNCSORT GLOBAL DSM SUBSYSTEM ACTIVE
WER416B CT : EXCP'S=1,UNIT=3390,DEV=9855,CHP=(9497B0B3,1),VOL=TST269
WER416B TOTAL OF 1 EXCP'S ISSUED FOR COPYING
WER054I RCD IN 1, OUT 0
WER169I RELEASE 1.4 BATCH 0525 TPF LEVEL 1.0
WER052I END SYNCSORT - X186625A,STEP01,,DIAG=8A00,510E,A204,00EE,C2FA,6CA3,A20
******************************* BOTTOM OF DATA ********************************

Re: ICETOOL

PostPosted: Fri Nov 22, 2013 12:59 pm
by BillyBoyo
Firstly, you are using SyncTool, aliased to ICETOOL. Your topic has been moved.

Secondly, WER110I CTL2CNTL : RECFM=VB ; LRECL= 313; BLKSIZE= 27998 shows that you FB/80 that you claim for your first input, is not. The CTL2CNTL will have the same characteristics as the input. A CTL2CNTL should be FB 80. So it probably was not even read, so your generated command was ignored.

Thirdly, you can't make up options. Just because RC4 exists, doesn't mean than RC8 must exist.

Re: ICETOOL

PostPosted: Fri Nov 22, 2013 1:17 pm
by sange-sherin
Hi Billy Boyo,

Thanks.... i changed the record type of CTL2CNTL (FB,80)- it worked with RC4.

But i want to know what action should be taken to make it run with my file ......my file won't be FB and 80 - it is VB only....

Can you please provide any solution?

Re: ICETOOL

PostPosted: Fri Nov 22, 2013 2:07 pm
by BillyBoyo
You will need to use OUTFIL VTOF and ensure the record you create is 80 bytes by finishing the BUILD with 80:X)

Re: ICETOOL

PostPosted: Fri Nov 22, 2013 3:14 pm
by sange-sherin
Hi BillyBoyo,

can you please provide me as a JCL.....