Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
! !
|
|
!
Each objective and ³why you need to know´ should be stated aloud.
|
|
!
|
|
!
Some data models show separate entities for various types of people,
such as employees, contractors, supplier contacts and customer contacts.
The problem with keeping this information in separate entities is that
people may also have different jobs and roles which change over time.
Most systems will record redundant information about a person since
they store a record each time the person¶s role changes.
include additional challenges, as you see fit.
|
|
!
The point behind this diagram is that there over 160 party BCs, and a
network of relationships can be created among them, as needed to
address changes and complexities in the business environment.
In this diagram we have several of the most frequenty used party business
components. Each of these business components can be related to each
other as the need arises in the business environment. For example, need
to provide access to a set of records for a major conference next month?
You can create an access group that relates participants of that
conference, whose data, perhaps, resides in several entities: employee,
position, and account. The employees are the individuals from your
company who are presenting. The position includes individuals in your
organization who might want to view information being presented, such
as the VP of Sales, and the accounts could include a list of customers who
will be attending the conference.
Note: employees and contacts cannot be directly related to access groups.
Instead, employees and contacts can be related to organizations, users, or
positions. These, in turn, can be related to access groups. This is reflected
in the diagram.
u
Jasmine is an employee at Acme Cable Company. Jasmine lives in a
household where she is also a customer of Acme Phone
Company. Jasmine sells cable to other companies. Jasmine's Position is
on the Sales team for many of those opportunities, and her Position
belongs to the Acme Cable Company Organization. Acme Cable is a
subsidiary of Acme Telecom, which provides phone, cable, and
internet. Another branch of Acme Telecom, Acme Phone, considers
Acme Cable to be a customer Account, and Jasmine is essentially a
Contact of that Account.
In this scenario, we¶ve viewing all relationships from Acme Telecom,
who is a Siebel customer purchasing the Siebel CRM application.
(CONTINUED ON NEXT PAGE)
|
|
!
|
|
!
|
|
!
S_PARTY primarily uses eight tables in which to store its data. These
tables can be thought of as person-related, organization-related, or
access-control related. Next, we¶ll see how the various party business
components reference these tables.
INSTRUCTOR NOTE: this is a positioning slide. Its not necessary to
describe what¶s in each table or their relationships. For this slide, simply
list the names and how they are related.
D -
|
!" ##
$ |
%
|
|
!
|
|
! !
|
|
! !!
|
|
! !
Here we can see how multiple party BCs access data from the various
party extension tables. When the user drills down via the contact screen
tab, the same data is accessed as if the user drilled down via Employee
from site map. Same data, same record.
What if Chris Jones is an employee? S_EMP_PER is populated. This is a
good example of how the longer the record (the record starting
S_PARTY through S_CONTACT, S_USER and S_EMP_PER), the more
detailed the business component.
Now, other party business components also use these tables. For example,
the Employee party BC extracts data from all three tables, and includes
detailed employee information, like the hire date.
In this example, there isn¶t a record for John or Sally, so they won¶t
appear in the applet that references the Employee party BC.
|
|
! !
This slide shows the tables in which the organization entities store data.
S_ORG_EXT stores all kinds of information about organizations: the
name, its location, how many employees the organization has, whether
it¶s a partner, it¶s sales volume, etc. The INT_ORG_FLG is set to True
for both Internal Divisions and Organizations.
| provides a way to flag a division as being an organization. This has
consequences in terms of visibility, as we¶ll see in a moment.
An is an account, division or organization.
Account: A company or group of individuals with whom you do business.
Division: is a group within an organization inside your company, such as
Manufacturing, or, for example, a group of people operating within a
particular country.
Organization: a company, such as a customer, a partner, or the ABC
Company. This organization is represented as an Account, Division,
Organization, Partner Organization, Competitor, etc. These types of
entities have records written to S_PARTY and S_ORG_EXT
An Internal business unit is a business unit within the implementing
company or a partner organization, and has the unique ability of granting
access to some types of records. These entities will have records written
to S_PARTY, S_ORG_EXT and S_BU.
is another organization-related party type. It is a group of
individual consumers who are economically affiliated and share a
common purchasing or service interest; e.g., a group of people, typically
a family, who reside at the same residence, or a group of purchasers who
live in different residences. A household may have any combination of
contacts, users, employees, and partner users as members.
|
|
! !
In this case, we see that ABC Company ± Sales Division does not have a
record in S_BU, but ABC Company and its customer, ABC Customer, do
have records in S_BU. ABC Sales has INT_ORG_FLG set to Y while the
others do not.
A division, internal or partner, is also an organization if its internal
organization flag is TRUE (INT_ORG_FLG = ³Y´) and it has an
associated S_BU record.
An Organization, sometimes known as a business unit, is also a Division,
but has a record in the S_BU table.
S_BU table does the following:
Ŷ Permits indexing on organization name
Ŷ Supports organizational visibility
What is the impact of S_BU on visibility?
When the user selects My Accounts in the list applet, the applet lists all
accounts related to the user.
When the user selects All Accounts, the applet lists all accounts in
S_ORG_EXT with INT_ORG_FLG set to Y.
When the user selects All Accounts Across Organizations, the applet
includes all accounts in S_ORG_EXT with INT_ORG_FLG set to Y as
well as all accounts in S_BU.
Now that when these tables are populated, party business components
like Account and Organization can pull up data from them to be
displayed in the UI.
the diagram has no data in the first row of S_BU
to emphasize that ABC Company ± Sales Division has no corresponding
record for the S_BU table. In reality, that row is populated with the data
for another record. An empty record is
inserted for ABC Company ±
Sales Division in S_BU.
|
|
! !
|
|
! !
|
|
! !
Finally, let¶s see how S_PARTY can be used to arbitrarily group records
among the various S_PARTY types. This slide, and the next slide,
demonstrate how party types can be variously connected via a network of
relationships, reinforcing the network diagram concept presented at that
beginning of this module. The main point of this example is to
demonstrate how party types can be associated via seemingly random
relationships.
Reading the slide:
1.A user list called ABC User List has a ROW_ID in S_PARTY of 003.
2.PARTY_ID in S_PARTY_PER is a FK that references ROW_ID in
S_PARTY. For the ABC User List, PARTY_ID 003, the ABC User List,
has two records associated with it via PERSON_ID in S_PARTY_PER.
3.Two persons in S_PARTY, John Smith and Mary Smith, are
represented in S_PARTY_PER via the PERSON_ID FK column which
references ROW_ID in S_PARTY.
|
|
! !
|
|
! !
Now let¶s take a look at how joins are handled with party BCs. This slide
illustrates the point that implicit joins with party BCs are similar to those
with standard BCs.
(CONTINUED FROM PREVIOUS PAGE)
SELECT ROW_ID, PARTY_TYPE_CD, NAME from S_PARTY where
NAME = µABC User List' or NAME = µABC Org' or NAME = µABC
Access Group'
ROW_ID PARTY_TYPE_CD NAME
1-44XG UserList ABC User List
1-44XM Organization ABC Org
1-44XQ AccessGroup ABC Access Group
6. Identify the relationships just created between the party types as they
are represented in S_PARTY_PER:
SELECT PARTY_ID, PERSON_ID from S_PARTY_PER where
PARTY_ID = '1-44XGµ or PARTY_ID = '1-44XQ'
PARTY_ID PERSON_ID
1-44XG 1-2RNW
1-44XG 1-2ROD
1-44XQ 1-44XG
1-44XQ 1-44XM
This last SQL illustrates the point of being able to relate any party to any
other party type. Here we have a party type AccessGroup of ABC Access
Group (1-44XQ) containing a party type UserList of ABC User List (1-
44XG), which itself contains two records, each with a party type of
Person. ABC Access Group also contains a party type Organization of
ABC Org (1-44XM). The organization itself could also contain other
party types subsumed within it. Relating ABC Org to the XYZ Access
Group then also relates any party types with ABC Org to the XYZ
Access Group.
|
|
!
|
|
! !
Here we can seen that Opportunity, the non-party BC, uses one of its
joins to bring in party data from S_ORG_EXT. A join and join
specification are needed. This slide discusses how to handle the join. This
is nearly identical to what was presented in the previous module. The
only difference is in the fact that S_ORG_EXT uses PAR_ROW_ID
rather than ROW_ID.
|
|
!
|
|
!
|
|
!
"
# What characterizes a party business component?
It has S_PARTY as the base table but stores main data in one or
more of its extension tables.
The subject of performance may come up. Students might ask about the
performance impact of all the extra joins in the party business
components. The answer is yes, there can be some impact on
performance, but many of these business components already have
multiple joins to begin with. In addition, Siebel Engineering tries to make
sure that the joins they create do not have an unacceptable negative
impact. A great deal of work goes into ensuring good performance. Make
sure you point out the benefits of the party business components¶
capacity to create a much more flexible way of allowing access to data
(which will be discussed later in the course).
|
|
!
|