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 calculation of the 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 logic elements with calculation context "RebateRecord"
such code will get access to additional information via:
Binding Variables:
calculationBase - holds a filter which finds the sales transactions related to this rebate record.
This filter will be used later 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 RebateRecords, are stored in a field "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, you’re going to export or use in the allocation process or somehow else.