Page 1 of 1

Query in INREC IFTHEN=(WHEN=GROUP)

Posted: Wed Mar 11, 2020 10:46 am
by gyt3
Hi All,

I have an input like this

<Request RequestID="5803727242796658404053"
<BillTo>
<CustomerID/>
</BillTo>
<Events>
<Event>
<Event>Stop Payment</Event>
<EventDate>2020-01-31T16:00:00Z</EventDate>

</Event>
</Events>
</Request>
<Request RequestID="5809478787336002204087"
<BillTo>
<CustomerID/>
</BillTo>
<Events>
<Event>
</Request>

There are two XML's in my input, I need to write only the first set into the output file, I dont want the second set as it doesnt contain Variables like <Event>. There are 31 records in every group, I just copied few for reference.

My Output should be like this
<Request RequestID="5803727242796658404053"
<BillTo>
<CustomerID/>
</BillTo>
<Events>
<Event>
<Event>Stop Payment</Event>
<EventDate>2020-01-31T16:00:00Z</EventDate>

</Event>
</Events>
</Request>

I tried the following sort card for the same, but, its not working

OPTION COPY
INREC IFTHEN=(WHEN=GROUP,BEGIN=(1,9,CH,EQ,C'<Request '),
RECORDS=31,PUSH=(401:1,400))
OUTFIL OMIT=(1,9,CH,EQ,C'<Request '),
IFOUTLEN=400,
IFTHEN=(WHEN=(1,7,CH,EQ,C'<Event>'),
BUILD=(401,400,/,1,400))
Every XML starts with <Request> and the lrecl of the file is 400 and each group contains 31 records.

Can someone please help me on this .