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.
Other systems in the directory shadowing network may be affected. The results depend on the nature of the shadowed update request:
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.
None.
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. |
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.
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. |
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.
The system from which the request is coming. When using the shadowing function, this is the system that originated the modification.
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.
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.
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.
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 |
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. |
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. |
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 |
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. |
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. |
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.
Message ID | Error Message Text |
---|---|
CPF89A3 E | Operation not successful due to authority reasons. |
CPF89A4 E | Operation not successful due to data validation reasons. |
Top | Office APIs | APIs by category |