Editing related ID criteria
When you are working with segmented records with related ID criteria (that is, the ID criteria for a segment layout resides in another segment earlier in the physical record), you can edit the related ID criteria in the template as follows:
- In the Data set name field in the Template section
of the Template Workbench panel, type the name of the data set in
which your existing template for segmented data is stored.
Templates can be stored in PDS or PDSE data sets but not in a CA-Panvalet library, or a library accessed using the Library Management System Exit.
If you know it, type the Member name of the template into the relevant field or specify blanks or a pattern for the member name to have a member selection list displayed. You can then select the required member from the list.
⋮ Template: Data set name . 'HFM.RFM0569.PDSE' Member . . . . TMPLB1 ⋮
- On the Command line, type the
E
command and press Enter.Z Data Tools displays the Record Type Selection panel which lists each of the level-01 layouts in the template.
Process Options Help ────────────────────────────────────────────────────────────────────────────── Z Data Tools Record Type Selection Line 1 of 9 Processing Option: Template for segmented data Cmd SIE Field Name Prompt Offset Length **** Top of data **** S HEADER-01 0 20 S HEADER-02 0 20 S HEADER-03 0 20 S DETAIL-0101 0 30 S DETAIL-0102 0 30 S DETAIL-0103 0 30 S DETAIL-0201 0 30 S DETAIL-0202 0 30 S DETAIL-0203 0 30 **** End of data **** Command ===> Scroll CSR F1=Help F2=Split F3=Exit F4=CRetriev F5=RFind F6=RunTemp F7=Up F8=Down F9=Swap F12=Cancel
- Select (if currently unselected) the Template for segmented data option.
- Type the E prefix command in the Cmd field against the
layout for which you want to specify related ID criteria (but which
is held in another segment).
Process Options Help ────────────────────────────────────────────────────────────────────────────── Z Data Tools Record Type Selection Line 1 of 9 Processing Option: / Template for segmented data Cmd SIE Field Name Prompt Offset Length **** Top of data **** S HEADER-01 0 20 S HEADER-02 0 20 S HEADER-03 0 20 E S DETAIL-0101 0 30 S DETAIL-0102 0 30 S DETAIL-0103 0 30 S DETAIL-0201 0 30 S DETAIL-0202 0 30 S DETAIL-0203 0 30 **** End of data **** ⋮
- Press Enter.
Z Data Tools displays the Field Selection/Edit panel showing the selected layout.
Process Options Help ────────────────────────────────────────────────────────────────────────────── Z Data Tools Field Selection/Edit Line 1 of 6 ---Criteria - Enter 0 - Related ID expression, 1 or 2 - expression by field--- 0 Rid: + 1 Id : + 2 Sel: 0 + Offset 0 Enter "/" to OR with related ID Cmd Seq SHE Ref Field Name Picture Type Start Length **** Top of data **** 1 1 DETAIL-0101 AN 1 30 2 2 SUBTYPE-FIELD AN 1 9 3 3 SUBTYPECONST X(7) AN 1 7 4 3 TYPEREC X(2) AN 8 2 5 2 DETAILTEXT01 AN 10 21 6 3 DETAIL01-01 X(21) AN 10 21 **** End of data **** Command ===> Scroll CSR F1=Help F2=Split F3=Exit F4=Expand F5=RFind F6=RunTemp F7=Up F8=Down F9=Swap F10=Left F11=Right F12=Cancel
Note:- The 0 Rid line at the top of the panel is blank (unless you have previously specified a related ID expression).
- The ability to OR the identification criteria with related ID by selecting the processing option.
- To enter or edit a related ID expression, type
0
(zero) on the command line and press Enter.For the selected layout, Z Data Tools displays the RID Selection panel listing the other level-01 layouts in the template.Process Options Help ────────────────────────────────────────────────────────────────────────────── Z Data Tools RID Selection for DETAIL-0101 Line 1 of 8 E against layouts to specify related id criteria Cmd SIE Field Name Prompt Offset Length **** Top of data **** SI HEADER-01 0 20 SI HEADER-02 0 20 S HEADER-03 0 20 SI DETAIL-0102 0 30 S DETAIL-0103 0 30 S DETAIL-0201 0 30 S DETAIL-0202 0 30 S DETAIL-0203 0 30 **** End of data **** Command ===> Scroll CSR F1=Help F2=Split F3=Exit F4=CRetriev F5=RFind F6=RunTemp F7=Up F8=Down F9=Swap F12=Cancel
- Type the E prefix command in the Cmd field against the
layout in which the related ID criteria are held.
⋮ Cmd SIE Field Name Prompt Offset Length **** Top of data **** E S HEADER-01 0 20 S HEADER-02 0 20 S HEADER-03 0 20 S DETAIL-0102 0 30 S DETAIL-0103 0 30 S DETAIL-0201 0 30 S DETAIL-0202 0 30 S DETAIL-0203 ⋮
- Press Enter.
Z Data Tools displays the Related ID expression panel showing the selected layout.
Process Options Help ────────────────────────────────────────────────────────────────────────────── Z Data Tools Related Id expression for DETAIL-0101 Line 1 of 7 -------- Criteria - Enter 0 to specify related ID expression by field -------- 0 Rid: + Offset 0 Enter "/" to OR with related ID Cmd Seq SHE Ref Field Name Picture Type Start Length **** Top of data **** 1 1 HEADER-01 AN 1 20 2 2 ALLGROUP AN 1 20 3 3 TYPE-FIELD AN 1 8 4 4 TYPECONST X(6) AN 1 6 5 4 TYPEREC X(2) AN 7 2 6 3 HEADERTEXT AN 9 12 7 4 HEAD01-TEXT X(12) AN 9 12 **** End of data **** Command ===> Scroll CSR F1=Help F2=Split F3=Exit F4=Expand F5=RFind F6=RunTemp F7=Up F8=Down F9=Swap F10=Left F11=Right F12=Cancel
Note: The ability to OR the related criteria with other related ID by selecting the processing option. - On the 0 Rid line at the top of the Related ID expression
panel, specify (or edit) the related ID expression. Alternatively,
type
0
(zero) on the command line and press Enter to specify the related ID expression by field.Typically, the related ID expression specifies the field, and the value it contains, in the layout holding the related ID.
Process Options Help ────────────────────────────────────────────────────────────────────────────── Z Data Tools Related Id expression for DETAIL-0101 Line 1 of 7 -------- Criteria - Enter 0 to specify related ID expression by field -------- 0 Rid: #5='01' + Offset 0 Enter "/" to OR with related ID Cmd Seq SHE Ref Field Name Picture Type Start Length **** Top of data **** 1 1 HEADER-01 AN 1 20 2 2 ALLGROUP AN 1 20 3 3 TYPE-FIELD AN 1 8 4 4 TYPECONST X(6) AN 1 6 5 4 TYPEREC X(2) AN 7 2 6 3 HEADERTEXT AN 9 12 7 4 HEAD01-TEXT X(12) AN 9 12 **** End of data **** Command ===> Scroll CSR F1=Help F2=Split F3=Exit F4=Expand F5=RFind F6=RunTemp F7=Up F8=Down F9=Swap F10=Left F11=Right F12=Cancel
- Press the Exit function key (F3) to return to the RID Selection panel.
- Press the Exit function key (F3) again to return to the Field
Selection/Edit panel.
Process Options Help ────────────────────────────────────────────────────────────────────────────── Z Data Tools Field Selection/Edit Line 1 of 6 ---Criteria - Enter 0 - Related ID expression, 1 or 2 - expression by field--- 0 Rid: SEG(HEADER-01):#5: TYPEREC ='01' + 1 Id : + 2 Sel: 0 + Offset 0 Enter "/" to OR with related ID **** Top of data **** 1 1 DETAIL-0101 AN 1 30 2 2 SUBTYPE-FIELD AN 1 9 3 3 SUBTYPECONST X(7) AN 1 7 4 3 TYPEREC X(2) AN 8 2 5 2 DETAILTEXT01 AN 10 21 6 3 DETAIL01-01 X(21) AN 10 21 **** End of data **** Command ===> Scroll CSR F1=Help F2=Split F3=Exit F4=Expand F5=RFind F6=RunTemp F7=Up F8=Down F9=Swap F10=Left F11=Right F12=Cancel
You will now see the related ID expression on the 0 Rid line at the top of the Field Selection/Edit panel.
- On the 1 Id and 2 Sel lines, specify record identification
and or selection criteria by field as required.
Process Options Help ────────────────────────────────────────────────────────────────────────────── Z Data Tools Field Selection/Edit Line 1 of 6 ---Criteria - Enter 0 - Related ID expression, 1 or 2 - expression by field--- 0 Rid: SEG(HEADER-01):#5: TYPEREC ='01' + 1 Id : #4='01' + 2 Sel: 0 + Offset 0 Enter "/" to OR with related ID ⋮
- Using SEGNO() and SEGCNT() functions to identify your segments
The SEGNO and SEGCNT functions provide a mechanism for checking the current segment number being processed and the number of previous occurrences of a particular segment.
- SEGNO()
- Returns the current segment number.
- SEGCNT('01 field-name')
- Returns the number of previous occurrences of the segment with 01 field name specified.
The SEGNO and SEGCNT functions can only be specified in a free-format expression.
Example of their usage:
Consider the following sample data, where the first segment can be used to determine the number of following A, B, C, or D segments:
⋮ Col 1 Insert Length 8160 Record AT TOP Format CHAR ----+----10---+----2----+----3----+----4----+----5----+----6----+----7-- ****** **** Top of data **** 000001 1234AsegBsegBsegCsegCsegCsegDsegDsegDsegDseg 000002 0202BsegBsegDsegDseg 000003 1232AsegBsegBsegCsegCsegCsegDsegDseg ****** **** End of data **** ⋮
The data above can be mapped with the following template:
⋮ Z Data Tools Record Type Selection Line 1 of 2 Processing Option: Template for segmented data Cmd SIE Field Name Prompt Offset Length **** Top of data **** e SI SEG-HDR 0 4 e SI SEG-A 0 4 e SI SEG-B 0 4 e SI SEG-C 0 4 e SI SEG-D 0 4 **** End of data **** ⋮
Examine the criteria for each segment.
Header segment
segno() = 1
ensures its always the first segment on the record.⋮ Z Data Tools Field Selection/Edit Line 1 of 5 ---Criteria - Enter 0 - Related ID expression, 1 or 2 - expression by field--- 0 Rid: + 1 Id : segno()=1 + 2 Sel: + Offset 0 Enter "/" to OR with related ID Cmd Seq SHE Ref Field Name Picture Type Start Length **** Top of data **** 1 1 SEG-HDR AN 1 4 2 2 SEG-NUM-A 9 ZD 1 1 3 2 SEG-NUM-B 9 ZD 2 1 4 2 SEG-NUM-C 9 ZD 3 1 5 2 SEG-NUM-D 9 ZD 4 1 **** End of data **** ⋮
Note: The segment header contains the number of each of the following segments that occur.Segment A: note the related expression where we compare the previous occurrences to the value in the header.
⋮ Z Data Tools Field Selection/Edit Line 1 of 3 ---Criteria - Enter 0 - Related ID expression, 1 or 2 - expression by field--- 0 Rid: SEG(SEG-HDR):segcnt('seg-a') < #2: SEG-NUM-A + 1 Id : + 2 Sel: + Offset 0 Enter "/" to OR with related ID Cmd Seq SHE Ref Field Name Picture Type Start Length **** Top of data **** 1 1 SEG-A AN 1 4 2 2 SEG-TYPE X(1) AN 1 1 3 2 SEG-DATA X(3) AN 2 3 **** End of data **** ⋮
⋮ Z Data Tools RID Selection for SEG-A Line 1 of 4 E against layouts to specify related id criteria Cmd SIE Field Name Prompt Offset Length **** Top of data **** e SI SEG-HDR 0 4 SI SEG-B 0 4 SI SEG-C 0 4 SI SEG-D 0 4 **** End of data **** ⋮
Press Enter.
⋮ Z Data Tools Related Id expression for SEG-A Line 1 of 5 -------- Criteria - Enter 0 to specify related ID expression by field -------- 0 Rid: segcnt('seg-a') < #2 + Offset 0 Enter "/" to OR with related ID Cmd Seq SHE Ref Field Name Picture Type Start Length **** Top of data **** 1 1 SEG-HDR AN 1 4 2 2 SEG-NUM-A 9 ZD 1 1 3 2 SEG-NUM-B 9 ZD 2 1 4 2 SEG-NUM-C 9 ZD 3 1 5 2 SEG-NUM-D 9 ZD 4 1 **** End of data **** ⋮
Note: We use SEGCNT and compare it to the value in the header to ensure that the number of SEG-A identified is determined by the header value.SEG-B, SEG-C, and SEG-D are all defined with a similar expression as follows:
⋮ Z Data Tools Related Id expression for SEG-B Line 1 of 5 -------- Criteria - Enter 0 to specify related ID expression by field -------- 0 Rid: segcnt('seg-b') < #3 + Offset 0 Enter "/" to OR with related ID Cmd Seq SHE Ref Field Name Picture Type Start Length **** Top of data **** 1 1 SEG-HDR AN 1 4 2 2 SEG-NUM-A 9 ZD 1 1 3 2 SEG-NUM-B 9 ZD 2 1 4 2 SEG-NUM-C 9 ZD 3 1 5 2 SEG-NUM-D 9 ZD 4 1 **** End of data **** ⋮
⋮ Z Data Tools Related Id expression for SEG-C Line 1 of 5 -------- Criteria - Enter 0 to specify related ID expression by field -------- 0 Rid: segcnt('seg-c') < #4 + Offset 0 Enter "/" to OR with related ID Cmd Seq SHE Ref Field Name Picture Type Start Length **** Top of data **** 1 1 SEG-HDR AN 1 4 2 2 SEG-NUM-A 9 ZD 1 1 3 2 SEG-NUM-B 9 ZD 2 1 4 2 SEG-NUM-C 9 ZD 3 1 5 2 SEG-NUM-D 9 ZD 4 1 **** End of data **** ⋮
⋮ Z Data Tools Related Id expression for SEG-D Line 1 of 5 -------- Criteria - Enter 0 to specify related ID expression by field -------- 0 Rid: segcnt('seg-d') < #5 + Offset 0 Enter "/" to OR with related ID Cmd Seq SHE Ref Field Name Picture Type Start Length **** Top of data **** 1 1 SEG-HDR AN 1 4 2 2 SEG-NUM-A 9 ZD 1 1 3 2 SEG-NUM-B 9 ZD 2 1 4 2 SEG-NUM-C 9 ZD 3 1 5 2 SEG-NUM-D 9 ZD 4 1 **** End of data **** ⋮
Viewing the data with a segmented template produces the following where we can see the header segment has been used to determine the number of following segments.
⋮ View HFM.RFM0757.SEGTEST(SEG2) Top of 3 Record AT TOP Format TABL SEG-NUM-A SEG-NUM-B SEG-NUM-C SEG-NUM-D #2 #3 #4 #5 ZD 1:1 ZD 2:1 ZD 3:1 ZD 4:1 <> <> <> <> ****** **** Top of data **** 000001 1 2 3 4 - - - - - -1- - - SEG-A - - - - - - - - - - - - - 1 Line(s) suppressed - - - - - -1- - - SEG-B - - - - - - - - - - - - - 2 Line(s) suppressed - - - - - -1- - - SEG-C - - - - - - - - - - - - - 3 Line(s) suppressed - - - - - -1- - - SEG-D - - - - - - - - - - - - - 4 Line(s) suppressed 000002 0 2 0 2 - - - - - -2- - - SEG-B - - - - - - - - - - - - - 2 Line(s) suppressed - - - - - -2- - - SEG-D - - - - - - - - - - - - - 2 Line(s) suppressed 000003 1 2 3 2 - - - - - -3- - - SEG-A - - - - - - - - - - - - - 1 Line(s) suppressed - - - - - -3- - - SEG-B - - - - - - - - - - - - - 2 Line(s) suppressed - - - - - -3- - - SEG-C - - - - - - - - - - - - - 3 Line(s) suppressed - - - - - -3- - - SEG-D - - - - - - - - - - - - - 2 Line(s) suppressed ⋮