Subcontract purchase order receipt with route card posting

The main complication of subcontract purchase orders within Microsoft Dynamics AX is that you have two parallel orders that you need to track: the parent production order; and the related sub-contract purchase order.

You’ll probably know that sub-contract production in Dynamics AX uses a BOM item flagged with a BOM line type of ‘Vendor’. Incidentally, although this item is most typically a Service item, it has to have an item model group which flags it as a stocked item. If you try to add a non-stocked item to a BOM you get the error: “An item cannot be associated with a BOM if it is associated with an item model group where the attribute Stocked product is not selected.”

It’s possible to setup a business process that involves a separate purchase order receipt of the sub-contract item followed by a report as finished receipt of the finished goods item, but why would you want two transactions posted into Dynamics AX? That can only end up with discrepancies, and misery paves that road.

Let’s setup a nice simple item, with a nice simple BOM (sounds like the start of a song). My example could work for an item which is being packed by a subcontractor. We’re providing the item; the subcontractor is providing all of the packaging:

You’ll see that I’ve added the Line type and Vendor fields from the General tab into my BOM line overview grid, and I’ve created a Vendor warehouse using my Vendor account code.

I’ve also flagged by sub-contract service item as batch tracked, and I’m using a Batch number group that will set the batch number to a ‘Reference’:

That’ll give us an additional level of tracking on the service item, and we’ll see that in action in a minute.

Both the subcontract service item, and the raw material item are setup to back-flush (Flushing principle = Finish).

Later, when we post the purchase receipt you’ll see that the system posts a route card journal to update the production order. Obviously, therefore our finished item needs a production route:

We’re not using this route operation for costing or scheduling, so I’ve left the run time zero in this example – but you can use it for scheduling your sub-contractor or adding a lead time if that’s useful.

I need to get my raw materials into the Vendor warehouse. That’s either a purchase order direct into their warehouse, or a transfer from my own warehouse.

Then we create a production order, and when we schedule the production order (pedantically, when we estimate the production order) the system creates our sub-contract purchase order. There are a couple of ways of finding the subcontract purchase order. Production control > Common > Subcontracted work is a nice display form (with some action buttons) but I tend to check the production order BOM (mostly because, if I’ve just scheduled the production order, I’m on that form):

The purchase order is shown on the reference tab:

(Did you notice the batch number on the previous screen-shot?).

Right-click > View details on the purchase order, and you can see that the purchase order is a sub-contract purchase order because the production order information is shown on the line details Product tab:

While you’re checking the purchase order, confirm it. Incidentally, you cannot use purchase order approval on sub-contract purchase orders – if you have implemented purchase order approval workflows, your subcontract purchase order vendors must be flagged with ‘Change management’ not active.

Before we process the purchase order receipt, we need to check our production parameters:

Make sure that the Route card is set to ‘Automatic report as finished’, and make sure that you’re going to do a route consumption when you do a purchase order receipt (in this example I don’t need BOM consumption on the route card, because the purchase order receipt will backflush my items).

Almost ready. Gentlemen start your engines. Sorry. Start your production order:

Take care with your parameters on start. I’m backflushing the material and the sub-contract service, so nothing is issued at production order start, and I don’t want to create any un-posted journals.

Now we’re ready. Post a purchase order receipt for the sub-contract purchase order:


(well we did have “Show info” ticked in the parameters).

Let’s see what we can see. On the production order we’ve received our finished item and set the status to ‘Reported as finished’:

Our sub-contract item’s been received, and issued to the production order:

(The batch number’s just giving us an extra bit of tracking. These two transactions are marked to each other so it’s not strictly required, but it can help resolve those niggling little issues that turn up a few months after go-live).

We’ve issued our raw material:

And we have all the aforementioned journals:

Not bad for a single purchase order receipt posting.