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.


15 thoughts on “Subcontract purchase order receipt with route card posting

  1. Very clear and detailed post Tim, well done, much appreciated.

    So far in my tests I am unable to get this to work correctly when I try to receive a partial amount of the service item purchase order and expecting the partial receipt to create a partial report as finished on the production order.
    Example, service item PO is for 10 and if I “receive now” 8 on the purchase order, I am unable to obtain a RAF quantity of 8 on the production order, the system “ignores” the receive now quantity and posts 10 on the RAF quantity.

    Your thoughts are most appreciated



      • The “trick” apparently is to link the BOM service item to the operation number on the route AND ensure that the ressource being used in the route is of type “vendor”; when that’s done, partial receipts work fine


  2. Hi Tim,
    Do you know how (if?) AX can handle the PO receipt cancellation? Imagine the production order and purchase order are for 22, we physically got back 21 pieces from the subcontractor but by mistake we received 22 in AX. When we return the 22 and receive 21 again we have a total of 43 pieces posted on route cards because AX doesn’t cancel the first route card. Is there a way to do that?


    • Hi Richard, I wouldn’t rely on Purchase receipt cancellation to reverse these postings. I think I’d work through the reversal process step by step; reversing the picking list issue; posting a negative route card; and reversing the product receipt as three separate steps.
      Hope this works


      • OK, it’s what I answered but I wanted to check if a better way could exist. Thanks for your reply.


  3. Hi Tim

    One question .
    I am working on an implementation where we also use WHS .
    Using the subcontracting scenario is great , but we are having the following issue : when the Product receipt is performed , then the RAF is triggered and the Default Production receipt Location is not populated in the RAF journal and the process is stopped and the RAF journal is not posted .
    Do you know if this scenario needs a special consideration when working with WHS ?


  4. Hello Tim, This is a very helpful post. Could you give me an advice? I have this scenario but my subcontractor is an intercompany. How can I handle the product receipt and issue in my subcontracting company since raw material is provided by intercompany client?




    • Hi Brenda, I don’t think that the intercompany setup affects the production order subcontract purchase order – but I’ve never come across that setup. The only difference I can think of is that you will have to deliver and invoice the intercompany sales order before you’ll be able to post the product receipt and invoice on the intercompany subcontract purchase order.


    • Hi Jen, thanks for the comment. You’ll have to do some customisation to achieve this on AX2009 I think – from memory 2009 posts the route card, but there’s no Option to do the Report as Finished.


      • To be honest, I’d be happy with just getting it to post a Route Card. In the current system set-up, the user creates the Route Card and Purchase Order receipt as separate transactions and the Purchase Order amount doesn’t flow back to the Production Order. It would be great if I could save them at least one transaction at this point.

        We’re using a system that was set up five years ago with no real focus on costs or processes and trying to fix the damage.


      • Thanks so much for response! I managed to get it to work in the sandbox on a new company we’ve just implemented, so then I was able to work backwards and figure out what the issues were in getting to work in another company.


  5. Hi Tim, thanks for this post!
    I managed to configure all this, and it’s working except that in the RAF journal no quantity is entered, so I still have to manually make another journal to report the quantity obtained.
    Any thoughts?!

    Thanks a lot!


    • Hi Mercedes. Well obviously you’ve checked that you have your production parameters setup correctly – so the only other thing I can think of is it could be your Dynamics AX version. This post was done on the AX 2012 R3 CU9 demo image. I’m pretty sure that the first time I looked into this (a couple of years ago) we didn’t get the Report as finish posted, just the route card.


Comments are closed.