Outsourced Production – New Ideas in D365 for Finance and Operations

Outsourcing is a widely used business process in the manufacturing industry. The main reasons are:

  • In the manufacturing facility certain capabilities 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 I receive back a finished part number. This can be a permanent arrangement, or it could be done ad hoc. We call this “Subcontracting as outsourced production.” To see the differences clearly we compare “operational outsourcing” with “outsourced production” below.


  • In the Production order routing one or more steps are outsourced operations, the other operations are in-house.
  • The part number leaving my facility is the same part number that returns from the contractor.
  • This scenario is represented in the system by an “in-house” production order with most routing steps “in house” and one outsourced operation, typically the last one. The subcontract Purchase order is for the service item in the BOM that represents the labor charge for the outsourced work.
  • Receiving consists of receiving the subcontracted PO. NOTE: The production order has to be in status “Started” when the Purchase order is received.
  • Purchasing deals with subcontract Purchase orders only.
  • No need for a vendor warehouse or a vendor location in the system.


  • There is typically only one routing step, and it contains a Vendor resource group or resource.
  • Part number(s) leaving my facility is/are different then what comes back from the subcontractor.
  • This scenario is represented in the system by a vendor production order with an associated Purchase order for a service item.
  • Receiving consists of two steps: receiving the subcontracted PO and Reporting as Finished of the vendor production order.
  • Purchasing has to deal with Purchase orders and Production orders.
  • Need to set a vendor warehouse and/or location where my materials are showing as on-hand at the contractor.

The following will go into detail of the subcontracting as outsourced production, where my parts are sent to the contractor and he sends me a different part number back.

Production orders can have a type “vendor.” Vendor production orders behave like any production order but when creating a vendor production order automatically, it will get this type automatically, allowing for easy filtering and sorting (and of course, tiling).

outsourcing dynamics 365

The standard system does automatic creation of vendor production orders. This process 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.  There is on disadvantage to this idea: if I have planned production orders that I firm,  there is no way I can make them “vendor” production orders. This should be possible. I have added this to the Ideas database for your vote.


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 below) In addition, it has always been an issue that MRP is not involved in the traditional solution. Suddenly there is this Production order, after the Prod order for the higher level Assembly was estimated. For operational outsourcing, we add service items to the BOM. For this type of outsourced production, changing the BOM line type of the next higher Assembly is an issue. The BOM comes from a PLM system or a CAD system. The decision to outsource is made by people in operations. We found that customers prefer a solution where outsourced production goes through firming of planned orders. That is why one would want a special planned order category “outsourced production” and that is exactly the main idea I am introducing here by using a significant routing id. Production planners need a way to exclude these vendor production orders as they have nothing to do with them.

Dealing with the two transactions at receiving cannot be avoided but using the available flushing options one can complete a Subcontract production receiving process fairly quickly. The right setup is key. (as always) The Production control module has many options to automate 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 routing- id like “OUTSOURCE01.”

The function of a Vendor routing is to provide the input warehouse and location for the consumption of the material. It is also needed when we want to use the Vendor note. (See the reference to a blog on that topic at end of article.) If you do not use “resource consumption” on the BOM lines because there is only one site that does production, then here is a reason to use that checkbox. The Prod Bom warehouse will switch to the vendor warehouse if I switch to the vendor routing.

outsourcing dynamics 365

Idea 2: Any manufactured item that is permanently or temporarily outsourced will get this intelligent routing id called ‘Outsource-“ or similar. 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.

outsourcing dynamics 365

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.”

outsourcing dynamics 365

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 the routing -id to the grid of the planned production orders so we can filter on it. (additional filtering on buyer group is typical). Purchasing would do the opposite and create a tile for planned production orders that only contain orders with this type of outsource Routing id. This tile would fit perfectly in the workspace “Purchase order preparation.”

outsourcing dynamics 365

outsourcing dynamics 365

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.


  • 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. This fits a typical manufacturing business much better.
  • 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 now 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.


Step 1: 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.”

outsourcing dynamics 365

Step 2: 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.

outsourcing dynamics 365

Production control parameter for automated action upon receipt of Subcontract Purchase order

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).

outsourcing dynamics 365

  Routing group setting for back-flushing of routing operation

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.

Step 3: 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.

outsourcing dynamics 365

  Vendor routing operation with only queue time: 120 hours = 5 calendar days

Step 4: 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.

cost categories

Step 5: 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. Or he has some of them. 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.

Step 6: 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.”


Assumption: Advanced warehousing is used for “our” warehouses. We will use the warehouse app for the Report as Finished transaction. The vendor warehouse is obviously a “regular” warehouse.

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. The 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:

route card journal

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.

outsourcing dynamics 365

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.” receive purchase order

STEP 6. Report as finished the Production order using the warehouse app.

RAF and Putaway

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.

subcontracted service items

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.

Need More Information?

Two of my articles that are related:

Have questions or want to discuss your ideas for Dynamics 365 for Finance and Operations? The Sikich experts are here and ready to chat!

This publication contains general information only and Sikich is not, by means of this publication, rendering accounting, business, financial, investment, legal, tax, or any other professional advice or services. This publication is not a substitute for such professional advice or services, nor should you use it as a basis for any decision, action or omission that may affect you or your business. Before making any decision, taking any action or omitting an action that may affect you or your business, you should consult a qualified professional advisor. In addition, this publication may contain certain content generated by an artificial intelligence (AI) language model. You acknowledge that Sikich shall not be responsible for any loss sustained by you or any person who relies on this publication.

About the Author