Changing Configuration keys in Dynamics 365 – Maintenance mode

Going into License configuration to enable or disable a configuration key you’ll probably see the warning:

This form is read-only unless the system is in the maintenance mode. Maintenance mode can be enabled in this environment by running maintenance job from LCS, or using Deployment.Setup tool locally

Not in maintenance mode.PNG

Here’s how to work around that in all but production environments:

  • Tell the other users working on that environment, since you’ll be restarting the IIS during the process.
  • Log on to the server running the AOS service and start up a command prompt in Administrator mode
  • Run the following statement where you change K to the correct drive for your AOS service:

K:\AosService\PackagesLocalDirectory\Bin\Microsoft.Dynamics.AX.Deployment.Setup.exe –metadatadir K:\AosService\PackagesLocalDirectory –bindir K:\AosService\PackagesLocalDirectory\Bin –sqlserver . –sqldatabase axdb –sqluser <SQL admin user id> –sqlpwd <SQL users password> –setupmode maintenancemode –isinmaintenancemode true

  • Restart the IIS with the iisreset command

This leaves the environment in maintenance mode. This doesn’t mean non-functional; but you probably would like to leave the maintenance mode as soon as possible.

When you are done you run this script from a command prompt in Administration mode (again replace K with the appropriate drive letter):

K:\AosService\PackagesLocalDirectory\Bin\Microsoft.Dynamics.AX.Deployment.Setup.exe –metadatadir K:\AosService\PackagesLocalDirectory –bindir K:\AosService\PackagesLocalDirectory\Bin –sqlserver . –sqldatabase axdb –sqluser <SQL admin user id> –sqlpwd <SQL users password> –setupmode maintenancemode –isinmaintenancemode false

Restart you IIS once more and you’re back on track.

Advertisements

Why my product images doesn’t show up on my eCommerce site

So here’s the scenario. We’ve got the POS running and the eCommerce site too; but somethings wrong with the product images. They’re not showing up on the eCommerce site. No matter how many times we restart the IIS and change the images on the media server. The thing is that the eCommerce site doesn’t pull the images from the media server. At least not for the products, that is.

So looking at these sunglasses we get the image of the sunglasses as expected:1 POS product image.png

Looking at the media server path here’s the image:

2 Image file on media server.png

Now we add a new image to the media server like this:

3 New image on media server.png

It’s ok to go “aaaawwww”…

Looking at the POS it picks up the change pretty fast and shows us two images:

4 New image on POS.png

If we go the the eCom site not much happens:

5 Image not shown on eCom.png

You can restart the IIS all that you want, it won’t change.

Here’s the explanation:

6_Folder_difference.png

The eCom site looks for the files in another folder than the POS. This opens up for having different levels of image resolution and so on, but that is another story.

So if we copy the image files to the Retail Storefront folder we might be out of the woods … but not quite.We still only see the old image on the site, thanks to caching.

Clear your browsers image cache and bingo: another moment of aaaawwwwww:

8 New image shown on eCom.png

This all might be documented somewhere … I just didn’t find it.

Debugging Commerce Runtime in the New Dynamics AX (AX7)

 

The New Dynamics AX has certainly shown us new ways of working and for the developer the learning curve has been pretty steep.

With everything being Visual Studio for the developers new work routines are implemented and that goes for debugging as well.

Now, the Visual Studio debugger is great. So we are not losing any ground. We do however have to think a bit different in order to nail those tricky troubleshooting situations. In this post I will show how to debug the Commerce Runtime part of the Retail Server.

 

Step 1 – Getting the IIS ready

Navigate to the Retail Server folder. One way to get there is to open the IIS Manager. Locate and select the RetailServer in the Sites list to the left and select Explore. In the web.config file change

<compilation debug="false" targetFramework="4.5" />

to

<compilation debug="true" targetFramework="4.5" />

When you save the file you cannot save it to its original position. Save it to your desktop or somewhere else neutral and then copy it to the original folder.

Restart the IIS

 

Step 2 – Set the breakpoint

Now start up Visual Studio and open the solution CommerceRuntime in the RetailSDK folder \RetailSDK\Code\CommerceRuntime.

In the solution explorer locate the Discount.cs file in Runtime.PricingEngine project and add a breakpoint. Just to keep it simple I have put it into the constructor:Breakpoint Discount constructor

 

Step 3 – Start the Modern POS

Now it is time to fire up the Modern POS. Just do a login and leave it there for a while.

 

Step 4 – Get the debugger ready

Go back to Visual Studio, go to the Debug menu and select Attach to process.

Change the code type from automatic to Managed (v4.6, v4.5, v4.0)

AX7POSDebugCodeType

Mark Show processes from all users, select the w3wp.exe processes and click Attach.

AX7POSDebugProcess

I know that you probably only need to attach to one of them; but it is much easier just selecting them all.

Take a quick look at your breakpoints to make sure that they are active. If not you might be missing a reference in the commerceruntime file.

Breakpoint active Discount constructor

Step 5 – Back to the POS to get the debugger activated

What we need to do now is to get the POS to require an instance of the Discount object on the retail server. In this example I add a pair of sunglasses to the basket:

Add product to get the Discount object instantiated

That gets us into the debugger and we can do what we need to do in order to see how it works or start troubleshoot.

Debugger activated

I hope this helps you get a bit deeper into the retail server or other services related to the New Dynamics AX.

 

 

 

Enterprise Portal installation fails

I don’t normally do installation of the Enterprise Portal but in this case it ended on my desk as part of a full installation.

Everything up until the Enterprise Portal part went smoothly but the installer continuously threw an error when trying to complete the installation. Going through the log files it reached the same point every time no matter which user I installed as, whether I elevated the rights or not, manipulated UAC, added users to different administrator groups or what I could come up with. The same error kept popping up in the log:

An error occurred during setup of Enterprise Portal (EP).
Reason: Setup encountered an error during deployment of the Role Center and Enterprise Portal framework.

Not the most elaborating message to start troubleshooting from. The solution was found through a bit of googling and here is the quick version:

Since the installation is based on a Sharepoint 2010 Foundation and the Windows 2012 at some point apparently had been touched by a Sharepoint 2013 feature and therefore had both a 14 and a 15 version of web server extensions tree node in the registration database. And if this is the case only one key is present under the 15.0: CsomDir .

Solution is simple and goes like this:

1. Open Regedit.

2. Navigate to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\.

3. Get rid of the 15.0 sub node. Either by deleting or renaming.

4. Install the Enterprise Portal.