End Preprocessor (QbnEndPreProcessor) API


  Required Parameter Group:

1 Qualified input source file name Input Char(20)
2 Input source member name Input Char(10)
3 Qualified output source file name Input Char(20)
4 Output source member name Input Char(10)
5 Qualified exit program name Input Char(20)
6 Exit program data Input Char(*)
7 Length of exit program data Input Binary(4)
8 Error code I/O Char(*)

  Service Program: QBNPREPR

  Default Public Authority: *USE

  Threadsafe: No

The End Preprocessor (QbnEndPreProcessor) API must be called by every preprocessor after the output source file and preprocessor information is created. It records the fact that a preprocessor was called and may be used to pass information used during module creation. This information can be classified as follows:

The End Preprocessor API then moves the above information in the output source file member where it is used at module creation time. The initial preprocessor may get input from inline data, but all subsequent preprocessors must get their input from the output file member of the previous preprocessor.

The output source file created by a previous preprocessor must not be changed. If the output file has been changed, module creation fails.

Authorities and Locks

Input Source File Authority
*READ and *OBJOPR
Input Source Library Authority
*EXECUTE
Output Source File Authority
*CHANGE and *OBJOPR
Output Source File Member Lock
*EXCL
Output Source Library Authority
*EXECUTE

Required Parameter Group

Qualified input source file name
INPUT; CHAR(20)

The qualified name of the input source file to the preprocessor. The first 10 characters contain the input source file name, which is left-justified and padded with blanks. The second 10 characters contain the input source file library, which is left-justified and padded with blanks. The input source file name can be specified with the following special value:

*INLINE The input source data is specified as an inline data file.

Input source member name
INPUT; CHAR(10)

The name of the member within the input source file, which is left-justified and padded with blanks. This parameter is ignored if the qualified input source file name parameter is *INLINE.

Qualified output source file name
INPUT; CHAR(20)

The qualified name of the output source file to the preprocessor. The first 10 characters contain the output source file name. The file is left-justified and padded with blanks. The second 10 characters contain the output source file library name. The file is left-justified and padded with blanks.

Output source member name
INPUT; CHAR(10)

The name of the member within the output source file. The file is left-justified and padded with blanks.

Qualified exit program name
INPUT; CHAR(20)

The qualified name of the exit program to be called during module creation. The first 10 characters contain the exit program name, which is left-justified and padded with blanks. The second 10 characters contain the exit program library where the exit program is located, which is left-justified and padded with blanks. You can use this special value for the exit program name:

*NONE This indicates that there is no exit program.

You can use this special value for the exit program library:

*LIBL The library list.

The exit program is passed five parameters when called. The first two parameters are the exit program data and the exit program data length. The third parameter is reserved CHAR(10). The fourth and fifth parameters are both reserved BINARY(4).

The exit program data being used in this API is defined by the user.

Exit program data
INPUT; CHAR(*)

Data that is stored with the output source file member. When module creation calls the exit program, a copy of the data is passed. The format of this data is specified by the preprocessor. This value is ignored if *NONE is specified for the qualified exit program name parameter.

Length of exit program data
INPUT; BINARY(4)

The length of the data contained in the exit program data parameter. This value is ignored if *NONE is specified for the qualified exit program name parameter.

Error code
I/O; CHAR(*)

The structure in which to return error information. For the format of the structure, see Error code parameter.


Error Messages

Message ID Error Message Text
CPF2207 E Not authorized to use object &1 in library &3 type *&2.
CPF24B4 E Severe error while addressing parameter list.
CPF3C90 E Literal value cannot be changed.
CPF3CF1 E Error code parameter not valid.
CPF5CA0 E Input source file name &1 is not valid.
CPF5CA1 E Exit program name &1 is not valid.
CPF5CEA E Library value &1 is not valid.
CPF5CA4 E Error occurred while addressing API Parameter.
CPF5D20 E Not able to open source file member &3.
CPF5D21 E Not able to open source file member &3.
CPF5D22 E Not able to locate internal data.
CPF5D23 E Source file member has been changed.
CPF5D24 E Unexpected error occurred during preprocessor processing.
CPF9872 E Program or service program &1 in library &2 ended. Reason code &3.


API introduced: V3R1

[ Back to top | Program and CL Command APIs | APIs by category ]