Configuring Siebel Business Applications > Configuring Lists and Pick Applets > About Lists and Pick Applets >

About Dynamic Lists


This topic describes the dynamic list. It includes the following topics:

Similar to a static list, a dynamic list is a type of list that allows the user to choose a value from a list, and then Siebel CRM uses the value to update a field. Rather than drawing the values from the list of values table, a dynamic list draws values from another business component that the user maintains. A field that uses a dynamic list is typically a joined field that displays data from a table other than the base table of the business component. The dynamic list allows the user to update the joined field.

You use a pick applet to display a dynamic list in the Siebel client. The pick applet allows the user to choose a value from a list and then enter the value into a control or the cell of a list column. In end-user documentation, a pick applet is referred to as a dialog box. For more information, see Using the Pick List Wizard to Create a Dynamic List.

Example of How Data Flows in a Pick Applet

Figure 67. illustrates how data in the pick applet typically originates from a different business component than the business component that supplies data to the originating applet.

Figure 67. Example of How Data Flows in a Pick Applet

The following steps occur in this example:

  1. In the Opportunity Form applet, the user enters information for the Organic Cereals opportunity, and then clicks Select.
  2. Siebel CRM displays the Account List pick applet and displays rows from the Account business component.
  3. The user chooses Account 1, Smith's Dry Goods, and then clicks OK.
  4. Siebel CRM enters Account data for Smith's Dry Goods into the Opportunity Form applet.

A dynamic list maintains the foreign keys that facilitate a join relationship. In the opportunity and account example, a foreign key in the Opportunity business component identifies the account for each opportunity. If the user chooses an account in the pick applet, then Siebel CRM enters data into this foreign key field. This choice associates the account with this opportunity for future use by the join that uses the foreign key. For example, if the user chooses a record in the pick applet, then Siebel CRM copies values in certain list columns in the chosen record to corresponding list columns in the originating applet. In this example, the user chooses a parent account for an account record.

How Siebel CRM Constructs a Dynamic List

Figure 68 illustrates the relationships between object types that Siebel CRM uses to construct a dynamic list.

Figure 68. Relationships Between Object Types That Siebel CRM Uses to Construct a Dynamic List

Figure 69 illustrates the objects that Siebel CRM uses to construct a dynamic list.

Figure 69. Objects That Siebel CRM Uses to Construct a Dynamic List

Siebel CRM uses the following objects to construct a dynamic list:

  1. Originating applet. Contains the control or list column that calls the pick applet. After Siebel CRM calls the pick applet and chooses a value, it displays revised values in specific controls in the originating applet. In the example, the Opportunity Form Applet is the originating applet. For more information, see Originating Applet of a Dynamic List.
  2. Pick applet. Dialog box that Siebel CRM calls to choose a value. The dialog box is a list applet that contains a scrolling list table of rows. Each row corresponds to a business component record. In the example, the Account applet is the pick applet.
  3. Originating business component. Business component of the originating applet. This business component supplies the data Siebel CRM presents in the originating applet. The selection process in the pick applet causes Siebel CRM to update the current record in this business component. In the example, the Opportunity business component is the business component of the originating applet, and the Opportunity Form Applet is the originating applet.
  4. Pick business component. Business component of the pick applet. Data from fields in this business component display in the list columns of the pick applet. In the example, the Account business component is the pick business component.
  5. Originating control or originating list column. If the user clicks the originating control or list column, then the originating control or list column calls the pick applet. In the example, the Account control is the originating control.
  6. Originating field. Field in the originating business component that the originating control references. It includes child pick maps that define how Siebel CRM maps fields from the pick business component to the originating business component. In the example, the Account field is the originating field.
  7. Pick maps. Each pick map defines a relationship between a field in the pick business component and a field in the originating business component. If the user chooses a record, then these relationships provide the information that Siebel CRM requires to update the current, originating business component record with information from the pick business component record.

    If the user chooses a value from an unbounded list, then Siebel CRM uses the corresponding pick map that references the same field to copy the value to the field with which the list is associated. If the list is bounded, then Siebel CRM only enters data into fields that are associated with other child pick maps.

    NOTE:  Typing a new value into an unbounded list does not automatically result in Siebel CRM displaying the value in the list of values that the user can choose. Siebel CRM does not update fields in a pick map if the user chooses a value from an unbounded list. An applet that references the CSSBuscomp or the CSSBCBase class with an unbounded list does not map all the values in the pick map. To map all the values in a pick map, the list must be bounded.

  8. Pick list. References the business component of the pick applet. In the example, the PickList Opportunity Account pick list is the list.
  9. Join and join specification. The join is a child of the originating business component. The join specification is a child of the join. The join field references this child object. One of the pick maps updates the join field. If a value in the join field changes, then Siebel CRM updates all fields whose values it derives from the join. This update is not as immediate as the update that Siebel CRM performs through the pick map. If the other pick maps are absent, then Siebel CRM does not update the data until the user navigates away from the view and then returns to the view. In the example, S_ORG_EXT is the join and Account Id is the join specification.

Originating Applet of a Dynamic List

The originating applet contains the control or list column that calls the pick applet. It can also contain other controls or list columns into which Siebel CRM enters data if the user chooses a value from the list applet. The originating applet does not require special configuration.

Figure 70 illustrates the details of the originating applet that is included in Figure 68.

Figure 70. Originating Applet of a Dynamic List

Siebel CRM uses the following objects in the originating applet of a dynamic list:

  1. Business component property. Creates the association between the originating applet and the originating business component.
  2. Originating control. Calls the pick applet if the user clicks the arrow. The name of the pick applet is defined in the Pick Applet property of the originating control. The originating field is defined in the Field property of the originating control. It includes definitions for the pick map child object. For more information, see Originating Business Component of a Dynamic List.

    The Runtime property of the control or list column must be TRUE.

  3. Controls that contain data from a pick applet and join. If the user chooses a value from the pick applet, then Siebel CRM updates each control that contains data from a pick applet and join.
  4. Controls not related to pick applet. Other controls in the applet.

Originating Business Component of a Dynamic List

The originating business component of a dynamic list is the business component that the Business Component property of the originating applet references. This business component supplies the data that Siebel CRM displays in the originating applet.

Figure 71 illustrates how the originating business component of a dynamic list is defined. This list is described in Originating Applet of a Dynamic List.

Figure 71. Originating Business Component of a Dynamic List

Siebel CRM uses the following objects in the originating business component of a dynamic list:

  1. Originating field. Provides data to the originating control. The originating field is the parent of the pick map. The Pick List property of the field specifies the pick list. Because a pick map is a child of an originating field, it supports pick applets on more than one field in the business component.

    The originating field must reference a database column. You cannot associate a pick applet or list with a read-only field, including a calculated field.

  2. Pick maps. Creates a relationship between a field in the pick business component and a field in the originating business component. This relationship provides the information that Siebel CRM requires to update the active record of the originating business component with information from the pick business component. Because one of the pick maps updates the join field, the join updates the business component fields that depend on the join.

    It is recommended that you test your pick map after you create it. If the value in the originating field remains the same after you choose a value from the pick applet, then you must check the pick map definition for that field.

  3. Field property. Identifies a field in the originating business component that contains data from a field in the pick business component when Siebel CRM calls the PickRecord method.
  4. Pick List Field property. Identifies a field in the pick business component that provides data for the field in the Field property of the pick map. Note the following behavior:
    • If the user picks a value from an unbounded list, then Siebel CRM updates the fields in the pick map.
    • If the user types in a new value, then Siebel CRM does not update fields in the pick map.
    • If the user types a new value into a field that references an unbounded list, then Siebel CRM does not automatically add the value to the list of values that the user can choose.

      Do not define more than one multi-value field in an originating business component that references the same destination field that the pick applet references in the Pick List Field Property. If you use this technique, then Siebel CRM does not display the arrow for the list and the user cannot use the list. For more information, see About the Multi-Value Field.

  5. Join field. Serves as a foreign key in the join that the pick applet references. Typically, the Id is included in the name of the join field, such as Account Id or Key Contact Id. It is defined in the Source Field property of the join specification. The join field is one of the fields defined in a pick map. If the user chooses a record from the pick applet, then Siebel CRM updates the join field and all fields that reference the join.

    NOTE:  The pick maps initially update fields in the originating business component and the controls or list columns that reference these fields. The join and join specification do not update the contents of the applet until the user navigates away from the view and then returns to the view.

  6. Join and join specification. Sets up the join between the base table of the originating business component and the base table of the pick business component. Siebel CRM uses this join to update fields in the originating business component that include the name of the join in the Join property of the field.
  7. Fields that derive data from the pick applet and join. If Siebel CRM changes the value in the join field, then Siebel CRM updates fields that include the name of the join in the Join property. If the user chooses a value from the pick applet, then Siebel CRM updates fields that are defined in the Field property of the pick maps.

    Although a pick map and a join update the same fields, an update that involves a pick map is immediate. An update that involves a join is somewhat delayed. if the user picks a record, then a pick map can update the display value of a joined field. For example, with the Account Name joined field. A pick map does not physically copy a value to the joined fields. It only writes to the foreign key field. For example, Account Id.

  8. Pick list. The field of the originating control references the pick list. The Business Component property of the pick list references the pick business component.

    NOTE:  If you define a pick applet that a multi-value group applet calls, then define the list and the pick maps on the originating field in the originating business component. Do not define the list and the pick maps on fields in the child business component that the multi-value group applet references. For more information, see How Siebel CRM Constructs a Multi-Value Group.

How Siebel CRM Constrains a Dynamic List

You can dynamically filter a pick applet to display only records that include a field value that matches a corresponding field in a record of the originating business component. This technique is known as constraining a list. For example, you can define the pick applet for a contact that an applet that displays quotes calls so that the pick applet only displays contacts that are associated with the account for the current quote. For more information, see Example of Constraining a Dynamic List.

Figure 72 illustrates how Siebel CRM constrains a dynamic list. It illustrates the details of the pick business component that is included in Figure 68.

Figure 72. How Siebel CRM Constrains a Dynamic List

Siebel CRM uses the following objects to constrain a dynamic list:

  1. Pick applet. Displays only contacts that contain the same account, account Id, and account location as the quote. To accomplish this, you define a constraint pick map as a child of the Contact Last Name field. This is in addition to the predefined copy pick map object definitions that define pick behavior.
  2. Pick map. The following types of pick maps are available:
    • Copy pick map. Updates the current record in the originating business component with information from the pick business component. For more information, see Originating Business Component of a Dynamic List.
    • Constraint pick map. Displays only those records that contain a matching value in a corresponding field in the originating and the pick business component. A constraint pick map causes Siebel CRM to filter the records that it displays in the pick applet. For more information, see Constraint Pick Map Acts as a Predefault Value.

      If the Constrain property of the pick map is:

    • TRUE, then the pick map is a constraint pick map.
    • FALSE, then the pick map is a copy pick map.
  3. Pick business component. The business component that the pick applet references. Siebel CRM displays data from fields in this business component in the list columns of the pick applet.
  4. Fields displayed in the pick applet. Enters data into the list columns in the pick applet. The Field property of the corresponding list columns in the pick applet reference these list columns. Because Siebel CRM includes some of the same fields in the Pick List Field property of Pick Map object definitions, these fields have a role in updating corresponding fields in the originating business component.
  5. Fields not displayed in the pick applet. Although not displayed in list columns in the pick applet, Siebel CRM includes some of these fields in the Pick List Field property of the object definitions for a Pick Map. Therefore, such fields have a role in updating corresponding fields in the originating business component.
Constraint Pick Map Acts as a Predefault Value

A constraint pick map uses the new record that Siebel CRM adds from a pick applet as a predefault value. For example, assume the user chooses a record in the Quotes list to which an account is already associated, and then clicks the Opportunities control in the form for the quote. The user then adds a new opportunity in the Pick Opportunity dialog box with no account included. Siebel CRM automatically assigns the new opportunity to the constrained account. This situation occurs if the Constrain property of the Account Id pick map of the Opportunity field in the Quote business component is TRUE.

Foreign Key Field Must Be Constrained

If the constrained field references a joined table in the pick business component, then the foreign key field must also be constrained. If the foreign key field is not constrained in this situation, and if the user creates a new record in the pick applet, then Siebel CRM displays an error that is similar to the following: This operation is not available for read-only field.

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