SAP Commissions : 5 Tips to Improve Pipeline Runtime
What is Runtime Performance?
To discuss any type of application performance, it’s important to define what we mean.
Runtime performance is how your application performs when it is running, as opposed to be loading. This article teaches you the tips to improve and how to avoid long running pipeline job to analyze your runtime performance.
Let’s look at a few simple ways that suggests can improve each of these aspects.
Tip 1: Avoid writing Direct Conditions in Rules
As you know, In every rule there is a condition tab to filter the data or filter the results from the previous rule calculated (calling PMR or SMR) .. so avoid writing the direct conditions as shown in below example
Example : A Rule which is written direct condition referencing all the reference types directly which leads to increase the performance of pipeline runtime calculation.
Write all your condition logic in Formula and that would detect automatically the Rule Usage where this Formula as it be reference. By doing this, pipeline will calculate even before the allocate stage .. Go to your rule and add the Formula to the condition tab. In this example : Formula is called within Formula which would be faster way of calculating during the pipeline runtime
Tip 2: Avoid enabling GA, EA & RA fields
you would be wondering what is EA & RA and where it’s been used ?
GA = Generic Attributes , EA = Extended Attributes and RA = Reporting Attributes
Its been used in all the rule output tab – Advanced options – Generic columns
In every rule, Generic columns contains below dropdown
- Text ( String field)
- Dates (Date field)
- Numbers (Number field)
- Booleans (True/False field)
Sometimes rule developer opens this fields through Settings – Customization for Participant, Position, Sales Order, Sales Transaction workspace to populate some values for their dependency calculation or for Dashboard purpose or for Reporting Purpose.
Open those fields if there is a necessary values needs to be shown only for an end user. Don’t open the fields if its unused which leads performance.
Before you enable any EA or RA fields, there is already warning dialog appears.
Tip 3: Territory Based Calculation
All your Direct & Indirect rule, there is a way to filter the data based on Territory which requires input from category and classifier data. Using Territory will improve your pipeline runtime which calculates during Classify stage.
Try to reference the Territory Variable or Territory rule element in your Direct, Indirect rule for improving the pipeline runtime.
An example of Territory Variable is referenced with Territory referenced in Rolled Transaction Rule.
Tip 4: Enable On-demand Processing
If Customers with over 10,000 positions will improve calculation performance by configuring the calculation to perform on-demand position processing.
In on-demand mode, Commissions loads each position as it is needed by the calculation, instead of loading all positions in the system (regardless of whether or not the positions are active). By loading positions on demand, Commissions can process large numbers of positions in calculation runs.
On-demand processing is available only for calculation runs in full or incremental mode.
To specify on-demand:
Click System Preferences under Preferences section in the Manage Setup card.
Select the Calculation tab.
Enable On Demand Position Processing.
Log out and Log into SAP Commissions Application.
Your subsequent calculation runs will use on-demand by default.
💡On-demand position processing does not currently apply to the Per-Position calculation mode.
Tip 5: Detect costly Performance impacting rule via Pipeline Logs
Run a pipeline job with logging option selecting Performance Statisics to detect all your query and rule performance runtime to understand better which rule is costly.
Select a tracing level for the log files. The tracing level controls the level of detail that Commissions writes to the log files. You can check the Enable SQL Logging option to insert SQL statements into the calculation log.
Once the calculation is executed, you can view the Rule Profile and Query Profile metrics.
The run profile and query profile functionalities currently display results only for the following stages: compensate and pay, compensate, allocate, and reward.
Go to TCMP.CS_PREFERENCES analyze each and every row
Go to TCMP.CS_WORKERCONFIG analyze each and every row
Its gives you Knowing where to begin when facing performance issues in your tenant
Hopefully these practical examples shown above where performance issues can hide and help you get started.
Before you make any changes or to improve your pipeline runtime significantly – Kindly contact Dave Ritson