Configuration Recommendation Rules
Overview
What are they?
Recommendation Rules can be used to help buyers configure your products by offering suggested attribute values. For each configuration where a model (or part) would likely have certain attribute values, you can create a recommendation. For example, a Meat Lovers pizza has only pepperoni and sausage as toppings and this can't be modified by the user. A recommendation rule can achieve this.
How do they work?
When recommendations trigger, they appear to buyers on the Model Configuration page. By default, recommendations display as text next to the configuration attributes with recommended values. They also use set types, that when enabled, can auto-populate the recommended values in the attribute fields.
Set Type | Description |
---|---|
None | The selected value for the action attribute in the rule will be recommended value for the attribute. It will show as a message and it can be modified by the user. |
Set | The setting of a recommended value can be prevented by locking the attribute, in which case, only the recommended values message is shown. This can be modified by the user. |
Forced Set | The rule will set the attribute value to the value chosen in the rule. This value is read-only and cannot be modified by the user. |
If you look at the image below, a recommendation rule is running that makes Service Type and Server read-only.
The Set Type that defines how a Recommendation rule will set an attribute can be defined in three places:
- In the attribute
- In a Recommendation rule that acts on the attribute
- In a Configuration Flow where the attribute is on the layout (Override must be checked)
When a Recommendation rule is fired, the system will look at all three of these locations to determine the Set Type. The “strongest” Set Type (with Forced Set being the strongest, Set being in the middle, and None being the weakest) will be used, regardless of where it is defined.
If one location says “Forced Set,” one says “Set,” and one says “None,” the attribute will be Forced Set. If two places say “Set” and one says “None,” the attribute will be Set, and so on and so forth.
When Auto Lock is on, user selections made to an attribute after a Recommendation rule “Set” the attribute to a different value will be retained if the Recommendation Rule is fired again (such as upon an Update).
For example: Recommendation rule 1 runs and sets Attribute X to A. The user then sets Attribute X to B. The user then clicks Update, and Attribute X retains its value of B. The recommendation message defined in Recommendation rule 1 for option A will appear.
- Auto Lock is on by default for all Recommendation rules that have a set type of “Set.” The Admin can turn Auto Lock off within an attribute by selecting “Set” for the set type and by not selecting Auto Lock. If this were done to Attribute X, the user would experience the following:
- Recommendation rule 1 runs and sets Attribute X to A. The user then sets Attribute X to B. The user then clicks Update, and Recommendation rule 1 runs and sets Attribute X to A.
Multiple Recommendation Rules Firing Simultaneously on an Attribute
If multiple Recommendation rules fire simultaneously on the same attribute, and if the attribute is not a Multi-Select Menu attribute, then only one Recommendation rule will set the value of the attribute. Recommendation rules are sorted for precedence according to the following criteria (in order):
- Descending order by where the rule is defined in the product hierarchy (Model level first and All Product Families level last)
- Descending order by number of attribute inputs for an advanced action’s function. For example:
- Advanced action function with 5 attribute inputs
- Advanced action function with 3 attribute inputs
- Advanced action function with 1 attribute input
- Simple action
-
Ascending order by the order number in the Recommendation Rules List.
See the section Reordering Rules in the topic Configuration Rule Overview.
Multiple Recommendation Rules Firing Simultaneously on a Multi-Select Menu Attribute
For any Text, Float, or Integer attribute that has Multi-Select Menu selected for its attribute type, it is possible that multiple Recommendation rules could fire simultaneously and act on different selections within the same attribute. For example:
- Attribute X has options A, B, and C.
- Recommendation rule 1 force sets Attribute X to A.
- Recommendation rule 2 sets Attribute X to B.
- Recommendation rule 3 sets Attribute X to C.
In this case all three options, A, B, and C will be force set. The strongest set type will apply to all Recommendation Rules if there are multiple rules acting on the same multi-select attribute at the same time.
Recommendation Rules and Search Flows
Recommendation Rules are applicable in Search Flows. If a Recommendation Rule is defined at the Product Family level, then you are given an option to specify the area of application of the rule. See Editing Recommendation Rules.
Administration
-
Navigate to the Recommendation Rules List page.
- Click Admin to go to the Admin Home Page.
-
Click Catalog Definition in the Products section.
The Supported Products page opens.
-
For the Product Family for which you want to create a Recommendation rule, select Recommendations in the Navigation column and click List.
The Recommendation Rules List page opens.
- Click Add to create a new rule.
-
Enter the rule Properties.
This section is where you will enter basic details about the rule. For example, the name, status and where it will be applied.
Label Description Name Enter the name of the rule. This is required. Variable Name Enter a variable name for the rule. The Variable Name field populates automatically. Variable names can only contain alpha-numeric characters and underscores. The entry can be changed before saving, but after saving the value is read-only.This is required. Description Enter a description, if desired. Status Determine the status of the rule:
- Active: Rule is fired when the condition is met.
- Internal: Rule is active only for FullAccess users; it is inactive for all other users.
- Inactive: Rule is not fired, even if the condition is met.
Edit Start/End Dates Select the box to open a date selector to set how long the rule will remain in the chosen status. If no duration is selected, the rule will remain on the selected status until you, or another FullAccess user, changes it. AJAX Enabled Upon checking this box, you are enabling AJAX functionality for the rule. This means that the rule will run without refreshing the page or requiring an action be performed.
- Prior to 19B, AJAX functionality is only available for Hiding and Constraint rules.
-
Beginning in Oracle CPQ 19B, Recommendation Rules can be AJAX enabled for JET Configuration UIs. AJAX functionality is only provided for JET Configuration UIs, this functionality is not available for legacy Configuration UIs.
-
Beginning in Oracle CPQ 21B, administrators can enable AJAX for Configuration Recommendation rules that have array attributes for rule conditions or actions. Previously, Recommendation rules with array attribute inputs were only evaluated if the attributes were set to auto update or if a user clicked the update action.
-
Select your Condition Type.
The condition section allows you to select the logic that specifies when a rule should run. There are three options: Always True, Simple Condition and Advanced Condition.
- Always True: The rule will fire automatically, every time, because a specific condition does not need to be met.
- Simple Condition: The rule will fire based on define condition attribute values that you select from a menu.
-
Advanced Condition: The rule will fire based on an advanced function written with BML.
Conditions are returned as Boolean.
- Choose to apply the rule to either Configuration, Selection, or both. Configuration is the default selection.
- Choose the Action type:
- Standard: You will use the UI to add attributes.
- Table Lookup: Select attribute values from a table. See Table Based Rules for more information.
- Select an attribute whose value needs to be set. Select one of the following options under Values:
- Choose attribute values from the Select Values menu.
- Click Define BML Function to set values through a BML script.
- Choose the Set Type:
- None: The user can input any value without encountering an error message.
- Set: A recommendation rule can change the value entered by the user unless the attribute is locked by the user.
Forced Set: A recommendation rule will change the value of the attributes regardless of what the user enters and if the attribute is locked or not.
-
Complete the Static Text text box in the Message to Display on User Side section.
Click Define BML Function and write a script that returns a string. This string is displayed as the comment. See the topic Pricing Rules for an example. - Click Update and Back to save and return to the Recommendation Rules List page.
Multi-Select Menu Recommendation Messages
When a user configures a Quote and a Recommendation Rule is firing, Recommendation Messages appear for recommended values that are not currently selected from the Multi-Select Menu. Once a recommended value is selected from the Multi-Select Menu, the following will occur within the below Recommendation Rule Set Types:
- Set Type – None: The Recommendation Message disappears for each individual selected value. The Recommendation Message will not appear even if additional values that are not recommended are also selected.
- Set Type – Set: The Recommendation Message disappears for each individual selected value. The Recommendation Message will not appear even if additional values that are not recommended are also selected.
- Set Type – Forced Set: The Recommendation Messages will not appear.
Create a "Bulk Table Lookup" Recommendation Rule
As in prior releases, recommendation rules help buyers configure products by offering suggested attribute values. For each configuration model, administrators can create recommendation rules to set suggested or likely attribute values. When recommendations trigger, they appear to buyers on the Model Configuration page. In addition to the "Standard" and "Table Lookup" recommendation rule action types available in prior releases, Oracle CPQ Release 18D provides a "Bulk Table Lookup" recommendation rule action type.
Administrators can use the "Bulk Table Lookup" action type in a recommendation rule to set the value of any Configuration attribute to which a model has access. For example: If a layout contains a Product Family attribute, a Product Line attribute, and a Model attribute, a "Bulk Table Lookup" based recommendation rule at the Product Family, Product Line, or Model level can set all of the attribute values.
"Bulk Table Lookup" recommendation rules can set the values for many attributes using a single rule based upon conditions and recommended attribute values defined in a Data Table. This adds flexibility while reducing the number of recommendation rules and the administrative effort required to set Configuration attribute values.
In contrast to the "Table Lookup" recommendation rule action type, the attribute variable name for the "Bulk Table Lookup" recommendation rule action type is stored in a Data Table. Administrators do not choose action attributes explicitly at the rule level, providing them with an easier way to setup a generic rule where attributes are determined from the Data Table itself. Administrators can use this new action type to streamline the Configuration process by applying Configuration attribute value changes based on content in a Data Table column. The "Bulk Table Lookup" action type is available for all recommendation rules. When using a "Bulk Table Lookup" recommendation rule, the attribute variable name, attribute value, set type, and messaging can be provided dynamically.
To create a "Bulk Table Lookup" recommendation rule, perform the following steps:
- Open the Admin Home page.
- Select Catalog Definition under Products.
- Drill-down to the Product Family, Product Line, or Model to which you are adding the recommendation rule.
- Select Recommendations from the Navigation menu next to the Product Family, Product Line, or Model to which you are adding the recommendation rule.
- Click List.
-
Click Add.
- Enter the recommendation rule properties (e.g. Name, Variable Name, Description, and Status).
- Select a Condition Type.
Options include Always True, Simple Condition, or Advanced Condition. - Select an Apply rule to value:
- Configuration: Apply the rule to the Configuration. This is the default value.
- Selection: Apply the rule to Search Flows.
- Both: Apply the rule to both the Configuration and Search Flows.
- Select Bulk Table Lookup as the Action Type.
- From the Select Table tab, select the Data Table from which data is retrieved.
-
From the Specify Filter for Table Rows tab, click Add Row to define a filter that determines the rows to return in the result set. At least one filter is required. If there are multiple Data Table rows referencing the same attribute, the filter is used to determine the recommended value.
-
From the Evaluate Row With drop-down, select one of the following options and complete the row.
- Attribute: Select entries from the Table Column, Operator, and Value columns. The Value column becomes a drop-down showing Configuration attributes. Administrators can look up attribute variable names from the Value column. Upon making selections, the rule logic displays in the Select Rows in Table When section at the bottom of the page.
- Static Entry: Select a Table Column from the drop-down and enter a value in the Value column.
Administrators can look up attribute variable names from the Value column. Upon making selections, the rule logic displays in the Select Rows in Table When section at the bottom of the page.
- Enter the logical grouping of the matches in the Row Grouping (Order of Operations) section. If there is only one condition, this field is auto-populated.
-
Use the Map Bulk Recommendation tab to dynamically select the attribute on which the recommendation rule acts to set a value. The tab displays four read-only properties used to reference the bulk recommendation data table. Administrators select a Property Source and a Property Value for each Property.
- Table Column
- Static
- Values other than Set, Forced Set, and None are invalid values.
- The values are not case sensitive. For example: Set and set are both valid values.
- Table Column
- Static
- Select the Test Table Results tab.
- If any of your filtering is done dynamically, you must specify the filter criteria and click Run to test the recommendation rule output. The output represents the values visible to sales users on the Model Configuration page.
- Click Add.
The asterisk (*) symbol in the below table represents a read-only Property or Property Source.
Property |
Property Source |
Property Value |
---|---|---|
*Attribute To Populate |
*Table Column |
Select the Table Column that contains the attribute variable name of the attribute to populate. |
*Value To Populate |
*Table Column |
Select the Table Column that contains the attribute value to populate. The only Table Columns that are selectable are those with text content. Setting the value of numeric attributes is only successful when the Data Table row that calls out the numeric attribute has a properly formatted value in the selected value column. A properly formatted value includes Integer or Floating Point with the decimal separator as noted in the "Tips and Considerations" section. |
* Set Type |
Select a Set Type for the rule: |
If Table Column is the Property Source, select the Table Column that contains the Set Type to use. The valid Set Type values for the Table Column are None, Set, or Forced Set with a default of None for invalid values. If Static is the Property Source, select None, Set, or Forced Set from the Property Value drop down. |
* Message To User |
If administrators want to provide a message to the user, specify the source of the message: |
If Table Column is the Property Source, select the Table Column that contains the recommendation rule message to the user. If Static is the Property Source, enter the message to display to the user. |
Administrators can use the "Bulk Table Lookup" action type in a recommendation rule to set the value of any Configuration attribute to which a model has access.
For example: If a layout contains a Product Family attribute, a Product Line attribute, and a Model attribute, a "Bulk Table Lookup" based recommendation rule at the Product Family, Product Line, or Model level can set all of the attribute values.
- In order to reduce the risk that setup issues will impact sales users during Configuration, the "Bulk Table Lookup" recommendation rules will work even when references are missing the visible Product Family hierarchy. If the Data Table associated with a "Bulk Table Lookup" recommendation rule references an attribute that does not exist in the visible Product Family hierarchy, customers can have a warning display in the bm.log. To enable this functionality, open a Service Request (SR) on My Oracle Support, requesting that the "com.bm.xchange.services.configuration.bs.rules" logger is set to the "[warn]" level.
-
When the filter for a "Bulk Table Lookup" recommendation rule returns multiple rows for a single attribute, unique messages are concatenated together.
-
When setting float attributes using a "Bulk Table Lookup" recommendation rule, the decimal delimiter must be a period or the value is not correctly converted from the Data Table string.
Add Configuration Action as a Recommendation Rule Condition
Perform the following steps to add a Configuration action conditions for a Recommendation.
- Navigate to the Admin Home page.
- Click Catalog Definition in the Products section.
- Navigate to the applicable Product Family, Product Line, or Model.
- Select Recommendations from the Navigation drop-down, and then click List.
-
Select the applicable Configurable Action from the Attribute or Action drop-down.
- The following value are auto populated:
- Operator: Equals
- Value Type: Static
- Values: True
- If applicable, add Attributes and Values to Set.
- Click Apply or Update and Back.
Notes
When setting Configuration date attributes, use the following format: yyyy-MM-dd hh:mm:ss
Beginning in Oracle CPQ 19B, Recommendation Rules can be AJAX enabled for JET Configuration UIs. AJAX functionality is only provided for JET Configuration UIs, this functionality is not available for legacy Configuration UIs.