Upload
lene7
View
155
Download
8
Embed Size (px)
Citation preview
China’s Answer to Your IT Needs
Lordger Liu
Party Data Model
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
Business Object
Business Component
Field
View AppletControls/ List Columns
Table Column
ScreenDefines the UI interface
Defines the Business Layer
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
S_ADDR_ORG
ROW_ID
ADDR_NAME
CITY
ADDR
OU_ID
S_ORG_EXT
ROW_ID
NAME
BU_ID
EMAIL_ADDR
Foreign Key
Table Relationships – M:M M:M relationships are captured using the foreign keys
columns in a third table called Intersection table
S_USER
ROW_ID
PW_LAST_UPD
PASSWORD
LOGIN
S_ORG_EXT
ROW_ID
NAME
BU_ID
EMAIL_ADDR
S_EMP_ACCNT
ROW_ID
EMP_ID
OU_ID
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_X
ROW_ID
PAR_ROW_ID
ATTRIB_47
ATTRIB_46
S_SRV_REQ
ROW_ID
OPTY_ID
ASGN_DT
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
S_SRV_REQ_XM
ROW_ID
PAR_ROW_ID
TYPE
NAME
ATTRIB_01
S_SRV_REQ
ROW_ID
OPTY_ID
ASGN_DT
NAME stores the name of the child entity
PAR_ROW_ID stores FK to ROW_ID in the main table
TYPE defines data classification
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
S_OPTY
RO
W_ID
NA
ME
DE
SC
_TE
XT
CU
RC
Y_C
D
Base Table
Standard BC: Opportunity
BD
GT
_AM
T
Party BC: Account
S_PARTY
RO
W_ID
NA
ME
Base Table
PA
RT
Y_T
YP
E_
CD
S_ORG_EXT
RO
W_ID
NA
ME
Extension Table
AS
GN
_DT
Standard BCs Party BCs
Relationship data stored here
Record data stored here
Record data stored here
DIV
ISIO
N
RE
GIO
N
S_PARTY and Its Extension Tables
Eight prominent S_PARTY extension tables store the data
S_PARTY
Person-related
S_EMP_PER
S_USER
S_CONTACT
S_BU
S_ORG_EXT Organization-related
S_POSTN
S_PARTY_GROUP
S_USERLISTAccess Control-related
Commonly Used Party Business Components
Represent a variety of entities that can be arranged into groups related to persons, organizations, or access control
Contact
Employee
User
Account Position
Division
Organization User List
Access Group
Commonly Used Party Business Components
Person- Related
Access Control
Organization-Related
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
S_USER
RO
W_ID
S_CONTACT
RO
W_ID
LA
ST
_NA
ME
FS
T_
NA
ME
EM
AIL
_AD
DR
Logical extension table to store user-specific data
Stores majority of person-related data
S_EMP_PER
RO
W_ID
HIR
E_D
T
BO
NU
S_F
LA
G
Logical extension table to store employee-specific data
CU
RR
_S
AL
AR
Y
LO
GIN
PA
SS
WO
RD
PA
R_R
OW
_ID
PA
R_R
OW
_ID
PK FK FK
PA
R_R
OW
_ID
S_PARTY
RO
W_ID
FK
Person-Related Party Business Components Continued
Primarily reference person-related S_PARTY extension tables
CJONES3 JonesChris3 Person3
SSMITH2SmithSally2Person2
DoeJohn1 Person1
LOGINPAR_ROW_IDLAST_NAMEFST_NAMEPAR_ROW_IDPARTY_TYPE_CDROW_ID
S_USERS_CONTACTS_PARTY
A person. . . . . .has contact-related details. . .
. . .and user login data
S_USERS_CONTACTS_PARTY
Party Type Code Last Name Login Name
Party Business Component (BC): User No record here for John. John is not a user.
1/3
Person-Related Party Business Components Continued
A number of person-related business components use these tables
S_CONTACT S_USER
PAR_ROW_ID FST_NAME LAST_NAME PAR_ROW_ID LOGIN
1 John Doe
2 Sally Smith 2 SSMITH
3 Chris Jones 3 CJONES
S_EMP_PER
PAR_ROW_ID HIRE_DT
3 4-Sep
First Name Last Name
Party BC: Contact
Last Name Login Name Hire Date
Party BC: Employee
John is not a user or employee
Sally is not an employee
1/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
S_BU
RO
W_ID
S_ORG_EXT
RO
W_ID
NA
ME
LO
C
EM
P_C
OU
NT
Logical extension table to store organization data
PR
TN
R_F
LG
HIS
T_S
LS
_VO
L
INT
_OR
G_F
LG
2/3
=‘Y’ for ABC Company internal division
PK FK
S_PARTY
RO
W_ID
PA
R_R
OW
_ID
NA
ME
BU
_FL
G
PA
R_R
OW
_IDFK
Organization-Related Party Business Components Continued
Multiple organization-related business components use these tables
S_BUPAR_ROW_ID NAME INT_ORG_FLAG LOC PAR_ROW_ID NAME BU_FLG
1ABC Company – Sales Division Y HQ
2 ABC Company N 2 ABC Company Y
3 ABC Customer N 3 ABC Customer Y
Name Internal Org Flag Organization BU Name
OrganizationName Location
Account
Sales is not an organization
S_ORG_EXT
2/3
Groupings for Access Control Represent groupings of party instances
- User List- Access Group- Position
RO
W_ID
RO
W_ID
PO
ST
N_T
YP
E_C
D
RO
W_ID
3/3
PK FK FK
S_PARTY
RO
W_ID
FK
PA
R_R
OW
_ID
NA
ME
PA
R_R
OW
_ID
NA
ME
PA
R_R
OW
_ID
NA
ME
S_PARTY_GROUP S_POSTNS_USERLIST
Groupings for Access Control Continued
Access Group, User List, and Position are party business components
S_PARTY S_USERLISTROW_ID PARTY_TYPE_CD PAR_ROW_ID NAME
1 User List 1 Consultants User List
2 Access Group
3 Position
S_PARTY_GROUPPAR_ROW_ID NAME
2 Gold Customers
Name
User ListName
Access Group
If a user list, populate S_USERLIST
If an access group,populate S_PARTY_GROUP
Business component
3/3
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
PARTY_ID PERSON_ID
003 001
003 002
ROW_ID PARTY_TYPE_CD NAME
001 Person Smith, Mary
002 Person Smith, John
003 User List ABC User List
S_PARTY_PER S_PARTY
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
related to an Access List party type
PARTY_ID PERSON_ID
003 001
003 002
005 003
005 004
ROW_ID PARTY_TYPE_CD NAME
001 Person Smith, John
002 Person Smith, Mary
003 User List ABC User List
004 Organization ABC Org
005 Access List ABC Access Group
S_PARTY_PER S_PARTY
Employee
Position
Organization
ContactAccount
Access Group User
Network
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
CJONES3 JonesChris3 Person3
SSMITH2SmithSally2Person2
DoeJohn1 Person1
LOGINPAR_ROW_IDLAST_NAMEFST_NAMEPAR_ROW_IDPARTY_TYPE_CDROW_ID
S_USERS_CONTACTS_PARTY
FKPK 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 Account Account LocationDescription
Explicit Join Definition References the extension table that contains data of
interest
RO
W_ID
NA
ME
DE
SC
_TE
XT
CU
RC
Y_C
D
RO
W_ID
NA
ME
LO
C
Opportunity
S_PARTY extension table
PA
R_R
OW
_ID
S_ORG_EXT
PR
_DE
PT
_OU
_ID
S_OPTY
Name AccountDescription
FK
References PAR_ROW_ID
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 Parent Account Name Parent Account LocationLocation
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