Process of Manual Rebate Agreement Recalculation

On the Rebate Agreement detail page, there are two buttons to recalculate the document. The difference is in how many lines are calculated.

  • Recalculate – Recalculates all line items.

  • Recalculate Changes – Recalculates only line items which have changed compared to the previously calculated version. (Note that the button is in the line item’s panel with input parameters.)

A change of a line is, for example:

  • Change of item’s input field

  • Change of item’s label

  • Change of item’s result override

  • Change of header input field

A line item has the field dirty which is set by the system to true for each line which should be recalculated.

  • So for "full" recalculation, all items will be marked dirty.

  • For Recalculate Changes, only lines with some changes.

If you want, you can read the value of the item’s dirty field in the header logic’s post-phase, and do only processing of the recalculated items.

rebate recalculation.drawio
  1. The user clicks Recalculate or Recalculate Changes.

  2. The system calls the Rebate header logic in pre-phase.

    • Usually the header logic creates input fields on the header, but it can also change the structure of the document.

  3. The system sets the dirty flag for line items, either for all or only for the modified ones.

  4. For each "dirty" item the system will:

    1. Call the Rebate calculation (item) logic (only elements from the group agreement).

      1. The logic calculates the results for the Rebate Line Item.

      2. The logic creates Rebate Records.

      3. The logic assigns the Rebate Records to Rebate Record Groups.

    2. Take the logic’s element results, and store them on the line item.

  5. The system executes the header logic in post-phase.

    • Usually the header logic calculates some summarized results and creates the result fields.

  6. The user can see the recalculated results on the detail screen.

Found an issue in documentation? Write to us.