China s Answer to Your IT Needs
Party Data Model
Lordger Liu
Party Data Model
Reference Siebel Structure
Table Relationships
Differences Between Party and Non-Party BCs Party Business Components Example Implicit/Explicit Joins on Party Highlights
Reference
Siebel Data Model Reference (Siebel Bookshelf)
Siebel Structure
Screen
View
Applet
Controls/ List Columns
Defines the UI interface
Business Object
Business Component
Field
Defines the Business Layer
Table
Column
Defines the data storage structure
Table Relationships 1:M
On the Many side, Foreign Key columns in the table are used to capture the relationship - Are columns in a table that refer to the Primary Key column of the related or parent table. - Many are named with suffix _ID FK column on Many side of relationship references the PK column on the One side
Foreign Key
S_ORG_EXT EMAIL_ADDR S_ADDR_ORG ADDR_NAME
ROW_ID
ROW_ID
OU_ID
BU_ID
NAME
ADDR
CITY
Table Relationships M:M
M:M relationships are captured using the foreign keys columns in a third table called Intersection table
S_USER PW_LAST_UPD PASSWORD ROW_ID
S_ORG_EXT EMAIL_ADDR
ROW_ID
LOGIN S_EMP_ACCNT ROW_ID EMP_ID OU_ID
BU_ID
NAME
Intersection Table
Table Relationships 1:1 Extension
Is a special table that has 1:1 relationship with the base table A base and an extension table can be considered as a single logical table.
- Provides additional columns for the business components referencing the base table - Have the name of the base table with suffix _X - Examples of Vanilla 1:1 extension tables: S_CONTACT_X for S_CONTACT, S_ORG_EXT_X for S_ORG_EXT etc
S_SRV_REQ ASGN_DT
S_SRV_REQ_X PAR_ROW_ID ATTRIB_47 ATTRIB_46
OPTY_ID
ROW_ID
ROW_ID
Table Relationships 1:M Extension
Is a special table used to store child data related to an existing parent table Have the name of the main table suffixed with _XM - Examples of Vanilla 1:M extension tables: S_CONTACT_XM,
S_ORG_EXT_XM
PAR_ROW_ID S_SRV_REQ ASGN_DT OPTY_ID ROW_ID S_SRV_REQ_XM ATTRIB_01 ROW_ID
NAME
NAME stores the name of the child entity PAR_ROW_ID stores FK to ROW_ID in the main table TYPE defines data classification
TYPE
Differences Between Party and Non-Party BCs
In standard BCs, most data is stored in the base table In party BCs, data is stored in extension tables S_PARTY acts solely as a linking mechanism between types
Standard BCs
Standard BC: Opportunity S_OPTY
ROW_ID NAME DESC_TEXT CURCY_CD BDGT_AMT
Party BCs
Party BC: Account S_PARTY
ROW_ID NAME PARTY_TYPE_CD
S_ORG_EXT
ROW_ID NAME ASGN_DT DIVISION REGION
Base Table Record data stored here
Base Table Relationship data stored here
Extension Table Record data stored here
S_PARTY and Its Extension Tables
Eight prominent S_PARTY extension tables store the data
S_PARTY S_CONTACT S_USER S_EMP_PER S_ORG_EXT S_BU S_USERLIST S_PARTY_GROUP S_POSTN Access Controlrelated Organizationrelated Person-related
Commonly Used Party Business Components
Represent a variety of entities that can be arranged into groups related to persons, organizations, or access control
Commonly Used Party Business Components
PersonRelated
Employee User
Organizatio n-Related
Account Division
Access Control
Position Access Group
Contact
Organization
User List
Person-Related Party Business Components
Store their main data in S_CONTACT May store additional data in S_USER and S_EMP_PER - Serve as logical extension tables
Stores majority of personrelated data S_PARTY
ROW_ID PK
Logical extension table to store user-specific data S_USER
Logical extension table to store employee-specific data S_EMP_PER
S_CONTACT
ROW_ID PAR_ROW_ID LAST_NAME FST_NAME EMAIL_ADDR
ROW_ID FK
PAR_ROW_ID
LOGIN
PASSWORD
ROW_ID
PAR_ROW_ID
HIRE_DT
BONUS_FLAG
CURR_SALARY
FK
FK
1/3
Person-Related Party Business Components Continued
Primarily reference person-related S_PARTY extension tables
Party Business Component (BC): User
Party Type Code Last Name Login Name
No record here for John. John is not a user. S_USER
S_PARTY
ROW_ID 1 2 3 PARTY_TYPE_CD Person Person Person
S_CONTACT
PAR_ROW_ID 1 2 3 FST_NAME John Sally Chris LAST_NAME Doe Smith Jones
PAR_ROW_ID
LOGIN
2 3
SSMITH CJONES
A person. . .
. . .has contactrelated details. . .
. . .and user login data
1/3
Person-Related Party Business Components Continued
A number of person-related business components use these tables
Party BC: Contact
First Name Last Name
Party BC: Employee
Last Name Login Name Hire Date
S_CONTACT
PAR_ROW_ID 1 2 3 FST_NAME John Sally Chris LAST_NAME Doe Smith Jones
S_USER
PAR_ROW_ID LOGIN
S_EMP_PER
PAR_ROW_ID HIRE_DT
2 3
SSMITH CJONES 3 4-Sep
John is not a user or employee
Sally is not an employee
2/3
Organization-Related Party Business Components
Store their main data in S_ORG_EXT May store additional data in S_BU May include account, division, organization, or household data
=Y for ABC Company internal division S_PARTY
ROW_ID PK
Logical extension table to store organization data S_BU
S_ORG_EXT
ROW_ID FK PAR_ROW_ID NAME LOC EMP_COUNT PRTNR_FLG HIST_SLS_VOL INT_ORG_FLG
ROW_ID
NAME
BU_FLG
FK
PAR_ROW_ID
2/3
Organization-Related Party Business Components
Continued
Multiple organization-related business components use these tables
Account
Name Location
Organization
Name Internal Org Flag Organization BU Name
S_ORG_EXT
PAR_ROW_ID 1 2 3 NAME ABC Company Sales Division ABC Company ABC Customer INT_ORG_FLAG Y N N LOC HQ
S_BU
PAR_ROW_ID NAME BU_FLG
2 3
ABC Company ABC Customer
Y Y
Sales is not an organization
3/3
Groupings for Access Control
Represent groupings of party instances
- User List - Access Group - Position
S_PARTY
ROW_ID PK
S_USERLIST
ROW_ID NAME PAR_ROW_ID
S_PARTY_GROUP
ROW_ID FK NAME PAR_ROW_ID
S_POSTN
ROW_ID NAME POSTN_TYPE_CD PAR_ROW_ID
FK
FK
3/3
Groupings for Access Control Continued
Access Group, User List, and Position are party business components If a user list,
populate S_USERLIS T
S_PARTY
ROW_ID 1 2 3 PARTY_TYPE_CD User List Access Group Position
If an access group, populate S_PARTY_GROUP
S_PARTY_GROUP
S_USERLIST
PAR_ROW_ID 1 NAME Consultants User List
PAR_ROW_ID 2
NAME Gold Customers
User List
Name
Access Group Name
Business component
Example, Relating Party Data
A user list can be associated with persons via the S_PARTY intersection table S_PARTY_PER There are relationships in S_PARTY
- They are represented in S_PARTY_PER - ROW_ID in S_PARTY is used to relate party types
S_PARTY_PER
PARTY_ID 003 003 PERSON_ID 001 002
S_PARTY
ROW_ID 001 002 003 PARTY_TYPE_CD Person Person User List NAME Smith, Mary Smith, John ABC User List
Example, Relating Party Data Continued
An access group can then be networked with those users, or other user lists, or most any other S_PARTY type
- Person, User List, Organization and Account party types can be Network related to an Access List party type
Organization Employee Account Contact Access Group Position User
S_PARTY_PER
PARTY_ID 003 003 005 005 PERSON_ID 001 002 003 004
S_PARTY
ROW_ID 001 002 003 004 005 PARTY_TYPE_CD Person Person User List Organization Access List NAME Smith, John Smith, Mary ABC User List ABC Org ABC Access Group
Party Implicit Joins
Used to populate the prominent S_PARTY extension tables Created automatically for these extension tables Are similar to implicit joins for standard business components - Do not appear in join object definitions - ROW_ID in base table is always the PK - PAR_ROW_ID in extension is always the FK
S_PARTY
ROW_ID 1 2 3 PARTY_TYPE_CD Person Person Person
S_CONTACT
PAR_ROW_ID 1 2 3 FST_NAME John Sally Chris LAST_NAME Doe Smith Jones
S_USER
PAR_ROW_ID LOGIN
2 3
SSMITH CJONES
PK
FK
FK
Base Table
Extension Table
Extension Table
Explicit Join: Non-Party Business Component
Data in a party table can be joined into a non-party business component Example: Bringing account data into the Opportunity business component for display in an Opportunity applet
Non-Party BC: Opportunity
Name Description Account Account Location
Explicit Join Definition
References the extension table that contains data of interest
Opportuni ty Name
Description
Account
S_OPTY
PR_DEPT_OU_ID ROW_ID NAME DESC_TEXT CURCY_CD
S_ORG_EXT
PAR_ROW_ID ROW_ID LOC NAME
FK
References PAR_ROW_ID
S_PARTY extension table
Explicit Join: Another Party Business Component
Uses an explicit join to the party table, and not the implicit one - Example: Bringing parent account data into the Account business component for display in an Account applet
Account
Name Location Parent Account Name Parent Account Location
Explicit Join Definition
Select or create an explicit join to the desired S_PARTY extension table
- Use a join specification to specify the relationship
The Account party business component
has multiple explicit self-joins to S_ORG_EXT Select the one that specifies the relationship of interest
Highlights
Party BCs are similar to standard BCs but data is stored in extension tables Eight prominent S_PARTY extension tables store data Person-related party BCs store data in S_CONTACT Organization-related party BCs store data in S_ORG_EXT Access Group, User List, and Position are party BCs Party implicit joins populate S_PARTY extension tables