I have a requirement to evaluate data for multiple valid combinations and return different results. Any decision rule like decision table/tree only return the result where particular row data is matched. But I want to evaluate all the rows till the end and return all true results. I know in Pega 7 we have Cascading approval rule which does the similar thing and the decision table called there does evaluate all the rows and return the result set but its more designed for multiple approvals. I want to achieve the similar functionality but for different use case.
The options I thought
1. Was to call the decision table/tree multiple times in a loop and keep a flag as a column in decision table for previous valid combination to not to check it again if the combination was returned true earlier.
2. Instead of calling decision tree/table check the preconditions in activity for each valid combination of data and set mutiple flags true.
Create a decision table that evaluates all rows. In an actions column header use a page list that appends an entry to the pagelist -- for example, .MyCustomers(<APPEND>).pyName. In this actions column cells enter the result if the row is true. Every row that evaluates to true will populate a new entry in the page list.
Posted: 6 years ago
Posted: 12 May 2016 22:42 EDT
Lee Pederson (pedel)
Global Tech Enablement, Principal Instructor - LSA
The requirement is evaluate multiple properties and make a decision. In decision table, the column is tied to single value property, we cannot specify a when rule to make a decision. I want to evaluate all rows and each row should have the capability to evaluate "multiple properties " and return some result. Here the properties I'm using in row one may be one combination and the properties I'm using in second row may be a different combination. I've tried using decision tree, however decision tree is stopping the rule evaluation when "one" of the condition is true.
I'm expecting decision tree to continue evaluating next rows by returning some value for the current row (if true), so I can do sum of all values returned at each row evaluation.