13Configuring Business Components, Links, and Business Objects

Configuring Business Components, Links, and Business Objects

This chapter describes how to configure business components, links, and business objects. It includes the following topics:

Creating a New Business Component

You might need to create a new business component if no predefined business components exist that provide a good functional or technical fit for your business requirements. For example, if you must predefault record values to a different type as a way to differentiate some records from other records in the same table. For more information, see Reusing Predefined Objects.

To create a new business component

  1. Make sure you cannot use a predefined business component.

    For more information, see Determining Whether You Can Reuse a Predefined Business Component.

  2. In Siebel Tools, click the File menu, and then click New Object.

  3. In the General tab, choose BusComp, and then click OK.

  4. In the New Business Component Wizard, choose a project, enter a name for the business component, and then click Next.

  5. In the Single Value Fields dialog box, choose a column in the Base table, and then enter a name for the field.

  6. Click Add, and then click Finish.

    Siebel Tools displays the business component you just created in the Business Components list.

  7. In the Business Components list, define the properties to meet your requirements.

For more information, see Properties of a Business Component.

    Determining How a Business Component Sorts Records

    You can create a sort specification on a business component to determine how a business component sorts records. For more information, see How a Business Component Sorts Records.

    To determine how a business component sorts records

    1. In Siebel Tools, in the Object Explorer, click Business Component.

    2. In the Business Components list, locate the business component you must modify.

    3. In the Sort Specification property, enter a sort specification, and then save your modifications.

      You must use a specific format. For more information, see Guidelines for Configuring How a Business Component Sorts Records.

    4. Compile and test your modifications.

    For more information, see Using Siebel Tools.

      Determining How a Business Component Sequences Records

      Sequential numbering is not predefined in any system column in a predefined table in Siebel CRM. You can configure a sequence field in a child business component to determine how a business component sequences records. For more information, see How a Business Component Field Sequences Records.

      To determine how a business component sequences records

      1. Verify that the class of the child business component is CSSBCBase or a subclass of CSSBCBase.

        If it is not, then contact Oracle Global Customer Support for assistance with this procedure. For more information, see Getting Help From Oracle.

      2. Verify that the business component where you must add a sequence field is the child business component in a parent-child relationship.

        This child is the numbered business component. Siebel CRM numbers child records beginning with 1 in each parent record.

      3. Add a child field to the numbered business component using values from the following table.

        Property Value

        Name

        Enter text that identifies the data that Siebel CRM sorts, such as Line Number or Order.

        Column

        Enter a numeric extension column, such as ATTRIB_14.

        Type

        DTYPE_NUMBER

      4. Add a child business component user property to the numbered business component using values from the following table.

        Property Value

        Name

        Sequence Field

        Value

        Enter the field name you defined in Step 3.

      5. Create a business component using values from the following table.

        Property Value

        Class

        CSSSequence

        table

        Enter the name of the base table of the numbered business component.

        Name

        Enter a name using the following format:

        name of the numbered business component.name of the sequence value field (Sequence)

      6. Set the Sort Spec of the business component you created in Step 5 to Sequence (DESCENDING).

      7. Add a child field to the sequence business component using values from the following table.

        Property Value

        Name

        Sequence

        Column

        Enter the same value you entered for the column in Step 3.

      8. Add a child field to the sequence business component.

        This field is the foreign key field that creates the parent-child relationship to the parent business component. Set the Column property to the same column as the corresponding field in the numbered business component.

      9. Create a link that creates a parent-child relationship between the parent and sequence business components.

        For more information, see About Links.

      10. Create a child business object component of the business object that uses the predefined link that exists between the parent business component and the numbered business component. Use values from the following table.

        Property Value

        Link

        Choose the link you defined in Step 9.

        BusinessComp

        Choose the sequence business component.

      11. Display the sequence value field in applets that display records from the numbered business component.

      12. Compile and test your modifications.

        For more information, see Using Siebel Tools.

        Defining Read-Only Behavior for a Business Component

        In this example, if an account record includes a competitor, then the user must not choose any competitors for the account. If the Type field includes a value of Competitor, then Siebel CRM makes the Competitor field in the account record read-only. For more information, see How Siebel CRM Defines Read-Only Behavior for a Business Component Field.

        To define read-only behavior for a business component

        1. In the Object Explorer, click Business Component.

        2. In the Business Components list, locate the Account business component.

        3. In the Object Explorer, expand the Business Component tree, and then click Field.

        4. In the Fields list, create a field using values from the following table.

          Property Value

          Name

          Competitor Calculation

          You can use any name.

          Calculated

          TRUE

          Calculated Value

          IIf([Type] = "Competitor", "Y", "N")

        5. In the Object Explorer, click Business Component User Prop.

        6. In the Business Component User Props list, add a new record using values from the following table.

          Property Value

          Name

          Field Read Only Field: Competitor

          Value

          Competitor Calculation

          When you create a business component or field, make sure the values in the Name and Value properties use the correct capitalization, spelling, and empty spaces. Make sure that quotation marks are not present.

        7. Compile and test your modifications.

          For more information, see Using Siebel Tools.

          Creating a Recursive Join on a Business Component

          If you create a recursive join, then you must make sure the Alias name of the join is different from the Table Name. If you use the same name with an inner join, then Siebel Tools displays the following error message:

          Table ‘T1’ requires a unique correlation name.
          

          If you use the same name with an outer join, then Siebel Tools displays the following error message:

          Table 'T1' is in an outer join cycle.
          

          An inner join is a join that contains an Outer Join Flag property that does not contain a check mark. An outer join is a join that contains an Outer Join Flag property that does contain a check mark.

          To create a recursive join on a business component

          • Make sure the Alias name of the join is different from the Table Name.

            Configuring a Business Component to Copy Child Records If the User Copies the Parent Record

            Cascade copy is a feature on a business component that copies the child records of a business component record if the user copies a parent record. For example, if the user copies an opportunity to create a similar opportunity, then the user might require Siebel CRM to copy the list of contacts for that opportunity.

            A multi-value link that Siebel CRM uses with a multi-value field copies the child records because the child records that constitute a multi-value group remain with the parent record. For example, the child records for account addresses, sales teams, and industry lists of a parent account remain with the account. Siebel CRM uses this capability for a different purpose if cascade copy is defined for a multi-value link, and if Siebel CRM does not use the multi-value link in a multi-value field. It is not necessary to reference the multi-value link to a field in the business component. For more information, see How Siebel CRM Creates a Multi-Value Group.

            You can define cascade copy for a many-to-many relationship where the Inter Table property of the destination link is not empty. In this situation, Siebel CRM creates new intersection table rows rather than new child business component records. It creates new associations rather than new records. These associations exist between the new parent and the existing child records.

            Cascade copy might cause the values in an index to not remain unique. If copying child records causes an index to not remain unique, then Siebel CRM cancels the copy operation.

            To create a business component to copy child records if the user copies the parent record

            • Create a multi-value link using values from the following table.

              Property Value

              Destination Link

              The name of the link where Siebel CRM defines the parent-child relationship.

              Destination Business Component

              The name of the child business component.

              No Copy

              FALSE

              If the No Copy property is TRUE, then Siebel CRM disables cascade copy. An exception to this configuration occurs if the corresponding field is defined as the destination field in a link. In this situation, the link enters data into the field and ignores the value of the No Copy property.

              Allowing the User to Set a Primary Team Member

              You can allow the user to set a primary team member.

              To allow the user to set a primary team member

              1. In the Object Explorer, click Business Component.

              2. In the Business Components list, locate the business component that the multi-value group applet references.

                For more information, see Creating Multi-Value Groups and Multi-Value Group Applets.

              3. In the Object Explorer, expand the Business Component tree, and then click Business Component User Prop.

              4. In the Business Component User Props list, locate the following business component user property:

                MVG Set Primary Restricted:name of the multi-value link

              5. Set the Value property to FALSE.

                This configuration allows some users to set a primary. Setting this user property to FALSE allows someone other than the Manager or Siebel Administrator to modify the Primary team member. If this user property is not set, then only a Siebel Administrator working in Admin mode or a Manager working in Manager view mode can modify the Primary team member on an opportunity, account, or contact. For more information about user properties, see Siebel Developer's Reference.

              6. Compile and test your modifications.

                For more information, see Using Siebel Tools.

                Creating a New Business Component Field

                You can create a new business component field.

                To create a new business component field

                1. Make sure you cannot reuse a business component field.

                  Before you create a new business component field, make sure a predefined field that meets your business requirements does not exist. For more information, see the following topics:

                2. In Siebel Tools, in the Object Explorer, click Business Component.

                3. In the Business Components list, locate the business component where you must add a field.

                4. In the Object Explorer, expand the Business Component tree, and then click Field.

                5. In the Fields list, add a new record, and then define properties for the new record.

                  You must not map multiple business component fields to the same column in a table. If you do this, then the SQL query fails because it attempts to access the same column twice in the same query. This configuration might cause an error message when Siebel CRM updates data, can cause problems with data integrity, and can lead to data loss for denormalized columns that reference the column.

                6. Compile and test your modifications.

                  For more information, see Using Siebel Tools.

                  Activating a Multi-Value Field

                  To refresh correctly in the master applet when the user closes the multi-value group applet, you must make sure the multi-value field is activated at the business component level. For example, if the Account Entry Applet displays the Active Login Name multi-value field through the Position multi-value link, then the Force Active property of the Active Login Name field in the Position business component must equal TRUE, or the Active Login Name field must be included in the Position MVG applet that Siebel CRM uses to maintain the account Sales Team. This situation is true even if the field is not visible. For more information, see, About the Multi-Value Field and Creating Multi-Value Groups and Multi-Value Group Applets.

                  To activate a multi-value field

                  1. Do one of the following:

                    • Set the Force Active property of the multi-value field to True.

                    • Include the multi-value field in the multi-value group applet.

                  2. Compile and test your modifications.

                    For more information, see Using Siebel Tools.

                    Validating Data That the User Enters in a Business Component Field

                    You can configure Siebel CRM to validate the information that the user enters into a field. You can configure the error message that Siebel CRM displays if the user enters information that does not meet the validation expression.

                    To validate data that the user enters in a business component field

                    1. Make sure Siebel Tools is configured to allow you to modify a text string.

                      For more information, see Setting Up the Configuration File for Siebel Tools.

                    2. Create the symbolic strings that Siebel CRM displays in the error message.

                    3. In the Object Explorer, click Business Component.

                    4. In the Business Components list, locate the business component that contains the field that Siebel CRM must validate.

                    5. In the Object Explorer, click Field.

                    6. In the Fields list, locate the field that Siebel CRM must validate.

                    7. In the Validation property, enter an expression that does the validation.

                      You can use the Expression Builder to build the expression. To display the Expression Builder, click the ellipsis (...) in the Validation property.

                    8. In the Validation Error Message - String Reference property, enter the name of the symbolic string you created in step 2 for this error message.

                      As an alternative, you can use the Validation Message property to enter the error message without using a symbolic string. You can use the Validation Message - String Override property to override the error message.

                    9. In the Message Display Mode property, choose one of the following display modes for the error message:

                      1. User Msg. Displays only the error message that you provide.

                      2. User Msg with Error Code Only. Displays the error message that you provide and the system error code.

                      3. User Msg with Error Code/Msg. Displays the error message that you provide, the system error code, and the system error message.

                    10. Compile and test your modifications.

                      For more information, see Using Siebel Tools.

                      How Siebel CRM Validates Start and End Dates

                      If the user sets the completion date for an activity to occur before the start date for the activity, then Siebel CRM displays an error that is similar to the following:

                      Wrong field values or value types detected in field End.
                      

                      Siebel CRM ignores any configuration you define in the Validation property or the Validation Message property for these date fields. For example, assume the user navigates to the Activities screen, clicks Activity List, and then sets the value in the Start field to a date that is later than the value in the End field. This Start field references the Planned field of the Action business component. If you define a value in the Validation property or the Validation Message property for the Planned field, then Siebel CRM ignores it. Instead, Siebel CRM uses one of the following specialized classes in the Action business component to perform this validation:

                      • CSSBCActivity for Siebel CRM version 8 of Siebel Business Applications.

                      • CSSBCFINSActivity Siebel CRM version 8 of Siebel Industry Applications. The parent class is CSSBCActivity.

                      For more information, see Caution About Using Specialized Classes.

                      You cannot configure the predefined validation in the classes, but you can add script in the BusComp_PreSetFieldValue event for the business component. This script monitors updates to these fields, and then compares the field values. You can write a custom error message in this script. For more information, see the topic about the CSSBCActivity class in Siebel Developer's Reference.

                        Creating a Business Component Field That Displays More Than One Currency

                        You can configure a field to display data in more than one currency. For example, assume a global deployment occurs in the United States and in Japan, where the deployment in the United States requires data to display in dollars and the deployment in Japan requires data to display in yens.

                        You cannot configure a Forecast business component to display dual currency because the list columns that display monetary values do not reference fields. The list columns display values that reference buttons that use specialized methods to perform the calculation. For more information, see Caution About Using Specialized Classes.

                        To create a business component field to display more than one currency

                        1. In Siebel Tools, in the Object Explorer, click Business Component.

                        2. In the Business Components list, locate the Opportunity business component.

                        3. In the Object Explorer, expand the Business Component tree, and then click Field.

                        4. In the Fields list, create a new field using values from the following table.

                          Property Value

                          Name

                          My_Currency

                          Type

                          DTYPE_TEXT

                          Join

                          S_OPTY_X

                          Column

                          ATTRIB_03

                          PickList

                          PickList Currency

                          Siebel Tools stores the field in an unused column in the S_OPTY_X extension table.

                        5. In the Object Explorer, expand the Field tree, and then click Pick Map.

                        6. In the Pick Maps list, create a new pick map using values from the following table.

                          Property Value

                          Field

                          My_Currency

                          Pick List Field

                          Currency Code

                        7. In the Object Explorer, click Field, and then add a field to the Opportunity business component for the converted revenue using values from the following table.

                          Property Value

                          Name

                          My_Cvt_Revenue

                          Calculated

                          TRUE

                          Calculated Value

                          [Revenue]

                          Currency Code Field

                          My_Currency

                          The Currency Code Field property references the currency code field of Creating a Business Component Field That Displays More Than One Currency.

                          Exchange Date Field

                          Sales Stage Date

                          Type

                          DTYPE_CURRENCY

                          Caution: Make sure the Exchange Date Field property on the originating currency field is defined in a way that is similar to the converted currency field. If it is not, then Siebel CRM bases the exchange date that it uses to convert the currency on the exchange date of the originating currency field.

                          For more information, see Requirements for the Field That Contains the Converted Currency Amount.

                        8. In the Object Explorer, click Applet.

                        9. In the Applets list, locate the Opportunity List Applet.

                        10. In the Object Explorer, expand the Applet tree, expand the List tree, and then click List Column.

                        11. In the List Columns list, add a list column using values from the following table.

                          Property Value

                          Field

                          My_Currency

                          Display Name

                          Converted Currency Code

                        12. In the List Columns list, add a list column using values from the following table.

                          Property Value

                          Field

                          My_Cvt_Revenue

                          Display Name

                          Converted Revenue

                          Runtime

                          TRUE

                          It is not necessary to create a pick or detail applet because Siebel CRM opens the default applet that matches the field type.

                        13. Compile the Oppty and Oppty (SSE) projects.

                          For more information, see Using Siebel Tools.

                        14. Make sure the underlying currency business component contains a minimum number of valid values:

                          1. In the Siebel client, navigate to the Administration - Application screen, and then the Currencies view.

                            This view lists currencies, conversion dates, and exchange rates.

                          2. Make sure each currency that is involved in the conversion is marked as active.

                          3. Make sure at least one exchange rate is defined for each currency that is involved in the conversion.

                          4. Make sure at least one of the exchange rates for an exchange direction includes a date that occurs at or before the date that Siebel CRM uses as the Exchange Date.

                        15. Test your modifications.

                          Requirements for the Field That Contains the Converted Currency Amount

                          The field in the business component that contains the converted currency amount must meet the following requirements:

                          • The Type property of the field must equal DTYPE_CURRENCY.

                          • The field must be a calculated field.

                          • The Type property of the field that the Calculated Value property references must equal DTYPE_CURRENCY. For example, if the expression in the Calculated Value property is [Revenue], then the Type property of the Revenue field must equal DTYPE_CURRENCY.

                          • The Exchange Date Field property must reference a field that contains a Type property that is DTYPE_DATETIME.

                            Configuring Client-Side Import to Update a Business Component Field

                            You can use client-side import to update a business component field. Client-side import uses the import functionality of the applet menu in the Siebel client. You use the object type known as the Import Object in Siebel Tools to identify the business component fields into which Siebel CRM enters data.

                            For an example of how Siebel CRM configures client-side import, in Siebel Tools you can examine the predefined import object that is defined for the Contact business component. The Contact business component is defined as an Import Object and it contains fields that Siebel CRM defines as Import Field objects.

                            You cannot use client-side import with a specialized business component or specialized applet. For more information, see Class Property of a Business Component, and Siebel Object Types Reference.

                            To configure client-side import to update a business component field

                            1. Display the object type known as the Import Object.

                              For more information, see Displaying Object Types You Use to Configure Siebel CRM.

                            2. Lock the project that the business component references.

                            3. In the Object Explorer, click Import Object.

                            4. In the Import Objects list, add a new record using values from the following table.

                              Property Value

                              Business Component

                              Choose the business component into which Siebel CRM must import data.

                              Make sure this business component is a parent business component. Siebel CRM only supports client-side import for a parent business component.

                            5. In the Object Explorer, expand the Import Object tree, and then click Import Field.

                            6. In the Import Fields list, add a new record for each business component field that Siebel CRM must update.

                              Note that you can add an import field to an import object that already exists, such as Contact.

                            7. Make sure the No Insert property of the applet that is defined for client-side import is False.

                            8. Compile locked projects, and then test your modifications.

                              For more information, see Using Siebel Tools.

                            Siebel CRM displays the new fields in the Select a Siebel Field dialog box. You can map them to fields in the External Data Source Field dialog box when you import data.

                              Creating a Joined Business Component Field

                              You can add a join to a business component, and then reference the join in a field.

                              To create a joined business component field

                              1. In Siebel Tools, in the Object Explorer, click Business Component.

                              2. In the Business Components list, locate the business component where you must add a join.

                              3. In the Object Explorer, expand the Business Component tree, and then click Join.

                              4. In the Joins list, add a new record, using values from the following table.

                                Property Value

                                Table

                                Name of the joined table. For example, enter S_ADDR_ORG to access address data.

                                Alias

                                Name of the join. For example:

                                Contact - S_ADDR_ORG
                                

                                It is recommended that you define the alias so that it is different from the table.

                                Outer Join Flag

                                If you must get all the records in the business component even if the joined fields are empty, then set Outer Join Flag to TRUE.

                                Comments

                                Optional.

                              5. In the Object Explorer, expand the Join tree, and then click Join Specification.

                              6. In the Join Specifications list, add a new record, using values from the following table.

                                Property Value

                                Name

                                Name of the join specification. For example, Primary Address Id.

                                Destination Column

                                Primary key column in the joined table. For example, ROW_ID.

                                If you create a join on a column other than ROW_ID, then you must enter a value in the Destination Column property. An empty value in the Destination Column property indicates that the destination column is ROW_ID, which is typically the primary key.

                                For a join to a party table, the destination column must reference the PAR_ROW_ID column in the joined table.

                                Source Field

                                Foreign key field in the business component. For example, Primary Address Id.

                                If empty, then the Source Field references the Id field, which indicates a one-to-one relationship between the business component and the joined table.

                              7. Optional. Add a Join Constraint:

                                1. In the Object Explorer, expand the Join Specification tree, and then click Join Constraint.

                                2. In the Join Constraints list, add a new record, using values from the following table.

                                  Property Value

                                  Name

                                  Name of the join constraint. For example, Primary Address Id.

                                  Destination Column

                                  Column in the joined table where you must apply a search specification. For example, OU_ID.

                                  Value

                                  The search specification. For example:

                                  GetProfileAttr("Primary Address Id")
                                  

                                  For more information, see Options to Filter Data That Siebel CRM Displays in an Applet.

                              8. In the Object Explorer, click the Field object type in the Business Component tree.

                              9. In the Fields list, add a new record, using values from the following table.

                                Property Value

                                Name

                                Name of the joined field.

                                Join

                                Join alias for the table where this field gets data. For example, Primary Account Address.

                                Column

                                Column in the joined table where this join gets data. For example, ADDR_NAME.

                                Text Length

                                Same length as the column where this join gets data.

                                Type

                                Data type that is compatible with the column where this join gets data. For example, DTYPE_TEXT for a Varchar column.

                              10. Compile and test your modifications.

                                For more information, see Using Siebel Tools.

                                Creating a Predefault Value for a Joined Business Component Field

                                To make sure a field contains a value when Siebel CRM inserts a new record, you can use a predefault value for a joined field. Siebel CRM cannot update a joined field. If a field does not include a value when Siebel CRM inserts a record, then you cannot use a predefault value as a default field value. This topic includes an example that creates a predefault value for a joined business component field.

                                To create a predefault value for a joined business component field

                                1. Create a join on the S_OPTY table in the Opportunity Product business component.

                                2. Define two new fields that reference the join.

                                  One field displays the Opportunity Sales Stage. The other field displays the Name.

                                3. Add the two fields to the Opportunity Product applet.

                                4. Compile all locked projects.

                                5. Test you modifications:

                                  1. In the Siebel client, use the predefined Opportunities - Products view to add a new product for an opportunity.

                                    Siebel CRM does not update the joined fields. Oppty Id contains the data that provides the source field for the join.

                                  2. Requery the applet.

                                    Note that Siebel CRM now displays the values.

                                6. In Siebel Tools, set the Predefault property of the Opportunity Name field using values from the following table.

                                  Property Value

                                  Pre Default Value

                                  Parent:'Opportunity.Name'

                                  You must use the following format:

                                  Parent:'Parent Business Component.Name of the Joined Field'
                                  
                                7. In Siebel Tools, set the Predefault property of the Opportunity Sales Stage field using values from the following table.

                                  Property Value

                                  Pre Default Value

                                  Parent: 'Opportunity.Sales Stage'

                                8. Set the Link Specification property of the Name and Sales Stage fields in the parent business component to TRUE.

                                9. Compile all locked projects.

                                10. Restart the Siebel client.

                                11. In the Siebel client, add a new product for an Opportunity.

                                  Note that Siebel CRM immediately enters data into the joined fields.

                                  Guidelines for Using Cascade Delete

                                  Caution: Be careful. If set incorrectly, the Cascade Delete property might cause data integrity problems or orphaned records.

                                  If you use the Cascade Delete property, then use the following guidelines:

                                  • Cascade Delete is not available for a many-to-many link. A child might be the child of more than one parent when Siebel CRM uses a many-to-many link, so Siebel CRM deletes the intersection record but leaves the child record intact.

                                  • If you delete a record that a foreign key of another table references, then Siebel CRM might or might not delete the reference to the record. If it does not delete the reference, then row IDs might reference records that do not exist. If used with a multi-value group, then Siebel CRM might convert the foreign key to display No Match Row Id.

                                  • The link applies to parent child relationships. Siebel CRM treats a one-to-one extension table as an extension of the parent, so it keeps the extension table synchronized with the parent.

                                  • Use a link except for a one to many extension table that involves two different business components.

                                  • To involve grandchild records, use the Deep Delete business component user property. For more information, see Siebel Developer's Reference.

                                    Creating an Association Between One Parent and Multiple Child Records

                                    If you create a link and an intersection table that creates a many-to-many relationship between a parent business component and a child business component, then Siebel CRM can only associate two business component records at one time even if the unique keys in the intersection table allow multiple associations. The link between the two business components only considers the ROW_ID values of the parent and child records that Siebel CRM requires to maintain the many-to-many relationship. This behavior is expected.

                                    An intersection business component is a type of business component that references an intersection table and a one-to-many link between the parent business component and the intersection business component. You can use it to create multiple associations between one parent and multiple child records. The child list applet or multi-value group applet references the intersection business component. To choose the child record, the user accesses a pick applet that references the child business component instead of using an association applet.

                                    For more information, see How an Intersection Table Defines a Many-To-Many Relationship.

                                    To create an association between one parent and multiple child records

                                    1. In Siebel Tools, in the Object Explorer, click Business Component.

                                    2. In the Business Components list, query the Name property for Account.

                                      This example describes how to configure an intersection business component with the Account business component.

                                    3. In the Object Explorer, expand the Business Component tree, and then click Field.

                                    4. In the Fields list, add a new field using values from the following table.

                                      Property Value

                                      Name

                                      Add any value.

                                      Column

                                      ACCNT_NAME

                                      This property must reference a denormalized column that resides in the intersection business component.

                                      Pre Default Value

                                      Parent: 'Account.Name'

                                      For more information about how Siebel CRM uses this configuration, see How Siebel CRM Uses Denormalized Columns.

                                      How Siebel CRM Uses Denormalized Columns

                                      Siebel CRM comes predefined with denormalized columns that reside in intersection tables that affect visibility. The user can use a shuttle applet to create an association in a view that affects this visibility. For example, the user can navigate to the Accounts screen, and then use the Account Team view in the Accounts List to add a record in the Account Sales Team View. In this example, Siebel CRM creates an intersection record in the S_ACCNT_POSTN intersection table, and then populates the denormalized columns. It uses the Account/Position many-to-may link to create a many-to-may relationship between the parent Account business component and the child Position business component. The Account/Position link uses the S_ACCNT_POSTN table as the intersection table. The following table describes the properties of the ACCNT_NAME column that Siebel CRM uses in the S_ACCNT_POSTN table.

                                      Table Example of Table That Includes Denormalized Columns

                                      Property Value

                                      Name

                                      ACCNT_NAME

                                      Type

                                      Denormalized

                                      Denormalization Path

                                      [OU_EXT_ID].[NAME]

                                      Assume you use the Account business component as the parent, you add a custom child Account Position business component that references the S_ACCNT_POSTN intersection table, and you use a a one-to-many link. If you do this, then Siebel CRM does not populate the denormalized columns. It populates them only if it also automatically creates the intersection record for the many-to-many relationship. If the user manually creates a one-to-many relationship, then Siebel CRM does not populate the denormalized columns. Instead, you must add a field that references a denormalized column in the intersection business component and use a predefault value for this field.

                                      Adding Fields That Reference Denormalized Columns

                                      The example in this topic describes how to add the Account Name field so that it references the ACCNT_NAME denormalized column.

                                      To add fields that reference denormalized columns
                                      1. In Siebel Tools, click Business Component in the Object Explorer.

                                      2. In the Business Components list, locate the intersection business component that you must modify.

                                      3. In the Object Explorer, expand the Business Component tree, and then click Field.

                                      4. In the Fields list, create a new record using values from the following table.

                                        Property Description

                                        Name

                                        Account Name

                                        Column

                                        ACCNT_NAME

                                        Predefault Value

                                        Parent: 'Account.Name'

                                        Creating a Business Object

                                        This topic describes how to create a business object. For more information, see Guidelines for Creating a Business Object.

                                        To create a business object

                                        1. In Siebel Tools, click Business Object in the Object Explorer.

                                        2. In the Business Objects list, create a new record using values from the following table.

                                          Property Description

                                          Name

                                          Enter a name for the business object that is unique among business objects in the Siebel repository. Siebel CRM uses the name to reference the business object.

                                          Query List Business Component

                                          The default value is Query List. It identifies the business component that stores predefined queries for the business object.

                                          Primary Business Component

                                          You cannot define this property until after you define the business object components.

                                        3. In the Object Explorer, expand the Business Object tree, and then click Business Object Component.

                                        4. In the Business Object Components list, create a new record using values from the following table.

                                          Property Description

                                          Bus Comp

                                          Choose the business component that the business object references.

                                          Link

                                          Optional. Create a link relationship between two business components.

                                        5. Repeat step 4 for each business component that you must reference in the business object. You must define each of the following business components as a business object component:

                                          • Any business component whose data displays in an applet on a view that references the business object

                                          • Any business component whose data Siebel CRM exports in a report from a view that references the business object

                                        6. Define the Primary Business Component property, as described in step 2.