Skip to Content
Author's profile photo Former Member

How to Perform CIF Post Processing.

Hi Friends,

CIF Post processing is one of the routine activities done by our team during our production support. I would like to share this information within SCN Community Members.

Before introducing CIF post processing it is better to understand CIF error handling. Data is transferred between SAP ECC and SAP APO by means of queued remote function call (q RFC) technology. Faulty ones  can lead to extended queue blocks and inconsistencies between SAP APO and SAP ECC. We can use CIF error handling to avoid queue blocks of this type during the transfer of transaction data. CIF error handling ensures that all CIF queue entries are processed during the data transfer. Faulty queues no longer lead to queue blocks. Instead, they are logged in Post Processing records in the relevant target system for the data transfer.

Here lies the importance of CIF Post processing. CIF post processing is used to display and process post processing records which  are automatically generated during CIF. We will manually remove plant status which are not in OK status. Once the error has been corrected my marking this incorrect combinations as Obsolete and remaining  planned orders/Purchase requisitions  will be sent to the relevant target system.

Prerequisites for doing CPP

1. SMQ1 (Outbound Queue)


2. SMQ2 (Inbound Queue)


Ensure all the inbound/Outbound queues are empty .It is quite essential as during the pushing of orders it will consume much CPU/Memory. So we have to be very alert while doing this process and have to facilitate easy flowing of queues.

3. As discussed above CIF error handling must be active.

Once we are clear with the above 3 we can proceed with CPP.


CIF Post Processing can be opened via tcode /N/SAPAPO/CPP.


Choose the target system by pressing an F4 on the target system. Choose respective ECC system here.


Note: CIF Post Processing can only be processed by single user. IF others try to enter the processing screen he/she will get an information popup like this.


On entering we can see the CIF purchase requisitions/planned orders available. We need to process External procurement, In-house production     (AP1 –>R3P) and In-house production (R3P–>AP1).

Note: AP1 –>APO Production   R3P –> ECC Production.

Let’s start with External procurement.


Click on the highlighted button and choose “Local File” from the list.


Select Spreadsheet from the list.


Give a suitable file name and click on generate.


You will get a message on the status bar stating so and so data has been downloaded.

Open the downloaded Excel File and perform the operations as follows.


Remove all entries except Prod. Desc and Location name. Duplicate product location combination can be removed by clicking on the highlighted Remove Duplicate Button.


Choose both product and location and click OK.


Information will confirm so and so duplicates are removed and remaining unique values will be left out.

Open ECC system and navigate to the Data browser via SE16.


Give the table name as Marc.


Add the product by clicking on the highlighted option.


Copy all the products and paste it in the space by clicking on the highlighted Copy to Clipboard button.

Repeat the same procedure for Location also.


Note: Blank out the maximum No of hits.

Once all parameters are entered click on  Execute or press F8.


Choose plant-Sp.material status (MS)  field and click on the highlighted filter button.


Press F2 and choose Not Equal to from the list.


Give the status as OK and click on the highlighted button.


Table will list out the material-plant combination which are not in OK Status.

Open the Excel and put a filter for Product and location by using the highlighted button.


Choose the first incorrect combination and highlight in some color for easy reference.


All incorrect product-location combinations have been highlighted as above.

Now lets go back to CPP screen in APO as we are ready with incorrect material location combination.


Choose product and location and click on Highlighted filter. Select Set Filter option from the drop down list.


Product and location can be entered via highlighted buttons.


Copy and paste the values from the already prepared excel and click on execute.


Once values are entered click on the highlighted button.


Now those entries needs to remove and will make it as obsolete using the highlighted button. Click on select all button and press on the highlighted Set entry as obsolete button.


On clicking obsolete buttons those entries will be marked as obsolete.


Note:We can see a reduction in the no of entries in the external procurement after the removal of obsolete entries.


Now delete the filter by clicking on the Delete filter option.


Now choose the remaining entries and click on select all button (Highlighted left) and click on send to R/3.


Note:Ensure Maximum entries have been pushed. Depending on the system performance we can experience a change in speed of processing. But overall we should ensure CPU utilization needs to be on the lower side while doing this activity.


Once external is done repeat the same procedure for in-house production to R/3.Ensure maximum entries are pushed.


Now the final one In-house to APO.


For In-house production just click on select all options and click on APO button.Ensure maximum planned orders are pushed to APO system.

Once the CPP Activity is complete ensure

   1. SMQ1, SMQ2 are empty.

   2.  Perform CIF Reconciliation (CCR) process.

Note :In-case while during CPP entries are not moving please ensure SCM Queue Manager is empty.Please refer my blog on How to resolve stuck queues in SCM Queue Manager .

Your Feed backs /Comments/Corrections are well appreciated.Hope it will be helpful for at least some people out there.

References : CIF Postprocessing (SAP Library – Integration of SAP APO and SAP R/3)

                          CIF Error Handling (SAP Library – Integration via APO Core Interface (CIF).

Assigned Tags

      You must be Logged on to comment or reply to a post.
      Author's profile photo Former Member
      Former Member

      Hi ,

      I was looking for  a documentation on the same in SCN With screenshots step by step explanation. it is wonderful..


      Author's profile photo Former Member
      Former Member
      Blog Post Author

      Hi Ram,

      Thanks for providing a wonderful feedback.



      Author's profile photo Former Member
      Former Member

      Hello Kannan,

      It's really a very good document on CIF post processing.

      I would like to implement this in our company for the 1st time.

      I have activated the CIF error handling in our Development box. But the thing is how should i test this Functionality.

      Could you please let me know the steps to test this Functionality ?

      Author's profile photo Former Member
      Former Member
      Blog Post Author

      Hi Swathi,

      Thanks for the Comments.

      I had sought some experts opinion on the same.I can provide you some hints.

      For would be difficult to create failed CIF queue but following steps can be followed

      1.Create correct prod loc and CIF to APO.

      2.Send some transactions data in APO .eg;sales orders or STO or production order. .

      3.Modify master location or set deletion flags.

      4.Modify S.O,STO or Production order in ECC it should failed citing no locations or so..

      Above steps may help you in creating a failed CIF..Not sure though..

      Please go through the following which can provide a little more insight.

      Hope it willl be helpful for you. 🙂



      Author's profile photo Former Member
      Former Member

      Hello Kannan,

      This indeed helped me.

      I was able to test the post processing functionality . I just followed your steps. now i can see the post processing records in CPP transaction. We will soon implement it in Production

      Thanks so much for your help.

      Author's profile photo Former Member
      Former Member
      Blog Post Author

      Hi Swathi,

      Nice to hear that solution worked well.. 🙂



      Author's profile photo Former Member
      Former Member

      Very good documentation and very useful one..!!



      Author's profile photo Former Member
      Former Member
      Blog Post Author

      Hi Aparna,

      Thanks for your postive feedback.



      Author's profile photo Pradeep Panda
      Pradeep Panda

      Hi Kannan,

      I have one question , May i know the difference between CCR and CPP. As in our project i have work upon CCR automation but after reading your doc. i didn't understand why excatly CPP is needed and its importance. Please guide me.



      Author's profile photo Former Member
      Former Member
      Blog Post Author

      Hi Pradeep,

      Just look at the opinion of experts on this.It will a great help for you rather than i commenting on it.

      what is the difference between CCR, CQ and CPP

      Details about CCR and CPP in SAP APO

      Hope it will be helpful for you.



      Author's profile photo Pradeep Panda
      Pradeep Panda

      Thanks Kannan ! 🙂

      Author's profile photo Former Member
      Former Member

      Hi Kannan,

      Good One.

      Author's profile photo Mohanadevi N
      Mohanadevi N

      Good one ... 🙂

      Author's profile photo Former Member
      Former Member

      Hi Kannan,

      Will check it out.Really useful one. 🙂

      Author's profile photo Somnath Manna
      Somnath Manna

      There is a better approach - ideally through review of the Application Logs (in ECC side for CPP Records created for queues from APO to ECC) and same inbound to APO. Click on the Application Log button for APO inbound records to display directly the application log.

      In case of APO to ECC records pick up the LUW ID by changing the layout and put that SLG1 in External ID to get the Application Log. The Application Log will give details of the exact failure and in the example you mentioned will identify the materials having issue causing entire Stock Transfer Order to be stuck.

      In fact I architected a custom program to automate this whole CPP Record Analsysis .... need time to blog about it 😀



      Author's profile photo Former Member
      Former Member
      Blog Post Author

      Hi Somath,

      That was a new learning for me.Please share your findings soon.. 🙂


      Author's profile photo Former Member
      Former Member

      Hi Kannan,

      Is there any way to retreive objects which are made obselete