SORT によって呼び出されるそれぞれの入出力プロシージャー、および MERGE によって呼び出されるそれぞれの出力プロシージャーには、以下の制約事項が適用されます。
- プロシージャーに SORT または MERGE ステートメントを含めてはなりません。
- プロシージャーの中で ALTER、GO TO、および PERFORM ステートメントを使用することによって、入力または出力プロシージャーの外側にあるプロシージャー名を参照することができます。しかし、GO TO または PERFORM ステートメントの後で、その入力または出力プロシージャーに制御権を戻さなければなりません。
- PROCEDURE DIVISION のその他の部分に、入力または出力プロシージャーの内部への制御権の移動を記述してはなりません (ただし、宣言セクションからの制御権の戻りは例外です)。
- 入力または出力プロシージャーの中から、標準リンケージ規約に従うプログラムを呼び出すことができます。ただし、呼び出されるプログラムから、SORT または MERGE ステートメントを出してはなりません。
- SORT または MERGE 操作時には、SD データ項目が使用されます。出力プロシージャーの中で、最初の RETURN が実行される前に、このデータ項目を使用してはなりません。最初の RETURN ステートメントの前に、データをこのレコード域に移動すると、戻される最初のレコードが上書きされます。
- 言語環境プログラムの条件処理では、入力または出力プロシージャーの中でユーザー作成条件処理ルーチンを設定することは許可されません。