The subcontracting process involves sending components to a vendor for specific manufacturing processes and receiving the value-added finished material back into inventory. For example, a manufacturing plant builds products in the US. A few products, however, are not built in-house by the plant, but are outsourced to a subcontractor in India. Now components to manufacture this product are procured from an external supplier (a third-party vendor) also located in India.
In the normal form of subcontracting, the Indian supplier would deliver the components to the plant in the US. The US plant would then send them back to India—to the subcontractor. To avoid this unnecessary diversion, the component supplier can send the components directly to the subcontractor in India.
I explain how the mapping of this business process of subcontracting with a third party can be done in SAP Advanced Planning and Optimization (SAP APO) Production Planning/Detailed Scheduling (PP/DS) with integration to SAP ERP Central Component (ECC).
A Case Study Overview
Consider this case study simulation. A company has a manufacturing plant PLANT-A that has demand for product FG-A. A bill of material (BOM) for FG-A is shown in Figure 1.
A BOM of product FG-A at PLANT-A
FG-A is the subcontracted part that the plant would receive from the subcontractor. The BOM in Figure 1 shows that the plant has two bulk materials that are used for FG-A. Bulk materials are directly available at a work center (low-cost items such as washers). Also dependent requirements of bulk materials are not relevant for materials planning, which means they are not taken into account for net requirements calculation. Figure 1 also shows that that plant has a child part, RM-A1, which is the drop-ship component (i.e., it would be supplied by the third-party vendor to a subcontractor that will send it to PLANT-A). Figure 2 shows how the procurement process is set up.
The subcontracting process of FG-A
During the process of subcontracting, components are delivered directly to subcontractors from third-party external vendors. Figure 2 shows that third-party VENDOR-Y will ship components to the subcontractor (VENDOR-X), which in turn will be responsible for sending it to the manufacturing plant (PLANT-A).
Master Data Setup in ECC
Before running the subcontracting process, you need to have master data configured in the system for the following objects in ECC:
- Material master
- BOM and production version
- Schedule agreement
- Purchasing info record
(Note: I assume readers know how master data is set up and configured in ECC. For this article I cover only the important master data configuration.)
To create the material master in ECC, use transaction code MM01. I have created materials FG-A, RM-A1, BULK-X, and BULK-Y for PLANT-A. Figures 3 and 4 show important setup activities for FG-A and BULK-X. (A similar setup is needed for RM-A1 and BULK-Y, respectively.)
Figure 3 shows that the MRP Type is X0 and hence the material would be integrated to SAP APO.
The material master for FG-A
(Note: In Figure 3, the MRP Type is X0 to show that the material will be planned in SAP APO.)
The material master for BULK-X
In Figure 4, note that a user has selected the Bulk Material check box.
To create a BOM, execute transaction code CS01. Figure 5 shows the BOM for FG-A.
The BOM for FG-A
A production version is the combination of a BOM and a routing number. Because the subcontracted part is supplied directly from a third-party vendor, you need to maintain just the BOM in the production version. To create the production version, execute transaction code C223. Figure 6 shows production version SUB1 created and assigned to FG-A.
Production version for FG-A
Schedule agreements are created via transaction code ME31L. For my example, you have two agreements—one between PLANT-A and the subcontractor (VENDOR-X), as shown in Figure 7, and another between the subcontractor (VENDOR-X) and the third-party vendor (VENDOR-Y), as shown in Figure 8.
Schedule agreement between the plant and subcontractor
Schedule agreement between the third-party vendor and the subcontractor
Also for this agreement between VENDOR-X and VENDOR-Y, notice that the user has selected the SC vendor check box as shown in Figure 9. This indicator identifies the vendor as a subcontractor. This setting is mandatory to deliver the component directly to the subcontractor from the third-party vendor.
The SC vendor check box is selected
(Note: Vendor 230282 is the subcontractor [VENDOR-X] and 229949 is the third-party vendor [VENDOR-Y].)
Purchase Info Record
A purchasing info record of the type Subcontracting is maintained for product (FG-A) between the plant and the subcontractor. To create the purchasing info record, execute transaction code ME11. In the screen the system displays, populate the Vendor (e.g., 230282), Material (e.g., FG-A), and Plant (e.g., PL - A) fields as shown in Figure 10 and then press Enter.
Create a purchasing info record
In the next screen (Figure 11), add the production version SUB1 to the Version field (shown in Figure 6) and click the save icon (not shown).
The subcontractor version in the purchasing info record
Master Data in SAP APO
All master data created in ECC in the above section has to be transferred to SAP APO. This is done via the Core Interface (CIF). The diagram in Figure 12 shows the mapping of master data objects between ECC and SAP APO.
Master data mapping between ECC and SAP APO via the CIF
(Note: The production process model (PPM) represents a BOM and a routing number (i.e., what product you make and what line it runs on along with how much of that line’s capacity is consumed by the production). Note that the SAP system provides an alternative data structure in the form of a production data structure (PDS). It can be used as an alternative to PPM and is generated via the CIF from the ECC system. PDS provides slightly more advanced functionality in terms of supporting processes such as engineering change management and variant configuration.)
To transfer master data created in ECC to SAP APO, you need to complete two steps:
- Create and generate an integration model (transaction code CFM1)
- Activate the integration model (transaction codes CFM3 and CFM2)
I do not show the details of the CIF process in this article, but by using the above two steps, all master data is transferred to SAP APO.
To view the PDS in SAP APO, execute transaction code /SAPAPO/CURTO_SIMU. In the screen the system displays (Figure 13) enter FG-A in the Product Number field and 000 in the Planning Version field. In the PDS Usage field, select PDS for Production and Detailed Planning (PP/DS) from the drop-down list of options. Click the execute icon. This action opens the screen in Figure 14.
Enter parameters in the PDS selection screen in SAP APO
The screen in Figure 14 shows the BOM for FG-A. Note that it only shows component RM-A1 for FG-A as the other two materials, BULK-X and BULK-Y, are bulk parts and not planned in SAP APO. Also a PDS is present for both PLANT-A and VENDOR-X (230282).
PDS details in SAP APO
External Procurement Relationship
Schedule agreements that were created in ECC show up as an external procurement relationship (EPR) in SAP APO. To view the EPR, execute transaction code /SAPAPO/PWBSRC1. This action opens the screen shown in Figure 15. In the Product Number field, enter FG-A and then click the execute icon. This action displays the screen in Figure 16.
Enter a value in the Product Number field
Figure 16 shows the schedule agreement 5500023050 (created in Figure 7). Note that this is of the type Subcontracting between VENDOR-X and PLANT-A.
EPR between VENDOR-X and PLANT-A
Similarly, you can see the EPR for RM-A1. Figure 17 shows the schedule agreement 5500023051(created in Figure 8). Note that this agreement is between VENDOR-X and VENDOR-Y.
EPR between VENDOR-X and PLANT-A
When scheduling agreements are transferred from ECC to SAP APO, the SAP system creates both an EPR and a transportation lane. Transportation lanes are needed for planning distribution and procurement between different locations. Products can only be externally procured if transportation lanes exist between the possible locations.
To view the transportation lane, execute transaction code /SAPAPO/SCC_TL1. This action opens the screen shown in Figure 18. After you view the transportation lane, press Enter. This action displays the screen in Figure 19.
View the transportation lane details
In Figure 19, note that the transportation lane exists against the schedule agreement 5500023050 (created in Figure 7).
The transportation lane between VENDOR-X and PLANT-A
Similarly, you can also view the transportation lane between VENDOR-Y and VENDOR-X (Figure 20).
View the transportation lanes for VENDOR-Y and VENDOR-X
In Figure 21, note that the transportation lane exists against the schedule agreement 5500023051 (created in Figure 8).
The transportation lane between VENDOR-Y and VENDOR-X
By default, the system also creates additional transportation lanes between the plant and subcontractor (i.e., between PLANT-A and VENDOR-X). You need to block this transportation lane as this is invalid. To block the transportation lane, execute /SAPAPO/SCC_TL1, enter the Source Location as PLANT-A, and enter the Destination as VENDOR-X. Click the Change button shown in Figure 22.
Transportation lane input parameter
In the next screen (Figure 23), enter X in the field under the Block Indicator column. The importance of adding this block indicator is explained later in the article.
Block indicator set in the transportation lane
Simulation of a Planning Run in SAP APO
To simulate the planning run, execute transaction code /SAPAPO/RRP3. In the screen that the system opens enter parameters in the Plng Version (planning version), Product, and Location fields. For my example, enter 000, FG-A, and PLANT-A, respectively) as shown in Figure 24. Press Enter to go to the screen in Figure 25.
Enter parameters in the Product View screen
In Figure 25, note that there is demand of a quantity of 10 for FG-A at PLANT-A. To go to edit mode, click the edit icon enclosed in a red box in Figure 25.
Product view change mode
Click the Product Heuristic button as shown in Figure 26.
Run product heuristics
In the refreshed screen, notice that after the material requirements planning (MRP) has been executed (by clicking the Product Heuristic button in Figure 26), the system created a receipt element (i.e., a purchase requisition) for a quantity of 10 to cover the demand. Notice that the source of this purchase requisition is from VENDOR-X. So the system is indicating that this quantity of 10 would be provided by VENDOR-X to PLANT-A. To save your data, click the save icon shown in Figure 27.
Note that the purchase requisition number is 701874171.
The planning result of FG-A at PLANT-A
Double-click the purchase requisition (PurRqs under the Category column) in Figure 27. In the next screen, again note that the Source Location is VENDOR-X. To see the situation at the subcontractor location (i.e., VENDOR-X), double-click Requirements for FG-A (highlighted in yellow) in Figure 28. This action opens the screen in Figure 29.
Planning Result Details of FG-A at PLANT-A
The planning result of FG-A at VENDOR-X
Figure 29 shows the demand/receipt situation for FG-A at VENDOR-X. Now the subcontractor (VENDOR-X) has a demand of a quantity of 10 from PLANT-A. This is shown as PReqRel (purchase requisition release) of 10 in Figure 29. To cover the demand of this quantity of 10, MRP has generated a planned order of a quantity of 10 as shown in Figure 29.
To check the source for this planned order, double-click Planned Order 701874171. This action opens the screen in Figure 30.
Planning result details of FG-A at VENDOR-X
In Figure 30, the source of supply for this planned order of 10 at VENDOR-X is the PDS at VENDOR-X. Also this planned order of a quantity of 10 at VENDOR-X for FG-A has generated demand for child component RM-A1. To see the demand/receipt situation for this RM-A1 at VENDOR-X, double-click it as shown in Figure 30. This action opens the screen in Figure 31.
Planning result of Raw Material-A1 at VENDOR-X
In Figure 31, note that for product RM-A1 at VENDOR-X, there was demand of 10 shown by the SubReq (subcontractor requisition). To cover this demand, the system created a purchase requisition of 10 with the source as VENDOR-Y. To see the details, double-click PurRqs 701874170/000010 in Figure 31. This action opens the screen in Figure 32.
The planning result details of RM-A1 at VENDOR-X
In Figure 32, note that the source Location is VENDOR-Y (i.e., VENDOR-Y would provide the components for a quantity of 10 for RM-A1).
In Figure 23, I had shown you how to block the transportation lane between PLANT-A and VENDOR-X. If this blockage is not done, then instead of Figure 30, the system would generate incorrect planning results as shown in Figure 32. Here to cover the demand of 10 for RM-A1 at VENDOR-X, instead of procuring it from VENDOR-Y, the system would create a stock transfer reservation of a quantity of 10 with the source as PLANT-A. To see the details, click StkTrfRes (stock transfer reservation) element 701874173/000010) as shown in Figure 32. This action opens the screen in Figure 33.
Incorrect planning result of RM-A1 at VENDOR-X
In Figure 33, the system has chosen the Source Location as PLANT-A. Click the Change button highlighted in Figure 34 to display the screen in Figure 35.
Incorrect planning result details of RM-A1 at VENDOR-X
Two sources of supply
In Figure 35, note that the system found two sources of supply—one from PLANT-A and another from VENDOR-X. Therefore, the system selects the first one from PLANT-A and creates the stock transfer reservation. This is incorrect because for child RM-A1, VENDOR-X would receive stock from VENDOR-Y and not from PLANT-A. This is the reason why I had blocked the transportation lane in Figure 23.