Professional Documents
Culture Documents
0 Essentials
18
Copyright 2007, Oracle. All rights reserved.
Module Objectives
2 of 26
3 of 26
Representing these relationships could result in data models that do not have optimal normalization
Multiple records may be created for each relationship
A separate record is created for a contractor, another for an intern, and a third for an employee
A special entity may have to be created for each new ad hoc relationship
Contractor Table 1. An individual is a contractor. . . First Name Navdeep Last Name Singh Phone 321-654-0987 Phone Same data, three different places
Navdeep
Singh
321-654-0987
Employee Table
3. . . then an employee.
Phone 321-654-0987
4 of 26
Provides a way to create a network of relationships between party types to reflect changes and complexities in the business environment Infuses flexibility into the data model
Can establish and change relationships between various party types, as needed
Organization
Employee
Account Contact
Party business component
Access Group
User
Position
Copyright 2007, Oracle. All rights reserved. 5 of 26
Account
Name Party Type Code
Fields
Base table
S_PARTY
NAME PARTY_TYPE_CD
Columns
6 of 26
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
S_ORG_EXT
ROW_ID
NAME ASGN_DT DIVISION REGION
NAME
PARTY_TYPE_CD
S_USER
S_EMP_PER
Person-related
S_ORG_EXT
S_BU S_USERLIST S_PARTY_GROUP S_POSTN
Organizationrelated
Access Controlrelated
8 of 26
0/3
Represent a variety of entities that can be arranged into groups related to persons, organizations, or access control
OrganizationRelated
Account Division
Access Control
Position Access Group
Contact
Organization
User List
9 of 26
1/3
Store their main data in S_CONTACT May store additional data in S_USER and S_EMP_PER
Serve as logical extension tables
S_CONTACT
ROW_ID PAR_ROW_ID FK LAST_NAME FST_NAME EMAIL_ADDR
ROW_ID
FK
PAR_ROW_ID
LOGIN
PASSWORD
ROW_ID
FK
PAR_ROW_ID
HIRE_DT
10 of 26
BONUS_FLAG
CURR_SALARY
1/3
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. . .
11 of 26
1/3
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
2/3
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
S_ORG_EXT
ROW_ID PAR_ROW_ID FK NAME LOC EMP_COUNT PRTNR_FLG HIST_SLS_VOL INT_ORG_FLG
ROW_ID
NAME
BU_FLG
FK
PAR_ROW_ID
13 of 26
2/3
Organization
Name
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
Y Y
14 of 26
3/3
S_PARTY
ROW_ID PK
S_USERLIST
ROW_ID
S_PARTY_GROUP
ROW_ID
S_POSTN
NAME ROW_ID
NAME
POSTN_TYPE_CD
FK
PAR_ROW_ID
PAR_ROW_ID
NAME
FK
PAR_ROW_ID
FK
15 of 26
3/3
Access Group, User List, and Position are party business components
If a user list, populate S_USERLIST If an access group, populate S_PARTY_GROUP S_PARTY_GROUP
NAME 1 Consultants User List 2 Gold Customers PAR_ROW_ID NAME
S_PARTY
ROW_ID 1 2 3 PARTY_TYPE_CD User List Access Group Position
S_USERLIST
PAR_ROW_ID
User List
Name
Access Group
Name
Business component
16 of 26
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
S_PARTY
ROW_ID
001 002 003
PERSON_ID
001 002
PARTY_TYPE_CD
Person Person User List
NAME
Smith, Mary Smith, John ABC User List
17 of 26
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
Network
Organization Employee Account Contact Access Group User Position
S_PARTY_PER
PARTY_ID 003 PERSON_ID 001
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
18 of 26
003
005 005
002
003 004
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
19 of 26
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
Opportunity
Name Description Account
S_OPTY
PR_DEPT_OU_ID ROW_ID NAME DESC_TEXT
S_ORG_EXT
PAR_ROW_ID
CURCY_CD
ROW_ID
LOC
NAME
FK
References PAR_ROW_ID
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
22 of 26
23 of 26
Module Highlights
Party types have dynamic or ad hoc relationships Party BCs create relationships between party types 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 Explicit joins reference extension tables that contain data
24 of 26
Lab
25 of 26
26 of 26