Your E35 routine must pass a return code to DFSORT. Following are
the return codes for the E35 user exit:
- Return Code
- Description
- 00 (X'00')
- No Action/Record Altered
- 04 (X'04')
- Delete Record
- 08 (X'08')
- Do Not Return
- 12 (X'0C')
- Insert Record
- 16 (X'10')
- Terminate DFSORT
- 0: No Action
- If you want DFSORT to retain the record unchanged, load the
address of the record leaving DFSORT in general register 1 and return
to DFSORT with a return code of 0 (zero).
- 0: Record Altered
- If you want to change the record before having it placed in
the output data set, move the record to a work area, make the change,
load the address of the modified record into general register 1, and
return to DFSORT with a return code of 0 (zero).
- 4: Delete Record
- Your routine can delete the record leaving DFSORT by returning
to DFSORT with a return code of 4. You need not place an address in
general register 1.
- 8: Do Not Return
- DFSORT keeps returning to your routine until you pass a return
code of 8. After that, the user exit is not used again during the
DFSORT application. When you return with a return code of 8, you need
not place an address in general register 1. Unless
you are inserting records after the end of the data set, you must
pass a return code of 8 when DFSORT indicates the end of the data
set. This is done by passing a zero as the address of the record
leaving DFSORT.
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).
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.
- 12: Insert Record
- To add an output record ahead of the record leaving DFSORT,
place the address of the new record in general register 1 and return
to DFSORT with a return code of 12. DFSORT returns to your routine
with the same address as passed on the previous call to the user exit
for the record leaving DFSORT. DFSORT passes the address
of the inserted record as the address of the record in the output
area. You can make more insertions at that point, or delete the
record leaving DFSORT.
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 records that you insert unless
you delete the record leaving DFSORT and insert a record to replace
it. DFSORT keeps returning to your routine until
you pass a return code of 8.
- 16: Terminate DFSORT
- If you want to terminate DFSORT, return with a code of 16. DFSORT
then returns to its calling program or to the system with a return
code of 16.
See E15/E35 return codes and EXITCK for complete details of the meanings of
return codes in various situations.