Configuring Siebel Business Applications > Improving the Performance of Siebel Business Applications > Improving the Performance of a Siebel Application >

Improving Performance by Defining the Primary ID Field of a Multi-Value Link


If you define a primary ID, then Siebel CRM can retrieve one primary record more quickly from the master business component through a join than it can retrieve all records through a subquery. The primary ID converts a one-to-many relationship into a one-to-one relationship, which simplifies retrieval of the row from a query with subqueries to a simple join query. This configuration improves performance, especially if the user scrolls through the records of a list applet that displays the parent.

For example, in the Account business component the Primary ID Field property of the Business Address multi-value link is Primary Address Id. The Account Address Mvg Applet displays the corresponding multi-value group. Siebel CRM stores the row ID for the primary record in the Primary Address Id field in the account record. The Primary check mark in the list column identifies the primary. Each time Siebel CRM displays a different account record, the multi-value fields for the Address load only the values from the record of the primary Business Address. It is not necessary to query the Business Address business component for multiple rows. This configuration can significantly improve performance, especially in a list applet.

Most predefined multi-value links designate a primary record. A multi-value link that does not designate a primary record uses the first record that Siebel CRM retrieves from the child business component. The link and multi-value link include a set of properties that you can define to instruct Siebel CRM to obtain the record Id of the first record that displays records from the child table each time the parent record changes. You can create a primary field for a one-to-many or a many-to-many relationship.

NOTE:  In a multi-value group applet, the list column that displays the check mark indicates the primary or nonprimary status of each record. This list column obtains data for the column from the SSA Primary Field system field. Although Siebel Tools does not display this field in the Object Explorer or Object List Editor, you can reference it from a list column.

For more information, see the following topics:

To improve performance by defining the Primary ID field of a multi-value link

  1. Create a Primary Id column.
  2. Create a new field that references the Primary Id column you created in Step 1.
  3. In a multi-value link, set the Primary Id Field property to the field you created in Step 2.

    The Primary Id Field property specifies the name of the field in the parent business component that contains the row IDs that reference primary records in the child business component.

    NOTE:  Do not display the Primary ID Field in the Siebel client. If you display the Primary ID Field in an editable control or list column on an applet, then the multi-value group applet does not update the primary. If you must display the Primary ID Field in the Siebel client, such as for testing, then use a read-only control or list column.

  4. Set the Use Primary Join property of the multi-value link to TRUE.

    For more information, see About the Use Primary Join Property of a Multi-Value Link.

  5. Set the Auto Primary property.

    For more information, see About the Auto Primary Property of a Multi-Value Link.

About the Use Primary Join Property of a Multi-Value Link

The Use Primary Join property of a multi-value link enables the primary join feature. If you set Use Primary Join to TRUE, then Siebel CRM obtains the primary child record for each parent record through a join with the Primary ID Field. If you set Use Primary Join to FALSE, then Siebel CRM queries the child table each time a parent changes.

About the Auto Primary Property of a Multi-Value Link

The Auto Primary property determines how Siebel CRM enters row IDs into the Primary ID Field. It uses the Primary system list column in the multi-value group applet. The user can manually choose the primary. You can set the Auto Primary property to one of the following values:

  • DEFAULT. The first record automatically becomes the primary.
  • SELECTED. If the user views the multi-value group applet and then exits, then the highlighted record becomes the primary. For more information, see About the Select Option of the Auto Primary Property.
  • NONE. The user must include the primary manually.
About the Select Option of the Auto Primary Property

The SELECTED option only applies if several multi-value links reference the same child business component. For example, with the predefined Bill To Business Address multi-value link and the predefined Ship To Business Address multi-value link. These multi-value links exist in the Order business component and in the Account business component. In this example, if a primary is not set for the Bill To address, then when Siebel CRM performs a separate query to bring back all addresses that are associated with the account or order, Siebel CRM determines if one of the addresses is or is not already chosen as the primary for the Ship To address. If it is, then Siebel CRM sets that address as the primary for Bill To address.

How the Auto Primary Property Affects the Read-Only Status of the Primary ID Field

If the Auto Primary property of a multi-value link contains a value of SELECTED, then defining a read-only property at the applet level does not force the SSA Primary Field to be read-only. If the destination business component of the multi-value link is read-only, then Siebel CRM might display an error message that is similar to the following: This operation is not available for a read-only field 'SSA Primary Field'. This errors occurs because Siebel CRM automatically updates the Primary ID Field through the SSA Primary Field system field, which is part of the destination business component. If this business component is read-only, then the Primary ID Field is read-only and Siebel CRM cannot update it. For more information, see System Fields of a Business Component.

Configuring Siebel Business Applications Copyright © 2011, Oracle and/or its affiliates. All rights reserved. Legal Notices.