Coding the output procedure

To select, edit, or otherwise change sorted records before writing them from the sort work file into another file, use the OUTPUT PROCEDURE phrase of the format 1 SORT statement.

Each output procedure must be contained in either a section or a paragraph. An output procedure must include both of the following elements:

  • At least one RETURN statement or one RETURN statement with the INTO phrase
  • Any statements necessary to process the records that are made available, one at a time, by the RETURN statement

The RETURN statement makes each sorted record available to the output procedure. (The RETURN statement for a sort file is similar to a READ statement for an input file.)

You can use the AT END and END-RETURN phrases with the RETURN statement. The imperative statements in the AT END phrase are performed after all the records have been returned from the sort file. The END-RETURN explicit scope terminator delimits the scope of the RETURN statement.

If you use RETURN INTO instead of RETURN, the records will be returned to WORKING-STORAGE, LOCAL-STORAGE, or to an output area.

DFSORT coding: If you use DFSORT and a RETURN statement does not encounter an AT END condition before a COBOL program finishes running, the format 1 SORT statement could end abnormally with DFSORT message IEC025A. To avoid this situation, be sure to code the RETURN statement with the AT END phrase. In addition, ensure that the RETURN statement is executed until the AT END condition is encountered. The AT END condition occurs after the last record is returned to the program from the sort work file and a subsequent RETURN statement is executed.

Example: coding the output procedure when using DFSORT

related references  
Restrictions on input and output procedures  
RETURN statement (Enterprise COBOL for z/OS® Language Reference)