View previous topic :: View next topic
|
Author |
Message |
kris_madras
New User

Joined: 04 Jul 2005 Posts: 42
|
|
|
|
Hi,
I used SEQNUM in SYNCSORT to generate sequence numbers in the output file.
Code: |
OUTFIL OUTREC=(12:SEQNUM,5,ZD,START=1,INCR=1 |
output:
00001
00002
00003
00004
The output I am seeing with leading ZEROES. Is it possible to suppress leading zeros? |
|
Back to top |
|
 |
Arun Raj
Moderator
Joined: 17 Oct 2006 Posts: 2482 Location: @my desk
|
|
|
|
Quote: |
Is it possible to suppress leading zeros? |
Yes. It is. |
|
Back to top |
|
 |
kris_madras
New User

Joined: 04 Jul 2005 Posts: 42
|
|
|
|
Thanks.. could you post the code here? |
|
Back to top |
|
 |
Arun Raj
Moderator
Joined: 17 Oct 2006 Posts: 2482 Location: @my desk
|
|
|
|
Here's one way of modifying the SEQNUM value to have leading spaces.
Code: |
//SYSIN DD *
SORT FIELDS=COPY
OUTFIL OVERLAY=(SEQNUM,5,ZD,01:01,5,ZD,M10,LENGTH=5)
/* |
|
|
Back to top |
|
 |
kris_madras
New User

Joined: 04 Jul 2005 Posts: 42
|
|
|
|
Thanks.. can we use both OUTREC and OVERLAY statements together? I tried but I am getting error. Here is the original control statements.
Code: |
SORT FIELDS=(270,004,CH,A,
112,004,CH,A)
SUM FIELDS=NONE
OUTFIL OUTREC=(12:SEQNUM,5,ZD,START=1,INCR=1, SEQUENCE NUMBER
024:270,004, T NUMBER
039:112,004, D ZONE
045:088C' ',/), '/' PRINTS A NEW LINE
HEADER1....
HEADER2 |
|
|
Back to top |
|
 |
Arun Raj
Moderator
Joined: 17 Oct 2006 Posts: 2482 Location: @my desk
|
|
|
|
Quote: |
can we use both OUTREC and OVERLAY statements together? |
In a single OUTFIL, I think it is a NO.
AFAIK, the SEQNUM can be generated only as BI,ZD or PD. But you can modify it on your own if it is really required. And the SEQNUM STARTs from 1 and INCRements by 1 by default, so you don't really need the START and INCR subparameters here. I am away from office now and can't run a test. I can show you a possible way of achieving the same which is worth a try.
Code: |
SORT FIELDS=(270,004,CH,A,
112,004,CH,A)
SUM FIELDS=NONE
OUTREC OVERLAY=(12:SEQNUM,5,ZD,12:12,5,ZD,M10,LENGTH=5)
OUTFIL OUTREC=(012:12,5, SEQUENCE NUMBER
024:270,004, T NUMBER
039:112,004, D ZONE
045:088C' ',/), '/' PRINTS A NEW LINE
......
.... rest of your control statements |
|
|
Back to top |
|
 |
Frank Yaeger
DFSORT Developer

Joined: 15 Feb 2005 Posts: 7129 Location: San Jose, CA
|
|
|
|
Quote: |
AFAIK, the SEQNUM can be generated only as BI,ZD or PD. |
Well, I don't know about Syncsort, but DFSORT also allows FS for SEQNUM which would suppress leading zeros automatically:
Code: |
OUTFIL OUTREC=(12:SEQNUM,5,FS,START=1,INCR=1,...
|
|
|
Back to top |
|
 |
Arun Raj
Moderator
Joined: 17 Oct 2006 Posts: 2482 Location: @my desk
|
|
|
|
SyncSort_for_zOS_1.3.2_PG wrote: |
SEQNUM
Use SEQNUM to create a sequence number field within the output record. The length of the field can be from 1 to 16 bytes and can be represented in either BI, PD, or ZD formats. |
DFSORT/ICETOOL Programming Guide wrote: |
seqnum
specifies that a sequence number is to appear in the reformatted input record. The sequence numbers are assigned in the order in which the records are received for INREC processing. You can create BI, PD, ZD, CSF, or FS sequence numbers and control their lengths, starting values and increment values |
Frank,
I ran a test and found that generating a sequence number in FS format works for my Syncsort version as well. I guess they missed it in their documentation whereas you have mentioned it clearly in the DFSORT manual.
May be Alissa could throw some light on why this is missing in the Syncsort PG 1.3.2. |
|
Back to top |
|
 |
kris_madras
New User

Joined: 04 Jul 2005 Posts: 42
|
|
|
|
Yes.. it is working for me as well. Thanks a lot for Arun and Frank. Seems Syncsort and DFSORT has many common options . |
|
Back to top |
|
 |
Arun Raj
Moderator
Joined: 17 Oct 2006 Posts: 2482 Location: @my desk
|
|
|
|
Glad that it worked. Yes, they do have many things in common. |
|
Back to top |
|
 |
Anubhava
New User
Joined: 31 Jan 2022 Posts: 3 Location: INDIA
|
|
|
|
Arun Raj wrote: |
SyncSort_for_zOS_1.3.2_PG wrote: |
SEQNUM
Use SEQNUM to create a sequence number field within the output record. The length of the field can be from 1 to 16 bytes and can be represented in either BI, PD, or ZD formats. |
DFSORT/ICETOOL Programming Guide wrote: |
seqnum
specifies that a sequence number is to appear in the reformatted input record. The sequence numbers are assigned in the order in which the records are received for INREC processing. You can create BI, PD, ZD, CSF, or FS sequence numbers and control their lengths, starting values and increment values |
Frank,
I ran a test and found that generating a sequence number in FS format works for my Syncsort version as well. I guess they missed it in their documentation whereas you have mentioned it clearly in the DFSORT manual.
May be Alissa could throw some light on why this is missing in the Syncsort PG 1.3.2. |
What format is FS. What is the fullform? I was looking for a solution to remove leading zeros from seqnum and found this. And it worked for me!! Thanks alot!
But this is new to me. Could you please explain or provide reference link. |
|
Back to top |
|
 |
Joerg.Findeisen
Senior Member

Joined: 15 Aug 2015 Posts: 1390 Location: Bamberg, Germany
|
|
Back to top |
|
 |
Rohit Umarjikar
Global Moderator

Joined: 21 Sep 2010 Posts: 3098 Location: NYC,USA
|
|
|
|
Please avoid tailgating old posts and start your own new post after doing research first . |
|
Back to top |
|
 |
|
|