Thanks for the clarity.
Trying this some more I believe I can use 2-pass CARLa to parse correctly based on the offsets being different for each record, but am having some trouble I believe based on the order of the records. Is there any way I can ensure each pass is processing them the same way? Here's effectively what I have so far:
newlist type=smf nopage nodup dd=ckr2pass
select type=smf#
define type=smf $inpcnt("InpCnt",num,6) as substr(record,113,4)
define type=smf $inplen("InpLen",num,6) as substr(record,117,4)
define type=smf $inpoff("InpOff",num,6) as substr(record,121,4)
sortlist,
/ `newlist type=smf nopage nodup dd=ckrcmd `,
/ `select type=smf# `,
/ `define type=SMF $ic("InputCmd",char) , `,
/ ` as substr(substr(record,30,1000),`,
| $inpoff(0) | `,` | $inplen(0) | `)` ,
/ `sortlist datetime $ic`
------------------------------
Adam Klinger
------------------------------
Original Message:
Sent: Fri July 03, 2020 05:38 AM
From: Rob van Hoboken
Subject: CARLa: Reading SMF Via Offsets
Hi Adam
SMF_SECTION12_INDEX was designed to process "12 byte" triplets, as found in SMF types 120 and 123.
The older SMF_SECTION field is meant for triplets where the count and length values are 2 byte in length.
Both fields expect to find a 12 (or 8) byte triplet containing the offset to the first section, length of each section and number of sections, in this order.
------------------------------
Rob van Hoboken
------------------------------