データ・レイアウトの抽出

IMS から抽出されたデータは、以下のレイアウト特性と一緒にフラット・ファイルに書き込まれます。

Header record (ヘッダー・レコード)
ヘッダーは、データの再ロード時に FM/IMS で必要な情報を保管します。これは、動的 PSB ヘッダー・レコードと静的 PSB ヘッダー・レコードの 2 つの形式になります。
Dynamic PSB header record (動的 PSB ヘッダー・レコード)
このレコードは抽出ファイルの最初の行で、以下の形式になります。
1. 動的 PSB ヘッダー・レコードの構造
フィールド 説明
1~8 Sort field (ソート・フィールド) ファイルをソートすると、ヘッダー・レコードが最初のレコードのままに なるように、すべての桁が小さい値 (x'00') に設定されます。
9~15 Product code (製品コード) FM/IMS」に設定されます
16 から 25。 Version number (バージョン番号) FM/IMS の現行バージョンに設定されます
26 予約済み
27 から 28。 Extract record prefix length (抽出レコードの接頭部の長さ) これは、抽出レコード・フォーマットで次のように計算されます。
x=33+max_ckeylen-1
29 から 30。 Maximum concatenated key length (連結キーの最大長)
31 から 46。 Date/time (日時) 抽出ファイルが作成された日時
47 EOR レコードの終わり - 予約済み
Static PSB header record(s) (静的 PSB ヘッダー・レコード)
抽出プロセスで静的 PSB を使用する場合は、作成された ヘッダー・レコードが数行にまたがることがあります。これらのヘッダー・ レコードは、論理順序番号フィールド (桁 1 から 2) に 0 があることで、 セグメント・レコードと区別します。最初のヘッダー・レコードの形式は、以下のようになります。
2. 動的 PSB の最初のヘッダー・レコードの構造
フィールド 説明
1 から 9。 Sort field (ソート・フィールド) ファイルをソートすると、ヘッダー・レコードが最初のレコードのままに なるように、すべての桁が小さい値 (x'00') に設定されます (これは、 動的ヘッダー・フィールドのソート・フィールドより 1 バイト長くなります)。
10 から 16。 Product code (製品コード) FM/IMS」に設定されます
17 から 26。 Version number (バージョン番号) FM/IMS の現行バージョンに設定されます
27 予約済み
28 から 29。 Extract record prefix length (抽出レコードの接頭部の長さ) これは、抽出レコード・フォーマットで次のように計算されます。
x=34+max_ckeylen-1
30 から 31。 Maximum concatenated key length (連結キーの最大長)
32 から 47。 Date/time (日時) 抽出ファイルが作成された日時
48 から 59。 PSB タイプ 「STATIC PSB (静的 PSB)」に設定されます。
60 から 73。 索引 PSB が 2 次索引を使用しなかった場合は、このフィールドはブランクになります。それ以外の場合は、INDEX という語の後に索引の DBD 名が付きます。
74 EOR レコードの終わり - 予約済み

最初のヘッダー・レコードの後に、静的 PSB の抽出では、抽出中に使用された PSB に関する情報を保管するための追加のヘッダー・レコードがあります。各レコードには、抽出で組み込まれたデータベースごとの SENSEG のリストが 入っています。これらのレコードの形式は、以下のようになります。

3. 静的 PSB の後続のヘッダー・レコードの構造
フィールド 説明
1~2 Sort field (ソート・フィールド) ファイルをソートすると、ヘッダー・レコードが最初のレコードのままに なるように、すべての桁が小さい値 (x'00') に設定されます。
3 から 4。 Header sequence number (ヘッダー・シーケンス番号) ソート中に追加のヘッダー・レコードの順序を決めるためのものです。
5 から 8。 予約済み 小さい値 (x'00') に設定されます。
9~16 ヘッダーの DBD 名 抽出で使用されたデータベースの 1 つの DBD
17-?? SENSEG list (SENSEG リスト) 可変長 (senseg あたり 8 バイト)
IMS segment record (IMS セグメント・レコード)
IMS セグメント・レコードの形式は、以下のようになります。
4. IMS セグメント・レコードの構造
フィールド 説明
1~2 Logical number order (論理番号順) 論理子が論理親の後に挿入されるように、ファイルをソートするために使用されます。これは、通常のセグメントでは「01」、論理子およびどちらかの 従属セグメントでは「02」になります。
3 から 4。 Database number (データベース番号) データを抽出するために使用される PCB 番号。論理関係では、「Extract (抽出)」パネルで指定された基本データベースの値は 1 になります。論理的に関連するデータベースの値は、2、3、などになります。
5 から 8。 Extract order (抽出順序) IMS セグメントが FM/IMS によって抽出された順序
9~16 DBD name (DBD 名) 抽出で使用されたデータベースの 1 つの DBD
17 から 18。 セグメント・コード
19 から 26。 セグメント名
27 から 28。 予約済み 小さい値 (x'00') に設定されます。
29 から 32。 Concatenated key length (連結キーの長さ) このセグメントの実際の連結キーの長さ
33-?? Concatenated key (連結キー)
??-?? IMS segment data (IMS セグメント・データ) これは、33+Max 連結キーの長さから始まります。