cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Condition Contract - long term paid invoices

CarstenA
Discoverer
0 Kudos
806

Dear SAP specialists,

I am facing a scenarion with condition contracts where a customer wants to work with "long term" contracts and settle based on paid invoices. However, we have problems with the bonus settlement based on paid invoices when extending contracts. Let me explain in more detail.

Scenario in detail:
Condition Contract Settlement Type: Supplier Contract Settlement
Partial Settlement Type: Cumulative
Accruals Reversal Type: 5 Use Status in WCOCO -Activate After Payment

Bonus receiver (sales agent/vendor) receives his bonus with the next settlement after a customer invoice is paid. Example:
Invoice ABC01 Date: 05.10.2024
Invoice ABC01 Paid: 14.01.2025 <- now should be included in the next settlement

Scenarion 1:

We have a condition contract with contract date 01.01.2024 - 31.12.2024

  1. We do a final settlement on 31.12.2024, the invoice ABC01 will not be settled since the payment is still open.
  2. Then we extend the contract, either by changing the contract date to 31.12.2025 or using WB2R_EXTENSION to create a new contract linked to our old one with new dates 01.01.2025 - 31.12.2025. (visibly linked in the document flow)
  3. When doing the first partial settlement on 31.01.2025 the paid values from Invoice ABC01 (paid on 14.01.2025) will be ignored. As far as I can tell this is due to the business volumen selection of the partial settlement, which is based on the contract start date/or last final settlement. Since our invoice ABC01 has a invoice date before 01.01.2025 the partial settlement ignores it even though the payment was afterwards. 

In this scenarion the only option to get the bonus settlement is to do a Delta Settlement for January 2025. This is not practical though, since the payment of old invoices can happen every month of the following period until the end of potential payment terms. So about one delta settlement every month after the "end" of the contract. This would lead to twice the workload only for one bonus receiver. 

Scenarion 2:

We have a condition contract with contract date 01.01.2023 - 31.12.2030

  1. Since the start of the contract there are no final settlements.
  2. We do a partial settlement on 31.12.2024, the invoice ABC01 will not be settled since the payment is still open.
  3. The we do another partial settlement on 31.01.2025, the paid values from Invoice ABC01 will be included. So all seems fine. 

However, we run into a different issue here. Since the partial settlement type is set to cumulative, the business volume selection will use the condition contract start date as a start date (or the previous final settlement which we don't have) and collect all relevant business documents. Apparently this will lead to a case where the system will check against accruals from 2023 and 2024 that might not exist anymore since the business cases are fully done. Sometimes it will then create and dissolve strange amounts of accruals we cannot explain and therefore making the accounting department nervous. They will then go in and clean up the accruals levels back to "expected" vales.
Unfortunately, I cannot explain this behaviour any better since we don't fully understand everything going on. 

Besides, we don't think the settlement management was designed with contracts in mind that stay open indefinitely, due to open payments. 

 

 

Advise on how to improve our situation would be highly appreciated. I would love to understand the deep dynamics more precisely to help my customer achive a clean solution. 

Thanks & best regards
Carsten

Accepted Solutions (0)

Answers (1)

Answers (1)

GauthierVictor
Contributor

Hi @CarstenA

For Scenario 1, if you don't want to deal with Delta settlement. I would recommend basing the settlement on the Clearing Date rather than the Billing Date to ensure that only paid invoices are considered in settlements.

To achieve this, you may need to create a custom CDS view to retrieve the Clearing Date (AUGDT) for the FI document related to the billing document. The key relationships for this retrieval are:

  • AWTYP = 'VBRK'
  • AWKEY = VBRK.VBELN

In the Settlement Settings of the Condition Contract Type, you can still choose to accrue based on the Billing Date by setting the field COCO_DETERM_DATE to "2 - Billing Date (KOMK-FKDAT)". This ensures that accruals are generated correctly while settlements take payments into account.

For Scenario 2, you are correct that SAP CCM is not designed for contracts to remain open indefinitely (e.g., with an end date of 9999). While it is technically possible, I would not recommend it due to several potential downsides, including:

  • Open accruals never being fully reversed, leading to discrepancies in financial reporting.
  • Performance issues due to excessive data accumulation over time.
  • Line item limitations, depending on how splits are managed within the system.

If your client insists on keeping contracts open for extended periods, it’s crucial to clearly communicate these risks and establish an appropriate monitoring and reconciliation process to maintain accurate financial reporting.

Best regards,
Gauthier

CarstenA
Discoverer
0 Kudos

Dear @GauthierVictor,

Thank you very much for your very good input, this was quite helpfull!

However, I have spent considerable time since your comment implementing and testing several different solutions and always running into new issues. I will share my experience and issues, maybe you or someone else can help. As mentioned in my original post, the goal was to do bonus settlements after an invoice was paid. 

Business volumen selection
I have created a custom CDS view focused on the clearing date AUGDT like you recommended. One part of this was to copy and adapt the SAP Standard CDS view WB2_CDS_CHECK_FI_NOT_CLEARED. Now when we have a condition contract the valid start/end date will be used to find invoices with a clearing date within this range. This means we can issue bonus values to the supplier based on his payments and the value collection is independet of when the invoice was created. So far so good! 

Delta accruals (retroactively)
My first issue comes from the retroactive delta accruals. Since I am switching to a new business volume selection, I need to close the old open contracts and open new ones. When closing the old ones, they will reverse all open accruals which is fine I guess (or do it manually). But when I do the delta accruals booking for the new contract I get unexpected values. The system will only accrue the values of settled invoices with a clearing date within the contract start date and delta accruals date. Debugging has shown the system will collect the business volume more or less the same way as a partial settlement would do and then use pricing to calculate the missing accruals. Since my business volume selection is based on the clearing date, we will not get any open invoices.
This is an issue since we will be missing the accruals values from open invoices in financial accounting. 

Partial settlement accruals reversal
The set up accrues based on the Billing Date by setting the field COCO_DETERM_DATE to "2 - Billing Date (KOMK-FKDAT)" <- as recommended by gvictor. Therefore we will get entries into table WCOCOF with the correct values after an invoice is posted to financial accounting.

When doing a partial settlement, we get the business volume of all invoices cleared withing the partial settlement time frame. This is good. However, the accruals reversal uses the CDS view WB2_CDS_CCS_ACCRUALS_REVERSAL which essentiall uses WCOCOF table with some other dependencies. You can find this here:

Class CL_WB2_REBATE_SETTLEMENT
Method GET_ACCRUALS

This will only collect entries from WCOCOF with the correct status. Meaning any invoices not yet cleared will be ignored in WCOCOF. The accural reversal is therefore the corresponding invoices from the business volume selection. So far this works for the local financial department, but I don't believe it is the way CCM is meant to work. I would expect the System to reverse all accruals, and then re-post the "delta" for the open cases. Our logic here cannot do this since it doesn't recocgnise the difference between open invoice and cleared, it only detects cleared ones. 

Final settlement accrual reversal
When a period, e.g. 12 months, is over and we do a final settlement another problem appears. The final settlement will set the status of my "open" entries in WCOCOF (entries not yet cleared) to 4 and interpretes it as "finished/cancelled". 
This circles us back to our problem with the retroactive delta accruals. We cannot carry these WCOCOF entries into our next contract period.
Let's say the contract in question is open for many years and every year we do a final settlement. The next partial settlement afterwards has lost it's history of open invoice accruals and restarts the cycle of accruing based on the business volume selection. (I hope this makes sense). 

This is an obvious problem for the finance department since we will build up accruals for future payments and then randomly reverse them. While later still paying the amounts owed. 

 

In summary:

  • Business volume selection based on clearing date works
  • Delta accruals use the same business volume selection and will ignore historic accruals from open invoices
  • Partial settlements will only reverse the accruals of the cleared invoices and not do a cummulative behaviour
  • Final settlements will reverse open accruals and reset the WCOCOF status, effectively losing them for subsequent contracts

As flexible as CCM is, I don't see any other option than using ZCoding in the provided BADIs. If possible I want to avoid doing this. Maybe someone has a simple and brilliant idea to help me here.

Many thanks!!!

 

CarstenA
Discoverer
0 Kudos
Dear gvictor,