It is a generic tool and swiss-army knife for applying logic. There are two patterns that are most commonly used:
1) Update-only mode
If you do not want to quality check your data, but update it. The logic of the rules will determine under which conditions the data is updated or not. E.g. based on the content of one field, another field of a record is updated. Or based on a value in one field a lookup/mapping is done and stored in another field. So the main interest here is to update, enhance or complete the data.
2) Quality-check mode
You want to check if the data is according to certain logic/rules. The main focus here is not to update the data, but to check if it is correct. And you may want to separate the correct data from the incorrect data. E.g. if an applicant has a valid drivers license, is above the age of 25 and has a credit card and is not from a certain list of countries, then this data would pass the logic. Otherwise it fails and can be processed futher or the info is e.g. sent to somebody.
Here is how it works: One or multiple rules are composed in a rulegroup. This way you can have rules that pass and rules that fail but the rulegroup as such passes. E.g. if you have two rules: one checks if the age is smaller than 50 and the other checks if the age is greater or equal to 50. The rules are connected using an "or" operator. If we have now a person at the age of 40, the first rule will pass and the other one will fail. But the rulegroup in which both rules
are collected, will pass.
Based on the failed or passed status of a rulegroup you can execute one or multiple actions, which update the data. My previous post shows which actions are available. And based on this status, or the number of rules failed or the number of rulegroups failed you can also make decisions how to futher handle the data.
Give it a try and send me your feedback please.