Hi there, my name is Thiago Rigo (or just Rigo), I’m SAP S/4HANA OTC & Logistics Solution Architect and I want to share my experience about a requriement related to Commissions setltlement.
The main objective of this post is to share my findings and how I solved the requirement.
First of all, a little bit about commission process and SAP S/4HANA:
Commissioning is the process of paying a portion of the sold amount to the sales representative. The company agrees with the sales representative the rules for comission as well as the commission percentage and/or commission method.
In SAP S/4AHANA the solution for commissions is delivered in best practices trough scope item 2TT – Sales Commissions – External Sales Representative which uses Condition Contract Management (CCM) as solution.
If you are not familiar with the solution I recommend you check the scope item process before going foward this post.
Basically, there are two ways to calculate commission amount:
- Based on billed amount.
- Based on fully paid billed amount.
Here is about what I was challenged:
In the customer where I’m working for, the business explained that depending on the agreements with the external sales representative, the commission amount must be paid over partial payments, in this case Installment payments.
For example, a SD billing of 300 USD is created on Oct 10, with payment terms of 3 instalments of 100 USD as following:
- 100 USD on Oct 10;
- 100 USD on Nov 10;
- 100,USD on Dec 10.
According to example above and the standard option of commission based on fully paid billed amount, the commission amount would be relevant only after last payment on December.
The requirement is: once any payment is done, the respective paid amount (eg. 100 USD) should be relevant to be commissioned to external sales representative.
How to achieve that?
The condition contract management solution has several configurations, in my investigation and researches, I learned that base amount relevant for commision payment is called “Business Volume” and basically there is a CDS View assigned to commission contract which is responsible for searching data which is base for the business volume.
The business volume profile is assigned to the condition contract type in in the following path:
|IMG > Logistics – General > Settlement Management > Condition Contract Management > Condition Contract Settlement > Specify Settlement Settings for Condition Contract Types|
And the assignment of the business profile with the CDS View is available on the following SPRO path:
|IMG > Logistics – General > Settlement Management > Condition Contract Management > Condition Contract Settlement > Define and Configure Profiles for Business Volume Determination|
Now checking the CDS view VWB2_VBRKVBRP_7 in tcode SE11 we found its respective data definition:
Here is the trick:
It’s possible to create your own CDS View selecting from V_WB2_VBRK_VBRP_5 and enhance selection with relevant fields to filter only incoming payment amounts by joining fields from CDS View I_OperationalAcctgDocItem or any other CDS view which has incoming payment data.
In this case I joined fields of Clearing Document and Clearing Date + Posting Key = ’15’ to find the correponding incoming payment amount.
Ask to your ABAP Developer for developing the CDS View according to business needs.
Once the new CDS view is done you can assign it to the business volume profile (as mentioned before).
From now, the company will be able settle commissions based on incoming payment amounts which could be partial or fully payments.
This solution may works for any other requirement which are not covered by the standard, the CDS View assignment can be changed to another one which solves the issue only by configuration or you may do a small development of new CDS View instead of developing a huge custom report or Fiori app to do the same commission amount calculation done by the standard apps.
I hope you enjoyed this topic and it could be opened your mind for different solutions keeping the SAP standard process.
Please let me know your feedback/questions in a comment.
Follow my profile for future posts.