Best practice tips for business rules
The performance of business rules can be improved by following the recommendations detailed below:
- Avoid using Redefined Data Items unless they are strictly necessary.
- Include the Call Point in the Event Profile rather than in the Rule Set.
- Try to minimise the number of Event Profiles to obtain the best performance. Where possible, combine all the actions for each Function and Call Point into a single Rule Set.
- If you process a large number of small Ledger Import payloads, then for best performance use Event Profiles for the 'Ledger Import' function, rather than for the combined 'Ledger Entry and Ledger Import' function. This will also improve performance with online posting to the ledger from Order Fulfilment. If you do use Event Profiles for 'Ledger Import', be aware that you may then need to set up the same rules separately in an Event Profile for the 'Ledger Entry' function.
Note: When business rules are set up for the combined function 'Ledger Entry
and Ledger Import' the rules are set up against the 'Ledger Entry' Data Dictionary
hierarchy. When these business rules are used in Ledger Import then the system has to
convert the rules from the Ledger Entry hierarchy format into the Ledger Import hierarchy
format for every payload that is imported. Therefore the more payloads that are processed,
the larger the overhead is. This also applies to postings from Order Fulfilment because it
uses the Ledger Import process to post the journals to the ledger. If the Online Posting
setting is used then this conversion will be done for each transaction that is posted to
the ledger.
- Use Rule Data Sets rather than a set of 'OR' conditions in the Rule Sets. This will make for ease of maintenance if these conditions are used in more than one Rule Set.
- To improve performance, do not leave the decision boxes blank in Rule Set decisions; specify N in the decision box if it is not set to Y. However, do not set the blank boxes to 'N' if it undermines the logic of your Rule Set, for example, where one condition must be acted upon independently of the outcome of another condition in the same Rule Set.