Your COBOL E35 routine must pass a return code to DFSORT in the
RETURN-CODE field, a COBOL special register. Following are the return
codes for the E35 exit:
- Return Code
- Description
- 00 (X'00')
- No Action
- 04 (X'04')
- Delete Record
- 08 (X'08')
- Do Not Return
- 12 (X'0C')
- Insert Record
- 16 (X'10')
- Terminate DFSORT
- 20 (X'14')
- Alter or Replace Record
- 0: No Action
- If you want DFSORT to retain the record leaving DFSORT unchanged,
return with RETURN-CODE set to 0.
- 4: Delete Record
- If you want DFSORT to delete the record leaving DFSORT, return
with RETURN-CODE set to 4.
- 8: Do Not Return
- DFSORT keeps returning to your routine until you pass a RETURN-CODE
set to 8. After that, the user exit is not used again during the DFSORT
application. Unless you are inserting records
after the end of the data set, you must set RETURN-CODE to 8 when
DFSORT indicates the end of the data set. This is done by entering
your routine with the record flags field set to 8.
If your user
exit routine passes a return code of 8 to DFSORT when input records
still remain to be processed, the remaining records are processed
by DFSORT but are not passed to your user
exit.
If you do not have an output data set and would usually
return with a return code of 8 before EOF, you can avoid getting the
ICE025A message by specifying NOCHECK on the OPTION control statement
(if installation option CHECK=NO had not already
been specified).
- 12: Insert Record
- If you want DFSORT to add an output record before the record
leaving DFSORT:
- Move the insert record to the return record field
- For VLR records, move the length to the return record length field
- Return with RETURN-CODE set to 12.
DFSORT returns to your routine with the inserted record in
the record output area field and with the same record as before in
the record leaving DFSORT field. In this way, your routine can insert
more records or handle the record leaving DFSORT.
You can also
insert records after the end of the data set. DFSORT
keeps returning to your routine as long as you pass it a RETURN-CODE
12 and until you return with RETURN-CODE set to 8.
DFSORT
does not perform sequence checking for disk work data set sorts. For
tape work data set sorts, DFSORT does not perform sequence checking
on inserted records unless you delete the record leaving DFSORT and
then replace it.
- 16: Terminate DFSORT
- If you want to terminate DFSORT, return with RETURN-CODE set
to 16. DFSORT then returns to its calling program or to the system
with a return code of 16.
- 20: Alter Record
- If you want to change the record leaving DFSORT:
- Move the record leaving DFSORT to the return record field
- Change the record in the return record field
- For VLR records, move the length to the return record length field
- Return with RETURN-CODE set to 20.
Note: If your routine changes record size, you must
indicate the new size on the RECORD statement.
- 20: Replace Record
- If you want to replace the record leaving DFSORT:
- Move the replacement record to the return record field
- For VLR records, move the length to the return record length field
- Return with RETURN-CODE set to 20.
See E15/E35 return codes and EXITCK for complete details of the meanings of
return codes in various situations.