Skip to Content

Mapping Subcontracting as In-house Production using SAP APO

Subcontracting by definition is a process which involves the procurement of a product from a supplier (the subcontractor) to whom the procuring entity provides components for the purpose.

Eg. A chemical manufacturer produces a chemical in bulk and sends it to Subcontractor who in turn fills and packs small containers of the chemical. These Small containers are the final saleable product..

Why map Subcontracting as In-house production?

Assume a situation where the Subcontracting vendor has multiple resources which are dedicated to your production site & you (as a Supply Chain Planner) want to perform capacity planning of those resources in SNP because you often get into capacity related issues like orders are getting delayed or re-prioritized and rescheduled with last minute notifications. Of course, there is an option available to you to analyze the capacity manually and set the priority to orders and keep changing them as you do not have visibility of capacity load. Would it not be great if you can model these dedicated resources in APO SNP to perform capacity leveling? Let’s explore how we can achieve this!

Master data required:


  • Material Master: Procurement Type “F” with Special Procurement “30” at Subcontracting Plant
  • Material Master: Production version with details of BOM and Routing at Subcontracting Plant
  • Purchasing Info record (Subcontracting Type)
  • Source list
  • Bill of Material
  • Work center: To be created at Subcontracting plant in ECC. Should have all the capacity details of the dedicated resource available at vendor
  • Routing: Should have at least one operation (scheduling relevant) based on the Work center


  • Product Master at Subcontracting Location (Via CIF)
  • SNP PDS (created by Core Interface (CIF) Integration model). Select normal SNP PDS not SNP Subcontracting PDS while generating Integration model
  • Vendor Location master
  • Resource Master data at Subcontracting Plant (Transferred via CIF Integration model)

Ways of working:

  • Executing SNP Heuristics run for Subcontracting Product-Location combination will create SNP Planned orders. SNP PDS will be automatically adopted as source of supply
  • These Planned orders will show the exact resource utilization and hence SNP Capacity leveling can be performed using Capacity data view in SNP Planning book
  • SNP Planned order is created for header product. This also creates Dependent demand for Component products (via PDS explosion).
  • During execution cycle, convert SNP Planned order à Purchase Requisition à Purchase order
  • Once Planned order is converted to Purchase requisiton, Dependent demand (SNP:DepDmd)for Component will reflects as Subcontractor requirements (SubReq)


  • SNP capacity planning & capacity leveling can be done for vendor resources
  • Alternative bill of material can be easily used. Just by changing a production version in ECC or by changing a SNP PDS in APO, dependent demand will propagate to all relevant components
  • Alternative resources can also be used to plan capacity


  1. Planned order to Purchase order conversion

–      Problem: In subcontracting scenario, generally end users are used to Purchase requisitions as an output of planning run. These Purchase requisitions are later on converted to Purchase orders as a part of execution. But when we map Subcontracting as in-house production, heuristics run creates SNP Planned orders. These planned orders should first be converted to Purchase requisitions and then only a Purchase order can be created. Thus this can be a point of resistance from end users as it will add one step to their manual work

–     Solution: Use transaction MD14 (Single order) or MDUM (Multiple orders) to convert Planned orders to Purchase requisitions. Report “RMCVPLRQ” can be customized to convert Planned orders to Purchase requisitions in bulk using background jobs.

2. Vendor stock consumption

–      Problem: It is quite possible that items like packaging material; labels etc. are supplied in bulk to vendor. So the stock of these items is maintained as vendor stock and replenishment of these items are planned via ECC MRP run instead of planning in APO. ECC MRP run will not net the vendor stock if the component demand is in form of “Depdem”. It will net only against “Subreq”

–      Solution:

Either Plan component replenishment in APO where vendor stock is netted against Depdem as well as Subreq


Change policy: Issue only limited stock to vendors. Remaining stock should be maintained as plant stock which can be netted against dependent demand


Convert SNP Planned order to Purchase requisition in near term horizon Eg. 3-4 weeks. This horizon should be empirically decided such that it at least takes care of the lead time of subcontracting product

Key Points to remember:

  • Vendor and Stock should be a part of same integration model for Vendor Stock to be visible in APO at Subcontracting Location. (Special Stocks at Vendor indicator in the integration model)
  • Vendor stock available at Subcontracting plant will be considered to calculate Projected Available Balance in SNP Planning book. Default Stock category group should include vendor stock category CE.
  • PPDS PDS is not required in APO
  • BOM status in ECC should always be “Active”. Else Planned orders can’t be converted to Purchase requisition
  • Maintain set up time in routing equal to planned delivery time. Otherwise dependent demand on component will be on same day as that of planned order date of header product
  • InMDO4, Planned Order details will show “Procurement Type E” even though Material master has Procurement type “F”
  • Alternate production version / PDS can only be changed in planned orders. Not possible to change once Planned order is converted to Purchase Requisition
  • In case of manual intervention,
  • User can create only SNP planned order in SNP planning book
  • User can change planned orders only in SNP planning book or in ECC system (MD04). Can’t use Product view in APO
  • Manual creation or changes will «FIX» the order immediately
  • Direct Purchase requisiton can only be created in ECC. Use respective order type for the plant and item category as «L»

Hope this information helps fellow consultants. Your comments are appreciated.

You must be Logged on to comment or reply to a post.
  • Thanks a lot Ravi. But I have few more questions left here. What if the business would not want or not yet ready to explore Capacity Planning in APO? and apart from the Toller-Vendor setup, there's still under Location intended for Packaging? Will the concept be the same or not? What could be the points to be considered? Thank you.

    • If business don't want to explore capacity planning then it is a bit easier set-up. You would not need to create any work center and Routing in ECC. Configure the production version with only BOM details. with this data also SNP PDS will be created and same set-up can continue.

      We opted for this set-up instead of the standard set-up of PDS at vendor plant because we had multiple levels of tolling with the same vendor. Eg. Consider a BOM where A is header, B is sub-assembly 1 used to produce A, C is subassembly 2 which is used to produce B and Finally D is the component used to manufacture C. A->B->C->D. If A, B & C are all tolled from same vendor then there are multiple Transportation lanes required (To & Fro) to manage this set-up. SNP PDS helps to reduce redundant master data.

      • Excellent Blog on Tolling process!!!

        We have a similar requirement(multiple levels of tolling with the same vendor.) in your example A->B->C->D for component B we have dependent demand(subcontracting requirement -components supplied to the vendor) and distribution requirement (components procured from vendor to maintain stock at Tolling plant)

        we are using multi level  heuristics and results are not as expected. Any suggesions???

  • Hi Ravi,

    Thanks for the informative write-up.

    We are the distributors of products and do not do any in-house production activity on the products we sell. We want to send the PReq to our vendors who supply the finished products based on the vendor capacity. Vendors have a certain capacity to produce a group of products and we do not want to send leveled PReqs to them not exceeding their capacity.

    Can we use the above approach to model this in SNP and how?

    We are thinking of creating dummy resource in SNP at our plant location with capacity as vendor capacity and PPM created locally in SNP and assigned to products.

    We can use capacity leveling to level the SNP planned orders. But the challenge is how do we use these leveled SNP planned orders to CIF to ECC and use as Preq to vendor?

    Can you please comment on this approach and your valuable suggestions on how to approach this.



    • Hi Sarvesh,

      Thanks for the feedback.

      With the limited details provided by you, I think you can also follow the approach explained in this article. In fact, I too started with PPM but later on realized that PDS is better suited for this model.

      About the challenge mentioned by you, the levelled SNP Planned orders to get CIFed to ECC. After that you will have to convert these Planned orders to Purchase Requisitions.

      Refer to Challenge 1 in my article.

      Hope this helps.


      • Hi Ravi,

        Let me put some details in:

        SNP Solution: SNP Heuristics

        Supply Chain: Pure play procurement, no In house production, Full Subcontracting

        Business Requirement: to level the Preqs going from our DC location to the Vendor location based on the vendor capacity.

        Procurement Relationship: No Scheduling Agreements.

        Challenges: We do not want to level the Planned Orders at Vendor location. We want to level the Preqs going from DC to vendor location. If we use the standard subcontracting solution by maintaining the resource and PDS at vendor location, we will end up doing capacity leveling at vendor location for the planned orders generated after SNP Heuristics fulfilling the Preqs.

        We discussed this with few consultants and they mentioned that it can be done using dummy resource but how exactly it is possible is not clear. Do you think can we use the approach you have mentioned to map our requirement.

        An alternative approach we are still thinking about is to create a dummy resource at our plant location having the capacity of the vendor maintained and PPMs and then creating planned orders at our plant and leveling them. Once, we have these planned orders at our plant location we thought of ciffing them back and converting them to PReqs using MD15 or MDUM. We were not able to test this but I am not sure it will work. What do you think?

        Your valuable suggestions are much appreciated.



  • Hi Ravi,

    I am testing a scenario with your master data requirements.

    SNP Heuristic Run creating the Purchase Requisitions instead of Planned Order for header Product F and 30.


    Master data required:


    • Material Master: Procurement Type “F” with Special Procurement “30” at Subcontracting Plant - Correct
    • Material Master: Production version with details of BOM and Routing at Subcontracting Plant - Correct
    • Purchasing Info record (Subcontracting Type) - Correct
    • Source list - Correct
    • Bill of Material - Correct
    • Work center: To be created at Subcontracting plant in ECC. Should have all the capacity details of the dedicated resource available at vendor - Correct
    • Routing: Should have at least one operation (scheduling relevant) based on the Work center - Correct


    • Product Master at Subcontracting Location (Via CIF) - Updated with Procurement Type is F
    • SNP PDS (created by Core Interface (CIF) Integration model). Select normal SNP PDS not SNP Subcontracting PDS while generating Integration model - - Correct
    • Vendor Location master - Correct
    • Resource Master data at Subcontracting Plant (Transferred via CIF Integration model) - Correct


    Header Product procurement type is F for that reason system creating the Purchase Requisition.

    If Material F and SP 30 send this information to APO system material is updated with F.

    Please confirm how to create planned order for header product by SNP Heuristic Run.

    If I change the procurement type to E or X planned orders generated for header product. I am looking for a solution without changing the Product-Location Master in APO system SNP planned order creation for header product.

    I do not have issues with dependent components (BOM).

    Thank you,


    • Hi Lingaiah,

      I know it's late now but somehow I missed your comment.

      In your case F-30 Material is being updated as F in APO. Kindly check CIF user exit / configuration to correct this. It should come as X in APO. With Proc type X, heuristics will generate planned orders.



  • Hi Ravi

    Great article. Thanks for sharing your experience. I'm wondering if there is a way to do the same with CTM which does all in one stage than a 2 step in heuristics ( first heuristics and then capacity leveling)?

  • Hi Ravi,

    I tried this scenario and am stuck at a point where we have a FG+BOM .And after Ciffing the materials I can only see the header material and I do not see the BOM as part of the PDS in APO .In ECC all the three are available.And I do not see the dummy resource as well in the PDS in APO this MATLOC combination.

    Request your kind help on this .