フィールドとレコードの関連標識の割り当て

67 から 68 桁目にレコード識別標識 (01 から 99) を使用して、フィールドを特定の レコード・タイプに関連付けることができます。 複数のレコード・タイプが OR 関係で 指定されている場合には、67 から 68 桁目にフィールドとレコードの関連標識のない すべてのフィールドが、OR 関係にあるすべてのレコード・タイプと 関連付けられます。フィールドを 1 つのレコード・タイ プにだけ関連付けるためには、そのレコード・タイプに割り当てられているレコ ード識別標識を 67 から 68 桁目に記入します (図 1 を参照)。

入力域から入力フィールドへのフィールドの転送を条件付けするために、レコー ド識別標識でない標識 (01 から 99) を 67 から 68 桁目に使用することもできます。

フィールドとレコードの関連標識が指定されている場合には、 入力仕様の 63 から 64 桁目の L1 から L9 標識で定義した制御フィールド、および 入力仕様の 65 から 66 桁目の突き合わせ値 (M1 から M9) で指定した突き合わせフィールド も、OR 関係にある特定の レコード・タイプに関連付けることができます。 OR 関係にあって、フィールドと レコードの関連標識のない制御フィールドまたは 突き合わせフィールドは、OR 関係にあるすべてのレコード・タイプで使用されます。

2 つの制御フィールドが同じ制御レベル標識を持っているか、2 つの突き合わせフ ィールドが同じ突き合わせレベルの値を持っている場合には、それらの突き合わせフィー ルドの 1 つにだけフィールドとレコードの関連標識を割り当ていることができます 。 この場合には、その標識がオンである時に、フィールドとレコードの関連標識 を持つフィールドだけが使用されます。 その制御フィールドまたは突き合わせフィールドについてオンになっているフィール ドとレコードの関連標識がない場合には、フィールドとレコードの関連標識のな いフィールドが使用されます。 制御フィールドおよび突き合わせフィールドに可能な 記入項目は、67 から 68 桁目の 01 から 99 または H1 から H9 だけです。

67 から 68 桁目を使用して、一定の条件が起こった (例えば、レコードが一致 する、制御の切れ目が起こる、または外部標識がオンである) 時にだけ、プログ ラムが特定のフィールドからデータを受け入れて使用することを指定することが できます。 67 から 68 桁目に標識 L1 から L9、MR、または U1 から U8 を指定することによ って、プログラムがフィールドからデータを受け入れる条件を指示することがで きます。 標識を指定することによって、プログラムがフィールドからデータを受け入れ る条件を指示することができます。49 から 62 桁目で指定したフィールドのデー タが受け入れられるのはフィールドとレコードの関連標識がオンの場合だけで す。

外部標識は、ファイル仕様書のEXTIND(*INUx)キーワードによ ってファイルの条件付けが指定される場合に主に使用されます。 しかし、ファイルの条件付けを指定しない場合であっても、外部標識を使用する ことはできます。

67 から 68 桁目の停止標識 (H1 から H9) は、OR 関係にあり、かつ 21 から 22 桁目に停 止標識が指定されたレコードにフィールドを関連付けます。

フィールドとレコードの関連標識を使用する場合には、以下の点に留意してく ださい。
  • 同じフィールドとレコードの関連標識を持つ制御レベル (63 から 64 桁目) と突き合わせフィールド (65 から 66 桁目) は、1 つにグループ化しなければなりません。
  • フィールドとレコードの関連標識のない制御レベル (63 から 64 桁目) および突き合わせフィールド (65 から 66 桁目) の記入項目として使用されるフィールドは、フィ ールドとレコードの関連標識で使用されるフィールドの前になければなりません。
  • フィールドとレコードの関連標識 (67 から 68 桁目) のある制御レベル (63 から 64 桁目) と突き合わせフィールド (65 から 66 桁目) は、この標識がオンの時に、同じ レベルで標識のない制御レベルおよび突き合わせフィールドに優先します。
  • 突き合わせフィールドおよび制御レベル・フィールド (63 から 66 桁目) のフィール ドとレコードの関連 (67 から 68 桁目) は、その突き合わせフィールドが参照する主要仕 様行または OR 関係行からレコード識別標識 (01 から 99 または H1 から H9) で指定し なければなりません。 複数のレコード・タイプを OR 関係で指定する場合には、フィールドの 関係を指定する標識を使用して、突き合わせおよび制御レベル・フィールドを該当する レコード・タイプに関連付けることができます。
  • 制御レベル (63 から 64 桁目) と突き合わせフィールド (65 から 66 桁目) のない仕様 は、フィールドとレコードの関連の指定 (67 から 68 桁目) があるグループとグルー プの間に入れることができます。
  • 入力レコードの特定のフィールドが対応する条件がある時だけ必要になる場 合には、MR 標識をフィールドとレコードの関連標識として使用し、処理時間を短 縮することができます。
  • OR 関係にある異なるレコード・タイプには、異なる数の制御レベル (L1 から L9) を指定することができます。 あるレコード・タイプには制御レベルがなく、他のレコード・タイプには制御レ ベルがいくつもあることがあります。
  • すべての突き合わせフィールド (65 から 66 桁目) にフィールドとレコードの関連標 識 (67 から 68 桁目) を指定する場合には、フィールドとレコードの関連標識の 1 つ ごとに、突き合わせフィールドの完全セットを関連付けなければなりません。
  • 1 つの突き合わせフィールドをフィールドとレコードの関連標識なしで指定する 場合には、フィールドとレコードの関連標識のないフィールドについて突き合わせフ ィールドの完全セットを指定しなければなりません。
図 1. フィールド・レコード 関係
*...1....+....2....+....3....+....4....+....5....+....6....+....7...
IFilename++SqNORiPos1+NCCPos2+NCCPos3+NCC................................
I........................Fmt+SPFrom+To+++DcField+++++++++L1M1FrPlMnZr....
IREPORT    AA  14    1 C5
I        OR    16    1 C6
I                                 20   30  FLDB
I                                  2   10  FLDA              07
 *
 *  Indicator 07 was specified elsewhere in the program.
 *
I                                 40   50  FLDC              14
I                                 60   70  FLDD              16

このファイルには 2 つの異なるレコード・タイプが入っており、その 1 つは 1 桁目 の 5 によって識別され、もう 1 つは 1 桁目の 6 によって識別されま す。FLDC フィールドは、レコード識別標識 14 によって、1 桁目の 5 によって 識別されるレコード・タイプと関連付けられています。 FLDD フィールドは、レコード識別 標識 16 によって、1 桁目に 6 を持つレコード・タイプと関連付けられて います。 これは、FLDC が 1 つのタイプのレコード (1 桁目の 5 によって識別される) にだ けあり、FLDD はもう 1 つのタイプのレコードにだけあることを意味します。 FLDA は、プログラムの別の個所ですでに定義されている標識 07 によって条件付 けされています。 FLDB は、レコード識別標識によってどちらのタイプにも関連付 けられていないので、両方のレコード・タイプに入っています。