The ID Resolver handles resolution for tables that have identifiers generated for them by the system. This includes any table and column registered in the KEYS or SUBKEYS table. This resolution has two components:
- Determining if a primary table (that is, a table listed in KEYS or SUBKEYS) exists in the database.
This resolution is based on the contents of the XML data for that element using either unique-index resolution or properties-file specification.
- Determining if there is a foreign key to a primary table.
This is done with a resolution specification in the foreign-key attribute of the related table.
The MEMBER table is used as a "super class" for the ORGENTITY, MBRGRP, and USER tables. This creates an "is-a" pattern that is useful for maintaining referential integrity when tables have foreign-key constraints to the subtypes of the MEMBER table. Because all MEMBER subtypes share a common base type, however, the identifier must be unique among the subtypes. This means that an ORGENTITY_ID must be unique in the MBRGRP_ID and USER_ID set. To accomplish this, the KEYS table refers to only the ORGENTITY, MBRGRP, and USER tables and specifies mutually exclusive ranges for their identifiers. Each of the subtypes has a primary key; each of these primary keys is also a foreign key to the MEMBER table primary key.
The constraints between MEMBER and its subtypes create a situation where a MEMBER and subtype cannot have a synchronized ID. In order to load the ORGENTITY, MBRGRP, and USERS tables into the system using the Loader package, the ID Resolver recognizes the "is-a" pattern and deals with it appropriately. The following XML syntax for the ID Resolver:
<ORGENTITY ORGENTITY_ID="@orgAlias" DN="o=buyer organization a,o=root organization" ORGENTITYNAME="Test Org" ORGENTITYTYPE="O"> <ISA> <MEMBER TYPE="O" STATE="1" /> </ISA> </ORGENTITY>
generates the following:
<MEMBER MEMBER_ID="12345" TYPE="O" STATE="1" /> <ORGENTITY ORGENTITY_ID="12345" Synchronized with member element DN="o=buyer organization a,o=root organization" ORGENTITYNAME="Test Org" ORGENTITYTYPE="O" />
Important: Ensure that the value of the DN attribute is in lowercase.
In this way, the ID Resolver handles the <isa> subelement and creates a synchronized identifier.