- 22 Nov 2024
- 10 Minutes to read
- Print
- DarkLight
Define range triggers
- Updated on 22 Nov 2024
- 10 Minutes to read
- Print
- DarkLight
A range trigger limits available values for certain attributes based on other attribute values selected on the configuration page, or on data points in a quote or sales item. To apply such limits, range triggers use quote attributes.
A product modeler can add more than one quote attribute as a controlling value for a range trigger.
In this topic:
How a range trigger works
Range triggers use the OR operator between attributes in the same sheet and apply UNION logic to combine values across trigger sheets. However, if intersected range values exist, range triggers apply the INTERSECTION logic instead. If a shared attribute exists across different trigger groups and the range value is based on that attribute, the following logics apply:
Common range value across all groups.
If trigger groups return a common attribute, a user will only see values common to all three groups.Example of such groups:
No common range value across all trigger groups with shared attribute.
If trigger groups with a shared attribute do not return a common attribute, the UNION of values from all groups is shown.Examples of groups with shared attribute but without a common range value:
For range restrictions based on specific logic (for example, if DA1 > 10 and DA1<= 20, then range value of DA2 must be 1,2,3; and if DA1>20, then the range value of DA2 must be 4,5,6), a product modeler can use a simplified conditional trigger and a dummy attribute. For details, read Get range value based on a specific logical condition.
Define a range trigger
Use one of the following methods to define a range trigger:
Prerequisites
To define a trigger, your product must have:
- Knowledge base
- Dynamic attributes
- (Optional.) Quote attributes
From the UI
- From the application left navigation area, select Products.
- Select a product.
- From the top navigation bar, select Knowledge Base.
- Select a knowledge base.
- On the Triggers tab, select to define a new trigger group.
- On the New Trigger Group dialog, enter information or make selections:
- Name—Enter a name for the trigger group.
- Type—Select Range (White List).
- Select Create.
- Select the trigger group from the list.
- On the Attributes sub-tab, select , select attributes to add to the trigger group, then select Add.
- On the Triggers sub-tab, select to create a trigger.
- On the Conditions tab, define the trigger condition.
- From the bottom button bar, select Create.
- Create a knowledge base snapshot to apply the trigger.
Example
The following image shows three triggers. The first trigger means that if a user sets the DA1 value to DA1_1, they will only see DA2_1 as a possible value for DA2 and DA3_1 as a possible value for DA3.
From a knowledge base Excel spreadsheet
Download a product knowledge base.
On the Download Options dialog, on the Trigger Groups tab, select a checkbox next to Range (White List), and in the No. of Sheet(s) column specify the number of range trigger groups.In the downloaded file, on the RULE_X (where X is the trigger group sequence number) sheet, define information about the trigger group:
- Name—Enter a name for the trigger group.
- Sequence ID—Enter the trigger group's sequence ID. This ID helps to maintain the order of sheets inside the knowledge base spreadsheet when a user downloads it again.
(Optional.) To restrict the range value also by the quote attribute value, add the QUOTE_ATTRIBUTE.QuoteAttributeName column, where QuoteAttributeName is the name of the quote attribute.
TipQuote attributes allow you to restrict the range value by the Sales Organization of a quote, or by the product status of a sales item.
Define the range trigger conditions. Remove columns for attributes that are not part of the range trigger.
In Zilliant CPQ, select and then select the filled out spreadsheet to upload.
Confirm the upload.
Create a knowledge base snapshot to apply the trigger.
The following image shows a sample trigger group sheet with a manually-added quote attribute column:
Explore range trigger use cases
Explore the common use cases for range triggers:
- Ignore the trigger
- Apply both triggers for shared attribute’s range values
- Combine triggers
- Intersected range values in different groups
- Get range value based on a specific logical condition
- Define range restrictions based on a quote attribute
Ignore the trigger
If you define two triggers, but only one trigger's condition is met, only that trigger is applied.
A user defines the following two trigger groups. In the RULE_2 sheet, the user selects the DA4_4 value for DA4:
When the user selects DA1 to see its range value, based on the trigger, they will see DA1_4, as shown on the following images:
Reason: trigger group 1, defined in RULE_1 sheet, is not applied because none of the conditions were met. Only trigger group 2, defined in RULE_2 sheet, is applied by filtering the DA4 value to be DA4_4.
Apply both triggers for shared attribute’s range values
When multiple triggers affect a shared attribute, the values are gathered using the UNION logic.
A user selects the DA2_1 value for DA2 and the DA4_4 value for DA4. When the user selects DA1, which is defined in both triggers, they will see the DA1_1 (based on trigger 1) and DA1_4 (based on trigger 2) values. It means that the system uses the OR logic for attributes defined in one trigger and the UNION logic to gather all the results obtained from different triggers, as there is no common value returned from two different triggers.
Combine triggers
If a requirement combines triggers based on a common attribute, the values will reflect the OR and UNION logic.
There is a requirement to show the DA1's value as DA1_1 if the DA2 value is DA2_1; or to show the DA1's value as DA1_4 if the DA4_4 value is selected. To solve this requirement, a user needs to combine all triggers that have the common attribute (in this case, the common attribute is DA1), as shown on the following image:
After combining two triggers into one as shown above, the DA1's value will still be shown as DA1_1 and DA1_4 because of the following conditions:
- In the row, where DA1 has the DA1_1 value, DA2 and DA3 will be used to check the condition using the OR logic. Since DA2 has the DA2_1 value, that row is valid as it uses the OR logic between the condition attributes for the range restriction.
- In the row, where DA1 has the DA1_4 value, DA4 and DA5 will be used to check if the row is valid for getting the range value. Since DA1_4 has the DA4_4 value, the row is valid and thus DA1_4 will become a part of the DA1 range value.
To satisfy the requirement to show only DA1_1 once the DA2_1 value is selected for DA2, the user needs to set default values for DA2, DA3, DA4, and DA5 in those rows where DA1 has an assigned value, as shown on the following image:
In this way, if the user starts with DA2 and sets its value to DA2_1, they can only select DA4_NONE for DA4 and DA1_1 for DA1, as shown on the following images:
{width="400"},
If the user starts with DA4 and sets its value to DA4_4, they will see None in DA2 and DA1_4 in DA1, as shown on the following images:
Intersected range values in different groups
When intersected values exist across different triggers, the INTERSECTION logic shows only the common values.
A range trigger was defined, where a user expected the value of DA1 to display as DA1_1 when DA2 was set to DA2_1 and DA4 was set to DA4_4. In other words, they wanted the range values to reflect the common intersection (DA1_1). According to the intersection rule, the range value from the RULE_1 sheet (DA1_1) intersects with the range values from the RULE_2 sheet (DA1_1, DA1_4) to yield DA1_1.
Since both trigger groups have the common range value DA1_1 from RULE_1 and DA1_1,DA1_4 from RULE_2 due to interception concept, the final range value becomes DA1_1.
Intersection concept used in this case:
Get range value based on a specific logical condition
The requirement is to apply a range restriction based on an attribute value that is greater than or equal to a specified threshold. First, the attribute used as the condition must be DDA with a numeric data type. Below is an example trigger to restrict the range value of DA1 based on the attribute DDA_NUMBER1. For example, if the value of DDA_NUMBER1 is greater than 10 and less than or equal to 20, the range value for DA1 should be set to DA1_1.
Since the range restriction algorithm only applies the EQUALTO operator to values in each attribute column, a dummy attribute is needed to hold a value derived from DDA_NUMBER_1. To achieve this, write a conditional trigger or IMCScript to assign a unique value, which will then be used to restrict the value of DA1.
Define a dummy attribute as shown below. For details on creating dynamic attributes, read Create a dynamic attribute from the UI in Create dynamic attributes.
Add the dummy attribute to the product and an attribute group.
For details on adding an attribute to the product, read Add dynamic attributes to products.
For details on adding attributes to a group, read Group dynamic attributes in a knowledge base.Download the product knowledge base to which you added the dummy attribute.
On the Download Options dialog, select the simplified conditional trigger and the range trigger.In the downloaded template, define conditional triggers for the dummy attribute, as shown on the following images:
To upload the edited template to Zilliant CPQ, select and then select a file to upload.
Uploading RULE_1 and RULE_2 and setting the DDA_Numeric_1 value will make the conditional trigger assign a value to the dummy attribute. When retrieving range values for DA1, the RULE_2 is applied based on the dummy attribute, restricting DA1's range values accordingly, as shown on the following image:
Define range restrictions based on a quote attribute
In some cases, a product modeler may want to define a simple range restriction based on a quote attribute.
Define range restrictions based on a quote attribute from the UI
If needed, create a knowledge base.
Create a new Range (White List) trigger and add the quote attribute as the controlling data point. Then, add a dynamic attribute whose range values will be restricted based on the quote attribute. For details on adding attributes to the product knowledge base, read Add dynamic attributes to products.
Add triggers to restrict the range values of the knowledge base attribute (in this case, DA5) based on the quote attribute’s value. In the following image, if the quote’s sales organization is set to 0006, the DA5 value will be limited to DA5_1. Because of the quote attribute’s onType and onAttribute properties, a modeler can select the Sales Org ERP ID from the provided list.
The quote attribute value will not be restricted by the knowledge base attribute. Typically, if a product model includes such attributes in a trigger, the user should be informed to assign a value to the quote attribute (for example, Sales Org) before making any configurations.
Define range restrictions based on a quote attribute from the Excel spreadsheet
Download the product knowledge base.
On the Download Options dialog, on the Quote Attributes tab, select the quote attribute and specify the number of columns.In the downloaded template, on the ATTRIBUTES_RANGE sheet, the specified in Step 1 number of columns appear.
The image below shows the following two columns that were added on the ATTRIBUTES_RANGE sheet:- 1: QUOTE_ATTRIBUTE.Sales Org ERP ID
- 1 represent the index,
- QUOTE_ATTRIBUTE represent the QUOTE_ATTRIBUTE sheet name
- Sales Org ERP ID is the object name of KBTriggerRelation
- 2: QUOTE_ATTRIBUTE.Sales Org ERP ID
- 1: QUOTE_ATTRIBUTE.Sales Org ERP ID
In the example above, the DA2 value will be restricted to DA2_1 if a quote's sales organization is 0006.
This procedure is not suitable for scenarios where the requirement is to restrict the range value not only by a quote attribute but also by another attribute’s value. In this case, you need to use the standard trigger definition with a quote attribute.