Convert an item from WMI to WMS AX2012 R3

We’re working with a number of customers who want to use the new Advanced Warehousing functionality provided in Microsoft Dynamics AX 2012 R3 – but not at initial go-live. For instance they don’t have mobile data terminals in their warehouses, and although that forms part of their long-term strategy for implementing Dynamics AX, it isn’t required immediately.

So this blog documents an experiment I conducted to see if it’s feasible to set an item up as WMI, and then later convert it to WMS.

So I started with the standard demo image and disabled the WMII licence key. WMS and WMII are incompatible and if you’ve used the standard demo image you’ll have seen the warnings:

First note that an item is defined as using Advanced Warehousing processes by the flag on its storage dimension group. Product information management > Setup > Dimension groups > Storage dimension groups:

Let’s setup a Storage dimension group that mimics this setup, but doesn’t use WMS:

So here’s our first issue. If the Storage dimension group ‘Use warehouse management processes’ flag isn’t ticked, you can’t enable the Inventory status and Licence plate storage dimensions.

Moving on …

The other setting that enables WMS is on the warehouse. Inventory management > Setup > Inventory breakdown > Warehouses

This flag must be enabled when you create the warehouse record. It can’t be changed once you’ve saved the warehouse record.

Upgrade scenario 1) Convert the item from WMI to WMS

So let’s setup the item as a WMI item, and transact it in a WMS warehouse and then change the item’s Storage dimension group. So I’ve setup a new item:

Created and received a Purchase order, and invoiced a sales order. The item’s inventory transactions show:

So now we’d like to start using WMS processes to issue and receive. Let’s change the item’s Storage dimension group:

OK gives:

That Infolog reads: “The new dimension group cannot be assigned. The physical inventory has not reached zero on-hand, while ‘Activate closing of non-financial transfers’ is set to Yes. The new dimension group cannot be assigned. Physical inventory transactions might exist and/or financial inventory transactions are not fully settled, while ‘Activate closing of non-financial transfers’ is set to Yes. Update has been cancelled.”

So the process is: set my inventory to zero; then run close; then change the storage dimension group; and then re-import my inventory (setting the now active Inventory status and Licence plate dimensions). Well to be honest I just don’t think it’s practicable in real world scenario with many items. Indeed it isn’t practicable in my scenario of just one item either. After setting my inventory to zero and running close, I tried to adjust my on-hand back:

“A reservation hierarchy must be set up for the item. You can create transactions for the item after a reservation hierarchy has been set up.” So let’s go do that:

“You cannot assign a reservation hierarchy to the item because there are inventory transactions. You can assign a reservation hierarchy to the item when no inventory transactions exist.”


Oh and just in case you were thinking of being sneaky and assigning the Reservation hierarchy to the item when it’s first setup (as a WMI item), that won’t work either – when the item’s a WMI item, the option is greyed-out:

Note that there is a Warehouse management periodic function to change the reservation hierarchy of an item. Warehouse management > Periodic > Change item hierarchy:

But if you’re converting from a WMI item without a Reservation hierarchy, and expecting this function to be bright enough to add a new Reservation hierarchy you’re going to be disappointed:

So my conclusion is that there is no practical way of converting an item from WMI to WMS.

Upgrade scenario 2) Convert the warehouse from WMI to WMS

But we already know we can’t do that. The ‘Use warehouse management processes’ flag on the warehouse can’t be changed once you’ve saved the warehouse record – let alone after you’ve posted inventory transactions in the warehouse.

Upgrade scenario 3) Setup the item as WMS, setup new WMS warehouses

Based on my observations I believe this is the only plausible upgrade scenario: Setup the item as a WMS enabled item. Setup WMI warehouses and transact the item using WMI inventory process (with optional additional use of the ‘Inventory status’ dimension). And then when you want to start using WMS Advanced Warehousing processes create new WMS warehouses, and migrate your on-hand inventory from your WMI warehouses to your WMS warehouses.

For instance:

The pair of highlighted transactions are the transfer from my WMI warehouse to the WMS warehouse and I’ve transacted sales order picking work using that inventory. (Sorry about the dates – because I closed inventory earlier I had to post all of my financial transactions tomorrow).

Incidentally I found that I could not use the Licence plate storage dimension in the WMI warehouse – which will create an issue if you were thinking of using Licence plate in place of Pallet ID.

Enable client access to AOS printers in the AX 2012 R3 CU8 demo hyper-v image

Note. This article is for the setup of the demo hyper-v environment and shouldn’t be applied to production Microsoft Dynamics AX 2012 R3 configurations. Obviously you must not muck about with the configuration of your live Dynamics AX environment unless you know what you’re doing, and probably not even then.

The label setup for the new Warehouse management module allows you to define label formats and printers.

Go to Warehouse management > Setup > Document routing > Document routing. Click on New in the Document routing printers fast tab and you’ll notice that the Printer name drop-list is blank:

The reason for this is given in this Technet article, quote “By default, users cannot print documents or reports from a printer connected to a Microsoft Dynamics AX Application Object Server (AOS). You must enable printing in the AOS and client configuration files, as defined in this topic.”

You need to change the AOS configuration file and the client configuration. I’ve logged into the demo hyper-v as ‘admin’ (not administrator) but I’m not entirely sure that that’s necessary. Open the Microsoft Dynamics AX 2012 Server Configuration program by navigating to the start menu and searching for it:

You should see:

The ‘Original (installed configuration) can’t be changed, so Manage > Create configuration; give your configuration and name; and click OK:

Now you can see that we are working in your new configuration, and we can tick the ‘Allow clients to connect to printers on this server’ checkbox:

Click Apply and the system prompts us to restart the AOS:

Click Yes and the system tells you that it’s stopping, and later starting, the AOS. The AOS can take too long to start and you might receive a warning message that you must restart the service manually from the Control panel > Administrative tools > Services, but by the time you get there, the AOS will have started:

The next step is to set the client configuration. This time we need the Microsoft Dynamics AX 2012 Configuration utility:

This should give you:

Same deal as before, we need a new configuration. Click on Manage > Create configuration; give your configuration and name and click OK:

Now we want the Connection tab, and to tick the ‘Connect to printers on the server’ checkbox:

Click Apply and OK and you’re done.

Open Dynamics AX, and back in the Document routing form you’ll see the admin user’s shared printers (the AOS is running as ‘admin’):

Incidentally that default ‘Label’ printer is setup to print to text files, the text file location is shown in the printer’s ‘Printer properties’. So far I haven’t had any success in changing that:

More information on Warehouse management label printing can be found in the articles referenced by Lachlan Cash is his most excellent blog series here.

Backorder sales order lines in AX 2012 R3

We’d all like to live in a perfect world, but we don’t, so sometimes you’re going to be out of stock and you’re going to have to ship part of a sales order.

I’ve setup a sales order for two items, and part shipped one item.

We have Form setup to allow us to print the backorder information on the packing slip / delivery note and invoice.

Accounts receivable > Setup > Forms > Form setup > Packing slip:

With ‘Backorder tracking’ set to ‘Not delivered’, in the unlikely event that you’re using the standard forms design, your packing slip will show:

The process now is that we’re going to receive the remaining stock and then we’re going to want to release the sales order to the warehouse for picking, and despatch it. I need to acknowledge the help I got from Angelo Jebamony at Intergen in finding this set-up.

There are a couple of key parameters hidden away in odd places. The first is an Accounts receivable (or customer specific) parameter.

Accounts receivable > Setup > Accounts receivable parameters > Warehouse management:

(You can set the same parameters on the Warehouse management fast tab on the customer).

These parameters allow you to define a threshold for release to warehouse, based on a fulfilment rate percentage quantity or value – and define whether the threshold is in effect, or generates a warning, or error message (Obviously I had it set to ‘Warning’ to setup the part shipment above, but I’m setting it to ‘Error’ for the rest of this scenario).

If you’ve worked with Advanced warehousing you’ll know that sales order lines need to be reserved before they can be released to the warehouse for picking. You could setup Automatic reservation for sales order entry (another Accounts receivable parameter) – but that only works if the inventory’s available when you create the sales order. In most businesses it would be completely impracticable to have to return to each backorder sales order line and manually reserve it after receipt of missing items, so you need to enable reservation at release to warehouse – and that is a setting on the warehouse.

Warehouse management > Setup > Warehouse setup > Warehouses:

As you’d expect, the batch jobs are found in the Warehouse management Periodic menu:

I’ll do a partial receipt (but not enough to take me about my 90% quantity threshold), and then setup and run the ‘Automatic release of sales orders’ job:

And that setup gives me a nice Infolog:

Now let’s bring in the rest of the items and re-run the job:

It goes without saying of course that you can setup these jobs as recurring batch jobs running when-ever you want, with what-ever filters are required to automate your sales order picking release to warehouse (so why did I just say that).