26
China’s Answer to Your IT Needs Lordger Liu Party Data Model

Party Data Model

  • Upload
    lene7

  • View
    155

  • Download
    8

Embed Size (px)

Citation preview

Page 1: Party Data Model

China’s Answer to Your IT Needs

Lordger Liu

Party Data Model

Page 2: 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

Page 3: Party Data Model

Reference

Siebel Data Model Reference (Siebel Bookshelf)

Page 4: Party Data Model

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

Page 5: Party Data Model

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

Page 6: Party Data Model

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

Page 7: Party Data Model

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

Page 8: Party Data Model

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

Page 9: Party Data Model

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

Page 10: Party Data Model

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

Page 11: Party Data Model

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

Page 12: Party Data Model

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

Page 13: Party Data Model

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

Page 14: Party Data Model

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

Page 15: Party Data Model

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

Page 16: Party Data Model

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

Page 17: Party Data Model

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

Page 18: Party Data Model

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

Page 19: Party Data Model

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

Page 20: Party Data Model

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

Page 21: Party Data Model

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

Page 22: Party Data Model

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

Page 23: Party Data Model

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

Page 24: Party Data Model

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

Page 25: Party Data Model

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

Page 26: Party Data Model

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