Rebate Record is calculated by the Rebate logic element with Calculation Context "rebateRecord". The rebate logic is executed either manually by a user (on the Rebate Record Detail screen) or by the Rebate Calculation process.
The logic usually:
Calculates rebate estimations or final numbers for:
accruals
payouts
Prepares "Calculation Base", a filter which describes which Transactions will be influenced by the calculated rebate.
This calculation is mostly triggered by the Rebate Calculation process.
Rebate Record Logic – Specific Actions
Large part of the calculation of RR’s results is the same as for the line item. Those logic elements will be shared between the line item and rebate record.
In this sections we will describe only things specific for the rebate records.
Rebate record logic specifics:
Code is in the logic elements with the calculation context "RebateRecord".
This code gets access to additional information via:
Binding Variables:
calculationBase – Holds a filter which finds the sales transactions related to this rebate record.
This filter will later be used by the Allocation process, but can be also used by the logic which calculates results for the RR.
The filter is of type DMDataSlice/DatamartContext.DataSlice.
The filter is pre-populated by the system automatically when you create the RR, but you can change it.
Methods:
api.currentItem() – Returns data (as map) of the currently calculated rebate record.
Rebate Record Logic Results Mapping
The results calculated by the logic in the context of rebate records are stored in a field called "calculationResults" which is a Map with key-value pairs.
For easier processing, it is handy to map some of those results to the "attribute#" fields of the RR. Usually you want to keep in the "attribute#" fields only data which you are going to export or use in the allocation process.