Portal | Manuals | References | Downloads | Info | Programs | JCLs | Mainframe wiki | Quick Ref

Author Message
Warnings : 1

New User

Joined: 04 Jul 2005
Posts: 26

Posted: Fri Feb 11, 2011 3:15 pm    Post subject: SYNCSORT - Suppress leading zeros in SEQNUM

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?

Arun Raj

Moderator

Joined: 17 Oct 2006
Posts: 2361
Location: @my desk

Posted: Fri Feb 11, 2011 3:34 pm    Post subject:

 Quote: Is it possible to suppress leading zeros?
Yes. It is.
Warnings : 1

New User

Joined: 04 Jul 2005
Posts: 26

 Posted: Mon Feb 14, 2011 4:28 pm    Post subject: Thanks.. could you post the code here?
Arun Raj

Moderator

Joined: 17 Oct 2006
Posts: 2361
Location: @my desk

Posted: Mon Feb 14, 2011 5:04 pm    Post subject:

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) /*
Warnings : 1

New User

Joined: 04 Jul 2005
Posts: 26

Posted: Mon Feb 14, 2011 6:53 pm    Post subject:

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
Arun Raj

Moderator

Joined: 17 Oct 2006
Posts: 2361
Location: @my desk

Posted: Mon Feb 14, 2011 11:50 pm    Post subject:

 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
Frank Yaeger

DFSORT Moderator

Joined: 15 Feb 2005
Posts: 7130
Location: San Jose, CA

Posted: Tue Feb 15, 2011 12:37 am    Post subject:

 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,...
Arun Raj

Moderator

Joined: 17 Oct 2006
Posts: 2361
Location: @my desk

Posted: Tue Feb 15, 2011 9:54 am    Post subject:

 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.
Warnings : 1

New User

Joined: 04 Jul 2005
Posts: 26

 Posted: Thu Feb 17, 2011 4:57 pm    Post subject: Yes.. it is working for me as well. Thanks a lot for Arun and Frank. Seems Syncsort and DFSORT has many common options .
Arun Raj

Moderator

Joined: 17 Oct 2006
Posts: 2361
Location: @my desk

 Posted: Thu Feb 17, 2011 8:16 pm    Post subject: Glad that it worked. Yes, they do have many things in common.
 All times are GMT + 6 Hours
 Page 1 of 1

Search our Forum:

 Topic Author Forum Replies Posted Similar Topics Issue in suppressing leading zeros &a... Vijay_Sirisha COBOL Programming 21 Thu Jun 07, 2018 8:01 pm Reformatting and adding additional fi... Badbeef SYNCSORT 6 Thu Apr 05, 2018 4:45 pm Split 1 file into 10 output Files - S... Prasanth Kumar SYNCSORT 5 Sat Sep 16, 2017 12:02 am Remove leading spaces from numeric field rexx77 SYNCSORT 6 Wed Sep 06, 2017 2:15 am editting the file by inserting zeros ... pramodrsingh DFSORT/ICETOOL 9 Mon Aug 21, 2017 5:58 pm

 © 2003-2017 IBM MAINFRAME Software Support Division
 Job Vacancies | Forum Rules | Bookmarks | Subscriptions | FAQ | Polls | Contact Us