Set the Right Scope
Sometimes a logic (e.g., CFS or Analytics calculation) calculates over and over records which do not change. If a record needs to be calculated only once, it can be marked with some flag and a subsequent calculation should exclude records with this flag.
The first element of the logic:
if (api.currentItem('AlreadyProcessedByCFS') as Boolean) {
api.abortCalculation()
return
}
AlreadyProcessedByCFS.groovy:
return true
Alternatively, when you configure the CFS, specify a filter for the AlreadyProcessedByCFS column, and filter out those items where the value is “true”:
Multiple Passes
If you call api.markItemDirty() on an item, it is generally good to in the beginning of the logic and also call api.abortCalculation() afterwards.