Functioning of CO-PA in make to order scenario

Not every time billing document post to the costing based CO-PA. One of the major reason behind this behavior is make to order scenario.

In MTO process the gap between sales order and billing is huge. As the name suggests, in make to order process, personnel need to wait for billing until the product is not manufactured. When we create the sales order it is considered that the revenue is going to generate in the near future but it will not appear in CO-PA until and unless billing is not generated. To fulfill these discrepancies SAP CO-PA provides us the option to post the values to CO-PA before the billing through sales order.


The sales order is either made to order or made to stock. In make to stock scenario billing document posts to the CO-PA.

No CO-PA document generated

In this case we need to transfer the values to CO-PA from sales order by transaction code VA88.

Now how to differentiate MTO and MTS scenarios technically?

It is easy to understand MTS scenario because process is plain in make to stock scenario. But when we create MTO, in this case we have to produce material against specified sales order. Again this is in theoretical terms.

In technical terms to satisfy the MTO case, billing document will have an account assignment tab to a sales order in addition to the PA segment. (Refer attached screenshot of billing document)

Account assignment to sales order

In addition on sales order level field VBAP-KZVBR = E is mandatory.

How to meet above criteria’s?

Materials determine whether sales order is going to be considered as an MTO or MTS. From the material master the requirement type is determined and requirement class from requirement type. In requirement class we do all the necessary configuration, through which system understands or allows CO-PA documents to be posted from VA88 transaction instead of billing.

Requirement Class

Here we have consumption field E which means accounting via sales order.

Because of the above settings we can see on sales order level we get account assignment tab with below details:

Account assignment tab

We can see PA segment has collected characteristics to post into CO-PA documents.

We need to set the settlement rule through which we can settle the values to CO-PA

Change settlement parameter

Settlement parameter can be changes on sales order level as well. (Refer above snapshot)

Settlement Rule: Parameter

Here you can change the settlement profile and PA structure along with the Allocation structure. These changes will be specific to the sales order level.

Click on the settlement hierarchy to get the object number

Settlement hierarchy

Here the object number is 39234280, this number keeps changing when we make changes in sales order or in flow of the sales order. This object number makes sure the order is settled or need settlement. We can check how many times one sales order is settled with this in table AUAK.

Settlement Rule: Hierarchy

How to settle the values to CO-PA?

Until and unless you did not settle the sales order to CO-PA the values will not appear in profitability reporting. Now this seems to be an additional activity but we have a solution for this too, just stay with us.

To settle the sales order in CO-PA –  go to transaction code VA88

VA88: Actual settlement of sales order

Enter the sales order details and execute first in test mode then in production mode and this way we can settle the sales orders to the CO-PA.

What if wrong values settled to CO-PA?

The way we settle the order to PA, the same way we can reverse the settlement from VA88.

VA88: Reversal of Actual sales order settlement

Fill the sales order details and click on Reverse from settlement menu.

And the sales order will be reversed.

What if I have to settle multiple sales order with more selection validations?

For the background processing or to settle sales order through background job there is one program which can be used.

RKO7VA88 is used for settling multiple order or scheduling background job for sales order settlement.

ABAP: Program Execution

Execute the program


Here you can see you have a multiple options to select sales order by filtering with various criteria’s.

This program is useful in scheduling background jobs, in so many projects almost most of the clients go for automation in sales order settlement. To achieve this requirement you should have the knowledge of how to schedule a background job. You just need to simply create a selection variant with dynamic date in this program and use this variant in a background job.

What if I have to make the minor changes in CO-PA document?

You can also post the manual line items in CO-PA with the transaction codes:

KE21/KE21N – Create document

KE23/KE23N – Display document

KE21 – Create Document

KE21: Create line Item

Enter the reference document number and create line item, you can also post negative values in the CO-PA.

What if I have to change the data in CO-PA?

You have two options to change the existing data in CO-PA

  • Use transaction KE4S – this transaction reverses a COPA doc and repost it with reference to billing document.
  • Use KEND transaction – it simply changes the values w/o any repost. E.g. If customer 1001 is tagged to customer group XYZ from 1st Nov Onwards and you want all old data to get reassigned to XYZ instead of ABC, then you use KEND

Thanks for reading the blog, if you want to learn CO-PA more deeply and want know the tips and tricks, which will be helpful to solve or analyse CO-PA issues more efficiently, then you can read this amazing book Controlling – Profitability analysis (CO-PA): Comprehensive coverage of the SAP CO-PA module

Read More
SAP College May 27, 2020 0 Comments