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>
PP_PARTY_TYPE_CD = "Person"
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:
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.