関連 ID 基準の編集
関連 ID 基準 (すなわち、物理レコード内であらかじめ別のセグメント内に存在するセグメント・レイアウトの ID 基準) を使用してセグメント化レコードを処理する場合、以下のようにしてテンプレート内で関連 ID 基準を編集できます。
- 「Template Workbench (テンプレート・ワークベンチ)」パネルの「Template (テンプレート)」セクションにある「Data set name (データ・セット名)」フィールドに、既存のセグメント化データ用テンプレートを保管するデータ・セットの名前を入力します。
テンプレートは PDS または PDSE データ・セットに保管できますが、CA-Panvalet ライブラリーや、Library Management System Exit がアクセスするライブラリーには保管できません。
これが分かっている場合は、テンプレートのメンバー名を関係のあるフィールドに入力するか、あるいはメンバー名にブランクまたはパターンを指定して、メンバー選択リストを表示させます。次に、リストから必要なメンバーを選択できます。
⋮ Template: Data set name . 'FMN.RFM0569.PDSE' Member . . . . TMPLB1 ⋮
- コマンド行に
E
コマンドを入力し、Enter キーを押します。File Manager が、テンプレートの各レベル 01 レイアウトがリストされた「ecord Type Selection (レコード・タイプ選択)」パネルを表示します。
Process Options Help ────────────────────────────────────────────────────────────────────────────── File Manager 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
- 「Template for segmented data (セグメント化データ用のテンプレート)」オプションを選択します (現在選択解除されている場合)。
- 関連 ID 基準 (別のセグメントで保持されているもの) を指定するレイアウト用の「Cmd」フィールドに E 接頭部コマンドを入力します。
Process Options Help ────────────────────────────────────────────────────────────────────────────── File Manager 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 **** ⋮
- [Enter] を押します。
File Manager が、選択したレイアウトを示す「Field Selection/Edit (フィールド選択/編集)」パネルを表示します。
Process Options Help ────────────────────────────────────────────────────────────────────────────── File Manager 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
注:- パネル上部にある「0 Rid」行は、(前に関連 ID 式を指定しない限り) ブランクです。
- 処理オプションを選択すると、ID 基準と関連 ID 基準との論理和演算を実行できます。
- 関連 ID 式を入力または編集するには、コマンド行で「
0
」(ゼロ) を入力し、Enter キーを押します。選択したレイアウトについて、File Manager は、テンプレートの他のレベル 01 レイアウトをリストする「RID Selection (RID 選択)」パネルを表示します。Process Options Help ────────────────────────────────────────────────────────────────────────────── File Manager 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
- 関連 ID 基準が保持されているレイアウト用の「Cmd」フィールドに E 接頭部コマンドを入力します。
⋮ 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 ⋮
- [Enter] を押します。
File Manager が、選択したレイアウトを示す「Related ID expression (関連 ID 式)」パネルを表示します。
Process Options Help ────────────────────────────────────────────────────────────────────────────── File Manager 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
注: 処理オプションを選択すると、関連基準と別の関連 ID との論理和演算を実行できます。 - 「Related ID expression (関連 ID 式)」パネル上部の「0 Rid」行で、関連 ID 式を指定 (または編集) します。または、コマンド行で「
0
」(ゼロ) を入力してから Enter キーを押して、フィールドごとの関連 ID 式を指定します。一般に、関連 ID 式は、関連 ID を保持するレイアウト内のフィールド、およびフィールドに含まれる値を示します。
Process Options Help ────────────────────────────────────────────────────────────────────────────── File Manager 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
- 「Exit」機能キー (F3) を押して、「RID Selection (RID 選択)」パネルに戻ります。
- 「Exit」機能キー (F3) を再度押して、「Field Selection/Edit (フィールド選択/編集)」パネルに戻ります。
Process Options Help ────────────────────────────────────────────────────────────────────────────── File Manager 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
これで、「Field Selection/Edit (フィールド選択/編集)」パネル上部の「0 Rid」行に、関連 ID 式が表示されます。
- 「1 Id」行と「2 Sel」行で、フィールドごとのレコード ID 基準とレコード選択基準 (あるいはいずれか) を必要に応じて指定します。
Process Options Help ────────────────────────────────────────────────────────────────────────────── File Manager 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 ⋮
- SEGNO() 関数および SEGCNT() 関数を使用したセグメントの識別SEGNO 関数および SEGCNT 関数は、処理中の現在のセグメント番号および特定セグメントが過去に出現した回数を確認できる仕組みを提供します。
- SEGNO()
- 現在のセグメント番号を戻します。
- SEGCNT('01 field-name')
- 指定された 01 field name を使用して、セグメントが過去に出現した回数を戻します。
SEGNO 関数および SEGCNT 関数は、フリー・フォーマットの式でのみ指定できます。
使用法の例:
例えば、最初のセグメントを使用して後に続く A、B、C、または D のセグメントを識別できる次のようなサンプル・データについて考えます。
⋮ 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 **** ⋮
上記のデータは、次のテンプレートを使用してマップできます。
⋮ File Manager 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 **** ⋮
セグメントごとに基準を調べます。
ヘッダー・セグメント
segno() = 1
は、それが常にレコードの最初のセグメントになるようにします。⋮ File Manager 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 **** ⋮
注: セグメント・ヘッダーには、引き続き出現するセグメントごとの数が含まれています。セグメント A: 過去の出現回数をヘッダー内の値と比較する関連式に注目してください。
⋮ File Manager 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 **** ⋮
⋮ File Manager 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 **** ⋮
[Enter] を押します。
⋮ File Manager 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 **** ⋮
注: SEGCNT を使用し、そこから得られた結果をヘッダーに含まれる値と比較することで、出現が確認されたセグメント A の数をヘッダーの値を使用して確実に決定できるようにします。セグメント B、SEG-C、および SEG-D は、次のような式によってすべて定義されます。
⋮ File Manager 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 **** ⋮
⋮ File Manager 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 **** ⋮
⋮ File Manager 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 **** ⋮
セグメント化テンプレートを使用してデータを表示すると、次に示すように、ヘッダー・セグメントを使用して後続のセグメントの数を決定している様子を確認できます。
⋮ View FMN.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 ⋮