The calculation engine of SAP Commissions is called Pipeline. It performs the tasks to import data (transactions, orders, credits etc), process them and generate payments. The pipeline process is divided into stages. The output of each stage serves as input for the next stage and they generate output based on the rules set up for that stage. This article details what happens during one of the processes in Reward stage of Pipeline.
Processing details of Reward Stage:
The Reward stage calculates potential earnings (incentives and commissions) by comparing primary measurements or the secondary measurements against the incentives for each position assignment in a compensation plan. SAP Commissions then calculates which incentives are to be paid and converts them into deposits. Image below summarizes what happens in Reward Stage:
Details of IslandAnalysis
The performance of Reward stage is driven by the position hierarchy created in the system as per Organization’s data. In the IslandAnalysis, this position hierarchy present in the SAP Commissions environment is analyzed. It involves grouping together positions into logical groups called Islands where the result of one position is dependent on another position’s output. So one island can have one, two or many positions associated with it. The positions on a island needs to be processed by the same worker as there is no communication or sharing of information between the workers in Commissions.
A worker is a process that is invoked by the controller to evaluate compensation rules and update information in the database. Multiple workers can be invoked on multiple machines and they can work in parallel during some stages, such as the Reward stage. Each worker creates its own log file and updates the database with its status.
These islands created during pipeline’s reward stage can be checked from the IslandAnalysis log. It contains details such as which island contains which positions (in terms of positionseq), total number of islands created, how many positions the largest island contains and how much time the stage took to complete.
In case, there are no dependency, then IslandAnalysis is not used and each position is assigned to an Island and distributed evenly among the workers. The same message can be seen in the log file as well.
Performance Issues in Reward Stage
- The reward stage in Pipeline processing, at times, takes much more time as compared to earlier runs. It can be directly related to the islands creation and distribution process during IslandAnalysis. If the list of positions being processed by a worker is much larger than other workers, this can be expected.
- “OutOfMemory issue” can also be experienced by the users in Reward stage. The most common reason is that the amount of memory needed to process the allotted set of positions is not configured correctly. Long running Reward pipeline issues can be typically resolved by adding more Reward workers.
IslandAnalysis is an important process in case the compensation of a position is dependent upon another position as per the compensation plan design. Hence, its important to correctly set the organization hierarchy in Commissions.
References: SAP Help Portal https://help.sap.com/viewer/product/SAP_Commissions/2105/en-US
Thank you for reading it till the end. I hope you find this article helpful. Please do let me know your feedback in the comments section.