Software Product Functions Exit Program


  Required Parameter Group:

1 Function being performed Input Char(10)
2 Before or after indicator Input Char(10)
3 Language ID Input Char(4)
4 Library that contains exit programs Input Char(10)
5 Library where product currently exists Input Char(10)
6 Library specified by creator of product Input Char(10)
7 Library where product will exist Input Char(10)
8 Root folder that product currently uses Input Char(12)
9 Root folder specified by creator Input Char(12)
10 Root folder that product will use Input Char(12)
11 Release level of product Input Char(6)
12 Release level of product being restored Input Char(6)
13 Array of missing objects and their symbolic
object types
Input Array of Char(20)
14 Number of missing objects Input Binary(4)
15 Array of missing folders Input Array of Char(63)
16 Number of missing folders Input Binary(4)
17 Array of offsets to missing directory information Input Array of Binary(4)
18 Number of missing directories Input Binary(4)
19 Number of product directories Input Binary(4)
20 Array of offsets to directory information where product currently exists Input Array(300) of Binary(4)
21 Array of offsets to directory information
specified by creator of product
Input Array(300) of Binary(4)
22 Array of offsets to directory information where product will exist Input Array(300) of Binary(4)

This exit program is specified when you create products that are restored, saved, deleted, and checked with the following commands:

More information about creating your own product and using exit programs is available in the System Manager UseLink to PDF book.


Authorities and Locks

None.


Required Parameter Group

Exit programs must be written to accept the following parameters:

Function being performed
INPUT; CHAR(10)

The function being performed when this exit program is called. The values are:

*RSTCODE (restore code) Restore program objects when the RSTLICPGM command runs.
*SAVCODE (save code) Save program objects when the SAVLICPGM command runs.
*DLTCODE (delete code) Delete program objects when the DLTLICPGM command runs.
*CHKCODE (check code) Check program objects when the CHKPRDOPT command runs.
*RSTLNG (restore language) Restore language objects when the RSTLICPGM command runs.
*SAVLNG (save language) Save language objects when the SAVLICPGM command runs.
*DLTLNG (delete language) Delete language objects when the DLTLICPGM command runs.
*CHKLNG (check language) Check language objects when the CHKPRDOPT command runs.

Before or after indicator
INPUT; CHAR(10)

Whether the exit program is being called before or after the actual operation (restore process, save process, and so on). The values are:

*BEFORE The program is called before the actual operation.
*AFTER The program is called after the actual operation.

Language ID
INPUT; CHAR(4)

The 4-digit feature code identifier. For the *RSTCODE, *SAVCODE, *DLTCODE, and *CHKCODE values of the function being performed parameter, this value is blank because it only applies to the language functions.

Library that contains exit programs
INPUT; CHAR(10)

The library where exit programs for the product are located while the current function is being performed. You cannot assume this value will be either the library where the product currently exists or will exist.

Library where product currently exists
INPUT; CHAR(10)

If the product exists on the system when the exit program is called, this is the library that contains the product. Otherwise, this value is blank.

Library specified by creator of product
INPUT; CHAR(10)

The library that was specified on the Create Product Load (CRTPRDLOD) command or the Create Product Load (QSZCRTPL) API when you created the product.

Library where product will exist
INPUT; CHAR(10)

The library of the product after the product is restored. This value only applies when the function being performed is *RSTCODE and *RSTLNG. For other functions, this value is blank.

Root folder that product currently uses
INPUT; CHAR(12)

The root folder specified if the product is installed and has folders. It is only specified when calling the exit program for the principal library. Otherwise, this value is blank.

Root folder specified by creator
INPUT; CHAR(12)

The root folder that was specified on the CRTPRDLOD command or the QSZCRTPL API when the product was created. This only applies if the product has folders and is only specified when calling the exit program for the principal library.

Root folder that product will use
INPUT; CHAR(12)

The root folder specified only if the product is being restored and has folders. It is only specified when calling the exit program for the principal library. Otherwise, this value is blank.

Release level of product
INPUT; CHAR(6)

The version, release, and modification level of the product being restored, saved, deleted, or checked in the form VxRxMx.

Release level of product being restored
INPUT; CHAR(6)

The version, release, and modification level of the product being restored in the form VxRxMx. It is only specified if the product is being restored; otherwise, the value is blank.

Array of missing objects and their symbolic object types
INPUT; ARRAY of CHAR(20)

The list passed when the function being performed is *SAVCODE, *SAVLNG, *CHKCODE, or *CHKLNG. For *SAVCODE and *SAVLNG, the list will only be passed before the actual save operation. For *CHKCODE and *CHKLNG, the list will be passed after the check operation. The first 10 characters contain the object name, and the second 10 characters contain the object type.

Number of missing objects
INPUT; BINARY(4)

The number of missing objects in the previous array. This number is 0 when there are no objects in the list or when the function being performed is not *SAVCODE, *SAVLNG, *CHKCODE, or *CHKLNG. The maximum number is 499.

Array of missing folders
INPUT; ARRAY of CHAR(63) for each folder name

The list passed when the function being performed is *SAVCODE, *SAVLNG, *CHKCODE, or *CHKLNG. For *SAVCODE and *SAVLNG, the list will only be passed before the actual save operation. For *CHKCODE and *CHKLNG, the list will be passed after the check operation. This only applies if the product has folders and is only specified when calling the exit program for the principal library.

Number of missing folders
INPUT; BINARY(4)

The number of missing folders in the previous array. This number is 0 when there are no folders in the list or when the function being performed is not *SAVCODE, *SAVLNG, *CHKCODE, or *CHKLNG.

Array of offsets to missing directory information
INPUT; ARRAY of BINARY(4)

The offsets from the beginning of this array that point to the missing directory information. The offsets and missing directory information structures are passed when the function being performed is *SAVCODE, *SAVLNG, *CHKCODE, or *CHKLNG. For *SAVCODE and *SAVLNG, the list will only be passed before the actual save operation. For *CHKCODE and *CHKLNG, the list will be passed after the check operation. This only applies if the product has directories, and is only specified when calling the exit program for the principal library. For a description of the format, see Format of Missing Directory Information.

Number of missing directories
INPUT; BINARY(4)

The number of missing directories in the previous array. The maximum number is 300. This number is 0 when there are no missing directories in the list or when the function being performed is not *SAVCODE, *SAVLNG, *CHKCODE, or *CHKLNG.

Number of product directories
INPUT; BINARY(4)

The number of product directories in the next three arrays. This number is 0 when there are no product directories in any of the following lists. The maximum number is 300.

Array of offsets to directory information where product currently exists
INPUT; ARRAY(300) of BINARY(4)

The offsets from the beginning of this array that point to the current product directory information. When the function being performed is *RSTCODE, *RSTLNG, *SAVCODE, or *SAVLNG, this information is passed both before and after the actual restore or save operation. When the function being performed is *DLTCODE or *DLTLNG, this information is passed before the delete operation. When the function being performed is *CHKCODE or *CHKLNG, this information is passed after the check operation. This array will contain zeros in the following circumstances:

For a description of the structure that contains the product directory information, see Format of Product Directory Information.

Array of offsets to directory information specified by creator of product
INPUT; ARRAY(300) of BINARY(4)

The offsets from the beginning of this array that point to the directory information specified when the product was created. When the function being performed is *RSTCODE, *RSTLNG, *SAVCODE, or *SAVLNG, this information is passed both before and after the actual restore or save operation. When the function being performed is *DLTCODE or *DLTLNG, this information is passed before the delete operation. When the function being performed is *CHKCODE or *CHKLNG, this information is passed after the check operation. This array will contain zeros if there are no product directories. For a description of the structure that contains the product directory information, see Format of Product Directory Information.

Array of offsets to directory information where product will exist
INPUT; ARRAY(300) of BINARY(4)

The offsets from the beginning of this array that point to the directory information where the product will exist after the restore operation. When the function being performed is *RSTCODE or *RSTLNG, this information is passed both before and after the actual restore operation. The information is not passed for other functions. This array will contain zeros if there are no product directories. For a description of the structure that contains the product directory information, see Format of Product Directory Information.


Format of Missing Directory Information

The following table shows the format of the missing directory information.

Offset Type Field
Dec Hex
0 0 BINARY(4) Full length of the missing directory
4 4 BINARY(4) Home length of the missing directory
8 8 BINARY(4) Missing directory's CCSID
12 C BINARY(4) Missing directory's index
16 10 CHAR(10) Reserved space
26 1A CHAR(480) Missing directory name


Field Descriptions

Full length of the missing directory. The total length of the missing directory path name.

Home length of the missing directory. The root (changeable) part length of the missing directory path name.

Missing directory name. The missing directory path name. The CCSID of this value is contained in the Missing Directory's CCSID field. The maximum missing directory name length is 240 characters (480 bytes).

Missing directory's CCSID. The coded character set identifier of the missing directory.

Missing directory's index. A reference index into the array of offsets to directory information specified by the creator of the product.

Reserved space. Internal reserved space.


Format of Product Directory Information

The following table shows the format for the product directory information structures.

Offset Type Field
Dec Hex
0 0 BINARY(4) Full length of the product directory
4 4 BINARY(4) Home length of the product directory
8 8 BINARY(4) Product directory's CCSID
12 C CHAR(14) Reserved space
26 1A CHAR(480) Product directory name


Field Descriptions

Full length of the product directory. The total length of the product directory path name.

Home length of the product directory. The root (changeable) part length of the product directory path name.

Product directory name. The product directory path name. The CCSID of this value is contained in the Product directory's CCSID field. The maximum product directory name length is 240 characters (480 bytes).

Product directory's CCSID. The coded character set identifier of the product directory.

Reserved space. Internal reserved space.


Error Messages

Message ID Error Message Text
CPD3DC8 E &5 &6 in &7 not found for product &1 option &2 release &4.
CPD3DE7 E Folder &6 not found for product &1 option &2 release &4.
CPF3D95 E Exit program processing failed.
CPF3D98 E Exit program processing found error in product.


Top | Software Product APIs | APIs by category