You are on page 1of 26

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

You might also like