Skip to Content
Technical Articles
Author's profile photo Yogananda Muthaiah

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.

Recommendation

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.

Recommendation

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.

Note :

Before you enable any EA or RA fields, there is already warning dialog appears.

Don’t open the fields unless its required


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.

Recommendation

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.

Note

On-demand processing is available only for calculation runs in full or incremental mode.

To specify on-demand:

  1. Click System Preferences under Preferences section in the Manage Setup card.

  2. Select the Calculation tab.

  3. Enable On Demand Position Processing.

  4. Click Save

  5. 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.

Check Rule Profile and Query Profile data once the pipeline is executed. Run Profile and Query Profile provide high-level information that can help determine which job took more time to execute and help expedite the troubleshooting process once the calculation is completed.

Once the calculation is executed, you can view the Rule Profile and Query Profile metrics.

Note

The run profile and query profile functionalities currently display results only for the following stages: compensate and pay, compensate, allocate, and reward.


Start Thinking

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

Assigned Tags

      6 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Krishnan Ramany
      Krishnan Ramany

      This is a good post Yoga. Certain other points . Its critical to understand the Future state of a SPM Implementation and NFR. That would give clarity on the Volume the system will have to deal with. This should be a key driver for the proposed Architecture and Design. If we get things right here, then many bottlenecks could be avoided.

      Another pointer is using Nested Objects. Nested Objects like referring other calculations or objects from LT cells can be quite detrimental to Pipeline Performance.

      Tune the Stagehooks. Stagehooks if not tuned well will add to the pipeline run times.

      Thanks

      Krishnan

      Author's profile photo Yogananda Muthaiah
      Yogananda Muthaiah
      Blog Post Author

      Thanks Krishnan Ramany for providing your feedback !!

      some of your statements are valid & true to know before the Implementation but it all depends on customer by customer. Benchmarking on the data volume set is something Product team can provide that info before anybody start the project with pipeline runtime as average time for completion.

      Lookup table with different cell versions, also referenced other rule elements will slow down would be 7th Tip in my sense but you're absolutely correct

      Related to Stagehooks is something customer have it as custom process which I would not recommend it in my 5 Tips for improvement. It would be 10th tip for my recommendation 🙂

      Author's profile photo Nikhil Prachand
      Nikhil Prachand

      Good post Yoga !! This will surely help customers.

      You can also add pointers about Circular relationships in Positions which can lead to long running Island Analysis .

      Thanks ,

      Nikhil Prachand

      Author's profile photo Yogananda Muthaiah
      Yogananda Muthaiah
      Blog Post Author

      Thanks Nikhil Prachand for providing the pointers .. 🙂

      I will try and include it in coming days and buzz you here once more.

      Author's profile photo Teja Thogaru
      Teja Thogaru

       

      Good information Yogananda Muthaiah . This will surely help customers.

       

      Author's profile photo Yogananda Muthaiah
      Yogananda Muthaiah
      Blog Post Author

      Thanks Teja Thogaru for providing your valuable feedback.. 🙂 !!