List Objects (QUSLOBJ) API


  Required Parameter Group:

1 Qualified user space object Input Char(20)
2 Format name Input Char(8)
3 Object and library name Input Char(20)
4 Object type Input Char(10)

  Optional Parameter Group 1:

5 Error Code I/O Char(*)

  Optional Parameter Group 2:

6 Authority control Input Char(*)
7 Selection control Input Char(*)

  Optional Parameter Group 3:

8 Auxiliary storage pool (ASP) control Input Char(*)

  Default Public Authority: *USE

  Threadsafe: Yes

The List Objects (QUSLOBJ) API lets you generate a list of object names and descriptive information based on specified selection parameters. This API returns information similar to the Display Object Description (DSPOBJD) command. An advantage over the DSPOBJD command is that you can perform authority checking on the objects and libraries. You can get a list of objects with only a certain status, which you cannot do with the DSPOBJD command. The QUSLOBJ API places the list in the specified user space. The generated list replaces any existing list in the user space.

You can use the QUSLOBJ API to:

The QUSLOBJ API returns information in several formats. All formats except OBJL0100 include an information status field that describes the completeness and validity of the information. Be sure to check the information status field before using any other information returned.


Authorities and Locks

If you are authorized to the library, some object information is always returned for the objects meeting the search criteria identified in the required parameter group. To return any detailed object information in format OBJL0200 and above, the user must be authorized to the objects. The information status field in format OBJL0200 is set to 'A' when the user is not authorized to the objects. A value of *NOTAVL will be returned for the object auditing information unless you have either all object (*ALLOBJ) or audit (*AUDIT) special authority.

Auxiliary Storage Pool (ASP) Device Authority
*EXECUTE when a specific auxiliary storage pool (ASP) device name is specified for the auxiliary storage pool (ASP) control parameter.

Object Authority
To return detailed object information, some authority other than *EXCLUDE is needed when optional parameter group 2 is not specified.

Object Library Authority
*EXECUTE when optional parameter group 2 is not specified.

User Space Authority
*CHANGE

User Space Library Authority
*EXECUTE

User Space Lock
*EXCLRD

Required Parameter Group

Qualified user space object
INPUT; CHAR(20)

The name of the *USRSPC object that is to receive the generated list. The first 10 characters contain the user space object name, and the second 10 characters contain the name of the library where the user space is located. The special values supported for the library name are *LIBL and *CURLIB.

Format name
INPUT; CHAR(8)

The format of the information returned on each object that is requested. You must use one of the following format names:

OBJL0100 Object names (fastest)
OBJL0200 Text description and extended attribute
OBJL0300 Basic object information
OBJL0400 Creation information
OBJL0500 Start of changeSave and restore information; some journal informationEnd of change
OBJL0600 Usage information
OBJL0700 All object information (slowest)

For details about the formats, see Format of the Generated Lists. For performance reasons, you should choose the format that returns only as much information as you need. The higher the number of the format name, the more information is returned and the more time it takes to process.

Object and library name
INPUT; CHAR(20)

The object and library names to place in the *USRSPC object. The first 10 characters contain the object name, which may be a simple name, a generic name, or the special values of *ALL, *ALLUSR, or *IBM. If *ALLUSR or *IBM i s used, the library name must be *LIBL or QSYS and the object type parameter must be *LIB.

  1. When *ALLUSR is specified with a library name of *LIBL and an object type parameter of *LIB, a list of all user libraries in the thread's library name space is returned. When *LIBL is specified, the auxiliary storage pool (ASP) device name must be an asterisk (*) if the auxiliary storage pool (ASP) control parameter is specified. Refer to *ALLUSR in the description of the second 10 characters of this parameter for a definition of user libraries.

  2. When *ALLUSR is specified with a library name of QSYS and an object type parameter of *LIB, a list of all user libraries in the auxiliary storage pools defined by the auxiliary storage pool (ASP) control parameter is returned. Refer to *ALLUSR in the description of the second 10 characters of this parameter for a definition of user libraries.

  3. When *IBM i s specified with a library name of *LIBL and an object type of *LIB, a list of libraries in the thread's library name space that are saved or restored on the Save Library (SAVLIB) or Restore Library (RSTLIB) CL command with LIB(*IBM) is returned. When *LIBL is specified, the auxiliary storage pool (ASP) device name must be an asterisk (*) if the auxiliary storage pool (ASP) control parameter is specified.

  4. When *IBM i s specified with a library name of QSYS and an object type of *LIB, a list of libraries in the auxiliary storage pools specified by the auxiliary storage pool (ASP) control parameter that are saved or restored on the Save Library (SAVLIB) or Restore Library (RSTLIB) CL command with LIB(*IBM) is returned.

Library name errors are reported with escape messages when a single library is specified. When searching a set of libraries (library specified as *ALL, *ALLUSR, *LIBL, or *USRLIBL or auxiliary storage pool (ASP) device name specified as *ALLAVL), library errors are reported with diagnostic messages and processing continues. Library authority error messages are not sent when searching a set of libraries. Escape messages are not sent for object name errors. To determine if errors occurred on the object, use the number of list entries field returned in the generic header and the information status field in format OBJL0200.

The second 10 characters identify the name of the library or libraries to search for the specified objects. The following special values are allowed:

*ALL All libraries in the auxiliary storage pools defined by the auxiliary storage pool (ASP) control parameter are searched.
*ALLUSR All user libraries in the auxiliary storage pools (ASPs) defined by the auxiliary storage pool (ASP) control parameter are searched. User libraries are all libraries with names that do not begin with the letter Q. For information about the libraries included, see *ALLUSR in Generic library names.
*CURLIB The thread's current library is searched. When this value is used, the auxiliary storage pool (ASP) device name in the auxiliary storage pool (ASP) control parameter must be an asterisk (*), if specified.
*LIBL All libraries in the thread's library list are searched. When this value is used, the auxiliary storage pool (ASP) device name in the auxiliary storage pool (ASP) control parameter must be an asterisk (*), if specified.
*USRLIBL All libraries in the user portion of the thread's library list are searched. When this value is used, the auxiliary storage pool (ASP) device name in the auxiliary storage pool (ASP) control parameter must be an asterisk (*), if specified.

Object type
INPUT; CHAR(10)

The types of objects to search for. You may either enter a specific object type, or a special value of *ALL. For a complete list of the available object types, see External object types.


Optional Parameter Group 1

Error code
I/O; CHAR(*)

The structure in which to return error information. For the format of the structure, see Error code parameter. If this parameter is omitted, diagnostic and escape messages are issued to the application.


Optional Parameter Group 2

Authority control
INPUT; CHAR(*)

This parameter is used to specify the authority check that should be done for objects and libraries. Detailed object information will only be returned for an object when you have the specified authority to the object. If this parameter is omitted, the following occurs:

This parameter is useful to select objects to which you are authorized. To accomplish this, specify a select or omit status value in the selection control parameter. The object name information in format OBJL0100 is always returned for objects meeting the search criteria identified in the required parameter group. (This assumes the thread has the required authority to the library.) The information status field is set to an 'A' when the thread does not have the object authority specified.

The following example shows what you would specify to obtain a subset of all objects that you have object management authority to.

The authority control parameter would contain:

The selection control parameter would contain:

Because the program that calls the QUSLOBJ API adopts authority, the authority check should be done at the call level previous to the current level (thus call level 1). With call level 1, the list would not include any objects for which you have adopted authority by the current program.

The select or omit status value of 1 indicates that the returned list will omit the objects you do not have object management authority to. This authority is specified in the object authorities field.

The format of this parameter is described in Authority Control Format.

Selection control
INPUT; CHAR(*)

The criteria used to select or filter objects from the list based on specified information status values.

This parameter is useful to reduce the total number of objects returned in the list. The list of objects can be generated with only the specific status that you are interested in. For example, this might be all damaged objects or all objects that the caller of the API is not authorized to. The list of objects also can be generated with all objects except objects of a specific status.

The following example shows what you would specify to select all damaged objects:

The format of this parameter is described in Selection Control Format.


Optional Parameter Group 3

Auxiliary storage pool (ASP) control
INPUT; CHAR(*)

The information used to define the auxiliary storage pool (ASP) to search. See Auxiliary Storage Pool (ASP) Control Format for details.


Authority Control Format

The following shows the format of the authority control parameter. For detailed descriptions of the fields in the table, see Field Descriptions.

Offset Type Field
Dec Hex
0 0 BINARY(4) Length of authority control format
4 4 BINARY(4) Call level
8 8 BINARY(4) Displacement to object authorities
12 C BINARY(4) Number of object authorities
16 10 BINARY(4) Displacement to library authorities
20 14 BINARY(4) Number of library authorities
24 18 BINARY(4) Reserved
    ARRAY(*) of CHAR(10) Object authorities
    ARRAY(*) of CHAR(10) Library authorities


Selection Control Format

The following shows the format of the selection control parameter. For detailed descriptions of the fields in the table, see Field Descriptions.

Offset Type Field
Dec Hex
0 0 BINARY(4) Length of selection control format
4 4 BINARY(4) Select or omit status value
8 8 BINARY(4) Displacement to statuses
12 C BINARY(4) Number of statuses
16 10 BINARY(4) Reserved
    ARRAY(*) of CHAR(1) Statuses


Auxiliary Storage Pool (ASP) Control Format

The following shows the format of the auxiliary storage pool (ASP) control parameter. This parameter is used to define the auxiliary storage pools (ASPs) to search. For detailed descriptions of the fields in the table, see Field Descriptions.

Offset Type Field
Dec Hex
0 0 BINARY(4) Length of auxiliary storage pool (ASP) control format
4 4 CHAR(10) Auxiliary storage pool (ASP) device name
14 E CHAR(10) Auxiliary storage pool (ASP) search type


Field Descriptions

Auxiliary storage pool (ASP) device name. The name of an auxiliary storage pool (ASP) device in which storage is allocated for the library that contains the object. The ASP device must have a status of 'Available'. This field must be an asterisk (*) if optional parameter group 3 is specified when *CURLIB, *LIBL, or *USRLIBL is specified as the library name in the object and library name parameter. If optional parameter group 3 is omitted in cases where it is valid for the ASP device name to have a value other than an asterisk (*), the thread's library name space will be used. One of the following special values may be specified:

* The ASPs in the thread's library name space.
*SYSBAS The system ASP (ASP 1) and defined basic user ASPs (ASPs 2-32).
*CURASPGRP The ASPs in the current thread's ASP group.
*ALLAVL All available ASPs. This includes the system ASP (ASP 1), all defined basic user ASPs (ASPs 2-32), and all available primary and secondary ASPs (ASPs 33-255 with a status of 'Available'). The ASP groups are searched in ascending alphabetical order by the primary ASP name. The system ASP and all defined basic user ASPs are searched after the ASP groups. ASPs and libraries to which you are not authorized are bypassed and no authority error messages are sent.

Auxiliary storage pool (ASP) search type. The type of the search when a specific auxiliary storage pool (ASP) device name is specified for the ASP device name field. This field must be blanks when a special value is specified for the auxiliary storage pool (ASP) device name field. One of the following values may be specified:

*ASP Only the single ASP named in the auxiliary storage pool (ASP) device name field will be searched.
*ASPGRP All ASPs in the auxiliary storage pool (ASP) group named in the auxiliary storage pool (ASP) device name field will be searched. The device name must be the name of the primary auxiliary storage pool (ASP) in the group.

Call level. The number of call levels to go back in the call stack to do the authority check. If optional parameter group 2 is omitted, a call level of 0 is used.

For example, if the program that calls this API adopts authority, you probably would not want the authority check to use the adopted authority. Therefore, the authority check should be done at the call level previous to the current level. This field should then contain a 1. You can check the authority at various call levels by specifying a number equivalent to the call level. For example, to check the authority at the current call level, specify a 0. To check the authority at the previous call level, specify a 1.

This field must be greater than or equal to 0 and less than the number of programs in the call stack.

Displacement to library authorities. The displacement, in bytes, from the beginning of the authority control format to the list of library authorities. The displacement value must be at least 28, which is past the reserved portion of the format.

Displacement to object authorities. The displacement, in bytes, from the beginning of the authority control format to the list of object authorities. The displacement value must be at least 28, which is past the reserved portion of the format.

Displacement to statuses. The displacement, in bytes, from the beginning of the selection control format to the list of statuses requested. The displacement value must be at least 20, which is past the reserved portion of the format.

Length of authority control format. The total length of the authority control format. The length can be 0 bytes to indicate that no authority control information is provided. Otherwise, the minimum size is 48 bytes, which allows for one object and one library authority. An error is returned if the length specified is less than the minimum and not 0.

Length of auxiliary storage pool (ASP) control format. The total length of the auxiliary storage pool (ASP) control format. The length can be 0 bytes to indicate that no auxiliary storage pool (ASP) control information is provided. Otherwise, the length must be 24 bytes. An error is returned if the length specified is not 24 or 0.

Length of selection control format. The total length of the selection control format. The length can be 0 bytes to indicate that no selection control information is provided. Otherwise, the minimum size is 21 bytes, which allows for one status value. An error is returned if the length specified is less than the minimum and not 0.

Library authorities. The authority to check for libraries. The array can contain up to ten 10-character fields. If optional parameter group 2 is omitted, *EXECUTE authority is checked for on the libraries.

The authority values can be specified in any combination. If *ALL, *CHANGE, or *USE is specified with any of the other authority values, the authority checked is the cumulative authority value.

The maximum number of authorities that can be specified is 10. This equals all of the specific object and data authorities that can be listed separately.

The following identifies the type of authority you have to the library:

*ALL All authority
*CHANGE Change authority
*USE Use authority
*OBJOPR Object operational authority
*OBJMGT Object management authority
*OBJEXIST Object existence authority
*OBJALTER Alter authority
*OBJREF Reference authority
*READ Read authority
*ADD Add authority
*UPD Update authority
*DLT Delete authority
*EXECUTE Execute authority

Number of library authorities. The number of authorities specified in the library authorities array. You can specify 1 through 10 authorities.

Number of object authorities. The number of authorities specified in the object authorities array. You can specify 1 through 11 authorities.

Number of statuses. The number of statuses specified in the statuses array. You can specify 1 through 5 statuses.

Object authorities. The authority to check for objects. The array can contain up to eleven 10-character fields. If optional parameter group 2 is omitted, *ANY authority is checked for on the objects.

The authority values can be specified in any combination with the exception of the special value *ANY. This must be specified as the only value. If *ALL, *CHANGE, *USE, or *AUTLMGT is specified with any of the other authority values, the authority checked is the cumulative authority value.

The maximum number of authorities that can be specified is 11, which equals all the specific object and data authorities and *AUTLMGT authority.

The following identifies the type of authority you have to the object:

*ALL All authority
*CHANGE Change authority
*USE Use authority
*AUTLMGT Authorization list management authority. (This value is valid only if the object type is *AUTL. It will be ignored for other object types.)
*OBJOPR Object operational authority
*OBJMGT Object management authority
*OBJEXIST Object existence authority
*OBJALTER Alter authority
*OBJREF Reference authority
*READ Read authority
*ADD Add authority
*UPD Update authority
*DLT Delete authority
*EXECUTE Execute authority
*ANY Some authority other than *EXCLUDE. (If this value is specified, no other values can be specified.)

Reserved. This field is reserved. It must be set to hexadecimal zeros.

Select or omit status value. An indicator that determines whether objects are selected or omitted from the list based on the statuses specified.

This field is useful in generating a list of objects with a certain information status, such as damaged or partially damaged objects. It can also be used to generate a list of all objects except objects with a certain information status, such as unauthorized objects.

Valid values are:

0 Select on status value
1 Omit on status value

Statuses. The status of objects to select or omit from the list of objects generated. Valid values are all of the possible values listed under the information status field (format OBJL0200). The special value * can be used to select all objects with any information status field. If optional parameter group 2 is omitted, all objects with any information status are selected.


Format of the Generated Lists

The object list consists of:

For details about the user area and generic header, see User spaces. For details about the other items, see the following sections. For a detailed description of each field in the information returned, see Field Descriptions.

When you retrieve list entry information from a user space, you must use the entry size returned in the generic header. The size of each entry may be padded at the end. If you do not use the entry size, the result may not be valid. For examples of how to process lists, see Examples: APIs and exit programs.


Input Parameter Section

Offset Type Field
Dec Hex
0 0 CHAR(10) User space name
10 A CHAR(10) User space library name
20 14 CHAR(8) Format name
28 1C CHAR(10) Object name specified
38 26 CHAR(10) Object library name specified
48 30 CHAR(10) Object type specified
58 3A CHAR(2) Reserved
60 3C BINARY(4) Error code bytes provided
64 40 BINARY(4) Length of authority control format
68 44 BINARY(4) Call level
72 48 BINARY(4) Displacement to object authorities
76 4C BINARY(4) Number of object authorities
80 50 BINARY(4) Displacement to library authorities
84 54 BINARY(4) Number of library authorities
88 58 BINARY(4) Length of selection control format
92 5C BINARY(4) Select or omit status value
96 60 BINARY(4) Displacement to statuses
100 64 BINARY(4) Number of statuses
104 68 BINARY(4) Length of auxiliary storage pool (ASP) control format
108 6C CHAR(10) Auxiliary storage pool (ASP) device name
118 76 CHAR(10) Auxiliary storage pool (ASP) search type
    ARRAY(*) of CHAR(10) Object authorities
    ARRAY(*) of CHAR(10) Library authorities
    ARRAY(*) of CHAR(1) Statuses


OBJL0100 List Data Section

The following information is returned in the list data section of the OBJL0100 format. For detailed descriptions of the fields in the table, see Field Descriptions.

Offset Type Field
Dec Hex
0 0 CHAR(10) Object name used
10 A CHAR(10) Object library name used
20 14 CHAR(10) Object type used


OBJL0200 List Data Section

The following information is returned in the list data section of the OBJL0200 format. For detailed descriptions of the fields in the table, see Field Descriptions.

Offset Type Field
Dec Hex
0 0   Everything from the OBJL0100 format
30 1E CHAR(1) Information status
31 1F CHAR(10) Extended object attribute
41 29 CHAR(50) Text description
91 5B CHAR(10) User-defined attribute
101 65 CHAR(7) Reserved


OBJL0300 List Data Section

The following information is returned in the list data section of the OBJL0300 format. For detailed descriptions of the fields in the table, see Field Descriptions.

Offset Type Field
Dec Hex
0 0   Everything from the OBJL0200 format
108 6C BINARY(4) Object auxiliary storage pool (ASP) number
112 70 CHAR(10) Object owner
122 7A CHAR(2) Object domain
124 7C CHAR(8) Creation date and time
132 84 CHAR(8) Change date and time
140 8C CHAR(10) Storage
150 96 CHAR(1) Object compression status
151 97 CHAR(1) Allow change by program
152 98 CHAR(1) Changed by program
153 99 CHAR(10) Object auditing value
163 A3 CHAR(1) Digitally signed
164 A4 CHAR(1) Digitally signed by system-trusted source
165 A5 CHAR(1) Digitally signed more than once
166 A6 CHAR(2) Reserved
168 A8 BINARY(4) Library auxiliary storage pool (ASP) number


OBJL0400 List Data Section

The following information is returned in the list data section of the OBJL0400 format. For detailed descriptions of the fields in the table, see Field Descriptions.

Offset Type Field
Dec Hex
0 0   Everything from the OBJL0300 format
172 AC CHAR(10) Source file name
182 B6 CHAR(10) Source file library name
192 C0 CHAR(10) Source file member name
202 CA CHAR(13) Source file updated date and time
215 D7 CHAR(10) Creator's user profile
225 E1 CHAR(8) System where object was created
233 E9 CHAR(9) System level
242 F2 CHAR(16) Compiler
258 102 CHAR(8) Object level
266 10A CHAR(1) User changed
267 10B CHAR(16) Licensed program
283 11B CHAR(10) Program temporary fix (PTF)
293 125 CHAR(10) Authorized program analysis report (APAR)
303 12F CHAR(10) Primary group
313 139 CHAR(2) Reserved
315 13B CHAR(1) Optimum space alignment
316 13C BINARY(4) Primary associated space size
320 140 CHAR(4) Reserved


OBJL0500 List Data Section

The following information is returned in the list data section of the OBJL0500 format. For detailed descriptions of the fields in the table, see Field Descriptions.

Offset Type Field
Dec Hex
0 0   Everything from the OBJL0400 format
324 144 CHAR(8) Object saved date and time
332 14C CHAR(8) Object restored date and time
340 154 BINARY(4) Saved size
344 158 BINARY(4) Saved size multiplier
348 15C BINARY(4) Save sequence number
352 160 CHAR(10) Save command
362 16A CHAR(71) Save volume ID
433 1B1 CHAR(10) Save device
443 1BB CHAR(10) Save file name
453 1C5 CHAR(10) Save file library name
463 1CF CHAR(17) Save label
480 1E0 CHAR(8) Save active date and time
488 1E8 CHAR(1) Journal status
489 1E9 CHAR(10) Journal name
499 1F3 CHAR(10) Journal library name
509 1FD CHAR(1) Journal images
510 1FE CHAR(1) Journal entries to be omitted
511 1FF CHAR(8) Journal start date and time
Start of change519 207 CHAR(1) Remote journal filterEnd of change
Start of change520 208 CHAR(12) ReservedEnd of change


OBJL0600 List Data Section

The following information is returned in the list data section of the OBJL0600 format. For detailed descriptions of the fields in the table, see Field Descriptions.

Offset Type Field
Dec Hex
0 0   Everything from the OBJL0500 format
532 214 CHAR(8) Last-used date and time
540 21C CHAR(8) Reset date and time
548 224 BINARY(4) Days-used count
552 228 CHAR(1) Usage information updated
553 229 CHAR(10) Object auxiliary storage pool (ASP) device name
563 233 CHAR(10) Library auxiliary storage pool (ASP) device name
573 23D CHAR(3) Reserved


OBJL0700 List Data Section

The following information is returned in the list data section of the OBJL0700 format. For detailed descriptions of the fields in the table, see Field Descriptions.

Offset Type Field
Dec Hex
0 0   Everything from the OBJL0600 format
576 240 BINARY(4) Object size
580 244 BINARY(4) Object size multiplier
584 248 CHAR(1) Object overflowed auxiliary storage pool (ASP) indicator
585 249 CHAR(10) Object auxiliary storage pool (ASP) group name
595 253 CHAR(10) Library auxiliary storage pool (ASP) group name
605 25D CHAR(10) Starting journal receiver name for apply
615 267 CHAR(10) Starting journal receiver library name
625 271 CHAR(10) Starting journal receiver library auxiliary storage pool (ASP) device name
635 27B CHAR(10) Starting journal receiver library auxiliary storage pool (ASP) group name
645 285 CHAR(3) Reserved


Field Descriptions

Allow change by program. A 1-character variable that is used to return the allow change by program flag. A 1 is returned if the object can be changed with the Change Object Description (QLICOBJD) API. A 0 is returned if the object cannot be changed with the API.

Authorized program analysis report (APAR). The identifier of the authorized program analysis report (APAR) that caused this object to be replaced. The field is blank if the object did not change because of an APAR.

Auxiliary storage pool (ASP) device name. The name of the auxiliary storage pool (ASP) device to be searched for the library, as specified in the call to the API.

Auxiliary storage pool (ASP) search type. The type of the auxiliary storage pool (ASP) search, as specified in the call to the API.

Call level. The number of call levels to go back in the call stack to do the authority check. If optional parameter group 2 is omitted, a call level of 0 is used.

For example, if the program that calls this API adopts authority, you would probably not want the authority check to use the adopted authority. Therefore, the authority check should be done at the call level previous to the current level. This field should then contain a 1. You can check the authority at various call levels by specifying a number equivalent to the call level. For example, to check the authority at the current call level, specify a 0. To check the authority at the previous call level, specify a 1.

This field must be greater than or equal to 0 and less than the number of programs in the call stack.

Changed by program. A 1-character variable that is used to return the changed by program flag. A 1 is returned if the object has been changed with the QLICOBJD API. A 0 is returned if the object has not been changed by the API.

Change date and time. The time at which the object was last changed, in system time-stamp format.

Compiler. The licensed program identifier, version number, release level, and modification level of the compiler. The field has a pppppppVvvRrrMmm format where:

ppppppp The licensed program identifier.
Vvv The character V is followed by a 2-character version number.
Rrr The character R is followed by a 2-character release level.
Mmm The character M is followed by a 2-character modification level.

The field is blank if you do not compile the program.

Creation date and time. The time at which the object was created, in system time-stamp format. See Convert Date and Time Format (QWCCVTDT) API for more information about using this timestamp format.

Creator's user profile. The name of the user that created the object.

Days-used count. The number of days the object was used. If the object does not have a last-used date, the count is 0.

Digitally signed. A 1-character variable that indicates whether the object has a digital signature.

0 The object does not have a digital signature.
1 The object has a digital signature.

Digitally signed by system-trusted source. A 1-character variable indicates whether the object is signed by a source that is trusted by the system.

0 None of the object signatures came from a source that is trusted by the system.
1 The object is signed by a source that is trusted by the system. If the object has multiple signatures, at least one of the signatures came from a source that is trusted by the system.

Digitally signed more than once. A 1-character variable that indicates whether the object has more than one digital signature.

0 The object has only one digital signature or does not have a digital signature. Refer to the digitally signed variable to determine whether the object has a digital signature.
1 The object has more than one digital signature. Refer to the digitally signed by system-trusted source variable to determine whether the object has a digital signature from a source trusted by the system.

Displacement to library authorities. The displacement, in bytes, from the beginning of this input parameter structure to the list of library authorities, as specified in the call to the API.

Displacement to object authorities. The displacement, in bytes, from the beginning of this input parameter structure to the list of object authorities, as specified in the call to the API.

Displacement to statuses. The displacement, in bytes, from the beginning of this input parameter structure to the list of statuses requested, as specified in the call to the API.

Error code bytes provided. The length of the area that the calling application provides for the error code, in bytes.

Extended object attribute. The extended attribute of the object, such as a program or file type. Extended attributes further describe the object. For example, an object type of *PGM may have a value of RPG (RPG program) or CLP (CL program), and an object type of *FILE may have a value of PF (physical file), LF (logical file), DSPF (display file), SAVF (save file), and so on.

Format name. The format of the returned output.

Information status. Whether or not the QUSLOBJ API returns the requested information for this object. Possible values are:

blank The requested information is returned. No errors occurred.
A No information is returned. The thread that called this API needs either the authority specified in the object authorities field or *ANY authority (the default) to the object.
D The requested information is returned but may be incomplete. The object is damaged and should be deleted and created again as soon as possible.
L No information is returned because the object is locked.
P The requested information is returned. However, the object is partially damaged. In most instances, to recover from partial object damage, you delete the damaged object and either restore a saved copy or create the object again. For some damaged objects, special recovery procedures are possible. See the Recovering your system topic collection for more information about damaged objects.

If two or more conditions occur that include no authorization (A) to the object, the status is set to A. If the object is damaged (D) and locked (L), or if the object is partially damaged (P) and locked, the status is set to L.

If the value of this field is A or L, your application should not use the other fields for the object. Only the object name, library, and type fields contain accurate data.

Journal entries to be omitted. The journal entries to be omitted. The field is 1 if open and close operations do not generate open and close journal entries. The field is 0 if no entries are omitted. This field is blank if the object has never been journaled.

Journal images. The type of images that are written to the journal receiver for updates to the object. The field is 0 if only after images are generated for changes to the object. The field is 1 if both before and after images are generated for changes to the object. This field is blank if the object has never been journaled.

Journal library name. The name of the library that contains the journal. This field is blank if the object has never been journaled.

Journal name. The name of the current or last journal. This field is blank if the object has never been journaled.

Journal start date and time. The time at which journaling for the object was last started, in system time-stamp format. This field contains hexadecimal zeros if the object has never been journaled.

Journal status. The 1-character variable that returns the current journaling status of an object. The value is 1 if the object currently is being journaled; the value is 0 if the object currently is not being journaled.

Last-used date and time. The date and time at which the object was last used, in system time-stamp format. If the object has no last-used date, the field contains hexadecimal zeros.

Length of authority control format. The total length of the authority control format, as specified in the call to the API.

Length of auxiliary storage pool (ASP) control format. The total length of the auxiliary storage pool (ASP) control format, as specified in the call to the API.

Length of selection control format. The total length of the selection control format, as specified in the call to the API.

Library authorities. The authority to check for libraries. The array can contain up to ten 10-character fields. If optional parameter group 2 is omitted, *EXECUTE authority is checked for on the libraries.

The authority values can be specified in any combination. If *ALL, *CHANGE, or *USE is specified with any of the other authority values, the authority checked is the cumulative authority value.

The maximum number of authorities that can be specified is 11. This equals all of the specific object and data authorities that can be listed separately.

The following identifies the type of authority you have to the library:

*ALL All authority
*CHANGE Change authority
*USE Use authority
*OBJOPR Object operational authority
*OBJMGT Object management authority
*OBJEXIST Object existence authority
*OBJALTER Alter authority
*OBJREF Reference authority
*READ Read authority
*ADD Add authority
*UPD Update authority
*DLT Delete authority
*EXECUTE Execute authority

Library auxiliary storage pool (ASP) device name. The name of the auxiliary storage pool (ASP) device where storage is allocated for the library that contains the object. The following special values may be returned:

*N The name of the ASP device cannot be determined.
*SYSBAS System ASP (ASP 1) or basic user ASPs (ASPs 2-32)

Library auxiliary storage pool (ASP) group name. The name of the auxiliary storage pool (ASP) group where storage is allocated for the library that contains the object. The name of the ASP group is the name of the primary ASP within the ASP group. The value returned may be the same as the value returned for the library auxiliary storage pool (ASP) device name field. The following special values may be returned:

*N The name of the ASP group cannot be determined.
*SYSBAS System ASP (ASP 1) or basic user ASPs (ASPs 2-32)

Library auxiliary storage pool (ASP) number. The number of the auxiliary storage pool (ASP) where storage is allocated for the library that contains the object. Valid values are:

1 System ASP
2-32 Basic user ASP
33-255 Primary or secondary ASP

Licensed program. The name, release level, and modification level of the licensed program if the retrieved object is part of a licensed program. The 7-character name starts in character position 1, the version number starts in position 8, the release level starts in position 11, and the modification level starts in position 14. The field is blank if the retrieved object is not a part of a licensed program.

Number of library authorities. The number of authorities specified in the library authorities array. You can specify 1 through 10 authorities.

Number of object authorities. The number of authorities specified in the object authorities array. You can specify 1 through 11 authorities.

Number of statuses. The number of statuses specified in the statuses array. You can specify 1 through 5 statuses.

Object auditing value. A 10-character variable that is used to return the type of auditing for an object. The valid values are:

*NONE No auditing occurs for this object when it is read or changed regardless of the user who is accessing the object.
*USRPRF Audit this object only if the user accessing the object is being audited. The user profile for the thread is tested to determine if auditing should be done for this object. The user profile can specify if only change access is audited or if both read and change accesses are audited for this object.
*CHANGE Audit all change access to this object by all users on the system.
*ALL Audit all access to this object by all users on the system. All access is defined as a read or change operation.
*NOTAVL The auditing value is not available because you do not have either all object (*ALLOBJ) or audit (*AUDIT) special authority.

Object authorities. The authority to check for objects. The array can contain up to eleven 10-character fields. If optional parameter group 2 is omitted, *ANY authority is checked for on the objects.

The authority values can be specified in any combination with the exception of the special value *ANY. This must be specified as the only value. If *ALL, *CHANGE, *USE, or *AUTLMGT is specified with any of the other authority values, the authority checked is the cumulative authority value.

The maximum number of authorities that can be specified is 11, which equals all the specific object and data authorities and *AUTLMGT authority.

The following identifies the type of authority you have to the object:

*ALL All authority
*CHANGE Change authority
*USE Use authority
*AUTLMGT Authorization list management authority. (This value is valid only if the object type is *AUTL. It will be ignored for other object types.)
*OBJOPR Object operational authority
*OBJMGT Object management authority
*OBJEXIST Object existence authority
*OBJALTER Alter authority
*OBJREF Reference authority
*READ Read authority
*ADD Add authority
*UPD Update authority
*DLT Delete authority
*EXECUTE Execute authority
*ANY Any authority other than *EXCLUDE. (If this value is specified, no other values can be specified.)

Object auxiliary storage pool (ASP) device name. The name of the auxiliary storage pool (ASP) device where storage is allocated for the object. The following special values may be returned:

*N The name of the ASP device cannot be determined.
*SYSBAS System ASP (ASP 1) or defined basic user ASPs (ASPs 2-32)

Object auxiliary storage pool (ASP) group name. The name of the auxiliary storage pool (ASP) group where storage is allocated for the object. The name of the ASP group is the name of the primary ASP within the ASP group. The value returned may be the same as the value returned for the object auxiliary storage pool (ASP) device name field. The following special values may be returned:

*N The name of the ASP group cannot be determined.
*SYSBAS System ASP (ASP 1) or basic user ASPs (ASPs 2-32)

Object auxiliary storage pool (ASP) number. The number of the auxiliary storage pool (ASP) where storage is allocated for the object. Valid values are:

1 System ASP
2-32 Basic user ASP
33-255 Primary or secondary ASP

Object compression status. Whether the object is compressed or decompressed. The status is returned in a 1-character variable with one of these values:

Y Compressed.
N Permanently decompressed and compressible.
X Permanently decompressed and not compressible.
T Temporarily decompressed.
F Saved with storage freed; compression status cannot be determined.

Temporarily decompressed objects exist in both decompressed and compressed form. Permanently decompressed objects exist in decompressed form only. The system handles some decompression automatically, depending on the type of object, the operation performed on it, and its frequency of use. For an overview of object compression and decompression, see the Object compression or decompression topic. For details about how to explicitly compress and decompress objects, see the online help for these commands: Compress Object (CPROBJ), Decompress Object (DCPOBJ), and Reclaim Temporary Storage (RCLTMPSTG).

Object domain. The domain that contains the object. The value is *U if the object is in the user domain, or *S if the object is in the system domain.

Object level. The object control level for the created object.

Object library name specified. The name of the object library, as specified in the call to the API.

Object library name used. The name of the library that contains the object.

Object name specified. The name of the object, as specified in the call to the API.

Object name used. The name of the object.

Object overflowed auxiliary storage pool (ASP) indicator. The 1-character variable that returns the object overflowed auxiliary storage pool (ASP) indicator. The value is 1 if the object overflowed the ASP in which it resides; the value is 0 if the object has not overflowed the ASP. For objects in the system ASP (ASP 1) or in a primary or secondary ASP (ASPs 33-255), a 0 is always returned because it is not possible for an object that resides in the system ASP or in a primary or secondary ASP to overflow its ASP.

Object owner. The name of the object owner's user profile.

Object restored date and time. The time at which the object was restored, in system time-stamp format. If the object has never been restored, the field contains hexadecimal zeros.

Object saved date and time. The time at which the object was saved, in system time-stamp format. If the object has never been saved, the field contains hexadecimal zeros.

Object size. The size of the object in units of the object size multiplier. The object size in bytes is equal to or smaller than the object size in units multiplied by the object size multiplier. The object size includes the size returned in the primary associated space size field (format OBJL0400).

Object size multiplier. The value to multiply the object size by to get the object size in bytes.

The following values can be returned:

1 The object size is smaller than 1 000 000 000 bytes.
1024 The object size is between 1 000 000 000 and 1 023 999 998 976 bytes.
1048576 The object size is larger than 1 023 999 998 976 bytes.

Object type specified. The type of the object, as specified in the call to the API.

Object type used. The type of the object. Start of changeFor a complete list of the available object types, see External object types.End of change

Optimum space alignment. A 1-character variable that indicates whether the space associated with the object has been optimally aligned. Optimum alignment may allow for better performance of applications that use the object. The possible values are as follows:

0 The space associated with the object has not been optimally aligned.
1 The space associated with the object has been optimally aligned.
2 There is not a space associated with the object.

Primary associated space size. The size, in bytes, of the primary associated space used by the object. If the object does not have an associated space, the size is 0.

Primary group. The name of the user who is the primary group for the object. If no primary group exists for the object, this field contains a value of *NONE.

Program temporary fix (PTF). The number of the program temporary fix (PTF) number that caused this object to be replaced. This field is blank if the object was not changed because of a PTF.

Start of changeRemote journal filter. The remote journal filter value for the object. The field is 1 if the journal entries for the object will be eligible for remote journal filtering by object. The field is 0 if the journal entries for the object will not be eligible for remote journal filtering by object. This field is blank if the object has never been journaled.End of change

Reserved. An unused field. It contains hexadecimal zeros.

Reset date and time. The date the days-used count was last reset to zero, in system time-stamp format. If the days-used count has never been reset, the field contains hexadecimal zeros.

Save active date and time. The date and time the object was last saved when the SAVACT(*LIB, *SYSDFN, or *YES) save operation was specified, in system time-stamp format. This parameter is found on the Save Library (SAVLIB), Save Object (SAVOBJ), Save Changed Object (SAVCHGOBJ), and Save Document Library Object (SAVDLO) CL commands. If the object has never been saved or if SAVACT(*NO) was specified on the last save operation for the object, the field contains hexadecimal zeros.

Save command. The command used to save the object. The field is blank if the object was not saved.

Save device. The type of device to which the object was last saved. The field is *SAVF if the last save operation was to a save file. The field is *DKT if the last save operation was to diskette. The field is *TAP if the last save operation was to tape. The field is *OPT if the last save operation was to optical. The field is blank if the object was not saved.

Save file library name. The name of the library that contains the save file if the object was saved to a save file. The field is blank if the object was not saved to a save file.

Save file name. The name of the save file if the object was saved to a save file. The field is blank if the object was not saved to a save file.

Save label. The file label used when the object was saved. The variable is blank if the object was not saved to tape, diskette, or optical. The value of the variable corresponds to the value specified for the LABEL of OPTFILE parameter on the command used to save the object.

Save sequence number. The tape sequence number assigned when the object was saved on tape. If the object was not saved to tape, the field contains zeros.

Save volume ID. The tape, diskette, or optical volumes that are used for saving the object. The variable returns a maximum of 10 six-character volumes. The volume IDs begin in character positions 1, 8, 15, 22, 29, 36, 43, 50, 57, and 64. Each volume ID entry is separated by a single character. If the object was saved in parallel format, the separator character contains a 2 before the first volume in the second media file, a 3 before the third media file, and so on, up to a 0 before the tenth media file. Otherwise, the separator characters are blank. If more than 10 volumes are used and the object was saved in serial format, 1 is returned in the 71st character of the variable. If the object was saved in parallel format, a 2 is returned in the 71st character of the variable. Otherwise, the 71st character is blank. The field is blank if the object was last saved to a save file or if it was never saved.

Saved size. The size of the object in units of the saved size multiplier at the time of the last save operation. The saved size in bytes is equal to or smaller than the saved size in units multiplied by the saved size multiplier. The saved size includes the size of the primary associated space, if one existed. The field contains zeros if the object was not saved.

Saved size multiplier. The value to multiply the saved size by to get the saved size in bytes.

The following values can be returned:

1 The saved size is smaller than 1 000 000 000 bytes.
1024 The saved size is between 1 000 000 000 and 1 023 999 998 976 bytes.
1048576 The saved size is larger than 1 023 999 998 976 bytes.

Select or omit status value. An indicator that determines whether objects are selected or omitted from the list based on the statuses specified.

This field is useful in generating a list of objects with a certain information status, such as damaged or partially damaged objects. It can also be used to generate a list of all objects except objects with a certain information status, such as unauthorized objects.

0 Select on status value
1 Omit on status value

Source file library name. The name of the library that contains the source file used to create the object. The field is blank if no source file created the object.

Source file member name. The name of the member in the source file. The field is blank if no source file created the object.

Source file name. The name of the source file used to create the object. The field is blank if no source file created the object.

Source file updated date and time. The date and time the member in the source file was last updated. This field is in the CYYMMDDHHMMSS format where:

C Century, where 0 indicates years 19xx and 1 indicates years 20xx.
YY Year
MM Month
DD Day
HH Hour
MM Minute
SS Second

The field is blank if no source file created the object.

Starting journal receiver library name. The name of the library that contains the starting journal receiver for apply. This field is blank if the object has never been journaled.

Starting journal receiver library auxiliary storage pool (ASP) device name. The name of the auxiliary storage pool (ASP) device where storage is allocated for the library that contains the starting journal receiver for apply. This field is blank if the object has never been journaled. The following special values may be returned:

*N The name of the ASP device cannot be determined.
*SYSBAS System ASP (ASP 1) or defined basic user ASPs (ASPs 2-32)

Starting journal receiver library auxiliary storage pool (ASP) group name. The name of the auxiliary storage pool (ASP) group where storage is allocated for the library that contains the starting journal receiver. The name of the ASP group is the name of the primary ASP within the ASP group. The value returned may be the same as the value returned for the journal receiver library auxiliary storage pool (ASP) device name field. This field is blank if the object has never been journaled. The following special values may be returned:

*N The name of the ASP group cannot be determined.
*SYSBAS System ASP (ASP 1) or defined basic user ASPs (ASPs 2-32)

Starting journal receiver name for apply. The name of the oldest journal receiver needed to successfully use the Apply Journaled Changes (APYJRNCHG) or Remove Journaled Changes (RMVJRNCHG) command. This field is blank if the object has never been journaled.

For a file object, the journal receiver will contain the entry representing the start-of-the-save operation. However, if there are members within the file that contain partial transactions, then those members may require an earlier journal receiver. Use the Display File Description (DSPFD) command to determine the partial transaction state of the members of the file.

Statuses. The status of objects to select or omit from the list of objects generated. Valid values are all of the possible values listed under the information status field (format OBJL0200). The special value * can be used to select all objects with any information status field. If optional parameter group 2 is omitted, all objects with any information status are selected.

Storage. The storage status of the object data. *FREE indicates the object data is freed and the object is suspended. *KEEP indicates the object data is not freed and the object is not suspended.

System level. The level of the operating system when the object was created. The field has a VvvRrrMmm format where:

Vvv The character V is followed by a 2-character version number.
Rrr The character R is followed by a 2-character release level.
Mmm The character M is followed by a 2-character modification level.

System where object was created. The name of the system on which the object was created.

Text description. The text description of the object. The field is blank if no text description is specified.

Usage information updated. Whether the object usage information is updated for this object type. The indicator is returned as Y (Yes) or N (No).

User changed. Whether the user program was changed. A character 1 is returned if the user changed the object. If the object was not changed by the user, the field is character 0.

User-defined attribute. Further defines an object type. This field is set by the user while using the QLICOBJD API.

User space library name. The library that contains the user space, as specified in the call to the API.

User space name. The name of the user space.


Error Messages

Message ID Error Message Text
CPFB8ED E Device description &1 not correct for operation.
CPF21AA E Number of statuses must be between 1 and 5.
CPF21AB E Status value &1 not valid.
CPF21AC E Length or displacement value &1 not valid.
CPF21A7 E Authority value &1 not valid.
CPF21A8 E Must specify *ANY as only authority value.
CPF21A9 E Select or omit value &1 not valid.
CPF2173 E Value for ASPDEV not valid with special value for library.
CPF218C E &1 not a primary or secondary ASP.
CPF218D E &1 not a primary ASP when *ASPGRP specified.
CPF22F7 E Number of authorities must be between 1 and &1.
CPF22F9 E Call level &1 not valid.
CPF24B4 E Severe error while addressing parameter list.
CPF3CAA E List is too large for user space &1.
CPF3CF1 E Error code parameter not valid.
CPF3CF2 E Error(s) occurred during running of &1 API.
CPF3C20 E Error found by program &1.
CPF3C21 E Format name &1 is not valid.
CPF3C3B E Value for parameter &2 for API &1 not valid.
CPF3C31 E Object type &1 is not valid.
CPF3C36 E Number of parameters, &1, entered for this API was not valid.
CPF3C90 E Literal value cannot be changed.
CPF8100 E All CPF81xx messages could be returned. xx is from 01 to FF.
CPF980B E Object &1 in library &2 not available.
CPF9801 E Object &2 in library &3 not found.
CPF9802 E Not authorized to object &2 in &3.
CPF9803 E Cannot allocate object &2 in library &3.
CPF9804 E Object &2 in library &3 damaged.
CPF9807 E One or more libraries in library list deleted.
CPF9808 E Cannot allocate one or more libraries on library list.
CPF9810 E Library &1 not found.
CPF9814 E Device &1 not found.
CPF9820 E Not authorized to use library &1.
CPF9825 E Not authorized to device &1.
CPF9830 E Cannot assign library &1.
CPF9833 E *CURASPGRP or *ASPGRPPRI specified and thread has no ASP group.
CPF9838 E User profile storage limit exceeded.
CPF9872 E Program or service program &1 in library &2 ended. Reason code &3.


API introduced: V1R3

[ Back to top | Object APIs | APIs by category ]