A blog on Dynamics 365 for Operations – Retail

Author: hiteshgoldeneye (Page 3 of 4)

MPOS randomly switching from online mode to offline

In my recent Dynamics 365 for Operations implementation on 7.1, we encountered an issue with MPOS switching to offline randomly . MPOS as we know switches to offline either when triggered manually or when the switch is seamless (automatically) when there is any issue in the communication between MPOS and D365 Retail Server, an example is a network interruption (for more information on the overall Retail Topology do refer this link MPOS Technical Architecture)

In a usual scenario, when an interruption occurs in between a transaction, cashier would get an error message the Cart State has changed. The cashier would need to void the transaction and then start all over again and end with creating an offline transaction (Not the kind of experience you want when you have a queue of customers at the billing).  Another issue that coupled with this was that the MPOS logo would not switch from offline to online when the MPOS mode switched.


Bottomline –

Make sure you uptake following binary hotfixes as soon as you can if you have enabled MPOS in offline mode

KB 4049328 – MPOS offline logo issue

KB 4058723- Set of reliability fixes for POS Offline

Also include the following X++ hotfix which complements the above binary fix

KB4058724 – Set of reliability fixes for POS Offline



-Hitesh Manglani




Some important resources on Dynamics 365 for Operations – Retail

[vimeo 257533558 w=640 h=360]

This post is meant for anyone starting to explore Dynamics 365 for Operations Retail. I have included some of the resources that I have found very useful. In this video I will take a quick look at the following resources

1. The first link is the landing page on Retail on the Microsoft documentation portal docs.microsoft.com


2. The second link is the Microsoft Dynamics Learning Portal.  (DLP)


If you are an independent consultant looking to access DLP please visit the following link and register.

<Update 27 Feb 2018> This link is also open to consultants working with end users. Thanks to Jay Patel for making me aware about this. </Update>

3.  The third link is a very helpful blog by Andreas Hofmann from Microsoft


<Update 18 Sep 2019>

4. Last but defintely not the least is an important blog for Retail and Dynamics365FO which is by Kurt Hatlevik , the below blog post from Kurt is an important consolidation of resources.



-Hitesh Manglani

Cannot create a record in Global address book (DirPartyTable). The record already exists

This article is the outcome of a shared session with credit to my friend Vishal Kohli .



While creating a new store in the store master in Dyn365FO, you may face the following error.

“Cannot create a record in Global address book (DirPartyTable). The record already exists.”

The issue is that the operating number keyed is already existing in the system. Therefore you need to make sure you key in a number that does not already exist. The error message can be a little confusing in this regard, which is why I thought this warrants a post.

Note -You are most likely to face this issue when your operating unit number sequence is configured as Manual.

Hope this helps!!

-Hitesh Manglani and Vishal Kohli.


MPOS AAD changes – The reply address does not match the reply addresses configured for the application

If you are on Dynamics 365 for Operations 7.1 and planning to uptake the latest set of binary hotfixes, expect to see the above error when trying to activate MPOS.

Sergey from Microsoft has described the change that is triggered by binary hotfix KB4051347 in below link in great detail. Just one note though if you are on 7.1 you will not find the event ID 40619 in the event viewer. Its only available 7.2 onwards.


In case you are interested to know more about these changes the below link is a great video that describes the differences between ADAL versus MSAL –https://channel9.msdn.com/Events/Build/2017/P4031

-Hitesh Manglani

Retail SDK Handbook

Note – This is a republish of my earlier article and is based on 7.1.

As of 7.3 the Handbook has been replaced with below link –


Just a short but nevertheless important post. I discovered this document AX7 Retail Handbook while browsing my LCS deployed AX 7 RTW VM’s Retail SDK folder.

Overall the document is made up of two parts.

The first covers the Retail Sdk, build, configurations that can be done to be more productive. Additionally, typical branching strategy is discussed in order to work effectively in teams.

The second part contains details about the main extensibilities that are possible with the Retail Sdk. Anyone getting started with writing code based on the Sdk can use it as a reference in order to get started.

Some sample extensions are also provided in the same folder path.

Kudos to the team at Microsoft for going the extra mile to provide this document and sample extensions.

PS: If you have access to the LCS Deployed VM please access these materials there, else reach out to me using the contact page of this site and I can share a copy.

Update – These documents have been discussed in the Tech Conference Video ->Retail customizations: Part 1 which have been uploaded in the last week. Use below link to access  https://mbs.microsoft.com/customersource/northamerica/AX/learning/presentations/DynamicsTechnicalConference16


This post was first published at TechTalk


Writing a Test Job in AX7, Use of Like Operator and Bulk Update of Retail Screen Layout Button Properties

The following post will touch base on-

1. How we can execute a test job in AX7 which most of us already know in the good old AX 2012 as an AOT Node.

2. Use of ‘like’ operator-  AX uses asterik ‘*’ character instead of ‘%’ which we use in SQL.

3. Changing Layouts of Retail Screens need not be tedious and time consuming by changing properties of each button manually.

A job in AX7 is simply a public class and it must have a main method that provides the runnable code. The main method was required in AX 2012 too but there was no need for the class to have access specifier as public.  Another difference is that the Jobs Node in AOT is deprecated.
So how do we write a test job in AX7? you can start by referring to this link for steps to create one
Consider that you want to bulk update the properties of buttons in the Retail Screen Layouts. The below piece of code can help to do the bulk update in a matter of few minutes,  <Update> please note this method of bulk update is ideal in some scenarios like preparation of demos  where you want to try out different values of colors for the buttons for example. However usual  approach for bulk update is DIXF https://docs.microsoft.com/nb-no/dynamics365/unified-operations/dev-itpro/lifecycle-services/ax-2012/migrate-data-dixf</Update>
Note the use of like Operator (*) in this code.


class TestJob


    public static void Main(Args args)


        RetailButtonGridButtons retailButtonGridButtons;

        update_recordset retailButtonGridButtons

            setting BackColor=-65536,



        where retailButtonGridButtons.buttonGridId like ‘*ABC*’;



On running the above code we get following screen on successful completion

 So with this code you dont need to go to each Button Grid in the layout and change properties manually. So you can save your time and skip having to see the following screen multiple times

 Note – This post was first published in TechTalk

-Hitesh Manglani

Failed to log on to Microsoft Dynamics

Note -If  you have a Dynamics 365 for Operations VM then follow below link

(“Provisioning the administrator” user section)

to set up and be able to login – https://docs.microsoft.com/en-us/dynamics365/unified-operations/dev-itpro/dev-tools/access-instances

If you are using AX 2012 please continue reading-

When you have just installed AX or got a backup of the AX database from someone, you may not be able to log on to Microsoft Dynamics AX 2012. A following error message may be displayed


0285.Failed to logon to Microsoft Dynamics


The issue is that you have not been configured as a user in the AX database.

Resolution: The solution has following two steps

1.  In AX 2012 Extract your SID as follows-(Credit to Rudhra Kumar- https://community.dynamics.com/ax/f/33/t/125845)

To get SID for the current logged in domain user, please type the following in your command prompt–> C:\> whoami /user

To get SID for all domain users, please type the following in your command prompt–>wmic useraccount get name,sid whoami /user


2. Copy the SID into your AX database in SQL Management Studio in the table dbo.USERINFO, also change the Network Domain and NetworkAlias as per your credentials.



-Hitesh Manglani

Dynamics 365 for Operations and TLS 1.2

In my first Dynamics 365 for Operations project we had to implement an integration between the Azure hosted Dynamics 365 for Operations Retail Server and an on premise web api server (for more information on the overall Retail Topology do refer this link MPOS Technical Architecture).

The integration worked fine in our Development environment but when promoted to UAT sandbox the integration broke with the following error

Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.

and initially we could not understand why, after some investigation we could find out the cause being that Dynamics 365 for Operations configuration enforced a TLS 1.2 protocol while the destination server supported only TLS 1.0 and 1.1.

The following resources were very helpful to arrive at the conclusion



Last but not the least, an excellent resource was the following link by John Louros.


In this blog, John has provided a nifty console application which was extremely helpful in understanding what was going wrong in the integration, by trying all combinations of TLS protocols between the source and destination it lets you know which protocol is supported and which one is not.


-Hitesh Manglani



« Older posts Newer posts »

© 2024 Dynamics Journal

Theme by Anders NorenUp ↑