Write data to array using SORT/SYNCSORT JCL
Posted: Thu Jan 28, 2016 4:23 pm
Hi,
Can someone please help me regarding my below query?
Case1:
My input FB file has data like below:
HeaderYYYYMMDD
NField1~Field2~Field3
VField1Datatype~Field2Datatype~Field3Datatype
D111~abcd~G12
D2222~abc~G443
Trailer0002
In this case, I have removed Header, trailer records,delimiters '~' by writing below SORT card and formatted the file having only detailed records i.e, record starting with D.
SORT FIELDS=COPY
OMIT COND=(1,1,CH,EQ,C'H',OR,1,1,CH,EQ,C'T')
OUTREC PARSE=(%1=(ENDBEFR=C'~',FIXLEN=5),
%2=(ENDBEFR=C'~',FIXLEN=4),
%3=(ENDBEFR=C'~',FIXLEN=4)),
BUILD=(1:%1,6:%2,10:%3)
So by executing above sort card, output FB file is created with detailed as below:
111 abcdG12
2222 abc G443
Case 2:
I want to try the similar way of sort card of Case1 for the below input file
My input file has data like below:
HeaderYYYYMMDD
NField1~Field2~Field3(1)~Field3(2)
VField1Datatype~Field2Datatype~Field3(1)Datatype~Field3(2)Datatype
D111~abcd~G12~~
D2222~abc~G443~G553~
Trailer0002
But here the problem is Field3 occurs for two times. This is the sample layout I had given. In my copybook layout, few fields occurs 50 times like that. So it would be overhead to write below similar sort card line for 50 times to define each field occurrence in output file layout.
[01 EX-Field3 OCCURS 50 times
10 Field3 PIC X(04). ]
%3=(ENDBEFR=C'~',FIXLEN=4)
So could you please let me know if there is any simpler way to write data to above kind of array fields using SORT/SYNCSORT?
I would be grateful for your help.
Can someone please help me regarding my below query?
Case1:
My input FB file has data like below:
HeaderYYYYMMDD
NField1~Field2~Field3
VField1Datatype~Field2Datatype~Field3Datatype
D111~abcd~G12
D2222~abc~G443
Trailer0002
In this case, I have removed Header, trailer records,delimiters '~' by writing below SORT card and formatted the file having only detailed records i.e, record starting with D.
SORT FIELDS=COPY
OMIT COND=(1,1,CH,EQ,C'H',OR,1,1,CH,EQ,C'T')
OUTREC PARSE=(%1=(ENDBEFR=C'~',FIXLEN=5),
%2=(ENDBEFR=C'~',FIXLEN=4),
%3=(ENDBEFR=C'~',FIXLEN=4)),
BUILD=(1:%1,6:%2,10:%3)
So by executing above sort card, output FB file is created with detailed as below:
111 abcdG12
2222 abc G443
Case 2:
I want to try the similar way of sort card of Case1 for the below input file
My input file has data like below:
HeaderYYYYMMDD
NField1~Field2~Field3(1)~Field3(2)
VField1Datatype~Field2Datatype~Field3(1)Datatype~Field3(2)Datatype
D111~abcd~G12~~
D2222~abc~G443~G553~
Trailer0002
But here the problem is Field3 occurs for two times. This is the sample layout I had given. In my copybook layout, few fields occurs 50 times like that. So it would be overhead to write below similar sort card line for 50 times to define each field occurrence in output file layout.
[01 EX-Field3 OCCURS 50 times
10 Field3 PIC X(04). ]
%3=(ENDBEFR=C'~',FIXLEN=4)
So could you please let me know if there is any simpler way to write data to above kind of array fields using SORT/SYNCSORT?
I would be grateful for your help.