Skip to Content
Author's profile photo Sagar Gaikwad

Storage location stock exclusion in APO planning book


APO planning book shows stock quantities at plant level. It does not show stocks at storage location level unlike in ECC. Business wanted to exclude one of the storage location stock from APO planning book stock key figure.


This is a service industry client. One of their plant (e.g.0095) storage location (e.g. 4001) is entirely managed by their customer. Materials under this storage location are not planned in ECC as well as in APO. But materials under different storage locations (e.g. 0001, 0002 etc.) of this plant are planned in APO. Because of this stocks are getting transferred to APO and it was creating planning issues in APO. In APO stocks are shown at plant level. Therefore it is including 4001 stock also and business don’t want to have this stock in APO.


  • In ECC we can exclude the storage location from MRP through configuration. But similar functionality is not available for APO. Neither this ECC configuration will stop sending storage location inventory to APO.
  • Didn’t find any configuration in ECC that will exclude the specific storage location stocks being transferred to APO.


SMOD CIFSTK01 in ECC can be used to exclude stock for certain storage locations as per business requirement. This exit has been provided by SAP to transfer customer specific stock fields from ECC to APO. But this will work in order to exclude specific storage location stock.

This exit has been called in two SAP standard functions CIF_STOCK_APO001_MAP & CIF_STOCK_APO001_MAP_2. This exit has been called at end of these functions which means after this exit call, no standard code gets executed. Table ET_STOCK in this exit contains Stock data which we would like to NOT send to APO if storage location is 4001 and Plant is 0095.

We added logic within this exit to check for Storage Location = 4001 and Plant = 0095 and delete stock from table ET_STOCK for this condition. CIF will transfer all storage location stocks except 4001 stock. Going forward in future if we have similar kind of requirement for other plan/storage location then we’ll just add that plant/storage location in this logic. And system will exclude that stock as well.

Correcting stock quantities first time after exit install in production

When user exit is moved to production, system is automatically correcting stock quantities for the first time. So for the first time we need to do one time activity as below sequence.

1.    Delete the APO stock for respective plan (here it is 0095). Use APO program /SAPAPO/DELETE_STOCK.

2.    Select all APO relevant materials for plant 0095/storage location 4001 in ECC.

3.    Create new integration model in ECC and include all these 4001 storage location materials in it.

4.    Activate this new integration model. So that new integration model will exclude 4001 storage location stock based on SMOD – CIFSTK01 logic.

5.    Once this initial 4001 storage location stock correction is done then de-activate this new integration model and let regular CIF stock model run. This will take care of future stock changes.

       After user exit this is how stocks are getting displayed.

ECC – Stock quantities


APO – Stock is showing only 0951 storage location stock but not 4001.



Since this storage location stocks are managed by customer. There is no any planning in ECC as we as in APO. Ideally during implementation this scenario was supposed to be implemented as Customer consignment but it was not designed like that. And that was causing stock issues.


This enhancement was completed together with my colleague Jeffrey Beaudin (Sr. SAP APO Consultant).

Assigned tags

      You must be Logged on to comment or reply to a post.
      Author's profile photo Bart De Nijs
      Bart De Nijs

      You will have problems during stock reconciliation via /sapapo/ccr in this case. The stock will be displayed as missing in APO. I think it is better to make to stock not pegging relevant via the exit.



      Author's profile photo Tom Chason
      Tom Chason

      You could alternately update your CCR stock compare logic in the user exit /SAPAPO/CIF_SEL_STOCK_ ORDER to match the logic you put in the CIF userexit to avoid issues during reconcilliation.



      Author's profile photo Roshan Fernandies
      Roshan Fernandies

      Good approach to handle storage location exclusion.Thanks for sharing.

      Author's profile photo Keganta G
      Keganta G

      Thanks you much for sharing, it is very useful and i only one doubt, can we control excluded stock in CCR.