Sunday, November 1, 2015

AX 2012 Create a project of all objects in compiler window (errors, warnings, todos, etc)

There is a cool feature with Dynamics AX 2012 where you can take all of the items in the compiler window, whether they are errors, warnings, best practice violations, or tasks, and consolidate them into a single project for a user to work on at a later time. 

Its nice if one person does a full compile, they can then create a project with just the things identified in the system and needing to be worked on. 

Additionally, you can hide the view of the different types of information displayed in the window. For instance, if you want to only work on the errors but the full compile yielded much more, you can de-select the items you don't want in the project (e.g. we only want errors).

Its a nice little feature. Not required to be used but can really help with managing issue resolution. 


 Figure 1 - The items in the compiler window

Figure 2 - The 'Create project' option in the compiler window

Figure 3 - The suggested name of the compiler project

Figure 4 - The project that gets created from the compiler results

Thursday, October 1, 2015

AX 2012 Point of Sale error: 'A delivery method wasn't found for the selected product and address'

When creating an order to be shipped to a customer in the Microsoft Dynamics AX 2012 Point of Sale (modern POS in this example), you may hit the error 'A delivery method wasn't found for the selected product and address. Select a different product or enter a different address, and then try again.' (Figure 1 below). This error is with the setup.

Figure 1 - The error when attempting to deliver a customer order

The user will need to the setup (or verify setup) of the modes of delivery. Modes of delivery (Sales & Marketing > Setup > Distribution > 'Modes of delivery') have setups for retail channels (e.g. stores), products, and addresses (Figure 2 below). The reason is that you may only deliver certain types of products or categories of products to certain addresses (e.g. customer address) for certain stores/groups of stores.

Figure 2 - Setting up the delivery modes for the retail channels, products, and addresses.

Once setup is complete, the next step is one people often forget. I did :-). I had to dig back to training manuals I created back in 2012. You need to navigate to Retail > Periodic > 'Process delivery modes' and run this job (Figure 3). It explodes out the delivery modes for the stores which you can verify by going to the retail channel you want the delivery mode on and click on the 'Modes of delivery' under the setup form (Figure 4). Finally, you'll need to push the delivery modes to the store via the appropriate distribution group. Default data has this as the 1120 job (Figure 5). Once run, you can verify the data processed to the stores by clicking on the 'history' button, clicking 'Process status messages', and verifying the status messages for the channels (also Figure 5 for Houston channel).

Hope this helps someone out!

Figure 3 - Process the delivery modes (explode) for use in the retail channels

Figure 4 - Verifying the delivery modes for the retail channels



Figure 5 - Push and verify the data pushed to the store

Saturday, September 26, 2015

Compare Microsoft Dynamics AX for Retail, Commerce Essentials, and Retail Realm Essentials: Features and Licensing

Within Dynamics AX, there is the 'Retail' module that everyone is calling AX for Retail. Recently, there is discussion about the 'Retail Essentials' module which is the AX system with just the retail component and a simplified setup. Retail Essentials is marketed towards the small to medium sized businesses market (SMB).

While explaining the different ways to deploy and license AX for certain scenarios, things can get confusing. I was confused as well for a while :-) The goal of this post is to demystify this as well as verbalize the branding that Microsoft is using to help rid the confusion. There were two options for 'Retail Essentials in licensing

We'll look at three different examples of how to use, deploy, and license AX for Retail. Note that the code base for all of this is the exact same regardless of the scenario.

Scenario 1: Full blown AX with AX for Retail module

The licensing for AX Retail is the same as it is for any module in AX. Full access to the modules and modification to the business logic in the application object tree (AOT) are granted. This is what people would consider a 'typical' enterprise level implementation of AX. You'll see all modules but will not see a module called 'Retail Essentials' in the list.

Scenario 2: Commerce Essentials 

This module was formerly labeled 'Retail Essentials' if you looked at the modules list in AX but was re-branded.

The licensing of this is the same as full blown AX but you are able to leverage the simplicity of the Retail Essentials configuration. When the AX system is configured, you'll check the configuration keys for retail essentials and will only see one module in AX (Figure 1 below). All the functionality still exists behind the scene but, again, the system configuration and views are simplified for a targeted type of deployment. Just uncheck the 'Full feature set' check box and you'll be in Commerce/Retail Essentials mode.

Of note, from a developer perspective, you can expose and have access to anything in the back end AOT wise without violating a license agreement. This is because you are paying for a full AX license.

Note that the name in Figure 1 will be 'Commerce Essentials' here shortly to differentiate it from Scenario 3 covered below.

Why would you use this? There are a variety of reasons but one good scenario is where a company is using another ERP as their master and only using the AX Retail components in their deployment. Another could be a phase 1 where its speed to market to get AX live for a customer just in their retail operations. Or you want a simple retail solution but need modifications that aren't in the base product and they don't want to violate their license agreements.

Scenario 3: Retail Realm Essentials

The third scenario is still going to be called 'Retail Essentials'. Functionally it is the same as scenario 2 above but with the very important distinction that larger modification or exposing of other AX functionality past what comes in base will be a violation of the license agreement. So think of this as a static code base with the exception of small changes like adding fields.

The trade off is the licensing is cheaper for Retail Essentials than standard AX licenses. The licensing is purchased through a separate company for this scenario called Retail Realm but they work directly through Microsoft. This software licensing also includes Retail Realm's utilities which contain an additional cost to utilize for scenario 1 and 2.

If the company later decides to go full blown AX or enters phase two where they will need more than what this offers, they can change their licensing to Scenario 1+2 and start that process. All the code and tables behind the scenes are the same so its just a matter of licensing, configuration keys, and data setup/migration.

Why would you use this? It is an ideal solution for the SMB market. A company wanting retail in a phase one approach can also use this model as its cheaper, but they would only be allowed very simple customizations without violating their licensing agreement.

Summary
Hopefully this post shed some light on the new licensing of the AX retail platform and added some clarity to confusion!
Figure 1 - Retail Essentials view. Unselecting 'Full feature set' in retail config key will enable this functionality.

Thursday, September 24, 2015

AX 2012 Modern POS error: "Device Activiation Error Application Error"

I restarted an old Azure instance of the Modern POS (mPOS) that was once working, and when it was loaded back up, the mPOS loaded up like it had not yet been activated. I'd actually activated it and used the install setup for this instance in a previous post: Retail Modern POS (mPOS) installation and setup via AX 2012 R3 CU8 demo machine.

When attempting to reactivate it, I was getting the error 'Device Activation Error' with the detail 'Application error' (Figure 1 below).

Figure 1 - MPOS activation error: 'Device Activation Errror: Application error"'

I used the normal debugging techniques to try to figure out the issue (Event viewer and Fiddler primarily) to no avail. I also pushed all of the data from AX down to the retail channel again to make sure nothing was out of sync. Note: when using Fiddler, make sure there is a Win8 Loopback Exemption for the MPOS (Fiddler>Tools>'Win8 Loopback Exemptions>'Microsoft Dynamics Retail Modern POS application' [AS OF 9/24/2015]).

After digging more and more, I found out that a setting had been changed in AX for the channel profile of the store where the Retail server URL was reaching out to an Azure address rather than the localhost I was specifying on the Service URL for the Device Activation screen from Figure 1 above. The setup for the wrong setting is in Figure 2 below. The correct setting is in Figure 3 below as well as where you can validate what channel profile the store is using.

The setup in Figure 2 was not necessarily wrong but the setup was not complete hence the error. So I changed it back to what was working locally. To note, the MPOS was installed locally on the same instance as the AX instance. 

Hope this helps!


Figure 2 - The non-working configuration for the retail server channel
Figure 3 - The working configuration for the mPOS. This resolved the error





Thursday, June 18, 2015

Microsoft AX 2012 R3 Azure Demo machine 'Windows License is expired'

I had an issue today where I spun up a new AX 2012 R3 'Retail Essentials' machine on Azure. It was only online for about an hour or so until the machine shut down suddenly. I thought someone shut down my VM thinking I left it on.

I went into Azure and sure enough it was shut down. I restarted it and got back in.

Upon logging back in, a colleague noted in the lower right hand corner the message of 'Windows License is expired' (Figure 1 below).

Figure 1 - The windows license expired message

The machine was built off of a script where the server needed to be 'rearmed' so the license is no longer expired. There are two ways to do this:

  1. Click the 'Rearm Server' script in the start menu all the way to the right (Figure 2)
  2. Open the command prompt as an admin and type in 'slmgr -rearm'.
The server will restart and when you log back in, the license will no longer be expired. 

Easy to fix for the demo machines that are available out of the box. 

Special thanks to Devin @devkitt

Figure 2 - The 'rearm server' script


Wednesday, June 10, 2015

AX 4.0 Qmm, Pmf, and Pds Objects in AX 2012

For those who are looking to upgrade from AX 4.0 to AX 2012, you may be assessing the objects that exist in your AOT to determine upgrade-ability of mods, ISV solutions, etc.

Three common ISV solutions that may sit in your BUS or VAR layer will likely start with 'Qmm' (quality management), 'Pmf' (process distribution), or 'Pds' (process manufacturing). For example, the AOT object may be named 'PdsBatchAttributes'. I'm naming these three AOT prefixes specifically as I've worked with them a lot in the past. I just ran into them today and had to remember what they were and what the objects are in AX 2012.

I said 'what the objects are in AX 2012' because these modules were acquired by Microsoft and included into the base product in subsequent releases of AX. Sometimes the prefixes are changed in the code migration.

Pmf and Pds objects will have the same acronym in AX 2012 but the Qmm objects will start with 'InventTest...' in AX 2012.

This post is really specific to a certain group. I couldn't easily find this info with a quick search so I decided it would make a good post for those few people that were in the same situation as me. I'll likely find this post in future trying to remember what I was trying to remember today :-)

Thursday, June 4, 2015

How to create Dynamics AX 'keyboard shortcuts' e.g. hot keys for controls on a form

I'm back after taking a month off from blogging in May! Feels good to be back :-)

Some Microsoft Dynamics AX users need to be able to quickly do certain actions without touching their mouse. An example would be an order entry user who needs to enter hundreds of orders in a single day. Any efficiency to their process via the keyboard becomes critical. People will utilize thwa they call 'hotkeys', 'keyboard shortcuts', 'quick keys', etc

There is a way to access objects on an AX form via the keyboard. On any AX form, hit the 'ALT' key and you'll see little letter boxes pop up (dubbed 'KeyTips') which indicate which key needs to be hit to put the focus on that form control. Hitting 'Enter' on a highlighted keytip will mimic a click whether that triggers an action item, a drop down menu button, etc. If its a menu, you can use the arrow keys to navigate and hit enter. 

You can have duplicate letters on a single form as there are only 26 in the alphabet :-). As an example of this, hitting 'S' in Figure 1 after pressing ALT will hide all non-'S' key tips and only show the three controls which are associated with the 'S' keytip. The first 'S' control will be highlighted. Subsequent hittings of the 'S' key will change the focus to the other S controls for the user to hit enter on. 

TIP: Using these keyboard shortcuts with user by user layout changes in the IntelliMorph designer to achieve optimum results.

If'you have custom objects or a specific flow and would like to control what these values are, use the 'KeyTip' property on the form controls as seen in Figure 2 below

It's pretty powerful functionality. I've been able to fully create a sales order, change a number of key fields, add a few lines and release it to warehouse in an incredibly short amount of time.

Hope it helps! Enjoy!

Figure 1 - Examples of the keytips (keyboard shortcuts) on the AX sales order form

Figure 2 - The 'KeyTip' property for controls