Due to the limitations of pointer use in some OPM languages, additional parameters must be passed to an OPM program. The first four parameters are identical and the data area structure pointed to by the fourth parameter is identical to those passed to an ILE program. Additional parameters have been added to the call of an OPM data exit program. These parameters duplicate some of the fields in the data area structure.
The Copy Active File (CPYACTF) process determines if a data exit program is ILE or OPM prior to calling the data exit program. If the data exit program is OPM the CPYACTF process includes the additional parameters on the call to the data exit program.
Use this style of programming when you want to write an externally called exit program. This has the advantage of simplicity and allows OPM languages to be used for the exit program. The disadvantage is runtime processing speed, since an external call will be made at each user exit point.
Table 9 identifies parameters that are passed to the data exit program:
Parameter |
Field |
Format and size |
---|---|---|
1 |
Data exit point identifier |
CHAR(4) |
2 |
Data area structure version string |
CHAR(4) |
3 |
Length of the data area structure |
INTEGER |
4 |
Data area structure |
Pointer to the data area structure |
5 |
Source member name |
CHAR(10) |
6 |
Source data buffer |
Bytes of the length specified in the Source buffer length field of the data area structure. |
7 |
Source null map |
Bytes of the length specified in the Source null map length field of the data area structure. |
8 |
Target member name |
CHAR(10) |
9 |
Target data buffer |
Bytes of the length specified in the Target buffer length field of the data area structure. (This field must be set by the data exit program) |
10 |
Target null map |
Bytes of the length specified in the Target null map length field of the data area structure. (This field must be set by the data exit program) |
11 |
Default target data buffer |
Bytes of the length specified in the Target buffer length field of the data area structure. |
12 |
Default target null map |
Bytes of the length specified in the Target null map length field of the data area structure. |