複数ファイル処理で突き合わせフィールドを使用した場合には、突き合わせフィールド の内容に応じて、処理するレコードがプログラムによって選択されます。 最初のサイクルの始めでは、プログラムがすべての 1 次/2 次 入力ファイルから 1 つずつレコードを読み取って、レコード内の突き合わせフィール ドを比較します。 レコードが昇順であれば、突き合わせフィールドが最低のレコード がプログラムによって選択されます。 レコードが降順であれば、プログラムは最高の突き合わせフィール ドのレコードを選択します。
レコードがファイルから選択されると、プログラムはそのファイルから次のレ コードを読み取ります。 次のプログラム・サイクルの始めに、新しいレコードが 選択されるのを待機している読み取り域内の他のレコードと比較され、1 つのレコ ードが処理のために選択されます。
1 次ファイルのレコードが 1 つまたは複数の 2 次レコー ドと一致した場合には、MR (突き合わせレコード) 標識がオンに設定されます。 MR 標識は、一致したレコードの明細時処理から、そのレコードに続く合計時まで 、オンのままです。 この標識を使用して、選択されたレコードに対する演算または 出力命令を条件付 けすることができます。 一致したレコードを 1 つ選択する必要があった場合には、それらの レコードが入 っていたファイルの優先順位によって選択されるレコードが決まります。
図 1 は、複数ファイル処理の論理フローを示しています。
1 つの入力ファイルだけに突き合わせフィールドがあるように定義し、他の入力フ ァイルには突き合わせフィールドがないようなプログラムを作成することができます。 突き合わせフィールドのないファイルは、前述のファイルの優先順位に完全に従って 処理されます。 突き合わせフィールドのあるファイルは最後に処理され、そのファイ ルについては順序検査が行われます。