Outsourcing is a widely used business process in the manufacturing industry. The main reasons are:
- In the manufacturing facility, certain machines are not available because they would not be used enough to justify the high cost. Outsourced anodizing, heat treatment, black oxide treatment, many examples exist. It is cheaper to have these operations done permanently “outside.”
- The manufacturing facility has the ability (machines/personnel) to do the work but the facility is too busy in a certain time period. This is capacity-driven outsourcing and it is also a very frequent phenomenon.
Outsourcing comes in two main flavors. Our focus in this article is only on one type of outsourcing, where my materials are sent to a contractor and he returns a finished part number. This can be a permanent arrangement, or it could be done ad hoc.
Let us compare the two main flavors of outsourcing in the manufacturing industry from the perspective of Dynamics 365 for Finance and Operations (D365FO):
|Subcontracting an operation||Subcontracting as outsourced production|
|In the Production order routing one or more steps are outsourced operations, the other operations are in-house.||There is typically only one routing step, and it contains a Vendor resource group or resource.|
|The part number leaving my facility is the same part number that returns from the contractor.||Part number(s) leaving my facility is/are different then what comes back from the contractor.|
|This scenario is represented in the system by an “in-house” production order with an associated Purchase order for a service item.||This scenario is represented in the system by a vendor production order with an associated Purchase order for a service item.|
|Receiving consists of receiving the subcontracted PO.||Receiving consists of two steps: receiving the subcontracted PO and Reporting as Finished of the vendor production order (but not in this sequence!).|
|Purchasing deals with subcontract Purchase orders only.||Purchasing has to deal with Purchase orders and Production orders.|
|No need for a vendor warehouse or a vendor location in the system||Need to set a vendor warehouse and/or location where my materials are showing as on-hand at the contractor|
The following will only discuss the subcontracting of the entire process, where my part numbers are sent to the contractor and he sends me a different part number back.
Standard features of D365FO for Subcontracting as Outsourced Production
- Production orders can have an order type “vendor.” Vendor production orders behave like any production order but when creating a vendor production order automatically, it will get this order type.
- The standard system does automatic creation of vendor production orders. It is triggered by entering the outsourced manufactured item in the next higher assembly BOM with line type “vendor” and the vendor account, just like it is done for the service item. When the higher level Production order is estimated, a vendor production order for the subcontracted manufactured item (and a subcontract PO) will be created.
This functionality works fine, yet we are going to suggest an alternative solution, also 100% standard, and we are going to use MRP. I can create “vendor” production orders manually, but if I have planned production orders from the MRP run, there is no way I can make them so they become “vendor” production orders.
New Ideas for Subcontracting as Outsourced Production
The “vendor production order” has never been an easy process in the system because of having to deal with two transactions when receiving. (see NOTE) In addition, it has always been an issue that MRP is not involved in the traditional solution that used to be found in the manual. One would want a third planned order category “outsourced production” and that is exactly the main idea I am introducing here by using a significant routing id. Dealing with the two transactions remains but using the available flushing options one can complete a Subcontract production receiving process fairly quickly. The right setup correct is key. The Production control module has many options for material and labor transactions.
NOTE: Without Advanced warehousing it is possible to have the Receiving of the subcontract PO trigger the Report as Finished of the associated Production order. (The routing card posting would trigger back-flushing and Report as finished) Because of the license plate requirement for the receiving location, this functionality cannot be used anymore.
- Idea 1: Use manually created Routing-Id’s. Create master Vendor routings with a meaningful id like “OUTSOURCE01.”
The function of a Vendor routing is to provide input warehouse and location for the consumption of the material. It is also needed when we want to use the Vendor note. (See blog on that topic at end of article.)
- Idea 2: Any manufactured item that is permanently or temporarily outsourced will get this routing id. For a new item that has no routing yet, we simply link it to the existing Outsource routing by choosing New/ Route version and inserting our Outsourced routing.
- Idea 3: For ad hoc outsourcing, we simply give the planned production order a different routing id by editing the planned production order and replacing the in-house routing with an outsourced one, in the tab “Planned supply.”
- Idea 4A: Because the production schedulers are not interested in these outsourced production orders, they should filter out the planned production orders with Routing id = “OUTSOURCE-xx” and create a planned production order tile without them. To do this, we first add routing -id to the grid of the planned production orders so we can filter on it. (additional filtering on buyer group would be likely). Purchasing would do the opposite and create a tile for planned production orders that only contain orders with this type of Routing id. This tile would fit perfectly in workspace “Purchase order preparation.”
- Idea 4B: For Production orders, we also add the Routing id to the grid like we did for planned production orders and now both Purchasing and Manufacturing can filter and create their tiles.
- Idea 5: Using “resource consumption” in the BOM lines we control which warehouse shows up in the Prod-BOM with the routing. We can have an “in house” routing where the warehouse on the Resource group is our warehouse and an “Outsource” routing where the input warehouse on the Vendor Resource group is the vendor warehouse.
Advantages of This Solution
- The first three ideas can be used in any version of the system.
- Instead of tiles one can use “filtered favorites” to have the same effect as the tiles in D365 for Finance and Operations
- We can use MRP and have the planners/buyers make the outsource decisions in the planning stage
- The only manual work is the creation of a specific routing ID. If the routing id is normally generated automatically, we would switch the number sequence to manual just for a while to create standard outsourced routings that can be used by all outsourced manufactured items. Then we switch the number sequence to automatic again.
- We have a very easy “make/buy” switch for outsourcing production by simply switching the routing on the planned production order. This will change the warehouse in the BOM accordingly.
- These ideas are not changing the actual transactional flow from order creation to receiving.
Set up for Subcontracting as Outsourced Production
- The manufactured item will have a normal BOM, with a service item in addition, and a one step Vendor routing. The vendor routing contains one operation for a Vendor resource group with one vendor resource. (System does not allow one-to-many for vendor resources. Each vendor resource needs its own group.) The vendor is only mentioned on the resource when the resource is of type “vendor.”
- Set the Parameter in Production control to post a routing card for the vendor routing step automatically upon receipt of the PO. In Prod control parameters/ automated actions the automatic route consumption is set to “route group dependent”. This means the vendor routing has a special route group that flushes and auto-completes the vendor routing operation.
NOTE: “Route group dependent” does work like “flushing principle” for materials but there is one key difference. For materials I have a value “Start” or “Finish” on the material or BOM line to guide the system. The route group has a few checkboxes that come down to “flush – yes” without indicating whether this is at start or finish.
Receiving a Purchase order is a kind of “Finish” so the Automatic BOM consumption in this parameter would only flush items with flushing principle – Finish. The Automatic route consumption will check whether the operation linked to the service item being received does have sliders set to ‘yes’ to flush the labor and complete the operation.
The Automatic BOM consumption is set to “Never”. When we receive the subcontract PO, we don’t want an immediate Prod order Picking list journal to be posted. We will flush the service item at Report as Finished time).
This is the setting in the route group that is only used for outsourced operations. It causes automatic reporting of any set up or run time (which we typically don’t have) and the automatic completion of the operation (this is the “report as finished” checkbox) and a quantity (the quantity checkbox). The quantity is key because at RAF the system will check whether our RAF quantity has been reported in a Routing card before.
- Vendor routing operation can have queue time. This creates a more realistic lead time for the production order. If we put a lead time on the service item only, we would have to run production scheduling with “finite materials” to get the same result. For the vendor routing it is key that it cannot contain any direct labor. See example below.
- Setup and process categories in the vendor routing operation are filled in with a ZERO rate value. Just as a precaution, the categories in the routing operation have a zero dollar rate. There is no time in the set up and process fields but the categories are still mandatory and this sends a clear message that there is not a penny of labor in this routing. See example below.
- Warehouse in the BOM could be the regular warehouse or a vendor warehouse. There are scenarios where the contractor/vendor already has “our” materials that are needed. We shipped them earlier or we have a PO delivered directly to the contractor. In that case, a vendor warehouse would exist that will be the warehouse in the Prod-BOM lines. To get that warehouse in our Prod-BOM lines we would make sure this warehouse is the input warehouse in the Vendor routing.
- The challenge is that receiving personnel has to deal with production order steps. We have to reduce these steps to the absolute minimum. “Our” material has to be set up with back-flushing at start or finish and the service item in the Prod-BOM should be set up with backflush principle “finish.”
Subcontracting Process as Outsourced Production – All Steps
Assumption: Advanced warehousing is used for “our” warehouses. We will use the warehouse app for the Report as Finished transaction
|STEP 1. As a buyer, firm a planned vendor production order or create a manual prod order with vendor routing that has a special id that shows ‘Outsourcing” somewhere. As a buyer, I can filter on these planned production orders using the routing-id. In the vendor routing, the resource group with a vendor resource has the input warehouse and location filled in with a vendor warehouse and location. (vendor warehouses only need one “default” location)|
|STEP 2. The Prod-BOM has a vendor warehouse (which should be a regular warehouse). Verify that the Prod-BOM has a service item with line type ‘vendor’ and a vendor account id. Flushing principle should be “finish” for the service item. The other BOM lines should have flushing principle “start”. Make sure inventory is available in the vendor warehouse.|
|STEP 3. Subcontracted Purchase order is created. (warehouse on the line is also the vendor warehouse when we use resource consumption – yes for the service item) Confirm the Purchase order (= send it to contractor/vendor).|
|Wait for the contractor to deliver the finished item.|
|STEP 4. Start the vendor production order with settings in general tab as shown:
Automatic route consumption = No. The routing group in the routing operation is set to backflush and complete the operation automatically. We have chosen to let the purchase order do this.
Automatic BOM consumption = Flushing principle. “Our” materials are now consumed from the vendor warehouse.
|STEP 5. Receive the subcontract PO.
The automatic route consumption parameter will post a Route card journal. This message will show after the PO has been received but only if you had checked the box in the parameter “Show info.”
|STEP 6. Report as finished the Production order using the warehouse app.
We can use automatic license plate creation and we can select a put location. NOTE: The warehouse app RAF is hard coded with BOM consumption = Flushing principle so the Service item will now be consumed, we will get a posted Picklist journal.
|STEP 7. Subcontracting cost shows in Production posting
The purchase price on the PO line for the service item is showing in production posting after it is “consumed” with a Picklist journal.*) Service items are typically set up to allow negative inventory so we could have flushed the service item at the Start without getting an error. But in that case no cost info is available yet so production posting would see zero dollars.
*only if the Item Model group of the service item has the checkbox “include physical value” checked
If this box is not checked, we will only see the subcontracted cost in the production order after the Purchase order has been invoiced and the production order has been ended.
Two of my articles that are related:
- How to use standard or “master” routings in Microsoft Dynamics AX and D365 for Finance and Operations
- How to print a “vendor note” in Microsoft Dynamics 365 Finance and Operations Enterprise for every shipment of subcontracted products
Have questions or want to discuss your ideas for Dynamics 365 for Finance and Operations? The Sikich experts are here and ready to chat!