Remove User Index Entries (QUSRMVUI) API


  Required Parameter Group:

1 Number of entries removed Output Binary(4)
2 Entries removed Output Char(*)
3 Length of entries removed Input Binary(4)
4 Entry lengths and entry offsets Output Array(*) of Char(8)
5 Length of entry lengths and offsets Input Binary(4)
6 Returned library name Output Char(10)
7 Qualified user index name Input Char(20)
8 Format Input Char(8)
9 Maximum number of entries Input Binary(4)
10 Remove type Input Binary(4)
11 Remove criteria Input Char(*)
12 Length of remove criteria Input Binary(4)
13 Remove criteria offset Input Binary(4)
14 Error code I/O Char(*)

  Default Public Authority: *USE

  Threadsafe: Yes

The Remove User Index Entries (QUSRMVUI) API removes one or more user index entries that match the values specified on the remove criteria parameter. It returns the number of entries that were removed and, optionally, returns the actual index entries removed.


Authorities and Locks

User Index Library Authority
*EXECUTE
User Index Authority
*CHANGE
User Index Lock
*SHRUPD

Required Parameter Group

Number of entries removed
OUTPUT; BINARY(4)

The number of index entries, satisfying the values specified on the remove criteria parameter, that were successfully removed from the user index. If this field is 0, no entries satisfied the remove criteria. This value can never be greater than the maximum number of entries parameter.

Entries removed
OUTPUT; CHAR(*)

The actual entries removed. All entries that satisfied the remove criteria parameter and were removed (up to the maximum number of entries parameter) are returned if sufficient space is provided. The API returns only the data that the area can hold.

The size of the entries removed parameter should be greater than or equal to:

 8 + (the maximum number of entries parameter
       * the maximum entry length)

The maximum entry length was defined when the index was created. It can be obtained by using the Retrieve User Index Attributes (QUSRUIAT) API.

To determine if all the entries are valid in the entries removed parameter, compare the bytes returned and the bytes available fields in the entries removed parameter.

The entries are always returned starting with the entry that is closest to or equal to the remove argument. Then entries are kept in the order that they proceed away from the remove criteria parameter. Each entry removed from the user index is based on the binary value of the remove criteria. No other collating sequence is supported. User indexes can contain only scalar data, which makes the index entries contiguous. Use the entry lengths and entry offsets parameter to parse the entries that were removed and returned in this parameter.

If you do not want the entries that were removed to be returned in this parameter, specify 0 for the length of entries removed parameter.

Every entry removed causes the number of entries removed parameter to be incremented by 1. You can also use the Retrieve User Index Attributes (QUSRUIAT) API to retrieve this information.

Refer to IDXE0100 Format for the layout of this parameter.

Length of entries removed
INPUT; BINARY(4)

The length of the entries removed parameter. If this length is larger than the actual size of the entries removed parameter, the results may not be predictable. The minimum length is 0 or >= (greater than or equal to) 8 bytes. If 0 is used, the entries removed from the index are not returned and the bytes returned and the bytes available in the entries removed parameter are not set.

Entry lengths and entry offsets
OUTPUT; ARRAY of CHAR(8)

A data structure that contains entry lengths and entry offsets for all entries that were found that met the remove criteria parameter. An entry length and entry offset exist for every entry returned in the entries removed parameter. These entry lengths and entry offsets are used to parse through the entries removed parameter. If the length of entries removed parameter is 0, this information will not be returned.

The size of the entry lengths and entry offsets parameter should be at least:

 8 + (the maximum number of entries parameter * 8)

You must provide enough space in both the entries removed and the entry lengths and offset parameter for this API to return complete information to you.

You will not receive complete information in the following two situations.

See Format for Entry Lengths and Entry Offsets for details on the data structure.

Length of entry lengths and entry offsets
INPUT; BINARY(4)

The length of the entry lengths and entry offsets. If the length is longer than the entry lengths and entry offsets parameter, the results may not be predictable. The minimum length is 8. If the length of entries removed parameter is 0, which means you do not want the entries removed to be returned, this parameter is ignored.

Returned library name
OUTPUT; CHAR(10)

The name of the library that contains the user index from which the entries were removed. If the entries are successfully removed from the user index, the name of the library that contained the user index entries is returned. This parameter is not set if an error occurs.

Qualified user index name
INPUT; CHAR(20)

The user index from which you want to remove entries, and the library in which it is located. The first 10 characters contain the user index name, and the second 10 characters contain the library name.

You can use these special values for the library name:

*CURLIB The job's current library
*LIBL The library list

Format
INPUT; CHAR(8)

The format of the user index entries that were removed.

The format name supported is:

IDXE0100 Basic Information

Refer to IDXE0100 Format for details on the format.

Maximum number of entries
INPUT; BINARY(4)

The maximum number of user index entries to be removed that satisfy the remove criteria. Valid values are 1 through 4095.

Remove type
INPUT; BINARY(4)

The type of remove operation that is to be performed.

Valid values are:

1 Equal

Remove entries that are equal to the remove criteria.

2 Greater than

Remove entries that are greater than the remove criteria.

3 Less than

Remove entries that are less than the remove criteria.

4 Greater than or equal

Remove entries that are greater than or equal to the remove criteria.

5 Less than or equal

Remove entries that are less than or equal to the remove criteria.

6 First

Remove the first index entry or entries.

7 Last

Remove the last index entry or entries.

8 Between

Remove all entries between the two arguments specified in the remove criteria.


Remove criteria
INPUT; CHAR(*)

The criteria used to find matches in the user index.

When the remove type is 8 (between), this parameter contains two criteria elements of the same length. The first element is considered the starting element, and the second element is the ending element. This parameter is ignored when the remove type is 6 (first) or 7 (last).

Length of remove criteria
INPUT; BINARY(4)

The length of the remove criteria being used. This parameter is ignored when the remove type is 6 (first) or 7 (last). If the remove type is 8 (between), this parameter specifies the length of the first element. The second element must have the same length as the first element. Valid values are 1-2000, depending on how the user index was created.

For a fixed and keyed user index, the length of the remove criteria can be greater than the length of the key.

Remove criteria offset
INPUT; BINARY(4)

The offset of the second element from the beginning of the remove criteria parameter. This parameter is ignored unless the remove type is 8 (between).

Error code
I/O; CHAR(*)

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


Format for Entry Lengths and Entry Offsets

The following information is returned in the entry lengths and entry offsets parameter. This information is needed to parse through the entries removed parameter. For detailed descriptions of the fields in the table, see Field Descriptions.

Offset Type Field
Dec Hex
0 0 BINARY(4) Bytes returned
4 4 BINARY(4) Bytes available
Note: The following fields will be repeated. The number of times they are repeated depends on the length of the entry lengths and entry offsets parameter and the number of entries actually removed.
    BINARY(4) Entry length
    BINARY(4) Entry offset


IDXE0100 Format

The following information is returned for the IDXE0100 format. For detailed descriptions of the fields in the table, see Field Descriptions.

Offset Type Field
Dec Hex
0 0 BINARY(4) Bytes returned
4 4 BINARY(4) Bytes available
8 8 CHAR(*) Entry 1-n


Field Descriptions

Bytes available. The length of all data available to return. All available data is returned if enough space is provided.

Bytes returned. The length of the data actually returned.

Entry length. The length of the entry removed from the user index. Valid values are 1-2000, depending on how the user index was created.

Entry offset. The number of bytes from the beginning of the immediately preceding entry to the first byte of the entry returned. For the first entry, the offset is the number of bytes from the beginning of the parameter to the first byte of the first entry.

Entry 1-n. All entries that satisfy the remove criteria (up through the maximum number of entries) are returned. User indexes contain only scalar data, which makes the index entries contiguous. Use the entry length and entry offset values to parse this parameter.


Error Messages

Message ID Error Message Text
CPF24B4 E Severe error while addressing parameter list.
CPF3CF1 E Error code parameter not valid.
CPF3CF2 E Error(s) occurred during running of &1 API.
CPF3C21 E Format name &1 is not valid.
CPF3C7D E Remove or search information is not valid.
CPF3C70 E Length of entries removed parameter is not valid.
CPF3C76 E Length of lengths and offsets of entries &1 is not valid.
CPF3C77 E Remove type &1 is not valid.
CPF3C78 E Criteria length &1 is not valid.
CPF3C79 E Maximum number of entries &1 is not valid.
CPF3C90 E Literal value cannot be changed.
CPF8100 E All CPF81xx messages could be returned. xx is from 01 to FF.
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.
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.
CPF9820 E Not authorized to use library &1.
CPF9830 E Cannot assign library &1.
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 | Object APIs | APIs by category ]