How should users relate two PARTY Objects (example: Accounts and Contacts) in Siebel when importing data using Enterprise Integration Manager

The S_PARTY table is the parent of many Person or Organization related objects in Siebel. For example, S_CONTACT, S_ORG_EXT, S_POSTN, S_EMP_PER are all child objects of S_PARTY.

Relationship between two different PARTY objects, example: Account and Contact or Employees and Positions is stored in the intersection table S_PARTY_PER. For example, if an Account has three different contacts then there will be 3 records in the S_PARTY_PER table.

The S_PARTY_PER table is mapped to all major interface tables, example: EIM_ACCOUNT, EIM_CONTACT, EIM_EMPLOYEE, EIM_ACCNT_CUT, etc. Thus, when inserting data using EIM and establishing relationship between 2 different PARTY objects all the fields related to S_PARTY_PER must be populated in the interface table.

Since S_PARTY_PER establishes a relationship between two distinct parties, there are 2 sets of key attributes that are required to be populated.

For example, in EIM_ACCOUNT following values are required:

PARTY_UID = <party_uid of the account>
PARTY_TYPE_CD = "Organization"
PP_PARTY_UID = <person_uid of the contact>


However if EIM_CONTACT is used to insert new Contacts then order of these fields will be reversed because S_PARTY now refers to Contacts.

PARTY_UID = < person_uid of the contact >
PARTY_TYPE_CD = " Person"
PP_PARTY_UID = < party_uid of the account >
PP_PARTY_TYPE_CD = " Organization"


Also for EIM_EMPLOYEE table when establishing relationship between Employees and Positions following order is required.

PARTY_UID = < person_uid of the contact associated with the employee>
PARTY_TYPE_CD = " Person"
PP_PARTY_UID = < party_uid of the position>
PP_PARTY_TYPE_CD = "Position"



PARTY_UID is defaulted through the Upgrade and Application (UI) to the ROW_ID of the party record (for example Contact, Position, etc.) that is being created. But its value can be user-defined as long as (PARTY_UID, PARTY_TYPE_CD) combination is unique. PARTY_UID need not be equal to ROW_ID. PARTY_UID is defined as a VARCHAR(100) column.