Following
Figure shows the Normal Layout of a ICETOOL job:
BC00 SM017R.TEST1.JCL(ICETOOL1) -
01.00 Columns 00001 00072
Command
===>
Scroll ===> CSR
******
***************************** Top of Data ******************************
000001
//ICETOOL1 JOB (EWDS),'ICETOOL TEST'
000002
//TOOL EXEC PGM=ICETOOL
000003
//TOOLMSG DD SYSOUT=* --> This is
where the ICETOOL messages go
000004
//DFSMSG DD SYSOUT=* --> This is
where the DFSORT messages go
000005
//TOOLIN DD * --> This is
where the ICETOOL operators are written
000006
/*
******
**************************** Bottom of Data ****************************
|
COPY Operator:
BC00 SM017R.TEST1.JCL(ICETOOL1) -
01.01 Columns 00001 00072
Command
===>
Scroll ===> CSR
******
***************************** Top of Data ******************************
000001
//ICETOOL1 JOB (EWDS),'ICETOOL TEST'
000002
//TOOL EXEC PGM=ICETOOL
000003
//TOOLMSG DD SYSOUT=*
000004
//DFSMSG DD SYSOUT=*
000005
//TOOLIN DD *
000006 COPY FROM(INPUT1) TO(OUTPUT) USING(CTL1)
000007
/*
000008
//INPUT1 DD DSN=SM017R.TCTF801.TEST,DISP=SHR
000009
//OUTPUT DD DSN=SM017R.TCTF801.T5,DISP=(NEW,CATLG),
000010
// DCB=(*.INPUT1)
000011
//CTL1CNTL DD *
000012 INCLUDE COND=(1,1,CH,EQ,C'1')
000013 /*
******
**************************** Bottom of Data ****************************
|
COUNT OPERATOR:
BC00 SM017R.TEST1.JCL(ICETOOL1) -
01.01 Columns 00001 00072
Command
===>
Scroll ===> CSR
******
***************************** Top of Data ******************************
000001
//ICETOOL1 JOB (EWDS),'ICETOOL TEST'
000002
//TOOL EXEC PGM=ICETOOL
000003
//TOOLMSG DD SYSOUT=*
000004
//DFSMSG DD SYSOUT=*
000005
//TOOLIN DD *
000006 COUNT FROM(INPUT1) USING(CTL1)
000007
/*
000008
//INPUT1 DD DSN=SM017R.TCTF801.TEST,DISP=SHR
000009
//CTL1CNTL DD *
000010 INCLUDE COND=(1,1,CH,EQ,C'1')
000011
/*
******
**************************** Bottom of Data ****************************
By default COUNT operator will write the count in
the TOOLMSG dataset.
BC00 SSO.D0354199.T012236.ICETOOL1 Columns 00001 00072
Command
===>
Scroll ===> CSR
******
***************************** Top of Data ******************************
000001
»
000002 SYT000I
SYNCTOOL RELEASE 1.7.0 - COPYRIGHT 2008 SYNCSORT INC.
000003 SYT001I
INITIAL PROCESSING MODE IS "STOP"
000004 SYT002I
"TOOLIN" INTERFACE BEING USED
000005
000006 COUNT FROM(INPUT1)
USING(CTL1)
000007 SYT020I
SYNCSORT CALLED WITH IDENTIFIER "0001"
000008 SYT031I
NUMBER OF RECORDS PROCESSED: 000000000017159
000009 SYT030I
OPERATION COMPLETED WITH RETURN CODE 0
000010
000011 SYT004I
SYNCTOOL PROCESSING COMPLETED WITH RETURN CODE 0
******
**************************** Bottom of Data ****************************
|
BC00 SM017R.TEST1.JCL(ICETOOL1) -
01.01 Columns 00001 00072
Command
===>
Scroll ===> CSR
******
***************************** Top of Data ******************************
000001
//ICETOOL1 JOB (EWDS),'ICETOOL TEST'
000002
//TOOL EXEC PGM=ICETOOL
000003
//TOOLMSG DD SYSOUT=*
000004
//DFSMSG DD SYSOUT=*
000005
//TOOLIN DD *
000006 COUNT FROM(INPUT1) USING(CTL1)
WRITE(COUNT) TEXT('COUNT IS:')
000007
/*
000008
//INPUT1 DD DSN=SM017R.TCTF801.TEST,DISP=SHR
000009
//COUNT DD
DSN=SM017R.TCTF801.COUNT,DISP=(NEW,CATLG),
000010
//
DCB=(RECFM=FB,LRECL=80)
000011
//CTL1CNTL DD *
000012 INCLUDE COND=(1,1,CH,EQ,C'1')
000013
/*
******
**************************** Bottom of Data ****************************
WRITE is used write the count to a file instead of
sending it to TOOLMSG.
TEXT is used to decide the text to be written before
the count
BC00 SM017R.TCTF801.COUNT Columns 00001
00024
Command
===>
Scroll ===> CSR
******
***************************** Top of Data ******************************
017159 COUNT
IS:000000000017159
******
**************************** Bottom of Data ****************************
|
We can use EMPTY,NOEMPTY,HIGHER,LOWER,EQUAL,NOT EQUAL to check the result of the counts and set a specific RC. By default when the criteria is matched the job ends with RC 12. In the below example the count is higher than 1000 and hence the job completes with RC 12.
BC00 SM017R.TEST1.JCL(ICETOOL1) -
01.01 Columns 00001 00072
Command
===>
Scroll ===> CSR
******
***************************** Top of Data ******************************
000001
//ICETOOL1 JOB (EWDS),'ICETOOL TEST'
000002
//TOOL EXEC PGM=ICETOOL
000003
//TOOLMSG DD SYSOUT=*
000004
//DFSMSG DD SYSOUT=*
000005
//TOOLIN DD *
000006 COUNT FROM(INPUT1) USING(CTL1)
HIGHER(1000)
000007
/*
000008
//INPUT1 DD DSN=SM017R.TCTF801.TEST,DISP=SHR
000009
//CTL1CNTL DD *
000010 INCLUDE COND=(1,1,CH,EQ,C'1')
000011
/*
******
**************************** Bottom of Data ****************************
Job
Name Nbr MaxCC
Sys Started Ended
Lines Description
ICETOOL1 9918
0012 EC00 12236/0423 12236/0423 131 ICETOOL TEST
|
We can use the RC4 option in case we want the step to return the RC of 04 when the criteria is met.(overriding 12) . We could use EMPTY criteria to check if the input file is empty . In such case the RC will be set to 12 or 04 and then we can decide the action in subsequent steps.
BC00 SM017R.TEST1.JCL(ICETOOL1) -
01.01 Columns 00001 00072
Command
===>
Scroll ===> CSR
******
***************************** Top of Data ******************************
000001
//ICETOOL1 JOB (EWDS),'ICETOOL TEST'
000002
//TOOL EXEC PGM=ICETOOL
000003
//TOOLMSG DD SYSOUT=*
000004
//DFSMSG DD SYSOUT=*
000005
//TOOLIN DD *
000006 COUNT FROM(INPUT1) USING(CTL1)
HIGHER(1000) RC4
000007
/*
000008
//INPUT1 DD DSN=SM017R.TCTF801.TEST,DISP=SHR
000009
//CTL1CNTL DD *
000010 INCLUDE COND=(1,1,CH,EQ,C'1')
000011
/*
******
**************************** Bottom of Data ****************************
Job
Name Nbr MaxCC
Sys Started Ended
Lines Description
ICETOOL1 9948
0004 EC00 12236/0424 12236/0424 129 ICETOOL TEST
|
We can use ADD or SUB option to add - subtract a value of up to max 999 from the count. We could use this to compensate the header and trailer count.
BC00 SM017R.TEST1.JCL(ICETOOL1) -
01.01 Columns 00001 00072
Command
===>
Scroll ===> CSR
******
***************************** Top of Data ******************************
000001
//ICETOOL1 JOB (EWDS),'ICETOOL TEST'
000002
//TOOL EXEC PGM=ICETOOL
000003
//TOOLMSG DD SYSOUT=*
000004
//DFSMSG DD SYSOUT=*
000005
//TOOLIN DD *
000006 COUNT FROM(INPUT1) USING(CTL1) ADD(999)
000007
/*
000008
//INPUT1 DD DSN=SM017R.TCTF801.TEST,DISP=SHR
000009
//CTL1CNTL DD *
000010 INCLUDE COND=(1,1,CH,EQ,C'1')
000011 /*
******
**************************** Bottom of Data ****************************
BC00 SSO.D0426291.T212236.ICETOOL1 Columns 00001 00072
Command
===>
Scroll ===> CSR
******
***************************** Top of Data ******************************
000001
»
000002 SYT000I
SYNCTOOL RELEASE 1.7.0 - COPYRIGHT 2008 SYNCSORT INC.
000003 SYT001I
INITIAL PROCESSING MODE IS "STOP"
000004 SYT002I
"TOOLIN" INTERFACE BEING USED
000005
000006 COUNT FROM(INPUT1) USING(CTL1)
ADD(999)
000007 SYT020I
SYNCSORT CALLED WITH IDENTIFIER "0001"
000008 SYT031I
NUMBER OF RECORDS PROCESSED: 000000000018158
000009 SYT030I
OPERATION COMPLETED WITH RETURN CODE 0
000010
000011 SYT004I
SYNCTOOL PROCESSING COMPLETED WITH RETURN CODE 0
******
**************************** Bottom of Data ****************************
|
DATASORT operator:This is used to sort the file keeping the header -trailer in place.We can also select not to sort 1st few or last few records.
BC00
SM017R.TCTF801.TEST Columns 00001
00072
Command ===>
Scroll ===> CSR
=COLS>
----+----1----+----2----+----3----+----4----+----5----+----6----+----7--
****** ***************************** Top of
Data ******************************
000001 1LSP20120818 Åd e@ *L25
07TX440292570RC
A2MCXX018323SW
000002 1LSP20120818 <
Åd È@ ðL25 07TX440292570RC A2MCXX000888SW
000003 1LSP20120818 i
Åd ð %L25
07TX440292570RC
A2MCXX001675SW
000004 1LSP20120818 f
Åc ` L27 06TX440292570RC A2MCXX001778SW
000005 1LSP20120818 f
Åc L27 07TX440292570RC 694586734
000006 1LSP20120818 f
Åc L27 07TX440292570RC A2MCXX001778SW
000007 1LSP20120818 f
Åc æL27 06TX440292570RC 694586719
000008 1LSP20120818 f
Åc L27 07TX440292570RC 694586719
000009 1LSP20120818 f
Åc Á L27 07TX440292570RC A2MCXX001778SW
000010 1LSP20120818 È
Åc Êæ Ø L15 08TX442011440RC A2MCXX011098SW
000011 1LSP20120818 È
Åc Êæ L15 08TX442011440RC A2MCXX011098SW
000012 1LSP20120818 Ìç*
Åd ñ% Â%L25 07TX440292570RC 678291232
BC00 SM017R.TEST1.JCL(ICETOOL1) -
01.01 Columns 00001 00072
Command
===>
Scroll ===> CSR
******
***************************** Top of Data ******************************
000001
//ICETOOL1 JOB (EWDS),'ICETOOL TEST'
000002
//TOOL EXEC PGM=ICETOOL
000003
//TOOLMSG DD SYSOUT=*
000004
//DFSMSG DD SYSOUT=*
000005
//TOOLIN DD *
000006
DATASORT FROM(INPUT1) TO(OUTPUT) HEADER TRAILER USING(CTL1)
000007
/*
000008
//INPUT1 DD DSN=SM017R.TCTF801.TEST,DISP=SHR
000009
//OUTPUT DD DSN=SM017R.TCTF801.T6,DISP=(NEW,CATLG),
000010
// DCB=*.INPUT1
000011
//CTL1CNTL DD *
000012 SORT FIELDS=(59,4,CH,A)
000013
/*
******
**************************** Bottom of Data ****************************
BC00 SM017R.TCTF801.T6 Columns 00001
00072
Command
===>
Scroll ===> CSR
******
***************************** Top of Data ******************************
000001
1LSP20120818 Åd e@ *L25
07TX440292570RC
A2MCXX018323SW
000002
1LSP20120818 < Åd È@ ðL25
07TX440292570RC
A2MCXX000888SW
000003
1LSP20120818 i Åd
ð %L25 07TX440292570RC A2MCXX001675SW
000004
1LSP20120818 f Åc ` L27 06TX440292570RC A2MCXX001778SW
000005
1LSP20120818 f Åc L27 07TX440292570RC A2MCXX001778SW
000006
1LSP20120818 f Åc Á L27 07TX440292570RC A2MCXX001778SW
000007
1LSP20120818 È Åc Êæ Ø L15
08TX442011440RC
A2MCXX011098SW
000008
1LSP20120818 È Åc Êæ L15
08TX442011440RC
A2MCXX011098SW
000009
1LSP20120818 Ìç* Åd ñ% @L25
07TX440292570RC
A2MCXX012569SW
000010
1LSP20120818 Øø% Åd Â< æL25
07TX440912110RC
A2MCXX013944SW
000011
1LSP2012081 Øø% Åd Â< æL25
07TX440912110RC
A2MCXX013944SW
000012
1LSP820120818 ØÎ Åd L25 07TX442012220RC A2MCXX013979SW
000013
1LSP20120818 ØÎ Åd ä L25 07TX442012220RC A2MCXX013979SW
Only the header and trailer kept in place and rest
of the data is sorted.
If we have a header of 2 rows then write HEADER(2).
If we don’t want first and last 5 records not to be
sorted then we should use FIRST(5) LAST(5).
|
DISPLAY Operator:Used to generate reports from input file. We can print titles, heading and also stats on different fields.
BC00 SM017R.TEST1.JCL(ICETOOL1) -
01.01 Columns 00001 00072
Command
===>
Scroll ===> CSR
******
***************************** Top of Data ******************************
000001
//ICETOOL1 JOB (EWDS),'ICETOOL TEST'
000002
//TOOL EXEC PGM=ICETOOL
000003
//TOOLMSG DD SYSOUT=*
000004
//DFSMSG DD SYSOUT=*
000005
//TOOLIN DD *
000006 DISPLAY FROM(INPUT1) LIST(OUTPUT)
ON(59,6,CH) -
000007 TITLE('THIS IS A TEST TITLE LINE1') -
000008 TITLE('THIS IS A TEST TITLE LINE2')
000009
/*
000010
//INPUT1 DD DSN=SM017R.TCTF801.TEST,DISP=SHR
000011
//OUTPUT DD DSN=SM017R.TCTF801.T9,DISP=(NEW,CATLG),
000012
// DCB=*.INPUT1
000013
//CTL1CNTL DD *
000014 INCLUDE COND=(1,1,EQ,C'9')
000015
/*
******
**************************** Bottom of Data ****************************
List indicates the output dataset.
ON indicates the fields to be displayed on the
report.
Note that 1st column is occupied by the printing
carriage control character.
We can turn off that display using NOCC.
BC00
SM017R.TCTF801.T9 Columns 00001
00072
Command ===>
Scroll ===> CSR
****** ***************************** Top of
Data ******************************
000001 1THIS
IS A TEST TITLE LINE1
000002
000003
THIS IS A TEST TITLE LINE2
000004
000005
(59,6,CH) --> We can use
HEADER (upto 3 lines) to display header column
000006
A2MCXX
000007
A2MCXX
000008
A2MCXX
000009
A2MCXX
000010
694586
000011
A2MCXX
000012
694586
000013
694586
000014
A2MCXX
000015
A2MCXX
000016
A2MCXX
000017
678291
000018
678291
000019
A2MCXX
000020
A2MCXX
000021
514406
Note
that only the column we mentioned in ON() is printed in the report.
Also
note that both the titles are printed. '1' before "THIS IS A TEST TITLE
LINE1". Is for formatting purpose.
BC00 SM017R.TCTF801.T9 Columns 00001
00072
Command
===>
Scroll ===> CSR
000052 504837
000053 A2MCXX
000054 A2MCXX
000055 100012
000056 A2MCXX
000057 A2MCXX
000058 805083
000059
1THIS IS A TEST TITLE LINE1
000060
000061 THIS IS A TEST TITLE LINE2
000062
000063 (59,6,CH)
000064 805083
000065 593912
000066 A2MCXX
000067 A2MCXX
000068 593912
000069 593912
000070 A2MCXX
000071 A2MCXX
000072 A2MCXX
000073 593912
Also note that in the above figure the title is
being printed every page.
We can use TFIRST to print the title only on 1st
page.
TLEFT to print the title left justified.
We
can specify NOCC to override default of printing carriage control characters.
|
BC00 SM017R.TEST1.JCL(ICETOOL1) -
01.01 Columns 00001 00072
Command
===>
Scroll ===> CSR
******
***************************** Top of Data ******************************
000001
//ICETOOL1 JOB (EWDS),'ICETOOL TEST'
000002
//TOOL EXEC PGM=ICETOOL
000003
//TOOLMSG DD SYSOUT=*
000004
//DFSMSG DD SYSOUT=*
000005
//TOOLIN DD *
000006 DISPLAY FROM(INPUT1) LIST(OUTPUT) -
000007 TITLE('THIS IS A TEST TITLE LINE1') DATE -
we can also print date,time,page on the 1st title line.
000008 TITLE('THIS IS A TEST TITLE LINE2') TFIRST
TLEFT -
000009 HEADER('COLUMN1') ON(59,6,CH) -
000010 HEADER(NONE) ON(5,8,CH) --> Use NONE if we don’t want
header.
000011
/*
000012
//INPUT1 DD DSN=SM017R.TCTF801.TEST,DISP=SHR
000013
//OUTPUT DD DSN=SM017R.TCTF801.T9,DISP=(OLD,CATLG),
000014
// DCB=*.INPUT1
000015
//CTL1CNTL DD *
000016 INCLUDE COND=(1,1,EQ,C'9')
000017
/*
******
**************************** Bottom of Data ****************************
BC00 SM017R.TCTF801.T9 Columns 00001
00072
Command
===>
Scroll ===> CSR
******
***************************** Top of Data *****************************
000001
1THIS IS A TEST TITLE LINE1
08/24/12
000002
000003 THIS IS A TEST TITLE LINE2
000004
000005 COLUMN1
000006 --------------------
000007 A2MCXX 20120818
000008 A2MCXX 20120818
000009 A2MCXX 20120818
000010 A2MCXX 20120818
000011 694586 20120818
000012 A2MCXX 20120818
000013 694586 20120818
000014 694586 20120818
000015 A2MCXX 20120818
000016 A2MCXX 20120818
000017 A2MCXX 20120818
000018 678291 20120818
000019 678291 20120818
000020 A2MCXX 20120818
000021 A2MCXX 20120818
|
BC00 SM017R.TEST1.JCL(ICETOOL1) -
01.01 Columns 00001 00072
Command
===>
Scroll ===> CSR
******
***************************** Top of Data ******************************
000001
//ICETOOL1 JOB (EWDS),'ICETOOL TEST'
000002
//TOOL EXEC PGM=ICETOOL
000003
//TOOLMSG DD SYSOUT=*
000004
//DFSMSG DD SYSOUT=*
000005
//TOOLIN DD *
000006 DISPLAY FROM(INPUT1) LIST(OUTPUT) -
000007 TITLE('THIS IS A TEST TITLE LINE1') DATE
-
000008 TITLE('THIS IS A TEST TITLE LINE2') TFIRST
TLEFT -
000009 HEADER(NONE) ON(5,8,ZD)
-
000010 TOTAL('TOTAL') -
000011 AVERAGE('AVERAGE') -
000012 MAXIMUM('MAXIMUM') -
000013 MINIMUM('MINIMUM') -
000014 COUNT('COUNT IS ')
000015
/*
000016
//INPUT1 DD DSN=SM017R.TCTF801.TEST,DISP=SHR
000017
//OUTPUT DD DSN=SM017R.TCTF801.T9,DISP=(OLD,CATLG),
000018
// DCB=*.INPUT1
000019
//CTL1CNTL DD *
000020 INCLUDE COND=(1,1,EQ,C'9')
000021
/*
TOTAL, MAXIMUM,MINIMUM,AVERAGE,COUNT is used to
display the stats of the columns mentioned in the ON parameters. The string
within () is also printed before the value is printed.
BC00 SM017R.TCTF801.T9 Columns 00001
00072
Command
===>
Scroll ===> CSR
017158 +000000020120818
017159 +000000020120818
017160 +000000020120818
017161 +000000020120818
017162 +000000020120818
017163 +000000020120818
017164 +000000048000003
017165
017166 TOTAL
017167 +000345293340926
017168
017169 AVERAGE
017170 +000000020121989
017171
017172 MAXIMUM
017173 +000000048000003
017174
017175 MINIMUM
017176 +000000012345679
017177
017178 COUNT IS 000000000017160
****** **************************** Bottom of Data
****************************
|
BC00 SM017R.TEST1.JCL(ICETOOL1) -
01.01 Columns 00001 00072
Command
===>
Scroll ===> CSR
******
***************************** Top of Data *****************************
000001
//ICETOOL1 JOB (EWDS),'ICETOOL TEST'
000002
//TOOL EXEC PGM=ICETOOL
000003
//TOOLMSG DD SYSOUT=*
000004
//DFSMSG DD SYSOUT=*
000005
//TOOLIN DD *
000006 DISPLAY FROM(INPUT1) LIST(OUTPUT) -
000007 PAGE TITLE('THIS IS A TEST TITLE LINE1')
DATE TIME -
000008 TITLE('THIS IS A TEST TITLE LINE2') TFIRST
TLEFT - title left justified and printed only on 1st line
000009 HEADER(NONE) ON(5,8,ZD)
-
000010 HEADER(NONE) ON(59,5,CH) -
000011 HEADER(NONE) ON(36,2,ZD) -
000012 BETWEEN(10) - --> indicates the space between
columns
000013 STATLEFT -
000014 BREAK(36,2,CH) -
000015 BTITLE('DIVISION') -
000016 BTOTAL('DIVTOT') -
000017 BMINIMUM('DIVMINI') -
000018 BMAXIMUM('DIVMAX') -
000019 BCOUNT('DIVCNT') -
000020 BAVERAGE('DIVAVG') -
000021 TOTAL('TOTAL') -
000022 AVERAGE('AVERAGE') -
000023 MAXIMUM('MAXIMUM') -
000024 MINIMUM('MINIMUM') -
000025 COUNT('COUNT IS ')
000026 /*
000027
//INPUT1 DD DSN=SM017R.TCTF801.TEST,DISP=SHR
000028
//OUTPUT DD DSN=SM017R.TCTF801.T9,DISP=(OLD,CATLG),
000029
// DCB=*.INPUT1
000030
//CTL1CNTL DD *
000031 INCLUDE COND=(1,1,EQ,C'9')
000032
/*
******
**************************** Bottom of Data ****************************
The
column in the BREAK is used to create sections in the report. (its advised to
have data sorted on this column). We can use
BMAXIMUM,BMINIMUM,BAVERAGE,BTOTAL to display stats for each section.
This
is somewhat similar to WITH and WITH BY option used in teradata.
|
OCCUR operator:Count the occurrences of each of values in the columns specified in the ON.If multiple ON are specified then all columns are used to identify the occurrences.
BC00 SM017R.TEST1.JCL(ICETOOL1) -
01.01 Columns 00001 00072
Command
===>
Scroll ===> CSR
******
***************************** Top of Data ******************************
000001
//ICETOOL1 JOB (EWDS),'ICETOOL TEST'
000002
//TOOL EXEC PGM=ICETOOL
000003
//TOOLMSG DD SYSOUT=*
000004
//DFSMSG DD SYSOUT=*
000005
//TOOLIN DD *
000006 OCCUR
FROM(INPUT1) LIST(OUTPUT) ON(5,8,ZD)
000007
/*
000008
//INPUT1 DD DSN=SM017R.TCTF801.TEST,DISP=SHR
000009
//OUTPUT DD DSN=SM017R.TCTF801.T3,DISP=(OLD,CATLG),
000010
// DCB=*.INPUT1
******
**************************** Bottom of Data ****************************
ON indicates the column for which unique must be
found.
BC00 SM017R.TCTF801.T3 Columns 00001
00072
Command
===>
Scroll ===> CSR
******
***************************** Top of Data ******************************
000001
1(5,8,ZD)
000002 +000000012345679
000003 +000000020120818
000004 +000000048000003
******
**************************** Bottom of Data ****************************
Above shows the unique values in the column 5,8,ZD.
|
We can use ON(VALCNT) to print the count of each of
the unique values.
BC00 SM017R.TEST1.JCL(ICETOOL1) - 01.01 Columns 00001 00072
Command
===>
Scroll ===> CSR
******
***************************** Top of Data ******************************
000001
//ICETOOL1 JOB (EWDS),'ICETOOL TEST'
000002
//TOOL EXEC PGM=ICETOOL
000003
//TOOLMSG DD SYSOUT=*
000004
//DFSMSG DD SYSOUT=*
000005
//TOOLIN DD *
000006 OCCUR
FROM(INPUT1) LIST(OUTPUT) ON(5,8,ZD) ON(VALCNT)
000007
/*
000008
//INPUT1 DD DSN=SM017R.TCTF801.TEST,DISP=SHR
000009
//OUTPUT DD DSN=SM017R.TCTF801.T3,DISP=(OLD,CATLG),
000010
// DCB=*.INPUT1
******
**************************** Bottom of Data ****************************
ON(VALCNT)
should be used to give us the count of the each unique columns
BC00 SM017R.TCTF801.T3 Columns 00001
00072
Command
===>
Scroll ===> CSR
******
***************************** Top of Data ******************************
000001
1(5,8,ZD) VALUE COUNT
000002 +000000012345679 000000000000001
000003 +000000020120818 000000000017158
000004 +000000048000003 000000000000001
******
**************************** Bottom of Data ****************************
|
BC00 SM017R.TEST1.JCL(ICETOOL1) -
01.01 Columns 00001 00072
Command
===>
Scroll ===> CSR
******
***************************** Top of Data ******************************
000001
//ICETOOL1 JOB (EWDS),'ICETOOL TEST'
000002
//TOOL EXEC PGM=ICETOOL
000003
//TOOLMSG DD SYSOUT=*
000004
//DFSMSG DD SYSOUT=*
000005
//TOOLIN DD *
000006 OCCUR
FROM(INPUT1) LIST(OUTPUT) ON(5,8,ZD) ON(35,3,CH) ON(VALCNT)
000007
/*
000008
//INPUT1 DD DSN=SM017R.TCTF801.TEST,DISP=SHR
000009
//OUTPUT DD DSN=SM017R.TCTF801.T3,DISP=(OLD,CATLG),
000010
// DCB=*.INPUT1
******
**************************** Bottom of Data ****************************
|
More column we add it prints the unique value for the combination and the VALCNT also prints the unique values of the combination.Its like select (5,8,zd),(35,3,CH),count(*) from INPUT1 GROUP by 1,2
BC00
SM017R.TCTF801.T3 Columns 00001
00072
Command ===>
Scroll ===> CSR
****** ***************************** Top of
Data ******************************
000001 1(5,8,ZD) (35,3,CH) VALUE COUNT
000002
+000000012345679 L25 000000000000001
000003
+000000020120818 L01 000000000000265
000004
+000000020120818 L02 000000000000632
000005
+000000020120818 L03 000000000000514
000006
+000000020120818 L04 000000000000199
000007
+000000020120818 L05 000000000000958
000008
+000000020120818 L06 000000000000332
000009
+000000020120818 L07 000000000000323
000010
+000000020120818 L08 000000000000155
000011
+000000020120818 L09 000000000000150
000012
+000000020120818 L10 000000000000216
000013
+000000020120818 L11 000000000001476
000014
+000000020120818 L12 000000000000152
000015
+000000020120818 L13 000000000000209
000016
+000000020120818 L14 000000000000150
000017
+000000020120818 L15 000000000000228
000018
+000000020120818 L16 000000000000131
000019
+000000020120818 L17 000000000000301
000020
+000000020120818 L18 000000000000118
|
Note that OCCUR also has reporting features like
DISPLAY.
BC00 SM017R.TEST1.JCL(ICETOOL1) - 01.01 Columns 00001 00072
Command
===>
Scroll ===> CSR
******
***************************** Top of Data ******************************
000001
//ICETOOL1 JOB (EWDS),'ICETOOL TEST'
000002
//TOOL EXEC PGM=ICETOOL
000003
//TOOLMSG DD SYSOUT=*
000004
//DFSMSG DD SYSOUT=*
000005
//TOOLIN DD *
000006 OCCUR FROM(INPUT1) LIST(OUTPUT) -
000007 DATE TIME PAGE TITLE('DUPLICATE REPORT')
-
000008 HEADER('ABC') ON(35,3,CH) -
000009 HEADER('COUNT') ON(VALCNT)
000010
/*
000011
//INPUT1 DD DSN=SM017R.TCTF801.TEST,DISP=SHR
000012
//OUTPUT DD DSN=SM017R.TCTF801.T3,DISP=(OLD,CATLG),
000013
// DCB=*.INPUT1
******
**************************** Bottom of Data ****************************
BC00 SM017R.TCTF801.T3 Columns 00001
00072
Command
===>
Scroll ===> CSR
******
***************************** Top of Data ******************************
000001
108/25/12 07:03:00 - 1 - DUPLICATE REPORT
000002
000003 ABC COUNT
000004 -------------------- ---------------
000005 L01 000000000000265
000006 L02 000000000000632
000007 L03 000000000000514
000008 L04 000000000000199
000009 L05 000000000000958
000010 L06 000000000000332
000011 L07 000000000000323
000012 L08 000000000000155
000013 L09 000000000000150
000014 L10 000000000000216
000015 L11 000000000001476
000016 L12 000000000000152
000017 L13 000000000000209
000018 L14 000000000000150
000019 L15 000000000000228
000020 L16 000000000000131
000021 L17 000000000000301
|
See the impact of using BLANK:
BC00 SM017R.TEST1.JCL(ICETOOL1) -
01.01 Columns 00001 00072
Command
===>
Scroll ===> CSR
******
***************************** Top of Data ******************************
000001
//ICETOOL1 JOB (EWDS),'ICETOOL TEST'
000002
//TOOL EXEC PGM=ICETOOL
000003
//TOOLMSG DD SYSOUT=*
000004
//DFSMSG DD SYSOUT=*
000005
//TOOLIN DD *
000006 OCCUR FROM(INPUT1) LIST(OUTPUT) -
000007 DATE TIME PAGE TITLE('DUPLICATE REPORT')
-
000008 HEADER('ABC') ON(35,3,CH) BLANK -
000009 HEADER('COUNT') ON(VALCNT)
000010
/*
000011
//INPUT1 DD DSN=SM017R.TCTF801.TEST,DISP=SHR
000012
//OUTPUT DD DSN=SM017R.TCTF801.T3,DISP=(OLD,CATLG),
000013
// DCB=*.INPUT1
******
**************************** Bottom of Data ****************************
BLANK replaces all the leading zeros.
BC00 SM017R.TCTF801.T3 Columns 00001
00072
Command
===>
Scroll ===> CSR
******
***************************** Top of Data ******************************
000001
108/25/12 07:06:46 - 1 - DUPLICATE REPORT
000002
000003 ABC COUNT
000004 ---
---------------
000005 L01 265
000006 L02 632
000007 L03 514
000008 L04 199
000009 L05 958
000010 L06 332
000011 L07 323
000012 L08 155
000013 L09 150
000014 L10 216
000015 L11 1476
000016 L12 152
000017 L13 209
000018 L14 150
000019 L15 228
000020 L16 131
000021 L17 301
|
BC00 SM017R.TEST1.JCL(ICETOOL1) -
01.01 Columns 00001 00072
Command
===>
Scroll ===> CSR
******
***************************** Top of Data ******************************
000001
//ICETOOL1 JOB (EWDS),'ICETOOL TEST'
000002
//TOOL EXEC PGM=ICETOOL
000003
//TOOLMSG DD SYSOUT=*
000004
//DFSMSG DD SYSOUT=*
000005
//TOOLIN DD *
000006 OCCUR FROM(INPUT1) LIST(OUTPUT)
ON(35,3,CH) ON(VALCNT) NODUPS
000007
/*
000008
//INPUT1 DD DSN=SM017R.TCTF801.TEST,DISP=SHR
000009
//OUTPUT DD DSN=SM017R.TCTF801.T3,DISP=(OLD,CATLG),
000010
// DCB=*.INPUT1
******
**************************** Bottom of Data ****************************
BC00 SM017R.TCTF801.T3 Columns 00001
00072
Command
===>
Scroll ===> CSR
******
***************************** Top of Data ******************************
000001
1(35,3,CH) VALUE
COUNT
000002 000 000000000000001
******
**************************** Bottom of Data ****************************
NODUPS prints only the value that are unique.
That is the values that appear only once.
|
BC00 SM017R.TEST1.JCL(ICETOOL1) -
01.01 Columns 00001 00072
Command
===>
Scroll ===> CSR
******
***************************** Top of Data ******************************
000001
//ICETOOL1 JOB (EWDS),'ICETOOL TEST'
000002
//TOOL EXEC PGM=ICETOOL
000003
//TOOLMSG DD SYSOUT=*
000004
//DFSMSG DD SYSOUT=*
000005
//TOOLIN DD *
000006 OCCUR FROM(INPUT1) LIST(OUTPUT)
ON(35,3,CH) ON(VALCNT) ALLDUPS
000007
/*
000008
//INPUT1 DD DSN=SM017R.TCTF801.TEST,DISP=SHR
000009
//OUTPUT DD DSN=SM017R.TCTF801.T3,DISP=(OLD,CATLG),
000010
// DCB=*.INPUT1
******
**************************** Bottom of Data ****************************
BC00 SM017R.TCTF801.T3 Columns 00001
00072
Command
===>
Scroll ===> CSR
******
***************************** Top of Data ******************************
000001
1(35,3,CH) VALUE
COUNT
000002 L01 000000000000265
000003 L02 000000000000632
000004 L03 000000000000514
000005 L04 000000000000199
000006 L05 000000000000958
000007 L06 000000000000332
000008 L07 000000000000323
000009 L08 000000000000155
000010 L09 000000000000150
000011 L10 000000000000216
000012 L11 000000000001476
000013 L12 000000000000152
000014 L13 000000000000209
000015 L14 000000000000150
000016 L15 000000000000228
000017 L16 000000000000131
000018 L17 000000000000301
000019 L18 000000000000118
000020 L19 000000000000084
000021 L20 000000000000110
This prints the values that occur more than once.
The ones that occur only 1 time are not printed.
|
We can use ALLDUPS,NODUPS,HIGHER,LOWER or EQUAL to
print the values whose occurrences match the criteria specified.
Below prints the values that occur more than 500
times.
BC00 SM017R.TEST1.JCL(ICETOOL1) - 01.01 Columns 00001 00072
Command
===>
Scroll ===> CSR
******
***************************** Top of Data *****************************
000001
//ICETOOL1 JOB (EWDS),'ICETOOL TEST'
000002
//TOOL EXEC PGM=ICETOOL
000003
//TOOLMSG DD SYSOUT=*
000004
//DFSMSG DD SYSOUT=*
000005
//TOOLIN DD *
000006 OCCUR FROM(INPUT1) LIST(OUTPUT)
ON(35,3,CH) ON(VALCNT) HIGHER(500)
000007
/*
000008
//INPUT1 DD DSN=SM017R.TCTF801.TEST,DISP=SHR
000009
//OUTPUT DD DSN=SM017R.TCTF801.T3,DISP=(OLD,CATLG),
000010
// DCB=*.INPUT1
******
**************************** Bottom of Data ***************************
BC00 SM017R.TCTF801.T3 Columns 00001
00072
Command
===>
Scroll ===> CSR
******
***************************** Top of Data ******************************
000001
1(35,3,CH) VALUE
COUNT
000002 L02 000000000000632
000003 L03 000000000000514
000004 L05 000000000000958
000005 L11 000000000001476
000006 L25 000000000006193
000007 L26 000000000002041
000008 L27 000000000000840
******
**************************** Bottom of Data ****************************
Prints
the values that occur more than 500 times.
|
In the ON clause we can specify the format in which
data will be displayed . We could any of the existing masks.
A0,A1-A5,B1-B6,C1-C6,D1-D6,E1-E4,F1-f6 etc.
Note the format is decided as follows:
Character
Data: CH
Numeric with
data usage is DISPLAY: ZD
Numeric
fields with usage COMP: BI(binary)
Numeric
fields with usage COMP-3: PD(packed decimal)
BC00 SM017R.TEST1.JCL(ICETOOL1) - 01.01 Columns 00001 00072
Command
===>
Scroll ===> CSR
******
***************************** Top of Data ******************************
000001
//ICETOOL1 JOB (EWDS),'ICETOOL TEST'
000002
//TOOL EXEC PGM=ICETOOL
000003
//TOOLMSG DD SYSOUT=*
000004
//DFSMSG DD SYSOUT=*
000005
//TOOLIN DD *
000006 OCCUR FROM(INPUT1) LIST(OUTPUT) -
000007 ON(5,8,ZD) -
000008 ON(5,8,ZD,A1) -
000009 ON(5,8,ZD,B1) -
000010 ON(5,8,ZD,C1) -
000011 ON(5,8,ZD,D1) -
000012 ON(5,8,ZD,E1) -
000013 ON(5,8,ZD,F1) -
000014 ON(5,8,ZD,G1) -
000015 ON(VALCNT) HIGHER(500)
000016
/*
000017
//INPUT1 DD DSN=SM017R.TCTF801.TEST,DISP=SHR
000018
//OUTPUT DD DSN=SM017R.TCTF801.T3,DISP=(OLD,CATLG),
000019
// DCB=*.INPUT1
******
**************************** Bottom of Data ****************************
BC00 SM017R.TCTF801.T3 Columns 00001
00072
Command
===>
Scroll ===> CSR
******
***************************** Top of Data ******************************
000001
1 (5,8,ZD) (5,8,ZD) (5,8,ZD) (5,8,ZD) (5,8,ZD)
000002 20120818
20,120,818 2,012,081.8 201,208.18 20,120.818 2
******
**************************** Bottom of Data ****************************
801.T3 Columns 00058
00129
Scroll ===> CSR
**************
Top of Data ******************************
(5,8,ZD) (5,8,ZD) (5,8,ZD) VALUE COUNT
0,120,818 201,208.18 2,012.0818 17158
*************
Bottom of Data ****************************
See
the Use of Edit patterns.
|
RANGE OPERATOR:Used to find the number of records having a field value within in a range.
BC00 SM017R.TEST1.JCL(ICETOOL1) -
01.01 Columns 00001 00072
Command
===>
Scroll ===> CSR
******
***************************** Top of Data ******************************
000001
//ICETOOL1 JOB (EWDS),'ICETOOL TEST'
000002
//TOOL EXEC PGM=ICETOOL
000003
//TOOLMSG DD SYSOUT=*
000004
//DFSMSG DD SYSOUT=*
000005
//TOOLIN DD *
000006 RANGE
FROM(INPUT1) ON(36,2,ZD) HIGHER(26)
000007
/*
000008
//INPUT1 DD DSN=SM017R.TCTF801.TEST,DISP=SHR
000009
//OUTPUT DD DSN=SM017R.TCTF801.T3,DISP=(OLD,CATLG),
000010
// DCB=*.INPUT1
******
**************************** Bottom of Data ****************************
This displays the count of records having field
36,2,ZD greater than 26.
BC00
SSO.D1302507.T812238.ICETOOL1 Columns 00001 00072
Command ===>
Scroll ===> CSR
****** ***************************** Top of
Data ******************************
000001 »
000002
SYT000I SYNCTOOL RELEASE 1.7.0
- COPYRIGHT 2008 SYNCSORT INC.
000003
SYT001I INITIAL PROCESSING MODE
IS "STOP"
000004
SYT002I "TOOLIN"
INTERFACE BEING USED
000005
000006 RANGE FROM(INPUT1) ON(36,2,ZD)
HIGHER(26)
000007
SYT020I SYNCSORT CALLED WITH
IDENTIFIER "0001"
000008
SYT031I NUMBER OF RECORDS
PROCESSED: 000000000017160
000009
SYT032I NUMBER OF RECORDS IN
RANGE: 000000000001267
000010
SYT030I OPERATION COMPLETED
WITH RETURN CODE 0
000011
000012
SYT004I SYNCTOOL PROCESSING
COMPLETED WITH RETURN CODE 0
****** **************************** Bottom
of Data ****************************
Prints
the number of records with value greater than 26. which is 1267.
|
SELECT operator:
Following can be used to remove duplicates from a
file and save it to another file.
BC00 SM017R.TEST1.JCL(ICETOOL1) - 01.01 Columns 00001 00072
Command
===>
Scroll ===> CSR
******
***************************** Top of Data ******************************
000001
//ICETOOL1 JOB (EWDS),'ICETOOL TEST'
000002
//TOOL EXEC PGM=ICETOOL
000003
//TOOLMSG DD SYSOUT=*
000004
//DFSMSG DD SYSOUT=*
000005
//TOOLIN DD *
000006 SELECT FROM(INPUT1) TO(OUTPUT)
ON(44,11,CH) NODUPS
000007
/*
000008
//INPUT1 DD DSN=SM017R.TCTF801.TEST,DISP=SHR
000009
//OUTPUT DD DSN=SM017R.TCTF801.T3,DISP=(OLD,CATLG),
000010
// DCB=*.INPUT1
******
**************************** Bottom of Data ****************************
All
unique records will be copied to another datasets
BC00 SM017R.TCTF801.T3 Columns 00001
00072
Command
===>
Scroll ===> CSR
000693
1LSP20120818 ÅmÁ Åe`ê% °*L26
07WI501331410RC 2210265597
000694 1LSP20120818 ol Åf L13 08WI501390850RC 2576338105
******
**************************** Bottom of Data ****************************
|
STATS Operator:This shows stats like maximum ,minimum, average , count ,total of a particular field(s). This message is shown in the TOOLMSG dataset.
BC00 SM017R.TEST1.JCL(ICETOOL1) -
01.02 Columns 00001 00072
Command
===>
Scroll ===> CSR
******
***************************** Top of Data ******************************
000001
//ICETOOL1 JOB (EWDS),'ICETOOL TEST'
000002
//TOOL EXEC PGM=ICETOOL
000003
//TOOLMSG DD SYSOUT=*
000004
//DFSMSG DD SYSOUT=*
000005
//TOOLIN DD *
000006 STATS FROM(INPUT1) ON(36,2,ZD)
000007
/*
000008
//INPUT1 DD DSN=SM017R.TCTF801.TEST,DISP=SHR
000009
//OUTPUT DD DSN=SM017R.TCTF801.T3,DISP=(OLD,CATLG),
000010
// DCB=*.INPUT1
******
**************************** Bottom of Data ****************************
BC00 SSO.D1543126.T812238.ICETOOL1 Columns 00001 00072
Command
===>
Scroll ===> CSR
******
***************************** Top of Data ******************************
000001
»
000002 SYT000I
SYNCTOOL RELEASE 1.7.0 - COPYRIGHT 2008 SYNCSORT INC.
000003 SYT001I
INITIAL PROCESSING MODE IS "STOP"
000004 SYT002I
"TOOLIN" INTERFACE BEING USED
000005
000006 STATS FROM(INPUT1)
ON(36,2,ZD)
000007 SYT020I
SYNCSORT CALLED WITH IDENTIFIER "0001"
000008 SYT031I
NUMBER OF RECORDS PROCESSED: 000000000017160
000009 SYT035I
STATISTICS FOR FIELD (00036,002,ZD) -
000010 SYT036I MINIMUM:
+0000000000000000000000000000000
000011 SYT037I MAXIMUM:
+0000000000000000000000000000029
000012 SYT038I AVERAGE:
+0000000000000000000000000000018
000013 SYT039I TOTAL
: +0000000000000000000000000321441
000014 SYT030I
OPERATION COMPLETED WITH RETURN CODE 0
000015
000016 SYT004I
SYNCTOOL PROCESSING COMPLETED WITH RETURN CODE 0
******
**************************** Bottom of Data ****************************
|
SUBSET Operator:Used to extract portion of one file and copy it to another file.We can use record numbers to indicate which records to copy.
BC00 SM017R.TEST1.JCL(ICETOOL1) -
01.02 Columns 00001 00072
Command
===>
Scroll ===> CSR
******
***************************** Top of Data ******************************
000001
//ICETOOL1 JOB (EWDS),'ICETOOL TEST'
000002
//TOOL EXEC PGM=ICETOOL
000003
//TOOLMSG DD SYSOUT=*
000004
//DFSMSG DD SYSOUT=*
000005
//TOOLIN DD *
000006 SUBSET FROM(INPUT1) TO(OUTPUT) KEEP INPUT
RRN(100,200)
000007
/*
000008
//INPUT1 DD DSN=DWPC.DW510.BBNMS.DATA01.G1674V00,DISP=SHR
000009
//OUTPUT DD DSN=SM017R.BBNMS01.T3,DISP=(NEW,CATLG),
000010
// DCB=*.INPUT1
******
**************************** Bottom of Data ****************************
Above means keep the records from input file from
record numbers 100 to 200.
We can also decide to remove the range using the
word REMOVE
BC00 SM017R.BBNMS01.T3 Columns 00001
00072
Command
===>
Scroll ===> CSR
000092
120569508|~|409388350|~|433762818|~|PR|~|AM|~|409388352C|~|20120822|~|20
000093
120926765|~|436900277|~|436900279|~|PR|~|NA|~|436900279A|~|20120905|~|20
000094
118848724|~|436900819|~|436900821|~|RS|~|NA|~|436900821A|~|20120822|~|20
000095
120647461|~|429422311|~|436900497|~|PR|~|CA|~|429422313D|~|20120822|~|20
000096
110306600|~|433658042|~|433658044|~|CH|~|NA|~|433658044A|~|20120823|~|20
000097
107547042|~|436900815|~|436900817|~|RS|~|NA|~|436900817A|~|20120822|~|20
000098
120768995|~|432960435|~|436900049|~|PR|~|AM|~|432960437C|~|20120822|~|20
000099
120596306|~|428041099|~|436900531|~|PR|~|AM|~|428041101H|~|20120827|~|20
000100
118808111|~|436900807|~|436900809|~|RS|~|NA|~|436900809A|~|20120822|~|20
000101
118911473|~|436900437|~|436900439|~|CH|~|NA|~|436900439A|~|20120822|~|20
******
**************************** Bottom of Data ****************************
|
BC00 SM017R.TEST1.JCL(ICETOOL1) -
01.02 Columns 00001 00072
Command
===>
Scroll ===> CSR
******
***************************** Top of Data ******************************
000001
//ICETOOL1 JOB (EWDS),'ICETOOL TEST'
000002
//TOOL EXEC PGM=ICETOOL
000003
//TOOLMSG DD SYSOUT=*
000004
//DFSMSG DD SYSOUT=*
000005
//TOOLIN DD *
000006 SUBSET FROM(INPUT1) TO(OUTPUT) REMOVE
INPUT RRN(100,6220504)
000007
/*
.JCPA //INPUT1 DD
DSN=DWPC.DW510.BBNMS.DATA01.G1674V00,DISP=SHR
000009
//OUTPUT DD DSN=SM017R.BBNMS01.T3,DISP=(OLD,CATLG),
000010
// DCB=*.INPUT1
******
**************************** Bottom of Data ****************************
This will copy records from 1 to 99 and then the
last record. This giving us a sample records for testing.
|
Unique Operator:
BC00 SM017R.TEST1.JCL(ICETOOL1) - 01.02 Columns 00001 00072
Command
===>
Scroll ===> CSR
******
***************************** Top of Data ******************************
000001
//ICETOOL1 JOB (EWDS),'ICETOOL TEST'
000002
//TOOL EXEC PGM=ICETOOL
000003
//TOOLMSG DD SYSOUT=*
000004
//DFSMSG DD SYSOUT=*
000005
//TOOLIN DD *
000006 UNIQUE FROM(INPUT1) ON(60,8,CH)
000007
/*
000008
//INPUT1 DD DSN=DWPC.DW510.BBNMS.DATA01.G1674V00,DISP=SHR
000009
//OUTPUT DD DSN=SM017R.BBNMS01.T3,DISP=(OLD,CATLG),
000010
// DCB=*.INPUT1
******
**************************** Bottom of Data ****************************
As shown below it provides the number of unique
values in the TOOLMSG.
BC00 SSO.D0202361.T312239.ICETOOL1 Columns 00001 00072
Command
===>
Scroll ===> CSR
******
***************************** Top of Data ******************************
000001
»
000002 SYT000I
SYNCTOOL RELEASE 1.7.0 - COPYRIGHT 2008 SYNCSORT INC.
000003 SYT001I
INITIAL PROCESSING MODE IS "STOP"
000004 SYT002I
"TOOLIN" INTERFACE BEING USED
000005
000006 UNIQUE FROM(INPUT1)
ON(60,8,CH)
000007 SYT020I
SYNCSORT CALLED WITH IDENTIFIER "0001"
000008 SYT031I
NUMBER OF RECORDS PROCESSED: 000000006220505
000009 SYT034I
NUMBER OF UNIQUE RECORDS: 000000000000059
000010 SYT030I
OPERATION COMPLETED WITH RETURN CODE 0
000011
000012 SYT004I
SYNCTOOL PROCESSING COMPLETED WITH RETURN CODE 0
******
**************************** Bottom of Data ****************************
|
BC00
SM017R.TEST1.JCL(ICETOOL1) - 01.02 Columns 00001 00072
Command ===>
Scroll ===> CSR
****** ***************************** Top of
Data ******************************
000001 //ICETOOL1 JOB (EWDS),'ICETOOL
TEST'
000002 //TOOL EXEC PGM=ICETOOL
000003 //TOOLMSG DD SYSOUT=*
000004 //DFSMSG DD SYSOUT=*
000005 //TOOLIN DD *
000006
COUNT FROM(INPUT1)
000007
UNIQUE FROM(INPUT1) ON(60,8,CH)
000008 /*
000009 //INPUT1 DD
DSN=SM017R.BBNMS01.T3,DISP=SHR
****** **************************** Bottom
of Data ****************************
BC00 SSO.D0401015.T012239.ICETOOL1 Columns 00001 00072
Command
===>
Scroll ===> CSR
******
***************************** Top of Data ******************************
000001
»
000002 SYT000I
SYNCTOOL RELEASE 1.7.0 - COPYRIGHT 2008 SYNCSORT INC.
000003 SYT001I
INITIAL PROCESSING MODE IS "STOP"
000004 SYT002I
"TOOLIN" INTERFACE BEING USED
000005
000006 COUNT FROM(INPUT1)
000007 SYT020I
SYNCSORT CALLED WITH IDENTIFIER "0001"
000008 SYT031I
NUMBER OF RECORDS PROCESSED: 000000000000100
000009 SYT030I
OPERATION COMPLETED WITH RETURN CODE 0
000010
000011 UNIQUE FROM(INPUT1)
ON(60,8,CH)
000012 SYT020I
SYNCSORT CALLED WITH IDENTIFIER "0002"
000013 SYT031I
NUMBER OF RECORDS PROCESSED: 000000000000100
000014 SYT034I
NUMBER OF UNIQUE RECORDS: 000000000000011
000015 SYT030I
OPERATION COMPLETED WITH RETURN CODE 0
000016
000017 SYT004I
SYNCTOOL PROCESSING COMPLETED WITH RETURN CODE 0
******
**************************** Bottom of Data ****************************
|