Vendor managed inventory in Dynamics 365 for Operations

I’ve just been reminded of a handy little website: roadmap.dynamics.com. It’s a great place to keep up to date with the what’s new, and roadmap for Dynamics AX / Dynamics 365 for Operations. Tucked away under the What’s new > Vendor collaboration, is an announcement of the availability of Vendor managed inventory – or Consignment stock.

This is a really nice enhancement of supply chain functionality.

Consignment stock is often used in Lean manufacturing implementations – but I’ve also come across it being used in more traditional environments, and it seems to be very commonly used for labels and packaging, because the printing vendor wants to use large batch sizes to minimise their setup and run costs, and they’re prepared to hold the inventory.

So let’s walk through this new functionality, and note that this is only available for Dynamics 365 for Operations – it’s not available for Dynamics AX 2012.

Detailed instructions are found on the Dynamics 365 for Operations Help Wiki. The summary is that the process uses the ‘Owner’ inventory dimension (which used to be enabled only as a localisation for Russia); a new Consignment replenishment order; and an Inventory ownership change journal.

First some setup.

Inventory owners. Inventory management > Setup > Inventory owners:


Here, we are setting up a link between our vendor and the Owner inventory dimension, and defining the default dimension which represents our own inventory.

Tracking dimension group. Product and information management > Setup > Dimension and variant groups > Tracking dimension group:


We’ve created a new Dimension group with the ‘Owner’ dimension active – in the current version you can’t enable batch or serial tracking (well you can on this form, but you get an error when you try to create an item with with this Tracking dimension group).

Inventory ownership change journal. Inventory management > Setup > Journal names > Inventory:


No surprises here, apart from the new Journal type, and of course we can define a default Ownership change journal name:


Next I’m creating a new Consignment stock warehouse. This isn’t strictly part of the process, but it’s the way I’ve seen this process being managed in practice. Inventory management > Setup > Inventory breakdown > Warehouses:


Note. Don’t be tempted to use the warehouse Vendor account on your Consignment warehouse. That field is related to the sub-contract production process (where you want to deliver to your sub-contract vendor), so it defaults the warehouse delivery address. In this context you’d have products going round in circles.

Now we can setup a new item, and assign that Tracking dimension group. Note that only standard cost, and moving average inventory cost models are supported:


I’ve chosen Standard cost, so I’ll activate the standard cost for my released product.

Now we’re ready to create a Consignment replenishment order. Procurement and sourcing > Consignment > Consignment replenishment orders:


Well the concept is pretty self-explanatory. There’s not much to this document and it only supports the Product receipt update. Let’s create one:


Vendor; Contact; Deliver to warehouse – couldn’t be simpler. Add a line:


Again all self-explanatory, and we have a linked inventory transaction:


Without any fuss the system’s assigned the correct Owner inventory dimension.

Consigned inventory is often managed via an over-arching Purchase agreement or Contract. You’ll see in a moment that when you change the owner of the Vendor managed inventory to yourself, the system creates a purchase order. That purchase order will take the price from a purchase price trade agreement, but unfortunately not from a Purchase agreement. So managing the Purchase Contract is currently a manual process. Note also that there isn’t any option to print the Consignment replenishment order, so at this point your communication with your vendor is again a manual process.

As an aside, Master planning recognises the Consignment replenishment order as a supply (but there’s no Planned consignment replenishment orders, you have to create Consignment replenishment orders manually):


OK – now let’s receive our consignment inventory. Procurement and sourcing > Consignment > Consignment replenishment orders > Receive > Product receipt:


Again this form shows all of the features that you’d expect to see. There’s an option to perform Registration prior to receipt, but I don’t really see the point in doing that here. OK updates the on-hand and inventory transactions:


And:


Note that there are no ledger postings related to the Consignment replenishment order product receipt:


Before we consume this inventory we need to create an Inventory ownership change journal. Inventory management > Journal entries > Items > Inventory ownership change or Procurement and sourcing > Consignment > Inventory ownership change:


New gives:


OK gives:


Create a line, and note that the ‘From’ Site, Warehouse, Location and Owner are all enterable – whereas the ‘To’ dimensions are set by the system.

Post the journal, and the system creates a Purchase order:


Note that the Purchase order header shows an Origin of ‘Consignment’ (and the purchase order line quantity can’t be changed on the Purchase order):


Now let’s review the inventory transactions again:


The Inventory ownership change journal has consumed some of our consignment inventory and we have a purchase order product receipt (with the normal ledger postings).

So now we can transfer this inventory and consume it on a production order, and we can post a purchase order invoice on the purchase order.

There are some [sensible] restrictions on the consignment inventory. You can’t issue the consignment inventory to a transfer order, and you can’t issue the consignment inventory to a production order – you have to have posted the ownership change first. But you can count the inventory (up and down), and transfer the consignment inventory using a transfer journal. There’s also a rather neat function to automatically populate the Inventory ownership change journal from production order components.

If you’re planning to implement this process you might want to check out the options for setting up Vendor collaboration as per this help wiki, but it’s perfectly possible to operate this process without giving your vendors access to Dynamics 365 for Operations.

Updated 16/12/2016: Scott Hamilton has just published a definitive article on this topic. See Manage Consigned Inventory using Microsoft Dynamics 365 for Operations.

Vendor calendars in Dynamics AX

“Can we group planned purchase orders by order date?”. This question came up in a Master planning workshop the other day. The buyers have a weekly / monthly routine. For specific vendors, every couple of weeks or so they’re raising purchase orders by vendor.

My first instinct was to think about Vendor calendars – but I’ve never used them, so some investigation was in order – and here it is.

In Dynamics AX you can add a calendar to a customer, vendor, warehouse, coverage group and resource (work centre). The purpose of the calendar is to define working days – AX uses the terminology ‘Open’ or ‘Closed’ for a working day, and for a resource the calendar defines the number of working hours for the day (and optionally some other stuff like Efficiency percentage and Property).

In AX7: Organisation administration > Setup > Calendars > Calendars In AX 2012: Organisation administration > Common > Calendars > Calendars
Working times: Working times:

So we’re going to create a calendar that has most of its days closed, and an open day every second Tuesday. We’ll start with a working time template – and as the working time template only works on a weekly pattern we’ll define one where every day is closed. So I just create a working time template called ‘NONE’:

In AX7: Organisation administration > Setup > Calendars > Working time templates In AX 2012: Organisation administration > Common > Calendars > Working time templates

Now I’ll create a calendar called VENDOR1, and use the Working times > Compose working times to fill in the days

In AX7: Organisation administration > Setup > Calendars > Calendars >
Working times > Compose working times
In AX 2012: Organisation administration > Common > Calendars > Calendars
OK gives: OK gives:

And now I have to go and Open those days that I’d like my orders to be scheduled for. In practice, you’re going to want to open the Calendar working days in Excel, or use the Data migration framework to update these days:

I’ve setup a 2 raw materials with lead times of 19 and 27 days, and simulated lots of demand on them, so that we get planned orders for every working day:

In AX7: Master planning > Master planning > Planned orders In AX 2012: Master planning > Common > Planned orders

Ok – let’s add the calendar we prepared earlier to our Vendor.

In AX7: Procurement and sourcing > Vendors > All vendors > [Select] > Edit
In AX 2012: Procurement and sourcing > Common > Vendors > All vendors > [Select] > Edit

Now, re-run master planning and take another look at our planned purchase orders:

Both the Order dates and the Delivery dates are falling onto our Vendor Purchasing calendar Open days – I confess I’m surprised by this. I was expecting the Delivery dates to fall onto the open days, but not the Order dates. So let’s take ‘Yes’ for an answer and move on.


Master planning messages in AX 7

This is the second post of a pair. Previously I looked at Master planning messages in Dynamics AX 2012 – here I’m working in the New Dynamics AX aka Microsoft Dynamics 365 for Operations. Probably worth you taking the time to peruse the earlier post (if you haven’t already) – this post is an abbreviated version, but it follows the same scenario.

I’ve setup a Sales order for a finished goods item, pegged to a production order. My production order component is supplied by a purchase order. My purchase order confirmed delivery date means that I’m going to be late making my production order and delivering to my customer.

In AX 7 Futures messages are renamed ‘Delays’ which make things a bit clearer.

First let’s look at the Net requirements for the component:


Just as in AX 2012 I’ve got an Action advance message on my Purchase order and a Delay on my production order. But actually it’s not all that clear that I do have a delay on my production order – so I’ll personalise my screen and add the ‘Delays’ flag and I’ll do a bit of re-arranging of my net requirements list grid so I can get a bigger screenshot:


My finished goods item is showing a delay on both the sales order and the production order:


You can see all of your Delay messages from the tile on the Master planning workspace:


Gives:


Here you’d setup filters, for instance to see the Delay messages on sales orders:


But a buyer will be interested in the Action Advance messages on the purchase order lines. I couldn’t find the Action messages form in the menu, so I just searched for it, filtered for my items and plan and then noticed purchase order vendor is showing on the form and that purchase order vendor is one of the advanced filter options – that’s pretty neat:


So the summary is that there is a lot of functionality here that we’ve seen in earlier versions of Dynamics AX – but it’s much more accessible and practicable. I’m impressed!