Retrieve Product Information (QSZRTVPR) API


  Required Parameter Group:

1 Receiver variable Output Char(*)
2 Length of receiver variable Input Binary(4)
3 Format name Input Char(8)
4 Product information Input Char(*)
5 Error code I/O Char(*)

  Optional Parameter:

6 Product information format name Input Char(8)

  Default Public Authority: *USE

  Threadsafe: No

The Retrieve Product Information (QSZRTVPR) API returns information about a software product. The information is requested by specifying a product ID, release level, option number, and load ID; not by specifying an object name. The Display Software Resources (DSPSFWRSC) command and the Select Product (QSZSLTPR) API will obtain a list of installed products about which you can retrieve information.

You can use this API to:

Note: The Retrieve Object Description (QUSROBJD) API can be used to retrieve product information from the object description of an object. The product ID and release level from the object description is returned by QUSROBJD in format OBJD0300.


Authorities and Locks

Product Availability Authority
None

Product Availability Lock
*SHRRD

The product availability object resides in the QUSRSYS library.

Product Definition Authority
None

Product Load Authority
None

Required Parameter Group

Receiver variable
OUTPUT; CHAR(*)

The variable to receive the requested information.

Length of receiver variable
INPUT; BINARY(4)

The length of the receiver variable in bytes. The value specified must be at least 8.

Format name
INPUT; CHAR(8)

The content and format of the information returned.

The possible format names are:

PRDR0100 Returns basic information about the product load. For more information, see PRDR0100 Format.
PRDR0200 Returns a list of the principal and additional libraries for this product load, along with the basic information. Exit program names and other related information are also returned. For more information, see PRDR0200 Format.
PRDR0300 Returns a list of the folders for this product load, along with the basic information. For more information, see PRDR0300 Format.
PRDR0400 Returns a list of the packaged objects for this product load, along with the basic information. For more information, see PRDR0400 Format.
PRDR0500 Returns the information that was entered when the product definition object was created. This includes a record for each option listed in the product definition (*PRDDFN) for that product ID and release level. For more information, see PRDR0500 Format.
PRDR0600 Returns a list of option and load ID pairs that are valid for the specified product ID and release level. This is based on what is listed in the product definition (*PRDDFN) for that product ID and release. For more information, see PRDR0600 Format.
PRDR0700 Returns a list of release levels of the operating system. The list starts with the release level passed in by the caller and includes all releases of the operating system through the currently installed release. For more information, see PRDR0700 Format.
PRDR0800 Returns a list of product home directories and product directories for this product load, along with the basic information. For more information, see PRDR0800 Format.
PRDR0900 Returns a list of software agreement document names for this product load, along with the basic product load information. For more information, see PRDR0900 Format.

Product information
INPUT; CHAR(*)

The structure that contains values for which product information is to be retrieved. The structure provided depends on which product information format is requested. For more information, see Product Information Format.

Error code
I/O; CHAR(*)

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


Optional Parameter

Product information format name
INPUT; CHAR(8)

The content and format of the product information parameter.

The possible format names follow:

PRDI0100 The product ID, release level, product option, and load ID. This is the default value when this parameter is not present. For more information, see PRDI0100 Format.
PRDI0200 Everything in format PRDI0100 plus the CCSID that the directory names for format PRDR0800 are to be returned in. For more information, see PRDI0200 Format.

Product Information Format

Information passed in the product information parameter can be in one of the following formats. For detailed descriptions of each field, see Field Descriptions.


PRDI0100 Format

Offset Type Field
Dec Hex
0 0 CHAR(7) Product ID
7 7 CHAR(6) Release level
13 D CHAR(4) Product option
17 11 CHAR(10) Load ID


PRDI0200 Format

Offset Type Field
Dec Hex
0 0 CHAR(7) Product ID
7 7 CHAR(6) Release level
13 D CHAR(4) Product option
17 11 CHAR(10) Load ID
27 1B CHAR(1) Reserved
28 1C BINARY(4) Length of product information parameter
32 20 BINARY(4) CCSID for returned directory or software agreement document names
36 24 CHAR(*) Reserved


Field Descriptions

CCSID for returned directory or software agreement document names. When PRDR0800 format is specified, this is the CCSID in which the directory names should be returned. When PRDR0900 format is specified, this is the CCSID in which software agreement document names should be returned. If this field is zero or 65535, the directory or software agreement document names are returned in the job default CCSID.

Length of product information parameter. The total number of bytes specified on the product information parameter. The value specified must be from 36 through 256.

Load ID. The load ID for which information is being requested. Load IDs are 4 characters in length; for example, 2924 is the load ID for an English national language version (NLV).

You can use this special value for the load ID:

*CODE The load ID of the code load for the given product ID, release level, and option.

Product ID. The product ID for which information is being requested.

You can use this special value for the product ID:

*OPSYS The product ID for the operating system for the specified release level. The product ID depends on the release level specified.

Product option. The option number for which information is being requested. Use 0000 for the base option. Valid values are 0000 through 0099, where each character is a digit.

Release level. The release level for which information is being requested. The release level must be a valid special value, or the release level must be in the format VxRxMy. Valid values for x are 0 through 9. Valid values for y are 0 through 9 and A through Z.

You can use these special values for the release level:

*CUR Uses the release level of the currently installed operating system.
*ONLY Uses the only release level for which a product load (*PRDLOD) is found. If loads are found for multiple release levels, an error (CPF0C30) will occur.
*PRV Uses the previous release with modification level 0 of the operating system.

Examples follow:

Example 1: If the current release level is V2R1M0, specifying *PRV for the release level parameter returns V1R3M0.

Example 2: If the current release level is V2R1M1, specifying *PRV for the release level parameter returns V1R3M0, not V2R1M0.

Example 3: If the current release level is V2R2M0, specifying *PRV for the release level parameter returns V2R1M0.

Note: In these examples, the current release level values are used to show how *PRV is determined; this API did not exist before V2R3M0.

Reserved. This field must contain hexadecimal zeros.


Format of the Returned Information

Information returned in the receiver variable parameter can be in one of the following formats. For detailed descriptions of the fields for each format, see Field Descriptions.


PRDR0100 Format

If the product load is not known to the system, an error (CPF0C1F) will occur.

Offset Type Field
Dec Hex
0 0 BINARY(4) Bytes returned
4 4 BINARY(4) Bytes available
8 8 BINARY(4) Reserved
12 C CHAR(7) Product ID
19 13 CHAR(6) Release level
25 19 CHAR(4) Product option
29 1D CHAR(4) Load ID
33 21 CHAR(10) Load type
43 2B CHAR(10) Symbolic load state
53 35 CHAR(10) Load error indicator
63 3F CHAR(2) Load state
65 41 CHAR(1) Supported flag
66 42 CHAR(2) Registration type
68 44 CHAR(14) Registration value
82 52 CHAR(2) Reserved
84 54 BINARY(4) Offset to additional information
88 58 CHAR(4) Primary language load identifier
92 5C CHAR(6) Minimum target release
98 62 CHAR(6) Minimum VRM of *BASE required by option
104 68 CHAR(1) Requirements met between base and option value
105 69 CHAR(3) Level
108 6C CHAR(*) Reserved


PRDR0200 Format

If the *PRDLOD object does not exist, an error (CPF0C1F) will occur.

The fields following the library records field define that array. The number of entries in the array is the number of primary libraries for this load.

Offset Type Field
Dec Hex
0 0 CHAR(*) Everything from format PRDR0100
The decimal and hexadecimal offsets are determined by using the value in the offset to additional information field of format PRDR0100. CHAR(10) Secondary language library name
CHAR(2) Reserved
BINARY(4) Number of primary libraries
BINARY(4) Offset to library records
CHAR(*) Reserved
ARRAY of CHAR(*) Library records
The decimal and hexadecimal offsets are determined by using the value in the offset to library records field and the offset to next library record field. BINARY(4) Offset to next library record
CHAR(10) Primary library name
CHAR(10) Installed library name
CHAR(10) Library type
CHAR(10) Library authority
CHAR(10) Library create authority
CHAR(10) Postoperation exit program name
BINARY(4) Number of preoperation exit program names
ARRAY of CHAR(10) Preoperation exit program names
CHAR(*) Reserved


PRDR0300 Format

If the *PRDLOD object does not exist, an error (CPF0C1F) will occur.

The fields following the folder records field define an entry in that array. The number of entries in the array is the number of primary folders for this load.

Offset Type Field
Dec Hex
0 0 CHAR(*) Everything from format PRDR0100
The decimal and hexadecimal offsets are determined by using the value in the offset to additional information field of format PRDR0100. BINARY(4) Number of primary folders
BINARY(4) Length of one folder record
BINARY(4) Offset to folder records
CHAR(*) Reserved
ARRAY of CHAR(*) Folder records
The decimal and hexadecimal offsets are determined by using the value in the offset to folder records field and the length of one folder record field. CHAR(63) Primary folder
CHAR(63) Installed folder
CHAR(*) Reserved


PRDR0400 Format

If the product load has not been packaged, an error (CPF0C1F) will occur. There may have been PTF activity for this product load. If so, this list might not contain all the objects that would be saved by the Save Licensed Program (SAVLICPGM) command. Error CPF0C1B is returned if this format is requested for the base option of the operating system.

The fields following the object records field define an entry in that array. The number of entries in the array is the number of objects packaged for this load.

Offset Type Field
Dec Hex
0 0 CHAR(*) Everything from format PRDR0100
The decimal and hexadecimal offsets are determined by using the value in the offset to additional information field of format PRDR0100. BINARY(4) Number of objects
BINARY(4) Length of one object record
BINARY(4) Offset to object records
CHAR(*) Reserved
ARRAY of CHAR(*) Object records
The decimal and hexadecimal offsets are determined by using the value in the offset to object records field and the length of one object record field. CHAR(10) Object name
CHAR(10) Installed library name
CHAR(10) Object type
CHAR(*) Reserved


PRDR0500 Format

If the product definition for the specified product ID and release level does not exist, an error (CPF0C1F) will occur. Error CPF0C1B is returned if this format is requested without specifying product option 0000 and load ID *CODE. Product option 0000 must be specified for this format even though the information returned is then for all options.

The fields following the option records field define an entry in that array. The number of entries in the array is the number of product options for this product and release.

Offset Type Field
Dec Hex
0 0 CHAR(*) Everything from format PRDR0100
The decimal and hexadecimal offsets are determined by using the value in the offset to additional information field of format PRDR0100. CHAR(1) Allow multiple releases
CHAR(1) Release date century
CHAR(6) Release date
CHAR(4) Copyright first year
CHAR(4) Copyright current year
CHAR(10) Message file object name
CHAR(10) Message file library name
BINARY(4) Number of option records
BINARY(4) Length of one option record
BINARY(4) Offset to option records
CHAR(1) Allow mixed releases
CHAR(*) Reserved
ARRAY of CHAR(*) Option records
The decimal and hexadecimal offsets are determined by using the value in the offset to option records field and the length of one option record field. CHAR(4) Product option
CHAR(1) Allow dynamic naming
CHAR(7) Product option message ID
CHAR(6) Minimum required VRM of option
CHAR(*) Reserved


PRDR0600 Format

Error CPF0C1F occurs if the product definition does not exist. Error CPF0C1B is returned if this format is requested without specifying product option 0000 and load ID *CODE.

The fields following the load records field define an entry in that array. The number of entries in the array is the number of loads for this product and release.

Offset Type Field
Dec Hex
0 0 CHAR(*) Everything from format PRDR0100
The decimal and hexadecimal offsets are determined by using the value in the offset to additional information field of format PRDR0100. BINARY(4) Number of load records
BINARY(4) Length of one load record
BINARY(4) Offset to load records
CHAR(*) Reserved
ARRAY of CHAR(*) Load records
The decimal and hexadecimal offsets are determined by using the value in the offset to load records field and the length of one load record field. CHAR(4) Product option
CHAR(4) Load ID
CHAR(*) Reserved


PRDR0700 Format

When this format is requested, valid values for the release level field are V1R3M0 and all release levels for which the operating system was made available through the currently installed release level of the operating system.

If the release level field is not a valid value, an error (CPF0C1C) will occur. Error CPF0C1B is returned if this format is requested without specifying the product option as 0000, product ID as *OPSYS, and load ID as *CODE.

Offset Type Field
Dec Hex
0 0 BINARY(4) Bytes returned
04 04 BINARY(4) Bytes available
08 08 BINARY(4) Number of releases returned
12 0C CHAR(4) Reserved
16 10 ARRAY of CHAR(6) Release level (for each returned operating system release level)


PRDR0800 Format

If the *PRDLOD object does not exist, an error (CPF0C1F) will occur.

The product home directory is a grouping mechanism. It is designed to be the parent directory for several product directory paths. The directory information array will contain an entry for each primary full path for the load. This entry will have offsets to the primary and installed path names and the public object authorities for the directory.

All offsets within this structure will be set to 0 when the offset would be beyond the end of the receiver variable.

The following information is included to help clarify the use of format PRDR0800.

The primary full path being used in this example is /QSom/Class. The primary product home directory portion of this path is /QSom. The product directory is Class. These three pieces of information are returned as character array /QSom/Class.

For example, if /QSom/Class were 1000 bytes from the beginning of the receiver variable, the offset to primary full path name field would be 1000. To find the primary product home directory name, an offset of 1000 would be used as well. The length of primary full path name field would be 11. The length of primary product home directory name field would be 5. The offset to primary product directory name field would be 1006. The length of the primary product directory name would be: the length of primary full path name field plus the offset to primary full path name field minus the offset to primary product directory name field (11 + 1000 - 1006 = 5 bytes).

Each product directory associated with a product load will have a directory information array entry. This directory information array entry contains the information to access the different parts of the character string explained above.

Offset Type Field
Dec Hex
0 0 CHAR(*) Everything from format PRDR0100
The decimal and hexadecimal offsets are determined by using the value in the offset to additional information field of format PRDR0100. BINARY(4) Number of primary full paths
BINARY(4) Length of one directory information entry
BINARY(4) Offset to directory information array
BINARY(4) CCSID of returned directories
CHAR(1) Error indicator on CCSID conversion
CHAR(*) Reserved
The decimal and hexadecimal offsets are determined by using the value in the offset to directory information array. ARRAY of CHAR(*) Directory information array
BINARY(4) Length of primary full path name
BINARY(4) Offset to primary full path name
BINARY(4) Length of primary product home directory name
BINARY(4) Offset to primary product directory name
BINARY(4) Length of installed full path name
BINARY(4) Offset to installed full path name
BINARY(4) Length of installed product home directory name
BINARY(4) Offset to installed product directory name
BINARY(4) Number of public object authorities available
BINARY(4) Offset to public object authority array
CHAR(10) Public data authority
CHAR(*) Reserved
The decimal and hexadecimal offsets are determined by using the value in the offset to primary full path name. CHAR(*) Primary full path name (contains the primary product home directory name and the primary product directory name)
The decimal and hexadecimal offsets are determined by using the value in the offset to installed full path name. CHAR(*) Installed full path name (contains the installed product home directory name and the installed product directory name)
The decimal and hexadecimal offsets are determined by using the value in the offset to public object authority array. ARRAY of CHAR(10) Public object authorities array


PRDR0900 Format

If the *PRDLOD object does not exist, an error (CPF0C1F) will occur.

The software agreement document names list will contain an entry for each software agreement document name that is associated with this product load. Each entry will include the document name only. Entries will not include the full Integrated File System (IFS) path name. Entries will not include a translated language suffix.

Software agreement documents will be stored in a subdirectory of the software agreement repository. For IBM® packaged product loads this repository is /QIBM/ProdData/LicenseDoc/. For non-IBM packaged product loads this repository is /QIBM/UserData/LicenseDoc/. Refer to the QSRCRTPL API for more information regarding the location of software agreement documents.

All offsets within this structure will be set to 0 when the offset would be beyond the end of the receiver variable.

Offset Type Field
Dec Hex
0 0 CHAR(*) Everything from format PRDR0100
The decimal and hexadecimal offsets are determined by using the value in the offset to additional information field of format PRDR0100. BINARY(4) Number of software agreement document names available
BINARY(4) Number of software agreement document names returned
BINARY(4) Length of one software agreement document name record
BINARY(4) Offset to software agreement document names array
BINARY(4) CCSID of returned software agreement document names
CHAR(1) Error indicator on CCSID conversion
CHAR(*) Reserved
The decimal and hexadecimal offsets are determined by using the value in the offset to software agreement document array.ARRAY of CHAR(*) Software agreement document names array
BINARY(4) Length of software agreement document name
CHAR(*) Software agreement document name
CHAR(*) Reserved


Field Descriptions

Allow dynamic naming. Whether the names of product libraries and root folders for this product option can be dynamically changed without causing a product error.

Possible values are:

0 Cannot be dynamically named.
1 Can be dynamically named.

Allow multiple releases. Whether this product can be installed at a release level different from the current release level without installing over the current release.

Possible values are:

0 This product cannot be installed at a release level different from the current release level without installing over the current release.
1 This product can be installed at a release level different from the current release level without installing over the current release.

Allow mixed releases. Whether this product allows mixed releases between its *BASE and options.

Possible values are:

0 The *BASE option and other options of this product cannot be at different release levels.
1 The *BASE option and other options of this product can be at different release levels.

Bytes available. The number of bytes of data available to be returned to the user.

Bytes returned. The number of bytes returned to the user. This is the lesser of the number of bytes available and the length of the receiver variable.

CCSID of returned directories. The value of the CCSID in which the directories were returned. This will be the requested CCSID if the error indicator on CCSID conversion field is 0.

CCSID of returned software agreement document names. The value of the CCSID in which the software agreement document names were returned. This will be the requested CCSID if the error indicator on the CCSID conversion field is 0.

Copyright current year. The value specified for the copyright current year when the product definition for this product load was created. If no copyright current year was specified when the product definition was created, the copyright current year is blank.

Copyright first year. The value specified for the copyright first year when the product definition for this product load was created. If no copyright first year was specified when the product definition was created, the copyright first year is blank.

Directory information array. An array that contains an element for each primary full path. The length of an element is specified by length of one directory information entry. The number of elements is the number of primary full paths.

Error indicator on CCSID conversion. Whether the CCSID conversion to the requested CCSID was successful. If the requested CCSID conversion fails, the CCSID in which the entry names are returned is identified in either the CCSID of returned directories names field or the CCSID of returned software agreement document names field depending on which format was specified.

Possible values follow:

0 CCSID conversion was successful
1 CCSID conversion failed

Folder records. An array in which each entry includes the primary folder, installed folder, and reserved fields.

Installed folder. This can be one of the following:

Installed full path name. The installed full path name for the associated primary full path. It contains a directory name in the CCSID that is indicated in the CCSID of returned directories field. The installed full path contains the installed product home directory concatenated with a slash (/), which is concatenated with the installed product directory name. The length of the product directory is the length of the installed full path plus the offset to the installed full path minus the offset to the installed product directory name.

Installed library name. For a library record, this can be one of the following:

For an object record, the name of the library where the object should exist. The object might not exist in this library if the object had been deleted, or the library had been renamed.

Length of installed full path name. The number of bytes in this installed full path name.

Length of installed product home directory name. The number of bytes in the installed product home directory.

Length of one directory information entry. The number of bytes in each directory information array entry.

Length of one folder record. The number of bytes in each folder record.

Length of one load record. The number of bytes in each load record.

Length of one object record. The number of bytes in each object record.

Length of one option record. The number of bytes in each option record.

Length of primary full path name. The number of bytes in this primary full path name.

Length of primary product home directory name. The number of bytes in the primary product home directory.

Length of software agreement document name. The number of bytes in this software agreement document name. This will always be smaller than the length of one software agreement document name record.

Length of one software agreement document name record. The number of bytes for each software agreement document name record.

Level. The level identifier of the product for which information was returned. The format is Lxx. The returned value is blank for all products other than the operating system and Licensed Internal Code.

Library authority. The public authority given to the library by the Restore Licensed Program (RSTLICPGM) command when this load is installed if the library does not exist. This field will be blank if the product load has not been successfully packaged.

Possible values are:

*ALL The library is created with the public authority set to *ALL.
*USE The library is created with the public authority set to *USE.
*CHANGE The library is created with the public authority set to *CHANGE.
*EXCLUDE The library is created with the public authority set to *EXCLUDE.

Library create authority. The create authority set for this library by the Restore Licensed Program (RSTLICPGM) command when this load is installed if the library does not exist. This field will be blank if the product load has not been successfully packaged.

Possible values are:

*ALL The library is created with the public authority set to *ALL.
*USE The library is created with the public authority set to *USE.
*CHANGE The library is created with the public authority set to *CHANGE.
*EXCLUDE The library is created with the public authority set to *EXCLUDE.

Library records. An array in which each entry includes the following fields:

Library type. The type of library created by the Restore Licensed Program (RSTLICPGM) command when this load is installed if the library does not exist. This field will be blank if the product load has not been successfully packaged.

Possible values are:

*PROD The library created is a production library.
*TEST The library created is a test library.

Load error indicator. Whether there is a known error for this load.

The possible values are:

*ERROR An error was found the last time that the state of this load was checked or updated. For example, a restore, delete, or save licensed program function might be in progress or might not have completed. The state of a load can be checked using the Check Product Option (CHKPRDOPT) command. See the Control language topic collection for information about the CHKPRDOPT command.
*NONE No error was found the last time that the state of this load was checked or updated.
Note: This does not mean that the product is necessarily installed. Refer to the symbolic load state field to determine if the load is installed or not.

Load ID. The load ID of the product load for which information was returned. For the load records, the load ID field returns the load IDs that have been specified when the product definition was created.

Load records. An array for which each entry includes the product option, load ID, and a reserved field.

Load state. The state of the load for which information was returned.

The possible values are:

10 The load is defined. The product load object for this load does not exist. When a product definition is created, a code load is defined for each product option, and language loads can be defined.
20 The product load object for this load exists. Before it can be saved using the Save Licensed Program (SAVLICPGM) command, it must be packaged with one of the following:
  • The Package Product Option (PKGPRDOPT) command.
  • The Package Product Option (QSZPKGPO) API.
3E A Restore Licensed Program (RSTLICPGM) command did not complete successfully. A preoperation exit program failed. The product being replaced had been packaged, but not installed.
3F A RSTLICPGM command failed. A preoperation exit program did not fail. The product being replaced had been packaged, but not installed.
30 The product load object for this load has been packaged with the PKGPRDOPT command or the QSZPKGPO API.
32 The product load object for this load has been packaged with the PKGPRDOPT command or the QSZPKGPO API. One of the following occurred:
  • A development library or folder was renamed, but the product does not allow dynamic naming. (A product specifies whether or not it allows dynamic naming when the product definition object is created.)
  • The product definition or product load for a packaged load was renamed or moved to another library.
33 The product load object for this load has been packaged with the PKGPRDOPT command or the QSZPKGPO API. However, an object was found to be damaged the last time that the CHKPRDOPT command or SAVLICPGM command was used for this load.
34 The product load object for this load has been packaged with the PKGPRDOPT command or the QSZPKGPO API. One of the following occurred:
  • An attempt was made to delete the product load using the delete licensed program function and the function failed.
  • A packaged object was missing the last time that the CHKPRDOPT command or SAVLICPGM command was used for this load.
35 A RSTLICPGM command is in progress. The product being replaced had been packaged, but not installed.
38 A Delete Licensed Program (DLTLICPGM) command is in progress. The product being deleted had been packaged, but not installed.
50 A RSTLICPGM command is in progress. The product being replaced had been installed.
53 A DLTLICPGM command is in progress. The product being deleted had been installed.
59 This product is an IBM-supplied product, and it is not compatible with the currently installed release level of the operating system. An error occurred when the product was restored or when the operating system was installed. The IBM-supplied product is at a release level earlier than V2R2M0, which is not supported by the SAVLICPGM command.
6E A RSTLICPGM command did not complete successfully. A preoperation exit program failed. The product being replaced had been installed.
6F A RSTLICPGM command failed. The failure was not a preoperation exit program or postoperation exit program. The product being replaced had been installed.
60 The product load (*PRDLOD) object for this load was loaded onto the system by the RSTLICPGM command.
61 The product load (*PRDLOD) object for this load was loaded onto the system by the RSTLICPGM command, but a postoperation exit program failed.
62 An installed library or folder was renamed, but the product does not allow dynamic naming. (A product specifies whether or not it allows dynamic naming when the product definition object is created.)
63 The product load (*PRDLOD) object for this load was installed by the RSTLICPGM command, but an object is damaged.
64 The product load (*PRDLOD) object for this load was installed by the RSTLICPGM command, but one of the following occurred:
  • An object was found to be missing when the CHKPRDOPT command or the SAVLICPGM command was used.
  • An error occurred while the DLTLICPGM command was being used.
67 The CHKPRDOPT command was used for this product load, but the postoperation exit program failed or indicated that an error was found.
90 The product load was installed successfully. If an object was missing or was damaged, and the problem was corrected, using the CHKPRDOPT command sets the state back to 90.

Load type. The type of load for which information was returned.

The possible values are:

*CODE The load is a code load.
*LNG The load is a language load.

Message file library name. The name of the library for the message file that contains the messages describing the product and its options.

Message file object name. The name of the message file that contains the messages describing the product and its options.

Minimum target release. The minimum release of the operating system to which the Save Licensed Program (SAVLICPGM) command will allow the product to be saved. The format must be in the format VxRyMz. Valid values for x and y are 0 through 9. Valid values for z are 0 through 9 and A through Z.

Minimum required VRM of option. The minimum release level that is allowed for the option that will run with the current level of the *BASE option for the product. This field is only applicable if mixed releases are allowed.

The possible values are:

*MATCH The release of the option matches that of the *BASE.
VxRyMz The release value is in the format VxRyMz.

Minimum VRM of *BASE required by option. The minimum release level that is allowed for the *BASE option that will run with the current level of the option for the product. This field is only applicable if mixed releases are allowed and for a load type of *CODE.

The possible values are:

*MATCH The release of the option matches that of the *BASE.
VxRyMz The release value is in the format VxRyMz.

Number of load records. The number of loads for this product option. The receiver variable may not have been large enough to hold all the load records. If this happens, this number may be larger than the number of load records actually returned.

Number of objects. The number of packaged objects for this load. The receiver variable may not have been large enough to hold all the objects. If this happens, this number may be larger than the number of objects actually returned.

Number of option records. The number of options for this product and release level. The receiver variable may not have been large enough to hold all the option records. If this happens, this number may be larger than the number of option records actually returned.

Number of preoperation exit program names. The number of preoperation exit programs for this load for this primary library. If there are no preoperation exit programs for this library, this will be 0.

Number of primary folders. The number of primary folders for this load. The receiver variable may not have been large enough to hold all the folder records. If this happens, this number may be larger than the number of folder records actually returned.

Number of primary full paths. The number of full paths for this load. The receiver variable may not have been large enough to hold all the directory information. If this happens, this number may be larger than the number of directories actually returned.

Number of primary libraries. The number of primary libraries for this load. The receiver variable may not have been large enough to hold all the library information. If this happens, this number may be larger than the number of libraries actually returned. The first record contains the principal primary library information. Subsequent records contain the information for the additional libraries, if the load has any additional libraries.

Number of public object authorities available. The number of public object authorities associated with a product directory. This will be set to 0 if the product load has not been successfully packaged.

Number of releases returned. The number of release levels returned for format PRDR0700.

Number of software agreement document names available. The number of software agreement documents for this load. The receiver variable may not have been large enough to hold all the software agreement document names. If this happens, this number may be larger than the number of software agreement document name records actually returned.

Number of software agreement document names returned. The number of software agreement document name records that were returned to the user. This is the lesser of the number of software agreement document names available and the number of software agreement document name records that the reciever variable could accommodate.

Object name. The name of an object for this load.

Object records. The objects in the object record are ordered by library. All objects for the principal library are first. Within each library, the objects are ordered by object type, but with product loads first and product definitions second, followed by all other object types.

The record has the following fields:

Object type. The symbolic object type of the object.

Offset to additional information. The offset from the beginning of the receiver variable to the start of the rest of the information for a given format. This is to allow for expansion of the basic information. For format PRDR0100, this is 0.

Offset to directory information array. The offset from the beginning of the receiver variable to the start of the directory information array for format PRDR0800. This is to allow for expansion of the basic directory information.

Offset to folder records. The offset from the beginning of the receiver variable to the start of the first folder record for format PRDR0300. This is to allow for expansion of the basic folder information.

Offset to installed full path name. The offset from the beginning of the receiver variable to the start of the installed full path name for format PRDR0800. This is to allow for expansion of the basic directory information.

Offset to installed product directory name. The offset from the beginning of the receiver variable to the start of the installed product directory name for format PRDR0800. This will be the product directory path that follows the delimiter at the end of the product home directory. This offset will be equal to the length of the installed full path plus the offset to the installed full path if there is no product directory. This is to allow for expansion of the basic directory information.

Offset to library records. The offset from the beginning of the receiver variable to the start of the first library record for format PRDR0200. This is to allow for expansion of the basic library information.

Offset to load records. The offset from the beginning of the receiver variable to the start of the first load record for format PRDR0600. This is to allow for expansion of the basic load information.

Offset to next library record. The offset from the beginning of the receiver variable to the start of the next library record for format PRDR0200. If there are no more library records, then this is 0.

Offset to object records. The offset from the beginning of the receiver variable to the start of the first object record for format PRDR0400. This is to allow for expansion of the basic object information.

Offset to option records. The offset from the beginning of the receiver variable to the start of the first option record for format PRDR0500. This is to allow for expansion of the basic option information.

Offset to primary full path name. The offset from the beginning of the receiver variable to the start of the primary full path name for format PRDR0800. This is to allow for expansion of the basic directory information.

Offset to primary product directory name. The offset from the beginning of the receiver variable to the start of the primary product directory name for format PRDR0800. This will be the product directory path that follows the delimiter at the end of the product home directory. This offset will be equal to the length of the primary full path plus the offset to the primary full path if there is no product directory. This is to allow for expansion of the basic directory information.

Offset to public object authority array. The offset from the beginning of the receiver variable to the start of the public object authority array for format PRDR0800. This is to allow for expansion of the primary product home directory information.

Offset to software agreement document names array. The offset from the beginning of the receiver variable to the start of the software agreement document array for format PRDR0900. This is to allow for expansion of the software agreement document information.

Option records.
An array for which each entry includes the following fields:

Postoperation exit program name. The name of the postoperation exit program for this load for this primary library. If there is no postoperation exit program for this library, this will be blank.

Preoperation exit program names. An array of the preoperation exit programs for this load for this primary library. If there are no preoperation exit programs for this library, this will be an array of length 0.

Primary folder. The name of a primary folder for this load.

Primary full path name. The name of the primary full path. It contains a directory name in the CCSID that is indicated in the CCSID of returned directories field. The primary full path contains the primary product home directory concatenated with a slash (/), which is concatenated with the primary product directory name. The length of the product directory is the length of the primary full path plus the offset to the primary full path minus the offset to the primary product directory name.

Primary language load identifier. For code loads, this field contains the primary language of the product option. This is the National Language Version (NLV) of the language that is installed in the libraries. It will be blank if no language is installed in the libraries for the code load. For language loads (29xx), this field will always be blank.

Primary library name. The name of the primary library that was specified when the product load object was created.

Product ID. The product ID for which information was returned.

Product option. The product option for which information was returned.

Product option message ID. The message ID associated with this product option. The message ID was specified when the product definition was created.

Public data authority. The public data authority given to the directory by the Restore Licensed Program (RSTLICPGM) command when this load is installed if the directory does not exist. If the product load has not been successfully packaged, this field is blank.

Possible values follow:

*RWX The directory is created with the public data authority set to *RWX.
*RW The directory is created with the public data authority set to *RW.
*RX The directory is created with the public data authority set to *RX.
*WX The directory is created with the public data authority set to *WX.
*R The directory is created with the public data authority set to *R.
*W The directory is created with the public data authority set to *W.
*X The directory is created with the public data authority set to *X.
*EXCLUDE The directory is created with the public data authority set to *EXCLUDE.
*NONE The directory is created with the public data authority set to *NONE.

Public object authorities array. The public object authority given to the directory by the Restore Licensed Program (RSTLICPGM) command when this load is installed if the directory does not exist. The number of elements is the number of public object authorities for this product directory. If the product load has not been successfully packaged, the number of public object authorities will be set to 0.

Possible values follow:

*NONE The directory is created with the public object authority set to *NONE.
*ALL The directory is created with the public object authority set to *ALL.
*OBJEXIST The directory is created with the public object authority set to *OBJEXIST.
*OBJMGT The directory is created with the public object authority set to *OBJMGT.
*OBJALTER The directory is created with the public object authority set to *OBJALTER.
*OBJREF The directory is created with the public object authority set to *OBJREF.

Registration type. The registration type associated with the product. The registration type and registration value together make up the registration ID for the product.

The possible values are:

02 Registration type *PHONE was specified when the product load or product definition was created.
04 The registration value is the same as the registration value for IBM i.
08 Registration type *CUSTOMER was specified when the product load or product definition was created.

Registration value. The registration value associated with the product. The registration type and registration value together make up the registration ID for the product.

Release date. Indicates the value specified for the release date when the product definition for this product load was created. The release date is in the format yymmdd, where yy equals year, mm equals month, and dd equals day. If no release date was specified when the product definition was created, then the release date is blank.

Release date century. The century that corresponds to the release date of the product.

Possible values follow:

0 Indicates years 19xx
1 Indicates years 20xx
Blank Indicates no release date was specified for the product.

Release level. The release level of the product for which information was returned. For V2R3M0, when format PRDR0700 is requested, the valid values for this field are *CUR, *PRV, V1R3M0, V2R1M0, V2R1M1, V2R2M0, and V2R3M0.

Release level (for each returned operating system release level). The individual release level returned. One or more may be returned.

Requirements met between base and option value. When a product allows mixed releases between its base and option, certain requirements must be met. This value represents the reason why the release requirements between the base and option may or may not be in error.

The possible values are:

0 There is not enough information available to determine if the release requirements have been met. This will be the value if this is a load type of *LANG.
1 The releases of the *BASE and option meet all requirements.
2 The release of the option is too old compared to the *BASE.
3 The release of the *BASE is too old compared to the option.

Reserved. An ignored field.

Secondary language library name. The secondary language library name that was specified when the load was created. If this is a code load, the secondary language library name is blank.

Software agreement document names array. An array in which each entry includes the following fields:

Software agreement document name. The name of one entry in the software agreement documents list for this product load. It contains a software agreement document name in the CCSID that is indicated in the CCSID of returned software agreement document names field.

Supported flag. Whether this load is currently supported. A load can be supported by using the Work with Supported Products (WRKSPTPRD) command in the System Manager for IBM i licensed program.

The possible values are:

0 The load is not supported.
1 The load is supported.

Symbolic load state. The symbolic state of the load for which information was returned. This value, in conjunction with the load error indicator, can be used to determine if the load is installed correctly.

The possible values are:

*DEFINED The load is defined. The product load object for this load does not exist. When a product definition is created, a code load is defined for each product option, and language loads can be defined.
*CREATED The product load object for this load exists. It must be packaged with the PKGPRDOPT command before it can be saved using the SAVLICPGM command.
*PACKAGED The product load object for this load has been packaged with the PKGPRDOPT command.
*DAMAGED If this is for an option other than the base option or for a language load for the base option, the product load object has been damaged. If this is for the code load for the base option, one of the following happen:
  • The product definition for this product ID and release level has been damaged.
  • The product load object has been damaged.
*LOADED Indicates one of the following:
  • A restore licensed program function is in progress.
  • A delete licensed program function is in progress.
  • The product was created previous to V2R2M0, and there was an error during the process of converting the product information.
*INSTALLED The product load (*PRDLOD) object for this load was loaded onto the system by the RSTLICPGM command.

Error Messages

Message ID Error Message Text
CPF0C1B E Requirements between parameters not satisfied.
CPF0C1C E Release level &1 not valid.
CPF0C1D E Load ID &1 not valid.
CPF0C1E E Error occurred during running of &1 API.
CPF0C1F E Product information not found.
CPF0C30 E Release level *ONLY not valid for product &1.
CPF0C4B E Product availability object &2/&1 recovery required.
CPF0C4C E Cannot allocate object &1 in library &2.
CPF0C4D E Error occurred while processing object &1 in library &2.
CPF247E E CCSID &1 is not valid.
CPF24B4 E Severe error while addressing parameter list.
CPF3CF1 E Error code parameter not valid.
CPF3C1D E Length specified in parameter &1 not valid.
CPF3C19 E Error occurred with receiver variable specified.
CPF3C21 E Format name &1 is not valid.
CPF3C24 E Length of the receiver variable is not valid.
CPF3C39 E Value for reserved field not valid.
CPF3C90 E Literal value cannot be changed.
CPF8191 E Product definition &4 in &9 damaged.
CPF8193 E Product load object &4 in &9 damaged.
CPF9838 E User profile storage limit exceeded.
CPF9872 E Program or service program &1 in library &2 ended. Reason code &3.


API introduced: V2R3


[ Back to top | Software Product APIs | APIs by category ]