Directory Maintenance Exit Program


  Required Parameter Group:

1 Request type Input Char(10)
2 Directory information format Input Char(10)
3 Owning system name Input Char(8)
4 User making request Input Char(10)
5 System making request Input Char(8)
6 Length of directory information Input Binary(4)
7 Directory information Input Char(*)
8 User exit program type Input Char(10)
9 Field name and product ID in error Output Char(17)
 QSYSINC Member Name:  EOKDRVF

 Exit Point Name:  QIBM_QOK_VERIFY
                   QIBM_QOK_NOTIFY

 Exit Point Format Name:  VRFY0100

The Directory Maintenance exit program allows the administrator to make decisions based on directory entry additions, changes, or deletions. Two exit points are available.

The maintenance program registered at exit point QIBM_QOK_VERIFY is called before any directory entry, department, or location is added, changed, or removed from the system. This exit program is more specifically known as the verification maintenance exit program. The verification maintenance exit program allows the administrator to define additional security or syntax checking on the data.

The maintenance program registered at exit point QIBM_QOK_NOTIFY is called after any directory entry, department, or location is added, changed, or removed from the system. This exit program is more specifically known as the notification maintenance exit program.

The verification maintenance exit program is specified on the VRFPGM parameter of the Change System Directory Attribute (CHGSYSDIRA) command. The verification maintenance exit program can also be specified using the Work with Registration Information (WRKREGINF) command. The notification maintenance exit program can only be specified using the Work with Registration Information (WRKREGINF) command.

Exit programs that have been registered through the registration facility for common exit programs can be viewed by using the Work with Registration Information (WRKREGINF) command.

The maintenance programs are given all updated information known about the directory entry, department, or location. The verification maintenance exit program returns to the directory service an indication as to whether the add, change, or delete operation is to be applied to the Enterprise Address Book (EAB). On the iSeries server, this is called the system distribution directory. The EAB is a collection of data, such as information about people, departments, and locations in a network. An example of an enterprise is a company.

Whether or not update requests that are rejected by the verification maintenance exit program are supplied to other systems depends on the origin of the update.

The verification criteria should be consistent on all your systems to help reduce the amount of processing on the network.

The system can get back the data which was filtered, but it is not a simple task. In order to retrieve the data which has been filtered out, the data can be shadowed again from the system where the data resides.


Authorities and Locks

None.


Required Parameter Group

Function being requested
INPUT; CHAR(10)

The type of operation that the user is requesting to do to the directory information that is described by the other parameters.

*ADD Information is being added.
*ADDDSC User description is being added.
*CHG Information is being changed.

All fields in the directory information that are not changed will be X'00' except for the first field of every table. That field indicates what directory entry, department, or location is being changed.

*DLT Information is being deleted.
*DLTDSC User description is being deleted.

Directory information format
INPUT; CHAR(10)

The format of the directory information that is being worked with. The information is provided in the directory information parameter. The valid formats are:

CHKP0100 Directory entry (See CHKP0100 Format.)
CHKP0200 Department entry (See CHKP0200 Format.)
CHKP0300 Location entry (See CHKP0300 Format.)

These formats have the same layout as the SUPP0100, SUPP0200, and SUPP0300 formats used for the Directory Supplier exit program. This allows a single program to be used as both a verification maintenance program and a supplier program.

Owning system name
INPUT; CHAR(8)

The name of the system that "owns" the directory entry, department, or location that is being worked with. The owning system is the system that originally added the data to the network.

*LOCAL The entry is owned by the local system.

User making request
INPUT; CHAR(10)

The user profile name of the user that is doing the request. When using the shadowing function, this is the user that originated the modification.

System making request
INPUT; CHAR(8)

The system from which the request is coming. When using the shadowing function, this is the system that originated the modification.

Length of directory information
INPUT; BINARY(4)

The length of the directory information in the directory information parameter. The length depends on the directory information format. Each format has a different (but fixed) length as shown in specific format tables.

Directory information
INPUT; CHAR(*)

The directory information that is associated with the directory entry, department, or location that the request is made against. For the format of this character parameter, refer to the specific format table (CHKP0100 Format , CHKP0200 Format , or CHKP0300 Format) and to the Field Descriptions.

User exit program type
INPUT; CHAR(10)

The user exit program type that is associated with the call of the Directory Maintenance exit program. This parameter is provided so that a single program can be used as both a maintenance program and a supplier program. This parameter is set to *VRFPGM if calling the verification maintenance exit program or *NFYPGM if calling the notification maintenance exit program.

Field name and product ID in error
OUTPUT; CHAR(17)

The field name and product ID that caused the CPF89A4 error. The first 10 characters are the field name; the second 7 characters contain the product name. The product ID can have the following special values:

*NONE A field name that does not have a product ID.
*IBM A field defined by the i5/OS system distribution directory.

This parameter is used only by the verification maintenance exit program. The notification maintenance exit program does not use any output parameter. This is because the information has already been added to the directory and the notification maintenance exit program cannot reject it.

This field will be recognized only for an add or a change of a directory entry where the Work with Directory Entries (WRKDIRE) panel support is being used. The field will be highlighted and the cursor will be positioned on the field. The field will be ignored under any other conditions.

The field name can be a user-defined name or a name supplied by the i5/OS system distribution directory. To display the user-defined names, either type CHGSYSDIRA and press F4, or use the SREQ0200 format of the QOKSCHD API. For more information on the SREQ0200 format of the QOKSCHD API, see SREQ0200 Format.

The following names are defined by the i5/OS system distribution directory. The product ID of these names is *IBM.

LSTNAM Last name
FSTNAM First name
MIDNAM Middle name
PREFNAM Preferred name
FULNAM Full name
DEPT Department
USRID User ID (DEN)
USRADDR User address (DGN)
USRD User description
SYSNAME System name (REN)
SYSGRP System group (RGN)
USER User profile
NETUSRID Network user ID
TELNBR1 Telephone number 1
TELNBR2 Telephone number 1
FAXTELNBR Fax telephone number
LOC Location
BLDG Building
CMPNY Company
OFC Office
TITLE Job title
ADDR1 Mailing address line 1
ADDR2 Mailing address line 2
ADDR3 Mailing address line 3
ADDR4 Mailing address line 4
INDUSR Indirect user
LCLDTA Local data indicator
TEXT Text
COUNTRY Country or region
ADMD Administration domain
PRMD Private management domain
ORG Organization
SURNAM Surname
GIVENNAM Given name
INITIALS Initials
GENQUAL Generation qualifier
ORGUNIT1 Organization unit 1
ORGUNIT2 Organization unit 2
ORGUNIT3 Organization unit 3
ORGUNIT4 Organization unit 4
DMNDFNAT1 Domain-defined attribute type 1
DMNDFNAV1 Domain-defined attribute value 1
DMNDFNAT2 Domain-defined attribute type 2
DMNDFNAV2 Domain-defined attribute value 2
DMNDFNAT3 Domain-defined attribute type 3
DMNDFNAV3 Domain-defined attribute value 3
DMNDFNAT4 Domain-defined attribute type 4
DMNDFNAV4 Domain-defined attribute value 4
CCMAILADR cc:Mail address
CCMAILCMT cc:Mail comment
MSFSRVLVL Mail server framework service level
PREFADR Preferred address
ALWSYNC Allow synchronization
DLOOWN DLO owner

Rejecting an Update Operation

The user-written verification maintenance exit program may reject update requests. To do so, the verification maintenance exit program must signal a specific program message to the directory services module that called it, and then return. An update is rejected based on the restrictions that have been identified. For example, if three people have authority to make updates but the program allows only one user to do updates, then update requests by all other users are rejected.

To allow a directory update request, the verification maintenance exit program only returns to the program that called it. Two program messages have been defined for the purpose of rejecting directory updates. The messages are:

CPF89A3 Operation not successful due to authority reasons.
CPF89A4 Operation not successful due to data validation reasons.

Note: The message must be signalled as an escape message. A diagnostic or informational message can be signalled before the escape message to give additional information about the error.

You may provide an optional data structure with message variable substitution text. This will help clarify the reasons for the rejection to the users. The optional data structure is:

CHAR(10) The profile name of the user who requested (entered) the update. This information is from the user making request parameter.
CHAR(8) The system name of the user who requested (entered) the update. You can get this from the system making request parameter.
CHAR(120) A description of the reason the exit program is rejecting the request.


CHKP0100 Format

Offset Type Field
Dec Hex
Note: The following fields are in code page 500 and character set 697.
0 0 CHAR(16) User ID/address
16 10 CHAR(16) System name/group
32 20 CHAR(10) User profile
42 2A CHAR(47) Network user ID
89 59 CHAR(16) New user ID/address
105 69 CHAR(16) Old user to forward from user ID/address
121 79 CHAR(1) Indirect user
122 7A CHAR(1) Print personal mail
123 7B CHAR(3) Reserved
Note: The character sets and code pages immediately follow the individual fields in the list below.
126 7E CHAR(50) Description
176 B0 BINARY(4) Character set
180 B4 BINARY(4) Code page
184 B8 CHAR(40) Last name
224 E0 BINARY(4) Character set
228 E4 BINARY(4) Code page
232 E8 CHAR(20) First name
252 FC BINARY(4) Character set
256 100 BINARY(4) Code page
260 104 CHAR(20) Middle name
280 118 BINARY(4) Character set
284 11C BINARY(4) Code page
288 120 CHAR(20) Preferred name
308 134 BINARY(4) Character set
312 138 BINARY(4) Code page
316 13C CHAR(2) Reserved
318 13E CHAR(50) Full name
368 170 BINARY(4) Character set
372 174 BINARY(4) Code page
376 178 CHAR(2) Reserved
378 17A CHAR(10) Department
388 184 BINARY(4) Character set
392 188 BINARY(4) Code page
396 18C CHAR(2) Reserved
398 18E CHAR(50) Job title
448 1C0 BINARY(4) Character set
452 1C4 BINARY(4) Code page
456 1C8 CHAR(2) Reserved
458 1CA CHAR(50) Company
508 1FC BINARY(4) Character set
512 200 BINARY(4) Code page
516 204 CHAR(2) Reserved
518 206 CHAR(26) Telephone number 1
544 220 BINARY(4) Character set
548 224 BINARY(4) Code page
552 228 CHAR(2) Reserved
554 22A CHAR(26) Telephone number 2
580 244 BINARY(4) Character set
584 248 BINARY(4) Code page
588 24C CHAR(40) Location
628 274 BINARY(4) Character set
632 278 BINARY(4) Code page
636 27C CHAR(20) Building
656 290 BINARY(4) Character set
660 294 BINARY(4) Code page
664 298 CHAR(16) Office
680 2A8 BINARY(4) Character set
684 2AC BINARY(4) Code page
688 2B0 CHAR(40) Mailing address line 1
728 2D8 BINARY(4) Character set
732 2DC BINARY(4) Code page
736 2E0 CHAR(40) Mailing address line 2
776 308 BINARY(4) Character set
780 30C BINARY(4) Code page
784 310 CHAR(40) Mailing address line 3
824 338 BINARY(4) Character set
828 33C BINARY(4) Code page
832 340 CHAR(40) Mailing address line 4
872 368 BINARY(4) Character set
876 36C BINARY(4) Code page
880 370 CHAR(2) Reserved
882 372 CHAR(50) Text
932 3A4 BINARY(4) Character set
936 3A8 BINARY(4) Code page
940 3AC CHAR(1) Print cover page
941 3AD CHAR(1) Mail notification
Note: The following X.400 fields are in the character set and code page as defined by 1984 X.400 standards.
942 3AE CHAR(3) X.400 country or region
945 3B1 CHAR(16) X.400 administration domain
961 3C1 CHAR(16) X.400 private domain
977 3D1 CHAR(64) X.400 organization
1041 411 CHAR(40) X.400 surname
1081 439 CHAR(16) X.400 given name
1097 449 CHAR(5) X.400 initials
1102 44E CHAR(3) X.400 generation qualifier
1105 451 CHAR(32) X.400 organization unit 1
1137 471 CHAR(32) X.400 organization unit 2
1169 491 CHAR(32) X.400 organization unit 3
1201 4B1 CHAR(32) X.400 organization unit 4
1233 4D1 CHAR(8) X.400 domain attribute type 1
1241 4D9 CHAR(128) X.400 domain attribute value 1
1369 559 CHAR(8) X.400 domain attribute type 2
1377 561 CHAR(128) X.400 domain attribute value 2
1505 5E1 CHAR(8) X.400 domain attribute type 3
1513 5E9 CHAR(128) X.400 domain attribute value 3
1641 669 CHAR(8) X.400 domain attribute type 4
1649 671 CHAR(128) X.400 domain attribute value 4
1777 6F1 CHAR(3) Reserved
1780 6F4 CHAR(32) Fax telephone number
1812 714 BINARY(4) Character set
1816 718 BINARY(4) Code page
1820 71C CHAR(17) Mail service level
1837 72D CHAR(29) Preferred address
1866 74A CHAR(255) cc:Mail address
2121 849 CHAR(126) cc:Mail comment
2247 8C7 CHAR(1) Allow synchronization
2248 8C8 BINARY(4) Offset to user-defined fields array
2252 8CC BINARY(4) Number of elements (fields) in user-defined fields array
2256 8D0 CHAR(10) DLO owner
Note: All fields that are not changed will be X'00' except for the user ID/address field.


Array for User-Defined Fields

The following table is the array for user-defined fields, format CHKP0100.

Offset Type Field
Dec Hex
0 0 BINARY(4) Displacement to next user-defined field element in this array
4 4 CHAR(10) Field name
14 E CHAR(7) Product ID
21 15 CHAR(3) Reserved
24 18 BINARY(4) Character set
28 1C BINARY(4) Code page
32 20 BINARY(4) Length of field value returned
36 24 CHAR(*) Field value


CHKP0200 Format

Offset Type Field
Dec Hex
Note: The character sets and code pages immediately follow the individual fields in the list below.
0 0 CHAR(2) Reserved
2 2 CHAR(10) Department
12 C BINARY(4) Character set
16 10 BINARY(4) Code page
20 14 CHAR(2) Reserved
22 16 CHAR(50) Title
72 48 BINARY(4) Character set
76 4C BINARY(4) Code page
80 50 CHAR(2) Reserved
82 52 CHAR(10) Reports to department
92 5C BINARY(4) Character set
96 60 BINARY(4) Code page
Note: The following field is in code page 500 and character set 697.
100 64 CHAR(16) Manager user ID/address
116 74 CHAR(2) Reserved
118 76 CHAR(10) Old department
128 80 BINARY(4) Character set
132 84 BINARY(4) Code page
Note: All fields that are not changed will be X'00' except for the department field and its corresponding character set and code page fields.


CHKP0300 Format

Offset Type Field
Dec Hex
Note: The character sets and code pages immediately follow the individual fields in the list below.
0 0 CHAR(40) Location
40 28 BINARY(4) Character set
44 2C BINARY(4) Code page
48 30 CHAR(2) Reserved
50 32 CHAR(30) Location line 1
80 50 BINARY(4) Character set
84 54 BINARY(4) Code page
88 58 CHAR(2) Reserved
90 5A CHAR(30) Location line 2
120 78 BINARY(4) Character set
124 7C BINARY(4) Code page
128 80 CHAR(2) Reserved
130 82 CHAR(30) Location line 3
160 A0 BINARY(4) Character set
164 A4 BINARY(4) Code page
168 A8 CHAR(2) Reserved
170 AA CHAR(30) Location line 4
200 C8 BINARY(4) Character set
204 CC BINARY(4) Code page
208 D0 CHAR(2) Reserved
210 D2 CHAR(30) Location line 5
240 F0 BINARY(4) Character set
244 F4 BINARY(4) Code page
248 F8 CHAR(2) Reserved
250 FA CHAR(30) Location line 6
280 118 BINARY(4) Character set
284 11C BINARY(4) Code page
288 120 CHAR(40) Location changed to
328 148 BINARY(4) Character set
332 14C BINARY(4) Code page
336 150 CHAR(40) Old location
376 178 BINARY(4) Character set
380 17C BINARY(4) Code page
Note: All fields that are not changed will be X'00' except for the location field and its corresponding character set and code page fields.


Field Descriptions

Allow synchronization. Whether the directory entries should be synchronized with directories other than the system distribution directory. The values are 0 for no and 1 for yes.

Building. The name or number that identifies the user's building.

cc:Mail address. The cc:Mail address for a user. This field has a maximum of 126 characters, or 255 if the cc:Mail address contains both a remote post office name and an alias name.

cc:Mail comment. The cc:Mail comment for this user.

Character set. The character identifier (graphic character set) that was used by the work station to enter the data for the field.

Code page. The value specified on this parameter is used to instruct the printer device to interpret the hexadecimal byte string to print the same characters that were intended when the text was created.

Company. The name of the company for whom the user works.

Department. The name or number that identifies the user's department.

Description. The description associated with the user ID. One entry in the directory can have several different descriptions.

Displacement to next user-defined field element in this array. The displacement, in bytes, to the next user-defined field. Use this value to increment the pointer to get to the next user-defined field.

DLO owner. A special value indicating whether the user profile or the group profile will be assigned ownership of newly created document library objects (DLOs) associated with this directory entry.

Fax telephone number. The facsimile telephone number.

Field name. The user-defined field name.

Field value. The value of the user-defined field. The maximum is 512 bytes.

First name. The user's first name or given name.

Full name. The user's full name as it appears when a directory is viewed or searched.

Indirect user. A user enrolled in the system distribution directory who receives mail but never signs on to view it. An indirect user receives printed mail only. The values are 0 for no and 1 for yes.

Job title. The title of the user's occupation.

Last name. The user's last name.

Length of field value. The length of the user-defined field value. If the value is 0, there is no data in that field for this user.

Location. The location of the business or system. Some examples of location are city, state, or street address.

Location changed to. The new location value after combining locations.

Location lines 1 through 6. The location of the business or system. These fields further describe a location name. For example, the field may contain the general mailing address for the location.

Mail notification. Whether or not the user wants to be notified when mail arrives.

The user can specify these values:

Blank Notified for priority or personal mail and messages
1 Notified for priority or personal mail and messages
2 Notified for only priority or personal mail
3 Notified for messages only
4 Notified for all mail
0 No notification for mail

Mail service level. A 17-byte field where the first 10 bytes are the field name and the last 7 bytes are the product ID. The values for the mail service level can be:

*USRIDX User index
*SYSMS System message store
*DOMINO Lotus Domino mail database
A user-defined field name and product ID The product ID will be blank if the product ID does not exist.

Mailing address lines 1 through 4. The address of the user.

Manager user ID/address. The department manager's user ID and address.

Middle name. The user's middle name.

Network user ID. A unique value associated with each user in the Enterprise Address Book. For example, the value could be the user ID/address, the social security number, or the employee number.

New user ID/address. The new user ID and address used during the rename operation.

Office. The name or number that identifies the user's office.

Old department. The previous department value before being changed.

Old location. The previous location value before being changed.

Old user to forward from user ID/address. This field shows the previous user ID and address from which the user forwards mail.

Preferred address. A 29-byte field where the first 10 bytes are the field name, the second 7 bytes are the product ID, the third 4 bytes are reserved, and the last 8 bytes are the address type name.

The special values of the field name in preferred address can be:

*USRID User ID/Address
*ORNAME X.400 O/R name
*SMTP SMTP name
A user-defined or IBM-defined field. The product ID is *IBM for an IBM-defined field. The product ID will be blank if the product ID does not exist.

Preferred name. The name by which the user prefers to be known.

Product ID. The product ID of the user-defined field. If the value is *NONE, there is no product ID.

Print cover page. Whether a cover page is printed when the user's mail is printed. The values are 0 for no and 1 for yes.

Print personal mail. This field is used only if the user is an indirect user. The value specifies whether to print the mail that can be accessed only by the receiver, but not by someone working on behalf of the receiver. When mail is sent, it can be assigned the classification personal. The values are 0 for no and 1 for yes.

Reports to department. The department to which this department reports.

Reserved. An ignored field.

System name/group. An IBM-supplied name that uniquely identifies the system. It is used as a network value for certain communications applications such as APPC.

Telephone number 1. The telephone number of the user's office or business, or telephone numbers that are significant to the user. The most important number should be listed on the first line because only the first line is displayed when you use the search directory function.

Telephone number 2. The second line for telephone numbers.

Text. Any additional information that describes the entry.

Title. A department title that further describes the department name.

User-defined fields. Fields that are defined on the system by the Change System Directory Attributes (CHGSYSDIRA) command. The value of these user-defined fields can then be filled in on the directory entry for each user. The field name, product ID and field value are passed in the user-defined fields array. The product ID will be blank if the product ID does not exist.

User ID/address. A two-part network name used in the system distribution directory and in the office applications to uniquely identify a user and to send electronic mail.

User profile. The user profile name, if any, associated with a user ID and address.

X.400 administration domain. The administration management domain part of the X.400 originator/recipient (O/R) name. An administration management domain is a management domain that is administered by a public organization, such as a national Post Telephone and Telegraph Administration (PTT). A management domain is a set of message transfer agents (MTAs) and user agents (UAs) that comprise a message handling system.

X.400 country or region. The country or region part of the X.400 originator/recipient (O/R) name.

X.400 domain attribute types 1 through 4. The type of a domain-defined attribute for this object. The domain-defined attribute is not defined by X.400 standards but is allowed in the X.400 originator/recipient (O/R) name to accommodate values of existing systems sending messages.

X.400 domain attribute values 1 through 4. The code immediately following the attribute type that specifies a particular property from the set defined by the attribute type.

X.400 generation qualifier. The generation qualifier part of the X.400 originator/recipient (O/R) name. For example, the generation qualifier in the name John R. Smith, III, is III. If you specify a generation qualifier, you must specify an X.400 surname.

X.400 given name. The user first name, or given name, part of the X.400 originator/recipient (O/R) name. The default for the given name is the equivalent of the first name. If you specify a given name, you must specify an X.400 surname.

X.400 initials. The first and middle initials of the X.400 originator/recipient (O/R) name. For example, the initials for John Henry Smith are JH. If you specify initials, you must specify a surname.

X.400 organization. The organization name part of the X.400 originator/recipient (O/R) name.

X.400 organization units 1 through 4. The organization-defined unit part of the X.400 originator/recipient (O/R) name.

X.400 private domain. The private management domain part of the X.400 originator/recipient (O/R) name. A private management domain is a management domain that is administered by a private company or a noncommercial organization.

X.400 surname. The user last name, or surname, part of the X.400 originator/recipient (O/R) name.


Error Messages

Message ID Error Message Text
CPF89A3 E Operation not successful due to authority reasons.
CPF89A4 E Operation not successful due to data validation reasons.


Exit Program Introduced: V3R6
Top | Office APIs | APIs by category