Modifying fields in the command-level parameter structure by exits XICEREQ, XICERES, and XICEREQC
Some fields that are passed to interval control are used as input to the request, some are used as output fields, and some are used for both input and output. The method your user exit program uses to modify a field depends on the usage of the field.
Input and output fields
- Input fields
-
The following are always input fields:
- INTERVAL
- TIME
- REQID
- FROM
- TERMID
- SYSID
- HOURS
- MINUTES
- SECONDS
- USERID
- CHANNEL
- Output fields
-
The following are always output fields:
- DATE
- DATEFORM
- DAYCOUNT
- DAYOFMONTH
- DAYOFWEEK
- DDMMYY
- DDMMYYYY
- FULLDATE
- INTO
- MMDDYY
- MMDDYYYY
- MONTHOFYEAR
- SET
- TIME
- YEAR
- YYDDD
- YYDDMM
- YYMMDD
- YYYYDDD
- YYYYDDMM
- YYYYMMDD
- Fields used for both input and output
-
The following are input fields on a START request and output fields on a RETRIEVE request:
- RTRANSID
- RTERMID
- QUEUE
LENGTH is an input field on a START request, an output field on a RETRIEVE with SET specified, and an input/output field on a RETRIEVE with INTO specified.
ABSTIME is an input field on a FORMATTIME request, and an output field on an ASKTIME request. DATESEP and TIMESEP can be input fields on a FORMATTIME request.
Modifying input fields
The correct method of modifying an input field is to create a new copy of it, and to change the address in the command-level parameter list to point to your new data.
Modifying output fields
You modify an output field by altering the data to which the command-level parameter list points.
The technique described in Modifying input fields is not suitable for modifying output fields because the results would be returned to the new area instead of the application's area, and would be invisible to the application.
In the case of an output field, you can modify the application's data in place because the application is expecting the field to be modified anyway.