Table-Based Configuration Rules

Overview

Oracle CPQ provides a point-and-click editor to define recommendation and constraint rules that access Data Tables, without resorting to BMQL. Table-based rules enable:

Table-based rules fire on the user side when the condition is met. However, if no results are returned from the query then there is no impact on the action attributes. When multiple rows are returned for an action attribute, all returned values are recommended or constrained.

Administration

ClosedCreating a Table-based Rule

  1. ClosedNavigate to the Supported Product Families page.
    1. Click Admin to go to the Admin Home Page.
    2. Click Catalog Definition in the Products section.

      The  Supported Products page opens.

    3. Confirm that Product Families is listed in the Navigation column, and click List.

      The Supported Product Families page opens.

  2. For the Product Family for which you want to create a Table-based rule, select Recommendations in the Navigation column and click List.

    The Recommendation: Rules List page opens.

  1. Click Add to create a new rule.
  2. Enter the rule Closed Properties..

    This section is where you will enter basic details about the rule. For example, the name, status and where it will be applied.

    Configuration Rule Basic Details


  3. Select the ClosedCondition Type.

    Configuration rule Condition section

    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.

    ClosedConfiguration Context Attribute

    Beginning in Oracle CPQ 24B the Config Operation Context (_config_operation_context) configuration system attribute can be used to identify the operation that initiated the current Configuration session. This read only system attribute will reflect unique values for new configurations, reconfigurations, search flows, and ABO Modify actions.

    The Config Operation Context system attribute is available for use in all Configuration Rule type conditions and in BML advanced conditions and/or actions. For example, when a Config Operation Context attribute is selected in a simple condition, the possible values (new, reconfigure, modify_asset, and search_flow) can be selected in the Values drop-down.

    Config Context Attributes

    The Config Operations Context attribute can be used in Configuration Rules to allow Administrators to better manage the configuration experience if necessary. For example, if an administrator would like to define a rule that should only execute for a new configuration, or resulting from a modify asset action, they can use this new attribute to control execution.


  4. 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.
  5. Select Table Lookup as your Action Type. A field of four tabs opens.

    Select Table for rule

    If you are creating a Recommended Item rule, there will be an option to Split Items.
  6. In the Select Table tab, select the Data Table from which you would like to retrieve data.
  7. Click the Specify Filter for Table Rows tab and select to Evaluate the Row with:

    Specify Filter for Table Rows tab

    • Static Entry: You define a static value under the Value header.
    • Attribute: You select a configuration attribute to map the Table Column to in a drop-down that appears under the Value header.

    Array attributes used in the filter will execute for each array index. Also, array attributes with the same control attribute can be used in the same filter.
  8. Enter the order of operations in the Row Grouping section.

    If you only have one condition, you will still need to enter the value of 1 in this field.
  9. Click into the Value cell and select attribute values from the drop-down or enter a static value. This is based on what you selected in Step 8.
  10. Click on the Select Attributes to Populate tab.
  11. Click Add Row to add: 

    Select Attributes to Populate tab

  • The attribute(s) whose value you will populate with table data.
  • The table column that will populate the attribute
  • Set Type (None, Set or Forced Set), and
  • Message Type (Static or from a Table Column).

For Recommendation Rules: Specify the action attribute and the table column from which the recommendation value will be chosen. In addition, select a Set type for the rule.

For Constraint Rules: Specify the action attribute(s) and the constrained value. For Menu action attributes, choose the constraint type: Constrain or Allow.

  1. Click the Test Table Results tab.
  2. Select the Column and Value to test and click Run.

    Test Table Results tab

    The Output is the information from the table that will be returned when a user selects Meat Lovers as the Specialty Type (in this case).

ClosedCreating a Recommended Item Table-based Rule

Creating a Recommended Item Table Based rule is similar to how you'll use tables in Recommendations and Constraints. The main difference is instead of the 3rd tab being Select Attributes to populate, you'll have a Map Item Properties tab.

  1. Follow Steps 1-10 from Creating a Table-based Rule.
  2. Click the Map Item Properties tab. Here you will map attributes, static values or table columns to the item, quantity, comment and price (for example, return string columns).

     Map Item Properties tab

    HTML and Date attributes cannot be used as inputs for Map Items Properties.

    Array attributes can only be mapped to a return column when at least one array attribute with the same control was specified in the filter. The same index used in the filter will also be used to populate the mapping results.

    Property (Rec Item Display Columns) Property Source Option Property Value
    Item Table Column You must map directly to a table column, such as Part.
    Quantity

    Table Column

    Static Entry

    Attribute

    You can map to a table column, you can define a value, or you can map to a configuration attribute.

    Note: If you map the Quantity field to a Table Column, the table column must be of an integer data type.

    Comment

    Table Column

    Static Entry

    Attribute

    You can map to a table column, you can define a value, or you can map to a configuration attribute.
    Price

    Table Column

    Attribute

    Item Master

    You can map to a table column, you can map to an attribute, or you can map directly to the items master (parts database).
  3. Click the Test Table Results tab.

    In the Input Section, the Table Column will already be set (and read-only).

  1. Enter the Value to test and click Run.

     Test Table Results tab.


ClosedAction Attributes in Table-based Rules

The supported action attributes are Text, Integer, Float, Currency, HTML and Data type configuration attributes.


ClosedArray Attributes in Table-based Rule Actions

Recommendation and Constraint table-based rule functionality allows arrays to be used in actions. Use recommendation rules to set values or use constraint rules to constraint values of individual array indexes. Use the value(s) of an array set to pull information from a Data Table by mapping an array attribute to a Data Table column. The column will be used in the filter to evaluate the array attribute value. For a single array attribute, each index will be evaluated individually against the Data Table.



Simple table-based rules operate per index; they will not operate across indexes. Attribute type limitations are consistent with existing functionality. The table below represents how rules will operate depending on the condition and filter.


Notes

Only "Equals" and "Not Equals" operators are supported for querying blank values on text type attributes. If any other operator is used for blank values, the query will assume that the operator is "Equals" for "Contains", "Starts With" and "Ends With".

Similarly, the query will assume the operator is "Not Equals" for "Not Contains", "Not Starts With" and "Not Ends With" when querying for blank values.

You can specify multiple action attributes in the Select Attributes to Populate tab for any table-based rule. This behaves similar to standard configuration rules, which can have multiple action attributes where the rules fire per action attribute and not all action attributes have to be present in the flow for the rule to fire for one particular attribute. The rule fires if the condition is met and the condition attribute and the action attribute are in the flow.

All table data must be deployed to see the correct results in the Debugger.

Duplicate values returned by the query are removed and only unique values are recommended or constrained.

When deploying configuration, you can deploy Data Tables that are used in Table-based rules, which have undeployed changes.

You can include Data Tables that are used in Table-based rules in Configuration test to production. If the Data Table does not exist in production, it will be uploaded to the Default folder. If the Data Table exists in production, then the test site data will be appended to the production site data for that table.

If multiple messages are returned, then all messages are displayed in a comma delimited list to the end user, no matter which value is chosen by the user.

Array attribute type limitations are consistent with existing functionality. For example, if the table column is of numeric data type, then the array attribute(s) must be numeric.

In cases where quantity <=0, quantity will be shown as Qty = 1.

Prices will show as the following values in these situations:

  • On Request<=0 : Non Number value that is not the keyword “Base”
  • Not Defined: No price at all, or blank
  • Default Unit PriceKeyword “Base” is found in the Table

Blank queries are not supported for numeric data types.

Simple table based rules operate per index; they will not operate across indexes.

Only array attributes from the same set can be used in the Filter and Mapping tabs. Mixing and matching of array attributes across sets is not allowed.

Related Topics

Related Topics Link IconSee Also