7Product Attributes with Business Component Domains
Product Attributes with Business Component Domains
This chapter describes how to define attributes that have a business component domain. These attributes allow users to select a record from a pick applet, also called a dialog box. A field in this record then displays in the selection page as the value of the attribute.
This chapter requires that you be familiar with creating pick applets in Oracle's Web Tools.
This chapter includes the following topics:
About Attributes with Business Component Domains
The Product Administrator has created a product with components called Premier Service Package. The Product Administrator wants users to be able to select an account name when configuring the product.
This product has been assigned to a product class that has the attribute Account defined on it. Account has been added to a group in the User Interface view and will display in a selection page.
In the selection page, the Account attribute displays with a blank text field and a select icon. When the user clicks on the select icon, a dialog box displays containing available accounts. When the user selects an account, the account name is transferred to the Account text box.
In this scenario, the user was able to access a Siebel business component to display account records. When the user selected an account record, the account name field in the record was transferred to the selection page and became the value of the Account attribute. The domain of the Account attribute is the records retrieved by the business component and displayed in the dialog box, also called a pick applet.
Attributes with a business component domain differ from attributes with other domain types in several ways:
The attribute values are not defined by a list of values. The user selects the attribute's value directly from a pick applet, which displays information from a business component.
Attributes can be defined so that when the user selects the value for one attribute (the primary attribute), the values for other attributes are automatically selected. For example, if the user selects a value for Account Name (the primary attribute), the value of the Address attribute is filled in automatically. Configuration rules can be written only on the primary attribute. You cannot write configuration rules on attributes whose values are automatically selected based on the value of the primary attribute.
About the UI Properties for Attributes with Business Component Domains
You can define an attribute that has values the user can select from a pick applet. The pick applet displays records from a specified business component. When the user selects a record, a specified field in the record displays in the selection page as the value of the attribute.
Several predefined UI properties are provided to associate the attribute with a pick applet and picklist. Defining these UI properties on the attribute replaces Web Tools procedures for configuring the originating business component when defining a pick applet.
You define these UI properties on the attribute that you have set up to display a select button in the selection pages. These UI properties associate the attribute with a pick applet and a picklist and are shown in the following table.
Table Predefined UI Properties
Name | Value |
---|---|
PickApplet |
The name of the pick applet. |
PickList |
The name of the picklist. |
PickMap01 |
This is an XML tag that associates the attribute name with the picklist field that you want to display. |
PickMapnn |
PickMap02 and so on, display multiple fields from the same picklist. You can also use this PickMap definition to define a constraint on the records the user sees in the pick applet. Note that constraints specified in the pickmap definition cannot include search expressions. If you need to define a constraint with an expression that will be computed at runtime and is dynamic in nature, then use the PickSpec UI property. |
PickSpec01 |
Specify the search specification expression that constrains the records that the user sees on the pick applet. The current instance path can be used as a value in the search specification. The PickSpec value is a search expression that uses the syntax for the BC Search Specification defined in Oracle Web Tools and the standard Siebel Product Configurator path syntax to define instance variables and values. For example, you can define a constraint to show contacts over the age of 18 when the currently selected product's account type attribute is set to primary. See the table in the topic Creating a Search Expression Based on the Current Instance for details. |
PickSpecnn |
PickSpec02 and so on, specify multiple search specifications on the same pick applet. Note that the search specification must be valid. To verify this, use the BC search specification in Web Tools. |
The PickMap value is an XML tag that has the following format:
<PickMap Field="AttributeName" PickField="BusCompFieldname" Constrain="Y/N" BusObj="BusObjName" />
Field. For UI properties with name PickMap01, this specifies the name of the attribute in the selection page. Use the attribute name, not its display name.
For UI properties with Constrain="Y", it specifies the business component field name or attribute name to be used as a filter for the records displayed in the pick applet. The format for specifying a business component is
buscompname.fieldname.
The format for specifying an attribute name isattributename.
For example, to constrain the records displayed in the pick applet to those having the current record's Opportunity name in the Quotes view, (Quote business component), you would enter
Quote.Opportunity
. To constrain records to the value of the Account Name attribute, you would enterAccount Name.
PickField. Specifies the picklist field name. When the user selects a record from the pick applet, the contents of this field becomes the attribute value shown in the selection page. Use the business component field name, not the field's display name.
Constrain. When set to "Y" (Yes), PickMap specifies a business component field that filters the records the user sees in the pick applet. If not specified, the default is "N" (No).
BusObj. Specifies the business object in which the PickMap definition is active. If omitted, the PickMap definition is active in all business objects. For example, if you set BusObj="Order Entry", the PickMap applies to orders but not quotes. Use this argument to constrain the pick applet differently for orders than for quotes. If you insert a BusObj argument in PickMap01, this limits the display of the select icon and pick applet to the specified business object, for example Quote.
Process of Creating an Attribute with a Business Component Domain
You associate a business component with an attribute using the same process as creating a pick applet in Oracle's Web Tools, with the following modifications:
Configuring the originating applet. The selection page takes the place of the originating applet. You replace this procedure with steps that define the attribute and insert it in the selection page. To do this step, see Adding the Attribute to a Selection Page.
Configuring the pick applet. You can use an existing pick applet or define a new applet. If you define a new pick applet, there is no change to the procedures described in Siebel Tools Reference.
Configuring the originating business component. These procedures are replaced by defining a series of UI properties on the attribute. These UI properties specify the pick applet name, picklist name, and pick map definitions. You can define multiple pick maps that display the content of several fields from the same record. You can also define UI properties to constrain the pick list.
Configuring the picklist. You can use an existing picklist or define a new one. If you define a new one, there is no change to the procedures described in Siebel Tools Reference.
Assuming that the picklist and pick applet are already defined in Oracle's Web Tools, to define an attribute with a business component domain, perform the following tasks:
Adding the Attribute to a Selection Page. First, add the attribute to a selection page.
Associating the Attribute with a Business Component. Associate the attribute with a business component by defining UI properties on it.
Setting Up Multiple Fields for Display. Optionally, you can set up attributes so that selecting a value for one automatically selects the values for others.
Creating a Business Component Field Constraint. Optionally, you can constrain a pick applet so that it displays only the records having a specified field value.
Creating an Attribute Value Constraint. Optionally, you can constrain the records that display in the pick applet based on the value of an attribute in the selection pages.
Creating a Search Expression Based on the Current Instance. Optionally, you can constrain the records in a pick applet based on an expression that will be computed at run time and is dynamic in nature.
Refreshing Attributes with Business Component Domains. Optionally, you can refresh the attribute value with the business component field value when you launch Siebel Product Configurator.
Adding the Attribute to a Selection Page
This step creates the attribute in the class system and defines where it displays in the selection pages. It replaces configuring the originating applet step in the Oracle's Web Tools process for creating a pick applet.
This task is a step in Process of Creating an Attribute with a Business Component Domain.
The attribute data type must be the same as the data type of the business component field from which the attribute value will come. For example, if the data type of the business component field is Boolean, the attribute data type must be Boolean. The application does not verify that the attribute data type and the business component field data type are the same.
In the User Interface view, you do not need to pick a UI control for the attribute. When you define the PickMap01 UI property on the attribute, the application automatically assigns a text field with select button to the attribute. When you select a record from the pick applet, the specified field in the record displays in the attribute text box.
If you select a UI control for the attribute, it will be overridden by the text box with select button.
To add the attribute to a selection page
Define an attribute on a class. Leave the list of values and the Default Value field blank.
Verify that only products that are themselves customizable products or will always be components of customizable products are assigned to the class. Products that will be part of bundles must not be assigned to the class since they are not configured using selection pages.
Navigate to the Administration - Product screen, then the Product Definitions view, and select and lock the desired product with components. This product must belong to the class on which the attribute is defined.
In the User Interface view, select a group and add the attribute to the Group Item List.
Do not select a UI control for the attribute.
Associating the Attribute with a Business Component
This step defines the UI properties needed to associate the attribute to a picklist. It replaces configuring the originating business component step in the Oracle's Web Tools process for creating a pick applet. For information on these UI properties see About the UI Properties for Attributes with Business Component Domains.
This task is a step in Process of Creating an Attribute with a Business Component Domain.
The Product Administrator has created a product with components called Premier Service Package. This product has been assigned to a product class that has the attributes Account, Location, and Opportunity defined on it. These attributes have been added to a group in the User Interface view and will display in selection pages.
The Product Administrator wants users to be able to select an account name when configuring the product. To do this, the Product Administrator must define the following three UI properties on the Account attribute:
PickList. Its value is PickList Account.
PickApplet. Its value is Account Pick Applet.
PickMap01. This UI property provides the name of the attribute and the business component field. Its value is an XML tag that has the following elements:
PickMap Field = "Account". This is the attribute name.
PickField = "Name". This is the business component field.
The Account attribute displays with a text box in the configuration selection pages. When the user clicks the select button, the Account Pick Applet displays. When the user selects an account and clicks OK, the Account name is transferred to the Account field in the selection page.
The following table shows how to use the predefined UI properties to associate an attribute with a business component.
Table UI Properties
Name | Value |
---|---|
PickApplet |
The name of the pick applet. |
PickList |
The name of the picklist. |
PickMap01 |
This is an XML tag that associates the attribute name with the picklist field that you want to display. It can have the following values:
The PickMap that provides this information must be named PickMap01. |
Associating the attribute with a business component
Navigate to the Administration - Product screen, then the Product Definitions view.
In the Products list, select and lock the desired product with components.
In the Versions list, click the Work Space version.
Click the Properties view tab.
Select the desired attribute in the Explorer applet.
Click New in the List applet.
Define the UI properties as shown in the previous table.
Setting Up Multiple Fields for Display
You can group attributes together so that selecting a record from a pick applet for one attribute populates several attributes. You do this by defining additional PickMap UI properties on an attribute. These additional UI properties define how to populate the other attributes.
This task is a step in Process of Creating an Attribute with a Business Component Domain.
The attribute on which you define PickMap01 is called the primary attribute. The user selects a value for this attribute and this causes the values for the other attributes to be selected automatically.
The Product Administrator has created a product with components called Premier Service Package. This product has been assigned to a product class that has the attributes Account, Location, and Opportunity defined on it. These attributes have been added to a group in the User Interface view and will display in selection pages.
The Product Administrator wants users to be able to select an account name when configuring the product. When they do, the Account Administrator wants to automatically populate the Location attribute with the state in which the account is located.
To do this, the Product Administrator must define the following UI properties on the Account attribute:
PickList. Its value is PickList Account.
PickApplet. Its value is Account Pick Applet.
PickMap01. This UI property provides the name of the attribute and the business component field. Its value is an XML tag that has the following elements:
Field = "Account". This is the attribute name.
PickField = "Name". This is the business component field.
PickMap02. This UI property defines an attribute that will receive its value automatically when the user selects a value for the primary attribute. In this case, the attribute is Location. The value of the UI property is an XML tag that has the following elements:
Field = "Location". This is the attribute name.
PickField = "State". This is the business component field.
The Account and Location attributes display with a text box next to them in the configuration selection pages. When the user clicks the select button and chooses an Account name, it is transferred to the Account field and the state name is transferred to the Location field.
The following table shows how to use the predefined UI properties to set up multiple fields for display.
Table UI Properties
Name | Value |
---|---|
PickApplet |
The name of the pick applet. |
PickList |
The name of the picklist. |
PickMap01 |
This is an XML tag that associates the attribute name with the picklist field that you want to display. PickMap01 must be defined on the primary attribute Only the Field and PickField variables are required. Enclose their values in quotes. Field: The name of primary attribute. PickField: The name of the business component field. |
PickMap02 |
Only the Field and PickField variables are required. These variables are for attributes other than the primary attribute. These attributes will be populated automatically when the user selects a pick applet record for the primary attribute. Attribute values for these attributes are read-only. Enclose the attribute values in quotes. Field: The name of the attribute, other than the primary attribute. PickField: The name of the business component field. You can define PickMaps to populate as many fields as desired. Number the PickMaps in sequential order, for example Pickmap03, PickMap04, and so on. |
To set up multiple fields for display
Navigate to the Administration - Product screen, then the Product Definitions view.
Select and lock the desired product with components.
In the Versions list, click the Work Space version.
Click the Properties view tab.
Select the desired attribute.
Define the UI properties as shown in the previous table.
Creating a Business Component Field Constraint
You can constrain the records that display in the pick applet based on a field that they have in common with the business component that starts the configuration session. This is similar to using Oracle's Web Tools to constrain the display of records in a pick applet based on a field in the originating business component.
This task is a step in Process of Creating an Attribute with a Business Component Domain.
You do this by defining an additional PickMap UI property on an attribute. This additional UI property defines how to constrain the records in the pick applet specified in PickMap01. The constraint PickMap specifies the business component name and field to use to filter the records in the pick applet.
The Product Administrator has created a product with components called Premier Service Package. This product has been assigned to a product class that has the attributes Account, Location, and Opportunity defined on it. These attributes have been added to a group in the User Interface view and will display in selection pages.
The Product Administrator wants users to be able to select an account name when configuring the product in a quote. When they do, the Account Administrator wants to automatically populate the Location attribute with the state in which the account is located.
In addition, the Product Administrator wants to constrain the pick applet to display only the accounts associated with the opportunity name displayed in the Quote Opportunity field. For example, if the opportunity name is Boeing, the pick applet would display all the Boeing accounts only.
To do this, the Product Administrator must define the following UI properties on the Account attribute:
PickList. Its value is PickList Account.
PickApplet. Its value is Account Pick Applet.
PickMap01. This UI property provides the name of the attribute and the business component field. Its value is an XML tag that has the following elements:
Field = "Account". This is the attribute name.
PickField = "Name". This is the business component field.
PickMap02. This UI property defines an attribute that will receive its value automatically when the user selects a value for the primary attribute. In this case, the attribute is Location. The value of the UI property is an XML tag that has the following elements:
Field = "Location". This is the attribute name.
PickField = "State". This is the business component field.
PickMap03. This UI property filters the display of records in the pick applet to those having the same value as a field in the business component that starts the configuration session. The value of the UI property is an XML tag that has the following elements:
Constrain = "Y". This notifies the application that the UI property defines a constraint.
Field = "Quote.Opportunity". This is the business component name and field name that will be used as a filter.
PickField = "Name". This is the picklist field name that will be filtered.
The Account and Location attributes display with a text box next to them in the configuration selection pages. When the user clicks the select button for Account, a pick applet displays. It contains only the accounts that have the name specified in the Opportunity field of the quote that started the configuration session (Quote business component). When the user selects an account and clicks OK, the Account name is transferred to the Account field and the state name is transferred to the Location field.
The following table shows how to use the predefined UI properties to constrain the user's choices.
Table UI Properties
Name | Value |
---|---|
PickApplet |
The name of the pick applet. |
PickList |
The name of the picklist. |
PickMap01 |
This is an XML tag that associates the attribute name with the picklist field that you want to display. PickMap01 must be defined on the primary attribute Only the Field and PickField variables are required. Enclose their values in quotes. Field: The name of primary attribute. PickField: The name of the business component field. |
PickMap02 |
Only the Field and PickField variables are required. These variables are for attributes other than the primary attribute. These attributes will be populated automatically when the user selects a pick applet record for the primary attribute. Attribute values for these attributes are read-only. Enclose their values in quotes. Field: The name of the attribute, other than the primary attribute. PickField: The name of the business component field. You can define PickMaps to populate as many fields as desired. Number the PickMaps in sequential order, for example Pickmap03, PickMap04, and so on. Define one PickMap for each field. |
PickMap03 |
This PickMap defines the business component field used to filter the records displayed in the pick applet. Field, PickField, and Constrain variables are required. Enclose their values in quotes. Field: Specifies the business component name and field that filters the pick applet. The format for specifying the field name is The business component specified in Field must be in the same Tools business object (BusObj) as in Siebel Product Configurator. The field cannot be the field specified in PickMap01. For example, to constrain the records displayed in the pick applet to those having the current record's Opportunity name in the Quotes view, (Quote business component), you would enter PickField: Specifies the name of field in the picklist that is filtered by the Field variable. Constrain: Must be set to "Y". All PickMaps must be have a unique number. For example if there are 4 PickMaps, PickMap01...PickMap04, name the constraint PickMap, PickMap05. |
To use a field to constrain the user's choices
Navigate to the Administration - Product screen, then the Product Definitions view.
Select and lock the desired product with components.
Navigate to the Properties view.
Select the desired attribute.
Define the UI properties as shown in the previous table.
Creating an Attribute Value Constraint
You can constrain the records that display in the pick applet based on the value of an attribute in the selection pages. The attribute value is used to create a search specification that matches the attribute value to the value in a field in the business component that populates the pick applet.
This task is a step in Process of Creating an Attribute with a Business Component Domain.
For example, you define an attribute called Account Name. In a configuration session, the user selects Hewlett Packard from the pick applet you have defined for this attribute. You have also created an attribute called Address. You have defined a pickmap for this attribute that constrains the display of addresses to those belonging to the value of the Account Name attribute, which is Hewlett Packard. The pick applet for Address would display only those addresses for Hewlett Packard.
You create an attribute value constraint in the same way as creating a business component constraint. The only difference is that for Field you specify the attribute name rather than a buscomp.fieldname
in the pickmap definition. Using this example, you enter Field="Account Name"
.
Creating a Search Expression Based on the Current Instance
You can constrain the records that display in the pick applet based on an expression that can be computed at run time and is dynamic in nature. The expression can refer to the values in the configuration session. The product administrator can use the standard Siebel Product Configurator path syntax to define instance variables or values within the search expression.
You do this by defining a PickSpec UI property on an attribute. This additional UI property defines how to constrain the records in the pick applet by specifying the search expression to use to filter the records in the pick applet.
This task is a step in Process of Creating an Attribute with a Business Component Domain.
For example, the Product Administrator has created a product with components called Premier Service Package. This product has been assigned to a product class that has the attributes Job Role, Contact Last Name, Contact First Name defined on it. The Job Role attribute is a drop-down menu with values Please Specify, Manager, and Business Analyst with default attribute value set to Please Specify. The Contact attribute launches the Contact pick applet. These attributes have been added to a group in the User Interface view and will display in selection pages. The Product Administrator wants users to be able to select the Job Role when configuring the product in a quote. When they do, the Product Administrator wants to constrain the Contact pick applet based on the Job Role. For example, if the attribute Job Role is set to Manager and the quote's account name is Boeing, the contact pick applet displays only the contacts who are managers that belong to the Boeing account.
To do this, the Product Administrator must define the following UI properties on the Contact attribute:
PickList. Its value is PickList Contact
PickApplet. Its value is Contact Pick Applet
PickMap01. This UI property provides the name of the attribute and the business component field. Its value is an XML tag that has the following elements:
Field = "Contact Last Name". This is the attribute name.
PickField = "Last Name". This is the business component field.
PickMap02. This UI property defines an attribute that will receive its value automatically when the user selects a value for the primary attribute. In this case, the value is Contact First Name. Its value is an XML tag that has the following elements:
Field = "Contact First Name". This is the attribute name.
PickField = "First Name". This is the business component field.
PickSpec01. This UI property filters the display of records in the pick applet based on a search expression. The expression can include references to the current instance. Its value is an expression that has the following elements:
[PickField] = 'CfgEval('$Cur.xa[Attr Name].xf[Value]')'
PickField = "Job Title". This is the business component field.
Attr Name = "Job Role". This is the attribute name of the product
The expression displays all the contacts whose job title is the same as it is displayed in the Job Role attribute.
PickSpec02. This UI property defines additional search specifications. The value is an expression that has the following elements:
[PickField] = 'CfgEval('$Cur.xa[Attr Name].xf[Value]')'
PickField = "Account". This is the business component field.
Attr Name = "Account Name". This is the attribute name of the product. The Account Name attribute is bound to the Quote's Account field using the LineItemICField property. For more information, see Binding an Attribute Value to a Line Item Integration Component Field.
The expression displays all the contacts whose account name is the same as it is displayed in the Account Name attribute.
The Job Role attribute displays with a combo box next to it, and the Contact Last Name and First Name attributes display with a text box next to them in the configuration selection pages. The user sets the Job Role attribute as Manager. When the user clicks the Select button for Contact Last Name, a pick applet displays. It contains only the contacts who are managers that are associated with the account name displayed in the Quote Account field.
The following table shows how to use the predefined UI properties to constrain the user's choices.
Table UI Properties
Name | Value |
---|---|
PickSpec 01 |
This is a search expression used to filter the records displayed in the pick applet. The search expression can include references to the current instance.
Note: PickSpecs may include If...Else...If...Else statements (i.e IIF expressions). However, CfgEval functionality is not supported within the IIF expression at this point in time.
|
To use an expression to constrain the user's choices
Navigate to the Administration - Product screen, then the Product Definitions view.
Select and lock the desired product with components.
Navigate to the Properties view.
Select the desired attribute.
Define the UI properties as shown in the previous table.
Refreshing Attributes with Business Component Domains
Attributes with business component domains can be refreshed from the database during the configuration session initialization. You can define a new set of join like UI properties on attributes. When the user starts the configuration session, the attribute values get updated from the line item field values. When refreshing the business components returns no rows, then the attribute values are left unchanged.
This task is a step in Process of Creating an Attribute with a Business Component Domain.
For example, the Product Administrator has created a product with components called Premier Service Package. This product has been assigned to a product class that has the attributes Last Name, and Role defined on it. The end user picks a contact using the contact pick applet defined on the Last Name attribute, and the Role attribute is defaulted to Business Analyst. The contact gets promoted to a Manager, and the contact's new job title information is updated in the application. The end user re-customizes the product Premier Service Package. When Siebel Product Configurator is launched, the job title attribute gets automatically refreshed from Business Analyst to Manager.
To do this, the Product Administrator must define the following UI properties on the Contact Last Name attribute:
RefreshBO. Its value is Contact
RefreshBC. Its value is Contact
RefreshKey. Its value is Id
RefreshMap01. This UI property associates the attribute name with the business component field that needs to be refreshed. Its value is an XML tag that has the following elements
<RefreshMap Field="Role" RefreshField="Job Title"/>
Field = "Role". This is the attribute name.
RefreshField = "Job Tile". This is the business component field.
The following table shows how to use the predefined UI properties to refresh attributes with business component domains.
Table Predefined UI Properties
Name | Value |
---|---|
RefreshBO |
The name of the refresh business object. |
RefreshBC |
The name of the refresh business component. |
RefreshKey |
The name of the unique identifier, the Id field of the refresh business component. |
RefreshMap01 |
This is an XML tag that associates the attribute name with the business component field that needs to be refreshed. <RefreshMap Field="Attribute Name" RefreshField="BuscompFieldName"/>
|
RefreshMapnn |
RefreshMap02 and so on, refresh multiple fields from the same business component. |