ソート済みのレコードをソート作業ファイルから別のファイルに書きこむ前に、それらの選択、編集、またはそれ以外の変更を行うには、SORT ステートメントの OUTPUT PROCEDURE 句を使用してください。
それぞれの出力プロシージャーは、セクションまたは段落のいずれかで構成されなければなりません。 また、出力プロシージャーには、以下の両方を含めなければなりません。
RETURN ステートメントによって、ソート済みの各レコードが出力プロシージャーから使用可能になります。(ソート・ファイルに対する RETURN ステートメントは、入力ファイルに対する READ ステートメントに似ています。)
RETURN ステートメントとともに AT END および END-RETURN 句を使用することができます。AT END 句の命令ステートメントは、ソート・ファイルからすべてのレコードが戻された後で実行されます。END-RETURN 明示範囲終了符号は、RETURN ステートメントの有効範囲を区切る役割をします。
RETURN ではなく RETURN INTO を使用すると、レコードは WORKING-STORAGE、LOCAL-STORAGE、または出力域に戻されます。
DFSORT のコーディング: DFSORT の使用時に、COBOL プログラムが実行を終了する前に RETURN ステートメントが AT END 条件を検出しなかった場合、SORT ステートメントは異常終了して DFSORT メッセージ IEC025A が出されることがあります。この状態を回避するには、必ず RETURN ステートメントを AT END 句と一緒にコーディングするようにしてください。 加えて、AT END 条件が検出されるまで RETURN ステートメントが実行されるようにもしてください。AT END 条件が起こるのは、最後のレコードがソート作業ファイルからプログラムに戻され、後続の RETURN ステートメントが実行された後です。
例: DFSORT を使用する際の出力プロシージャーのコーディング
関連参照
入出力プロシージャーに関する制約事項
RETURN ステートメント (Enterprise COBOL 言語解説書)