12Siebel Configurator UI Properties
Siebel Product Configurator UI Properties
This chapter explains how to use the Properties view to modify the display of selection pages for customizable products. You must define a work space and have used the User Interface view to define selection-page layout before using the Properties view. It includes the following topics:
About Siebel Product Configurator UI Properties
A UI property is a named variable and its value. UI properties modify the display of an item in Siebel Product Configurator. You define a UI property by selecting the desired item and then defining one or more UI properties for it.
There are two types of UI properties:
Predefined UI properties, such as Hide, are Siebel-provided UI properties that perform special functions. For more information, see About Predefined UI Properties.
User-defined UI properties are those that you define and then insert into a Web template to control the display characteristics of an item. For more information, see Using User-Defined UI Properties.
The Properties view displays all the items in the customizable product:
Product Name
Attribute
Relationship
Group
Linked Item
Resource
To use the Properties view, you select an item in the customizable product and then define a UI property for the item in Item Display Properties. Each record in Display Properties has two fields. The first contains the name of the UI Property variable. The second field contains the value you want to assign to the variable. This value is what displays in the configuration session.
Observe the following guidelines when defining UI properties:
The relationship between an item and a UI variable name is one-to-one. You cannot define multiple UI properties for an item, each with the same variable name.
An item can have multiple UI property definitions, each for a different UI variable. An example of this would be an item that appears in multiple locations within a customizable product.
About Predefined UI Properties
The following table shows the predefined UI properties that you can use. These UI properties provide commonly desired ways to modify the display of items. You do not need to insert a variable name for these properties into a customizable product Web template. You only need to assign them to the desired item in the Properties view. These properties apply to both the existing Siebel Product Configurator, and the developer preview integration with Oracle Advanced Constraint Technology installations.
Siebel_SWSM_Root\applicationcontainer\webapps\siebel\images. For more information on file paths, see Siebel Installation Guide for the operating system you are using.
Table Predefined UI Properties
Property Name | Value | Description |
---|---|---|
EnableOraCfgEngine |
Y or N |
Allows the controlled deployment of the ACT engine. If set to Y on a customizable product, the model executes using ACT engine otherwise, model uses existing engine.
Note: This UI property overrides the EnableOraCfgEngine system preference. When the root customizable product and the child customizable product have different EnableOraCfgEngine values, then the model uses the value assigned to the root customizable product. For example, if EnableOraCfgEngine is equal to N for the root customizable product, and the child customizable product value is equal to Y, then the value N is used when loading the root customizable product including child customizable product. However, when customizing just the child customizable product, it uses the new Siebel Constraint Engine engine.
|
Excluded |
Y |
Cannot be defined on products within a relationship or attribute values. When defined on a relationship, prevents all excluded items in the relationship from displaying. If an item in a relationship is a product with components, does not prevent display of excluded products within that product with components. When defined on the product root, prevents excluded items from displaying throughout the product. When defined on the attribute definition, prevents excluded attribute values from displaying. This property is applicable for enumerated attribute definitions. |
Hide |
Y or N |
When set to Y for any relationship, product or attribute, this value causes that item to be omitted from the UI selection pages during customization. This UI property is very useful with class-products. For child products in the class, you can hide portions of the product structure inherited from the class-product. This allows you to define the class-product structure and then tailor its display for each of the child products that inherit the structure. Can be defined on any part of a customizable product structure, shown on one side of the tree view that displays in the UI Properties administration view. Acts at the UI level, so if you add this UI property to hide the values that are selected in the existing quotes it does not remove these values from the structure, but only changes the display. This property hides the item statically, so it remains hidden. You hide products dynamically using a different property, described in Creating Dynamic Siebel Product Configurator User Interface Controls . |
Description |
Enter a text string. |
Define on relationships only. Enter the text exactly as it will display to the user. |
Image |
Images/<filename> |
Define on relationships only. The image displays beside of relationship header. The image is displayed full size. |
LearnMore |
Enter the full URL to the desired location |
Use with relationships only. Do not use with component products, resources, attributes, or links. The words "Learn More" are displayed adjacent to the item and are a hyperlink to the URL you enter. |
ProductHeader Image |
Images/<filename> |
Define on product root only. Displays an image of the root product on every selection page. Image displays beneath item header, to one side of item labels. The default image area is 120x120 pixels square. Can only be defined on product root. |
FullComputation |
Y |
When set to Y (Yes) and user makes an attribute selection, the Siebel Product Configurator engine updates the selection state of all the attribute values so that only selectable values are displayed. For example, if one of the values is excluded, it displays unavailable. Can cause performance reduction. This is the default. When set to N (No), the Siebel Product Configurator engine does not update the selection state of the other attribute values and displays all the values as selectable. For example, if one of the values is excluded, it does not display unavailable. If users select an excluded value, they receive a conflict message. Use this UI property when display of the selection state of attribute values is required. Define on attributes with LOV domains only. |
Resource |
Y |
Define on attributes only. When this property is set, the attribute value will be treated as engine picked, which works similar to a resource. This property is commonly used when an attribute is used as a counter that will not be changed directly by a user and that will be recalculated every time regardless what previous value or state is. |
Default Group |
The name of a valid group |
This property specifies the default group loaded in the grandchild display. |
Grandchild Enabled |
Y |
Define this property at the appropriate attribute group item level in order to show attributes in line with products in the grandchild display. |
Grandchild Type |
combo, text, radio |
Define this property at the appropriate attribute group item level in order to show attribute in line with products in the grandchild display. This property specifies the type of attribute user-interface control to load. |
MultiChildrenPort[N] |
This property is used by the CP UI service. It lets the UI service know that before presenting a given group or the CP itself, the UI service needs to fetch more details about the user property value and relationship. You can define this at the root level or at each group level for multiple relationships (Name: MultiChildrenPort, Value: Intrastate, Name: MultiChildrenPort1, Value: USA, Name: MultiChildrenPort2, Value: Canada, Name: MultiChildrenPort3, Value: Extended and so on, where Intrastate, USA, Canada, Extended are relationship names within the CP. You would need to define this for each CP UI definitions. If you customize the OOTB template and add a template code to access child component information (attribute or relationship products) then you must define the root item as a multi children port. This is needed because the UICache used, may not contain the complete information needed for the UI (obsolete or not cached UI information such as accessing all attribute values of all products in the group item). The disadvantage of using this is that there will be performance penalty if the total relationship domains affected by these user properties are large. If you use this user property several times, remember to give them names such as MultiChildrenPort, MultiChildrenPort1, MultiChildrenPort2 and so on. (You cannot use MultiChildrenPort0.) |
|
MatchNewItemsInSolution |
Y |
When you have an asset with child products, and when you modify the asset and change its configuration, the engine removes all existing child items and then adds all new child items that fulfill the constraint rule. The Action Code field value changes from Delete, to Add. When this user property is set to Y on the root customizable product, the engine maintains and updates the existing child items while fulfilling the constraint rule.
Note: If you require the Action Code field of the original instance of the component to have the value Update, then the Cfg State Code in the component in the asset hierarchy requires the value Engine Picked.
|
Grandchild Sequence |
An integer greater than 0 |
This property is used to sort the grandchild attributes for display. Use it with the Grandchild Enabled property. Configure the UI properties for all attributes with the names Grandchild Sequence and with the values as integers representing the sequence numbers. In the user interface, the attributes are shown in ascending order of the sequence set, using this UI property. |
Siebel_SWSM_Root\applicationcontainer\webapps\siebel\images. For more information on file paths, see Siebel Installation Guide for the operating system you are using.
Using User-Defined UI Properties
After you give a name to a user-defined UI property, you can use the property by using the appropriate JavaScript syntax.
For example:
The UI property name is ExcludeAtt.
You can use the UI property name with the following JavaScript syntax:
attPropSet.GetProperty(".ExcludeAtt")
For an example of how user-defined UI properties can be used, see the use of the UI variable in the topic Creating a New Base Theme Template.
Defining a UI Property
A UI property is a named variable and its value. UI properties modify the display of an item in a customizable product. You define a UI property by selecting the desired item in a customizable product and then defining one or more UI properties for it.
If you are using an attribute from a line item integration component field to define the UI property, see Binding an Attribute Value to a Line Item Integration Component Field.
To define a UI property for a product
Navigate to the Administration - Product screen, then the Product Definitions view.
In the Products list, select and lock the desired product.
In the Versions list, click the Work Space version.
Navigate to the Properties view.
In the Explorer applet, click the name of the item for which you want to define a UI property.
In Properties view, add a new record and complete the necessary fields, described in the following table.
Field Comments Name
Enter the name of the UI property variable. The variable can be predefined or user-defined.
Value
Enter a value for the variable. The value can be predefined or user-defined.
Creating Dynamic Siebel Product Configurator User Interface Controls
User properties allow you to show or hide user interface controls, to make user interface controls read-only, or to show or hide images, based on the choices that the user makes in Siebel Product Configurator.
For example, a business sells tee-shirts that can be personalized with the name and business name of the purchaser or that can be bought without personalization. The root product is a tee-shirt with attributes including the following: Personalize and Name. If the user selects the Personalize checkbox (which makes the Personalize attribute equal Y), then an additional Siebel Product Configurator tab is displayed that allows the user to enter the customer's name and the business name.
Dynamic Siebel Product Configurator user interface controls are discussed in the following topics:
About Using CfgEval()
Use CfgEval() to access instance information inside Siebel Product Configurator, for example, to whether a user has set an attribute or selected a component product.
CfgEval() returns a Boolean value and is currently supported within:
The PickSpec UI property
The Dynamic Show and Hide and Dynamic Read-Only.
Syntax Enhancements for CfgEval()
CfgEval() uses the standard syntax for product paths in Siebel Product Configurator. For more information, see Siebel Product Configurator Scripts.
CfgEval() also uses the following enhancements to the syntax for product paths:
Use .xa[Attribute Name] to specify the attribute name
Use .xf[Value] to return the attribute value
Use .xf[Quantity] to return the product quantity
Here are examples of these enhancements:
To return an attribute value:
CfgEval($.[Root Product]#1.[Relationship]#[Component Product].xa[Attribute].xf[Value])
To return the quantity of a component product:
CfgEval($.[Root Product]#1.[Relationship]#[Component Product].xf[Quantity])
Using Cfg Eval() with Dynamic Show and Hide, Dynamic Read-Only, and Dynamic Display of Images
To use dynamic show and hide, dynamic read-only, or dynamic display of images, you must create a UI property on the root product whose value is an expression that uses the CfgEval() function and that evaluates to Y or N. For more information, see Dynamically Showing and Hiding Siebel Product Configurator Controls.
You can define the expression using the CfgEval() function in either of two ways:
Session Values. Use the CfgEval() function to create simple expressions that reference session values such as the product quantity and attributes that the user selects. Here are some examples of how to use this function:
Check whether the user has selected an attribute on the Root Product:
CfgEval($.[RootProduct]#1.xa[AttributeName].xf[Value])='ABC'
Check whether the user has selected an attribute on the Child Product:
CfgEval($.[RootProduct]#1.[RelationshipName]#[ChildProductName].xa[AttributeName].xf[Value])='ABC')
Check the quantity of a child product:
CfgEval($.[RootProduct]#1.[RelationshipName]#[ChildProductName].xf[Quantity]) = '2'
To return an attribute value of a child product:
CfgEval($.[RootProduct]#1.[RelationshipName]#[ChildProductName].xa[AttributeName].xf[Value])
To return the quantity of a child product
CfgEval($.[RootProduct]#1.[RelationshipName]#[ChildProductName].xf[Quantity])
For information about the syntax used in these functions, see About Product Path in Siebel Product Configurator Scripts.
Procedural Conditional Variables. Use the CfgEval() function to reference procedural conditional variables to create more complex expressions, which are useful when you want to dynamically show or hide controls based on linked items, resources or compound expressions. For more information about procedural conditional variables, see Procedural Condition Templates.
Here is an example of the format needed to use the CfgEval() function to reference a procedural condition:
CfgEval(Procedural Condition Constraint Name)
.Procedural conditional variables do not work with the Quick Edit or Multi-Select UI, because the constraint engine is disabled.
If the CfgEval() references the quantity of a child product and if there is more than one instance of this child product in the product, then CfgEval() computes the sum of the quantity in all the instances of the child product.
User actions that change the value of the CfgEval() expressions cause a page refresh, if controls must be hidden, shown, or inactivated.
Dynamically Showing and Hiding Siebel Product Configurator Controls
To dynamically show and hide Siebel Product Configurator controls, perform the following high-level steps:
On the root product create a UI property with the name CfgUIStateModel and with the value Y.
On the root product, create a UI property with some given name, such as MyExpression, and with a value that is an expression that evaluates as Y or N. Define this expression using the CfgEval() function. For more information, see About Using CfgEval().
On UI controls for this product (such as relationships, groups, products, tabs, attributes, linked items or resources) create UI properties with the name DynamicHide plus the name you gave to the expression. For example, the name might be DynamicHide MyExpression. These controls are hidden when the expression evaluates to Y and shown when the expression evaluates to N.
To dynamically show and hide Siebel Product Configurator controls
On the root product, create a UI property with the name CfgUIStateModel and with the value Y:
Navigate to the Administration - Product screen, Product Definitions view.
Lock the Product you want to change.
Drill down on the Work Space version of the Product you want to change.
Navigate to the Properties view.
In the Properties list, add a new record and complete the necessary fields, as described in the following table.
Field Description Name
Enter CfgUIStateModel.
Value
Enter Y.
On the root product, create a UI property with some given name, such as MyExpression, and with a value that is an expression that evaluates as Y or N:
In the Properties list, add a new record and complete the necessary fields, as described in the following table.
Field Description Name
Enter a name for the expression, such as MyExpression.
Value
Enter some expression that evaluates to Y or N, using the CfgEval() function to reference session values or procedural conditional variables.
On UI controls for this product (such as relationships, groups, products, tabs, attributes, linked items or resources) create UI properties with the name DynamicHide plus the name you gave to the expression in Step 2, and with a value that is Y or N.
Select the relationship, group, product, tab, attribute, linked item or resource.
Navigate to the Properties view.
In the Properties list, add a new record and complete the necessary fields, as described in the following table.
Field Description Name
Enter DynamicHide plus the name you gave to the expression.
For example, you might enter DynamicHide MyExpression.
Value
Enter Y or N.
The control is hidden when the value of the expression matches the value you gave to this property (Y or N).
Release the product.
Example of Dynamically Showing and Hiding Siebel Product Configurator Controls
This topic gives one example of dynamic show and hide. You might use this feature differently, depending on your business model.
This topic shows how to create the example described earlier. A business sells tee-shirts that can be personalized with the name and business name of the purchaser or that can be bought without personalization. The root product is a tee-shirt with attributes including the following: Personalize and Name. If the user selects the Personalize checkbox (which sets the Personalize attribute to Y), then an additional Siebel Product Configurator tab is displayed that allows the user to enter the customer's name and the business name.
This example assumes that you have defined the product and have defined the Siebel Product Configurator UI, including the tab used for personalization. The requirement is that you use the dynamic show and hide feature to hide the Name attribute when the Personalize checkbox is not selected (so the Personalize attribute is N).
To dynamically show and hide a Siebel Product Configurator control
On the Tee-Shirt product create the CfgUIStateModel UI property:
Navigate to the Administration - Product screen, Product Definitions view.
Lock the Tee-Shirt product.
Drill down on the Work Space version of the Tee-Shirt Product.
Navigate to the Properties view.
In the Properties list, add a new record and complete the necessary fields, as described in the following table.
Field Description Name
Enter CfgUIStateModel.
Value
Enter Y.
On the Tee-Shirt product, create the second UI property:
In the Properties list, add a new record and complete the necessary fields, as described in the following table.
Field Description Name
Enter Expr1.
Value
Enter CfgEval($.[Teeshirt]#1.xa[Personalize].xf[Value])='No'
On the Name attribute of the product, create the UI property:
Select the Name attribute.
Navigate to the Properties view.
In the Properties list, add a new record and complete the necessary fields, as described in the following table.
Field Description Name
Enter DynamicHide Expr1
Value
Enter Y
Release the root product.
Dynamically Making Siebel Product Configurator Controls Read-Only
You make Siebel Product Configurator controls read-only in the same way that you hide them. For more information, see Dynamically Showing and Hiding Siebel Product Configurator Controls.
The only difference is that, in Step 3 in Dynamically Showing and Hiding Siebel Product Configurator Controls, you create a property for the control named DynamicReadOnly instead of DynamicHide.
Dynamically Displaying Images in Siebel Product Configurator
You can dynamically hide and show images in the Siebel Product Configurator user interface.
For example, the product is a tee-shirt that comes in two colors. It has an attribute named Color with the values Red and Blue. If user selects the attribute Red, then an image of the red tee-shirt is displayed. If user selects the attribute Blue, then an image of the blue tee-shirt is displayed.
You can dynamically display a number of images based on different conditions. That is, you can display Image1 when Expression1 is Y, display Image 2 when Expression2 is Y, and so on. For example, you can display dozens of images of tee-shirts with different colors.
Dynamic display of images is similar to dynamic display of Siebel Product Configurator controls. For more information, see Dynamically Showing and Hiding Siebel Product Configurator Controls. Differences are described in the following procedure.
To dynamically show and hide images in Siebel Product Configurator
Place a file for the image in the Siebel_SWSM_Root\applicationcontainer\webapps\siebel\images.
On the root product create the CfgUIStateModel UI property:
Navigate to the Administration - Product screen, Product Definitions view.
Lock the root product.
Drill down on the Work Space version of the root product.
Navigate to the Properties view.
In the Properties list, add a new record and complete the necessary fields, as described in the following table.
Field Description Name
Enter CfgUIStateModel.
Value
Enter Y.
On the root product create a UI property with the name NewImage Expr1 (where Expr1 is the name of the expression) and with a value that is the name of the image file:
Navigate to the Administration - Product screen, Product Definitions view.
Lock the product you want to change.
Drill down on the Work Space version of the product you want to change.
Navigate to the Properties view.
In the Properties list, add a new record and complete the necessary fields, as described in the following table.
Field Description Name
Enter NewImage MyExpression (where MyExpression is the name of the expression).
Value
Enter the name of the image file, including the name of the images directory.
For example, enter images/red_tshirt.jpg
On the root product, create a UI property that defines the expression, with some given name, such as MyExpression, and with a value that is an expression that evaluates as Y or N:
In the Properties list, add a new record and complete the necessary fields, as described in the following table.
Field Description Name
Enter a name for the expression, such as MyExpression.
Value
Enter some expression that evaluates to Y or N, using the CfgEval() function to reference session values or procedural conditional variables.
If you want to show and hide the image for the root product, add another property for the root product with the name DynamicImage plus the name you gave to the expression in Step 2, and with a value that is Y or N.
In the Properties list, add a new record and complete the necessary fields, as described in the following table.
Field Description Name
Enter DynamicImage plus the name you gave to the expression.
For example, you might enter DynamicImage MyExpression.
Value
Enter Y or N.
The control is hidden when the value of the expression matches the value you gave to this property (Y or N).
If you want to show and hide the image at the relationship level, create this property for the relationship.
Select the relationship.
Navigate to the Properties view.
In the Properties list, add a new record and complete the necessary fields, as described in the following table.
Field Description Name
Enter DynamicImage plus the name you gave to the expression.
For example, you might enter DynamicImage MyExpression.
Value
Enter Y or N.
The control is hidden when the value of the expression matches the value you gave to this property (Y or N).
Release the product.