18ESS_SiebelPartyBusinessComponents

Embed Size (px)

Citation preview

  • 8/6/2019 18ESS_SiebelPartyBusinessComponents

    1/25

    Siebel 8.0 Essentials

    Siebel Party Business Components 18.1

    Time: Lecture: 30 40 minutes; lab: 15 25 minutes

    Intent: To discuss the ideas that were introduced in the last module

    (joins, mapping to joined tables) when party business components areinvolved.

    Flow: Person-related business components; organization-related business

    components; grouping for access control; joining party data; implicit andexplicit joins.

    Key Terms:

    Party Business Component

    Person-Related Party Business Components

    Person-related Party Business Components

    Organization-Related Party Business Components

    Groupings for Access Control

    Party Implicit Joins

    Explicit Join Definition

  • 8/6/2019 18ESS_SiebelPartyBusinessComponents

    2/25

    Siebel 8.0 Essentials

    Siebel Party Business Components 18.2

    Each objective and why you need to know should be stated aloud.

  • 8/6/2019 18ESS_SiebelPartyBusinessComponents

    3/25

    Siebel 8.0 Essentials

    Siebel Party Business Components 18.3

    Relationships among party types can be dynamic and complex.

    Multiple Role Example: Yi Wen Zhang was a contractor for ABC

    Corporation. Yi then became an intern at ABC Corporation. ABCCorporation liked her work so much they then hired her as an employee.

    For most systems, there would be a separate record for Yi as a customer

    contact, then as a contractor and then as an employee. However much ofYi Wen Zhangs information has remained the same, such as her name,birth date, and other demographics and skills. Because Yi Wen Zhangs

    information is stored in several locations, many systems would havetrouble keeping her information accurate and consistent.

    Note: Siebel addresses the multiple role business challenge via the

    employee type field in the Administration User screen. This field hasthree values: Contractor, Intern, Employee, which can be changed at any

    time.

    Ad hoc: an entity, such as an access group, formed for a single, specific

    purpose, such as the January 2007 Big Release Roll-out Event.

    Note: an intern is a student or recent graduate working in industry withsome or little supervision from the education institution (Broadly

    equivalent to a houseman in Great Britain.)

    Note: for non-English native speakers, ubiquitous means existing or

    being everywhere, esp. at the same time; omnipresent: ubiquitous fog;ubiquitous little ants.

    Reference Siebel Security Guide: Configuring Access Control

    Configuring Siebel Business Applications: Configuring

    Tables and Columns: About the S_PARTY Table

  • 8/6/2019 18ESS_SiebelPartyBusinessComponents

    4/25

    Siebel 8.0 Essentials

    Siebel Party Business Components 18.4

    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 sincethey store a record each time the persons role changes.

    Instructor Note: include additional challenges, as you see fit.

  • 8/6/2019 18ESS_SiebelPartyBusinessComponents

    5/25

    Siebel 8.0 Essentials

    Siebel Party Business Components 18.5

    The point behind this diagram is that there over 160 party BCs, and a

    network of relationships can be created among them, as needed toaddress 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 eachother 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, suchas 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, orpositions. These, in turn, can be related to access groups. This is reflected

    in the diagram.

    Possible Demo

    Jasmine is an employee at Acme Cable Company. Jasmine lives in a

    household where she is also a customer of Acme PhoneCompany. Jasmine sells cable to other companies. Jasmine's Position is

    on the Sales team for many of those opportunities, and her Positionbelongs to the Acme Cable Company Organization. Acme Cable is a

    subsidiary of Acme Telecom, which provides phone, cable, andinternet. 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, weve viewing all relationships from Acme Telecom,who is a Siebel customer purchasing the Siebel CRM application.

    (CONTINUED ON NEXT PAGE)

  • 8/6/2019 18ESS_SiebelPartyBusinessComponents

    6/25

    Siebel 8.0 Essentials

    Siebel Party Business Components 18.6

    (CONTINUED FROM PREVIOUS PAGE)

    Create an Organization called Acme Telecom, a Division called Acme

    Cable Company, a Division called Acme Phone Company, a Positioncalled Acme Cable Salesperson. Relate it to Acme Cable. Note: Position

    can be related to only one division. Create a Position called Acme PhoneSalesperson. Relate it to Acme Phone, Create an Employee record for

    Jasmine. (Administration User > Employees)

    Relate it to the Acme Telecom Organization. (Jasmine must be related to

    at least one organization at this point, but can be related to more. Note: atthis point, Jasmine is also added as a contact. However, the data model

    does not support movement from contact to employee since two records

    would be required).

    Relate Jasmine, a salesperson, to the Acme Cable Salesperson Position.

    (Jasmine can also be related to multiple positions at this point).

    Relate Jasmine with opportunities that she persues. These opportunties

    are other cable companies. (at this point, you have to login as Jasmine to

    create an opportunity for her. You can create an opprotuntiy, but theprimary defaults to SADMIN as well as the Sales Team, and these cant

    be overridden)

    Create a new employee record for Julia, an Acme Phone Company

    salesperson. Relate the Acme Phone Salesperson Position to Julia in heremployee record. Relate Julias employee record to the Acme Telecom

    Organization.

    Create an Account for Acme Phone Company (an account to which

    Acme Phone will sell services). Call it Acme Cable Company. Relate this

    account to Julia by specifying her as the account team.

    Create an Opportunity called Big Phone Sale. Relate it to Acme Cable

    Company Account.Jasmine is now related to the opportunity. Shes a contact in the Acme

    Cable Company Account.

    Verify the relationships: Navigate to accounts. Drill down on Acme

    Cable Company account. Drill down on the Big Phone Sale opportunity.

    Verify that Jasmine is listed as a contact under that opportunity.

  • 8/6/2019 18ESS_SiebelPartyBusinessComponents

    7/25

    Siebel 8.0 Essentials

    Siebel Party Business Components 18.7

    Before we move into the types of party business components, it is

    important to know that a key feature of the party business component isthat all its record-level data is stored in extension tables, not the base

    table.

    With standard BCs, record data is stored in the base table. This is done toensure ready access to and from data in the table.

    However, by storing its data in extension tables, S_PARTY is then free toact solely as a means to create relationships between party entities, such

    as accounts and contacts. As we viewed earlier, there needs to be a wayto create relationships between these various party entities. This is

    accomplished by placing data in the extension tables, not the base table.

    This way, business components go to the extension table to get their data.

    Note: as stated, S_PARTY provides a means to establish a relationship; it

    doesnt create the relationship itself. That is done by the intersectiontable, such as S_PARTY_PER and S_PARTY_REL.

  • 8/6/2019 18ESS_SiebelPartyBusinessComponents

    8/25

    Siebel 8.0 Essentials

    Siebel Party Business Components 18.8

    S_PARTY primarily uses eight tables in which to store its data. These

    tables can be thought of as person-related, organization-related, oraccess-control related. Next, well see how the various party business

    components reference these tables.

    INSTRUCTOR NOTE: this is a positioning slide. Its not necessary todescribe whats in each table or their relationships. For this slide, simply

    list the names and how they are related.

    Other S_PARTY

    Extension

    Tables

    Tables such as S_CONTACT_X (which is the 1:1

    extension table for the S_CONTACT table) are formally an

    S_PARTY extension table.

    To list the complete set of S_PARTY extension tables,

    execute a query in Siebel Tools to retrieve all tables with

    the Base Table property = S_PARTY.

  • 8/6/2019 18ESS_SiebelPartyBusinessComponents

    9/25

    Siebel 8.0 Essentials

    Siebel Party Business Components 18.9

    The previous slide focused on the tables used with party data. This slide

    shows how party business components are arranged in a similar fashion:person-related, organization-related and access control. The party types

    we just discussed in S_PARTY and the party business components to

    which they provide data can be grouped into three major categories:

    person-related

    organization-related

    access control-related.

    Person-related represents anyone associated with a Siebel application.

    May be someone using the application:

    Employee at a company that deployed a Siebel application

    Individual at a channel partner

    Customer logging in to the Web site

    Or may be someone referred to in the application:

    Individual external to your company associated with the business

    processAccess-control related represents any group of persons or organizationsthat require access to the database.

    Organization-related represents any business enterprise associated witha Siebel application

    The company or part of the company deploying the Siebel application

    (division, organization)

    An external company that purchases your products (account)

    A partner company that assists you in your business (channel partner)

    In the next section in this module, well take a look at person-related

    BCs.Note:party BCs arent limited to using data from a single extensiontable. A given party BC may use data from several extension tables.

    Well see in a moment that there is not necessarily a one-to-one,exclusive relationship between a party BC and a given extension table.

  • 8/6/2019 18ESS_SiebelPartyBusinessComponents

    10/25

    Siebel 8.0 Essentials

    Siebel Party Business Components 18.10

    Person-related business components all use a small number of common

    tables. S_CONTACT is the primary. Some person-related businesscomponents have additional data stored in S_USER and S_EMP_PER.

    S_CONTACT stores basic demographic information, such as last name,

    first name, address, etc.

    Au

    ser is a person who can log into your database and has aresponsibility assigned to them that defines what application views areaccessible. For example, a registered customer on your Web site is a user.

    Information for this individual, is stored in S_USER.

    An employee is a User associated with a position in a division withinyour company. Employee information is stored in S_EMP_PER, and

    includes typical employee information, like hire date, bonus eligibility,and salary. Other data about the employee is stored in other tables, such

    as the employees name and email address in S_CONTACT.

    All three tables are not always populated when a contact is added. In the

    next slide, well see under what conditions these tables are populated.

  • 8/6/2019 18ESS_SiebelPartyBusinessComponents

    11/25

    Siebel 8.0 Essentials

    Siebel Party Business Components 18.11

    Business layer fields in standard BCs reference directly to a data layer

    table column. The same occurs with party BCs. The only difference isthat party BCs use Party Type Code.

    PARTY_TYPE_CD is used to identify what party type is being recorded.

    These are types we discussed earlier. For person-related party BCs, ingeneral they include Contact, Person and Employee.

    In this example, contact data, such as first name, last name, address,telephone number, is populated in S_CONTACT for John Doe, but since

    John is not a user, no record is created for him in S_USER.

    Sally Smith and Chris Jones are users, and they will each have a record inS_USER.

    Once these tables are populated, then party business components, such asUser, can extract data from them. For example, the last name field in the

    User party business component will extract data from the LAST_NAMEcolumn of S_CONTACT.

    Note: arrows between tables indicate flow.

    Note: the diagram has no data in the first row of S_USER to emphasizethat John Doe has no corresponding record for the S_USER table. In

    reality, that row is populated with the data for another record. An emptyrecord is notinserted for John Doe in S_USER.

    Note: viewing only the Join property for a given party BC may not revealthe relationship illustrated in the diagram. In many instances, such as the

    User party BC referencing S_USER, the relationship is represented inTools under the SFVs Join property.

  • 8/6/2019 18ESS_SiebelPartyBusinessComponents

    12/25

    Siebel 8.0 Essentials

    Siebel Party Business Components 18.12

    Here we can see how multiple party BCs access data from the various

    party extension tables. When the user drills down via the contact screentab, 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 agood example of how the longer the record (the record starting

    S_PARTY through S_CONTACT, S_USER and S_EMP_PER), the moredetailed 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 isnt a record for John or Sally, so they wontappear in the applet that references the Employee party BC.

  • 8/6/2019 18ESS_SiebelPartyBusinessComponents

    13/25

    Siebel 8.0 Essentials

    Siebel Party Business Components 18.13

    This slide shows the tables in which the organization entities store data.

    S_ORG_EXT stores all kinds of information about organizations: thename, its location, how many employees the organization has, whether

    its a partner, its sales volume, etc. The INT_ORG_FLG is set to True

    for both Internal Divisions and Organizations.

    S_BUprovides a way to flag a division as being an organization. This has

    consequences in terms of visibility, as well see in a moment.

    An Organization 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 asManufacturing, 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 implementingcompany or a partner organization, and has the unique ability of granting

    access to some types of records. These entities will have records writtento S_PARTY, S_ORG_EXT and S_BU.

    Household is another organization-related party type. It is a group ofindividual consumers who are economically affiliated and share a

    common purchasing or service interest; e.g., a group of people, typicallya 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.

  • 8/6/2019 18ESS_SiebelPartyBusinessComponents

    14/25

    Siebel 8.0 Essentials

    Siebel Party Business Components 18.14

    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, dohave 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 internalorganization 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 allaccounts 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 aswell 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 bedisplayed in the UI.

    Note on the Diagram: the diagram has no data in the first row of S_BUto 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 notinserted for ABC Company Sales Division in S_BU.

  • 8/6/2019 18ESS_SiebelPartyBusinessComponents

    15/25

    Siebel 8.0 Essentials

    Siebel Party Business Components 18.15

    UserList: an ad hoc group of people. It may have any combination of

    contacts, users, employees, and partner users. For example a support teammade up of internal employees who work within the VoIP Services

    Technical Support Group, as well as some partner users, who work

    within an OEM, Partner VoIP Card Tech Support Team. Youd like toallow access to the same SR records related to their common VoIP

    interests. The place to do that is S_USERLIST. In this case, individualEmployees and partner Users are added to the user list, not their

    organizations.

    Access Group can be any combination of Position, Organization, and

    User List: a group of groups. For example, you could group your partner

    IT service providers and business-to-business customer companies thatbuy networking equipment. Or, you could group a partner community,

    such as the resellers of a particular sector of your product line.

    Position is a position within your company thats associated with a

    division. For example, you could create a record with NAME ='California Cell Phone Spanish' that will be assigned to all opportunities

    meeting this criterion. When a sales representative is hired for this role,assigning them this position will make the appropriate opportunity

    records visible.

  • 8/6/2019 18ESS_SiebelPartyBusinessComponents

    16/25

    Siebel 8.0 Essentials

    Siebel Party Business Components 18.16

    As we observed with person and organization-related BCs, access-control

    related BCs have multiple tables that populate depending on the type ofrecord being added.

    When a record is added to S_PARTY with a PARTY_TYPE_CD of User

    List, a record is also added to S_USERLIST.

    When a record is added to S_PARTY with a PARTY_TYPE_CD ofAccess Group, a record is also added to S_PARTY_GROUP.

    Then, various party business components can interact with data from

    S_USERLIST and S_PARTY_GROUP.

    Note: when a record is added to S_PARTY with a PARTY_TYPE_CDof Position, a record is also added to S_POSTN. Various party business

    components, such as Position, then access Position information fromS_POSTN. For brevity, S_POSTN is not shown in the diagram.

  • 8/6/2019 18ESS_SiebelPartyBusinessComponents

    17/25

    Siebel 8.0 Essentials

    Siebel Party Business Components 18.17

    Finally, lets 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 todemonstrate 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 inS_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 whichreferences ROW_ID in S_PARTY.

    Demonstration: to demonstrate the user list, do the following:Create a user list called ABC User List (Site Map > Administration

    Group > User List ), and add two users to the list.

    1. Identify the user list ROW_ID:

    SELECT ROW_ID, PARTY_TYPE_CD, NAME FROM S_PARTYWHERE NAME = 'ABC User List'

    ROW_ID PARTY_TYPE_CD NAME

    1-44XG UserList ABC User List

    2. Identify the ID for the users on the list:

    SELECT PARTY_ID, PERSON_ID FROM S_PARTY_PER WHERE

    PARTY_ID = '1-44XG'

    PARTY_ID PERSON_ID

    1-44XG 1-2RNW

    1-44XG 1-2ROD

    (CONTINUED NEXT PAGE)

  • 8/6/2019 18ESS_SiebelPartyBusinessComponents

    18/25

    Siebel 8.0 Essentials

    Siebel Party Business Components 18.18

    In the previous slide we established how a Person party type can be

    related a User List party type. Next, lets see how we can then relate thePerson and User List to an Organization. Reading the slide:

    1.ABC Access Group is associated with two records in S_PARTY_PER

    via PARTY_ID.

    2.The PERSON_ID column associates the four records inS_PARTY_PER with two persons, a user list, an organization, and anaccess list.

    3.ABC User List itself contains the two Person records discussed above.

    The key point here is that any number of associations can be createdamong the various S_PARTY types.

    Note that employees and contacts cannot be directly related to accessgroups. Instead, employees and contacts can be related to organizations,

    users, or positions.

    A smaller version of the network diagram presented earlier in the module

    is provided here as re-enforcement for the concept that party types can be

    networked together. This slide presents an example of that concept.(CONTINUED FROM PREVIOUS PAGE)

    3. Identify the users appearance in S_PARTY:

    SELECT ROW_ID, PARTY_TYPE_CD, NAME FROM S_PARTY

    WHERE ROW_ID = '1-2RNW' OR ROW_ID = '1-2ROD'

    ROW_ID PARTY_TYPE_CD NAME

    1-2RNW Person Carlson, Cameron

    1-2ROD Person Choi, Coery

    3. Create the ABC organization (Administration Group >

    Organizations), and XYZ Access Group.

    4. Add ABC Org and ABC User List to the ABC Access Group.

    5. Identify the ROW_Ids in S_PARTY for the various party types youcreated:

    CONTINUED NEXT PAGE

  • 8/6/2019 18ESS_SiebelPartyBusinessComponents

    19/25

    Siebel 8.0 Essentials

    Siebel Party Business Components 18.19

    Now lets 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 thosewith 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 = ABCAccess 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 theyare 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_ID1-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 AccessGroup (1-44XQ) containing a party type UserList of ABC User List (1-

    44XG), which itself contains two records, each with a party type ofPerson. ABC Access Group also contains a party type Organization of

    ABC Org (1-44XM). The organization itself could also contain otherparty 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.

  • 8/6/2019 18ESS_SiebelPartyBusinessComponents

    20/25

    Siebel 8.0 Essentials

    Siebel Party Business Components 18.20

    In this example, account Name data is brought from a Party extension

    table into Opportunity, a non-party business component.

  • 8/6/2019 18ESS_SiebelPartyBusinessComponents

    21/25

    Siebel 8.0 Essentials

    Siebel Party Business Components 18.21

    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 joinspecification are needed. This s lide 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_IDrather than ROW_ID.

  • 8/6/2019 18ESS_SiebelPartyBusinessComponents

    22/25

    Siebel 8.0 Essentials

    Siebel Party Business Components 18.22

    This slide introduces an example of the second special situation in which

    we bring parent account data into the account business component (bothare party BCs). Note that there is M:1 relationship between an account

    and its parent account.

    The example illustrates bringing party data (from one account record)into a party business component (into a second account record), even

    though both records belong to the same business component.

    Since there are many relationships between party business components

    (for example Account and Contact), explicit joins are used to bring therelated data into the business component.

  • 8/6/2019 18ESS_SiebelPartyBusinessComponents

    23/25

    Siebel 8.0 Essentials

    Siebel Party Business Components 18.23

  • 8/6/2019 18ESS_SiebelPartyBusinessComponents

    24/25

    Siebel 8.0 Essentials

    Siebel Party Business Components 18.24

    Review Question: What characterizes a party business component?

    Answer: 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 businesscomponents. The answer is yes, there can be some impact on

    performance, but many of these business components already havemultiple joins to begin with. In addition, Siebel Engineering tries to make

    sure that the joins they create do not have an unacceptable negativeimpact. 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).

  • 8/6/2019 18ESS_SiebelPartyBusinessComponents

    25/25

    Siebel 8.0 Essentials

    Siebel Party Business Components 18.25

    See lab instructions for details.