Parse fields of different lengths defined under single array

In this Mainframe Forum - You can post your queries on DFSORT, ICETOOL , SyncSort & JCL Utilities

Moderators: Frank Yaeger, Moderator Group

Post Reply
Srikrishna116
Member
Posts: 8
Joined: Thu Jan 28, 2016 3:31 pm

Parse fields of different lengths defined under single array

Post by Srikrishna116 » Fri Jan 29, 2016 5:10 pm

Hi,

Can someone please help me regarding my below query?

I got stuck with the parsing of below copybook layout.

01 EX-Field OCCURS 2 times.
10 Field3 PIC X(04).
10 Field4 PIC X(10).

My input file has data like below:

HeaderYYYYMMDD
NField1~Field2~Field3(1)~Field4(1)~Field3(2)~Field4(2)
VField1Datatype~Field2Datatype~Field3(1)Datatype~Field4(1)Datatype~Field3(2)Datatype~Field4(2)Datatype
D111~abcd~G12~~~H773
D2222~abc~G443~H553~G663~H774
Trailer0002

I used REPEAT in the case if Field3 alone occurs 2 times and so I used below card

%3=(ENDBEFR=C'~',FIXLEN=4,REPEAT=2)

But Field3 & Field 4 of two different field lengths are defined under one array in copybook.
Thanks,
Srikrishna

William Collins
Active Member
Posts: 732
Joined: Thu May 24, 2012 4:07 am

Post by William Collins » Fri Jan 29, 2016 5:49 pm

Well, you could PARSE both as FIXLEN=10 and then shorten to your four-byte field afterwards. Probably not worth it for an OCCURS 2.

Srikrishna116
Member
Posts: 8
Joined: Thu Jan 28, 2016 3:31 pm

Post by Srikrishna116 » Fri Jan 29, 2016 6:17 pm

Thank you William Collins for your response.

I had given OCCURS 2 for an example. But in my original copybook layout, there are 3 to 4 arrays defined with more number of occurrences(like 50 to 75) & fields(10 to 20) of different lengths.
Thanks,
Srikrishna

William Collins
Active Member
Posts: 732
Joined: Thu May 24, 2012 4:07 am

Post by William Collins » Fri Jan 29, 2016 9:57 pm

I think where there are multiple data-items in an OCCURS, I'd make them all the same FIXEDLEN (the longest, of course).

When BUILDing with the PARSEd parameters, i'd leave some blanks for all the PARSEd fields which needed to be shortened, and then place those long fields in a temporary extension to your record. Then use OVERLAY to put the first n bytes of each of those fields into the correct place. Finally ensure the record is cut down to the desired size.

academyindia4

Topic deleted by Admin

Post by academyindia4 » Sat Jan 30, 2016 10:07 pm

<< Content deleted By Admin >>

academyindia4

Topic deleted by Admin

Post by academyindia4 » Sat Jan 30, 2016 10:09 pm

<< Content deleted By Admin >>

Post Reply

FREE TUTORIALS

Tutorials
Free tutorials from mainframegurukul
  • JCL Tutorial
    Covers all important JCL concepts.
  • Cobol Tutorial
    This tutorials covers all Cobol Topics from STRING to COMP-3.
  • DB2 Tutorial
    DB2 Tutorial focuses on DB2 COBOL Programming.
  • SORT Tutorial
    This Tutorial covers all important aspects of DFSORT with examples
  • CICS Tutorial
    This CICS tutorial covers CICS concepts and CICS Basics, CICS COBOL Programming.
Interview
Mainframe Interview questions



Other References
Mainframe Tools and others