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 (300) 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 of Binary(4) |
21 | Array of offsets to directory information specified by creator of product |
Input | Array of Binary(4) |
22 | Array of offsets to directory information where product will exist | Input | Array of Binary(4) |
This exit program is specified when you create products that are restored, saved, deleted, and checked with the following commands:
- Restore Licensed Program (RSTLICPGM)
- Delete Licensed Program (DLTLICPGM)
- Save Licensed Program (SAVLICPGM)
- Check Product Option (CHKPRDOPT)
More information about creating your own product and using exit programs is available in the System Manager Use manual.
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(300) 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.
- Array of offsets to directory information where product currently exists
- INPUT; ARRAY 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:
- There are no product directories.
- The function being performed is *RSTCODE or *RSTLNG and the product is not currently installed.
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 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 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 tables both show the format of the missing directory information. The length of a directory name can either be up to, but not exceeding 240 characters (480 bytes), or the length can be greater than 240 characters, but not exceeding 1024 characters (2048 bytes). The maximum full path name length of the directory is determined when the product load for the product is created. Products that intend to contain full path names that do not exceed 240 characters specify directory list format name DIRI0100 on the Create Product Load (QSZCRTPL) API. Products accepting full path names that may exceed 240 characters specify directory list format DIRI0200 on the Create Product Load (QSZCRTPL) API.
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 |
Note: This format should be used if the product load for your product has been created by specifying directory list format DIRI0100 on the Create Product Load (QSZCRTPL) API. Directory list format DIRI0100 indicates that your product contains full path names that do not exceed 240 characters (480 bytes). For more information, see Create Product Load (QSZCRTPL) API.
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.
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(*) | Missing directory name |
Note: This format must be used if the product load for your product has been created by specifying directory list format DIRI0200 on the Create Product Load (QSZCRTPL) API. Directory list format DIRI0200 indicates that your product contains full path names that can be up to 1024 characters (2048 bytes). For more information, see Create Product Load (QSZCRTPL) API.
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 missing directory name length can be up to 1024 characters (2048 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 tables both show the format of the product directory information. The length of a directory name can either be up to, but not exceeding 240 characters (480 bytes), or the length can be greater than 240 characters, but not exceeding 1024 characters (2048 bytes). The maximum full path name length of the directory is determined when the product load for the product is created. Products that intend to contain full path names that do not exceed 240 characters specify directory list format name DIRI0100 on the Create Product Load (QSZCRTPL) API. Products accepting full path names that may exceed 240 characters specify directory list format DIRI0200 on the Create Product Load (QSZCRTPL) API.
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 |
Note: This format should be used if the product load for your product has been created by specifying directory list format DIRI0100 on the Create Product Load (QSZCRTPL) API. Directory list format DIRI0100 indicates that your product contains full path names that do not exceed 240 characters (480 bytes). For more information, see Create Product Load (QSZCRTPL) API.
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.
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(*) | Product directory name |
Note: This format must be used if the product load for your product has been created by specifying directory list format DIRI0200 on the Create Product Load (QSZCRTPL) API. Directory list format DIRI0200 indicates that your product contains full path names that can be up to 1024 characters (2048 bytes). For more information, see Create Product Load (QSZCRTPL) API.
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 product directory name length can be up to 1024 characters (2048 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. |