How to connect Modern POS to Dynamics AX 2012 R3 CU8 instance in Azure


 

Deployment Scenario

For smaller footprint stores, Dynamics AX for Retail CU8 includes option of AX Back office, Retail Server, Async Server , Channel Database, Async Client, Real Time Service being hosted in Azure or Data Center and Modern POS in the store.

This blog is based on the AX 2012 R3 CU8 Demo VM provisioned on Azure with Dynamics Lifecycle services.

The components  Retail Server and Retail Media Web Site are accessed by Modern POS over internet in this scenario. Retail Server is the primary server-side business logic component for Retail Modern POS. Retail Media Website is used to display rich media content.

Azure Portal End Point Changes

Once the Demo VM is up and running, go to your Azure Management Portal and select your virtual machine. On the right-hand side of the dashboard, note the DNS name of your server and copy it to a notepad as you will need it.

Click on End Points and enable the following end points.

Name

Protocol

Public Port

Private Port

HTTP

TCP

80

80

HTTPS

TCP

443

443

RetailServer

TCP

35080

35080

RSMediaWebsite

TCP

8989

8989

 

AX Changes

We will use the Seattle Store and Houston Store that are setup with MPOS in this Demo VM.

 

  • "Change Retail Time Service Profile" -  The Seattle and Houston store also use "JBB"  Real Time Service Profile.  You can check this by launching USRT/Retail/Common/Retail channels/Retail stores and selecting Seattle from the list. Click on "JBB" and ensure that  “Commerce Data Exchange: Real Time Service Staff” is checked for MPOS activation and logon to work. The same profile "JBB" is also configured in Retail Shared Parameters as a profile for activation.

 

 

  • "Change URL for Retail Server and Media Web Site" - Go back to Retail Store form (USRT/Retail/Common/Retail channels/Retail stores) and select the Seattle Store. click on Retail Server Channel Profile to change Channel Profile setting. This form can also be launched from Retail -> Setup -> Retail Scheduler Channel Integration -> Channel Profiles.  Replace the Local Host with DNS name noted from the Azure Management Portal for the VM. This needs to be done only for the "Retail Server Channel Profile". We will replace this for property keys "Retail Server URL" and "Media Base URL". Images are displayed from Retail Server Media Website.

  • "Devices" -  Modern POS devices for Windows 8.1 and Windows Phone can be created using Retail -> Setup -> POS -> Devices. You can use existing devices that are not activated already or change "Activation Status" to pending and use them.

  •  "Data Distribution" - Once the changes have been done, we will need to push the changes that have done to Channel Database. Launch the Retail -> Setup -> Retail Scheduler -> Channel Integration -> Channel Database form. Select the HoustonStore and Select Full Data Sync drop down from the menu.  We need to select 1070 – Channel Configuration job from the drop down  and click on OK to push the changes. Select the 1090 – Registers job and click on OK to push the changes. We will need to do this for SeattleStore as well.

  •  "Verify Data Download" - In order to check if data has been downloaded, u can launch the form Retail -> Inquiries -> Commerce Data Exchange -> Download Sessions. You will need to click on Process Status Messages for the status to be updated. The status should be applied to indicate data has been updated on Channel DB for Seattle Store and Houston Store.

  •  "IIS Reset" - Retail Server has data caching enabled. So if you are in hurry to test your changes before cache is refreshed, you can recycle the app pool for Retail Server and Real Time Service in IIS Manager Console. 

 

Installation of Modern POS on the Windows 8.1 device

  1. The Retail Modern POS Windows Tablet Client is installed on the Demo VM in the folder path "C:\Program Files (x86)\Microsoft Dynamics AX\60\Retail Modern POS" .
  2. Copy the entire folder Retail Modern POS to your domain joined machine. Assuming that this is copied to C:\temp on the Tablet.
  3. Launch the Windows Power Shell as Administrator from the Start Menu.

Type Cd “C:\temp\Retail Modern POS\tools”

Type or copy the command  .\Install-RetailModernPOS.ps1 "C:\temp\Retail Modern POS"

This should deployment operation progress with processing and show a message “All Modern POS Installation steps executed successfully”.

  

Activation of Modern POS on the Windows 8.1 device

  1. From the Start Menu, Search and look for Retail Modern POS. Launch the application and it should the activation screen shown below

  1. Give the following details and click on activate.

    Service URL

    http://<DNS Name from Azure Portal>:35080/RetailServer/V1

    Device Number

    Seattle-3 or desired Device Number from Devices screen in AX

    Register Number

    Seattle-3 or desired register number from AX screen in AX

    Operator ID

    000154 or 000137 (valid Worker associated with that Store and having "Activate device permissions"

    Password

    123 (verify this - if u get an login or password error, go to Workers form -> Retail and change the password. Staff table needs to be pushed after change in password.)  

     This should display cursor for few minutes and come back with the screen for Adventure Works or Fabrikam depending on Screen layout set for Store, Terminal or Staff as shown below.  

     

Logon with same user or another user in the same store and enjoying use of Modern POS from any location with connectivity.

Troubleshooting and Other links

  • Store Initialization - The Activation calls Real Time Server to verify user credentials, activation privileges and activates the device. Devices status will change to activated once it is successful. This also downloads device initialization data from Channel Database. Ensure all of the Terminal information - Functionality Profile, Hardware Profile, Screen Layouts etc... are setup correctly. If the terminal initialization data is not setup correctly, the device will be activated but will fail initialization. You will need to reset the Device Status in AX to pending and troubleshoot the register configuration.
  • Payment Connector - Hardware Profile for the Register needs to have a Payment Connector configured for Activation to work. In the demo VM, this is configured to Test Connector for Hardware profiles HW001 and HW002 only. 
  • Event Viewer - Look in the Demo VM Event viewer to see what events are being logged.
  • Real Time Service Troubleshooting - http://blogs.msdn.com/b/axsupport/archive/2012/12/31/ax-for-retail-2012-r2-troubleshooting-the-real-time-service.aspx
  • Side loading Windows Store Apps on non domain joined machines - http://blogs.msdn.com/b/micham/archive/2014/05/30/sideloading-store-apps-to-windows-8-1-devices.aspx
  • Dynamics AX 2012 R3 CU8 can be deployed with Retail Back office components hosted in Azure and other Retail components (Retail Server, Channel DB, CDX Components) in Store. Shane Erstad has published a blog on how to achieve that.

http://blogs.msdn.com/b/axsupport/archive/2014/06/27/connecting-retail-components-on-an-external-computer-to-the-microsoft-dynamics-ax-r3-azure-lifecycle-services-demo-virtual-machine.aspx

 

 Thanks

 

 

 

 

 

 

 

Comments (7)

  1. flo says:

    Hi,

    I can activate modernpos on vm demo contoso , and then log in.

    If I run the same operation on my own server retail environment , I also manage to activate modernpos , but I can not initialize the data . When I look in Fiddler , the queries stop at GetButtonGrids while in demo contoso environment , it continues with Shifts / GetByStatus and Shifts ( ShiftId = ' 1', TerminalId = ' HOUSTON -3') / Resume

    I try to initialize the data parameter in retail but the problem is still present.

    Do you have any idea?

  2. Nirvana115 says:

    Hi,

    I can activate modernpos:

    i want to activate Modern POS device, but i have this error :

    I use fiddler : /RetailServer/v1/LogOn Error 400 Bad Request

    JSON :

      connectionRequest:

    AuthetificationProvider = User Authentification

    LogOnKey=000160

    logOnType=3

    Password=24869.

    TransactionId=-1

    UserId=000160

       The request is invalid.parameters:Microsoft.Data.OData.ODataException: The property 'TransactionId' does not exist on type 'Microsoft.Dynamics.Commerce.Runtime.DataModel.ConnectionRequest'. Make sure to only use property names that are defined by the type.

       at Microsoft.Data.OData.ReaderValidationUtils.ValidateValuePropertyDefined(String propertyName, IEdmStructuredType owningStructuredType, ODataMessageReaderSettings messageReaderSettings, Boolean& ignoreProperty)

       at Microsoft.Data.OData.VerboseJson.ODataVerboseJsonPropertyAndValueDeserializer.ReadComplexValueImplementation(IEdmComplexTypeReference complexValueTypeReference, String payloadTypeName, SerializationTypeNameAnnotation serializationTypeNameAnnotation, DuplicatePropertyNamesChecker duplicatePropertyNamesChecker)

       at Microsoft.Data.OData.VerboseJson.ODataVerboseJsonPropertyAndValueDeserializer.ReadNonEntityValueImplementation(IEdmTypeReference expectedTypeReference, DuplicatePropertyNamesChecker duplicatePropertyNamesChecker, CollectionWithoutExpectedTypeValidator collectionValidator, Boolean validateNullValue, String propertyName)

       at Microsoft.Data.OData.VerboseJson.ODataVerboseJsonPropertyAndValueDeserializer.ReadNonEntityValue(IEdmTypeReference expectedValueTypeReference, DuplicatePropertyNamesChecker duplicatePropertyNamesChecker, CollectionWithoutExpectedTypeValidator collectionValidator, Boolean validateNullValue, String propertyName)

       at Microsoft.Data.OData.VerboseJson.ODataVerboseJsonParameterReader.ReadNextParameter()

       at Microsoft.Data.OData.VerboseJson.ODataVerboseJsonParameterReader.ReadAtStartImplementation()

       at Microsoft.Data.OData.ODataParameterReaderCore.ReadImplementation()

       at Microsoft.Data.OData.ODataParameterReaderCore.InterceptException[T](Func`1 action)

       at System.Web.Http.OData.Formatter.Deserialization.ODataActionPayloadDeserializer.Read(ODataMessageReader messageReader, Type type, ODataDeserializerContext readContext)

       at System.Web.Http.OData.Formatter.ODataMediaTypeFormatter.ReadFromStream(Type type, Stream readStream, HttpContent content, IFormatterLogger formatterLogger)

    Any help pls….

    Regards,

  3. NR says:

    What do I need to do to install MPOS on a Android tablet…do I need to install a local DB for offline scenario…

  4. Nirvana115 says:

    Device is Activated suucefuly in AX.

    when i start the MPOS i have this error :

    initialization data loading failure.

    in EFT service the Payment Connector is NONE

    It's mandatory the to setup this ETF.

    Regards,

  5. Nirvana115 says:

    olution is :

    is it mandatory to select EFT Payment Connector.

    for me I have chosen TestConnectore

    Regards,

  6. Wellman Noe says:

    does this incluede windows phone POS activation or only modern POs?… im loking forwrd windows phone.. any advice would be entirely appreciated

  7. Waldemar Pross says:

    Hi! Thanks for the post. It clarified a couple of things for me.

    One question though: how easy it is to consume the REST/ODATA APIs (yellow vertical stripe on your first diagram)? Can I just call them from a PHP or Java based system?

    Any examples would be very useful.

    My feeling is that although Microsoft labels this API with such popular / cross-platform terms as REST, it was not really designed to be used by anything else than Microsoft's own Modern POS or SharePoint based eCommerce.

    Thanks!

Skip to main content