Verifying table content in Dynamics 365 for Operations

In previous version of AX it has been an easy tack to habve a look at the data for any given installation. You simply logged in to to the SQL Server used by AX, started Management Studio and executed your SQL statement. Even the app consultants could fairly easily check the table content directly from the AX client… not so much any more. With Dynamics 365 for Operations being hosted by Microsoft we have no such access to SQL for the PROD environment.

The good news is that Microsoft has added a table browser to the UI and by tweaking the URL you can look direstly into the table you want.

To access the Table Browser, in this case the UserInfo table just format the URL like this:


The view will look like this:

A cooler and easier way to do this is to use a Chrome Plugin… how cool is that… there is actually a chrome plugin for Dynamics 365 for Operations 🙂

You can find the plugin here

Install it and change the URL in the config:

Then you just search for the table or open the entire Entity list or Table List:


Thanks for today



Setting up PowerBI embedded and Analytical workspaces in Dynamics 365 for Finance and Operations in a OneBox Environment

One of the cool features in Dynamics 365 for Finance and Operation are Analytical workspaces which enables Dynamics to display PowerBI workspaces inside of the Dynamics UI which also means that you are able to use the included limited PowerBI license that comes with D365fO

To get this working you can either deploy the includes report packages which are downloadable from LCS or you can create your own and upload them to LCS. There is however some infrastructure required to get this up and running  because the report get their data from aggregetad measurements, which you are required to create.

The measurements are syncronized to the AxDW database and the report uses Direct Query to read the data. Since the report reads its data from the AxDW database it does not have the ferformance implications that OData has.

The process for setting this up in a Tier-2 and up environment is pretty straight forward since these all include the specific service for hosting the PowerBI report but in Tier-1 (OneBox) this service is not present and this means that we will have to do a slight workaround.

First we have to create an Azure Service for hosting the report, you will find the detils in this link

The next step is to copy the AxDW database from the environment to Azure SQL. You find the information here and here.

And the last part is to reconfigure the OneBox environment to use the Azure SQL hosted entity store instead of the internal

I only had one minor issue diring the setup… the AxDW admin user was not able to log in to the AxDW database in Azure SQL resulting in this message:

I resolved it by deleting and recreating the user :

CREATE LOGIN [axdwadmin] 
WITH PASSWORD = 'axdwpassword'

CREATE USER [axdwadmin] 
FOR LOGIN [axdwadmin] 

ALTER ROLE db_datareader ADD MEMBER [axdwadmin]; 
ALTER ROLE db_datawriter ADD MEMBER [axdwadmin]; 
ALTER ROLE db_owner ADD MEMBER [axdwadmin];


Setting a Dynamic 365 for Operations cloud hosted environment in Maintenance mode

Some configurations in Dynamics requires you to be in Maintenance Mode. Some of these are:

  • Activating dimensions
  • Changing license keys

The limitations of maintenance mode is that you will need to be Admin or maintenance mode user to log in.

  1. Log into the VM using RDP
  2. Start an elevated command prompt
  3. Go to K:\AosService\PackagesLocalDirectory\Bin\ (in this case K is the service volume)
  4. För följande:
    Microsoft.Dynamics.AX.Deployment.Setup.exe --metadatadir K:\AosService\PackagesLocalDirectory --bindir K:\AosService\PackagesLocalDirectory\Bin --sqlserver . --sqldatabase axdb --sqluser  --sqlpwd [sqlpassword] --setupmode maintenancemode --isinmaintenancemode true

To set it back run this

Microsoft.Dynamics.AX.Deployment.Setup.exe --metadatadir K:\AosService\PackagesLocalDirectory --bindir K:\AosService\PackagesLocalDirectory\Bin --sqlserver . --sqldatabase axdb --sqluser  --sqlpwd [sqlpassword] --setupmode maintenancemode --isinmaintenancemode false

and then IISRESET

NOTE: Maintenance mode of a Production environment is set by a service request to DSE.

UPDATED NOTE: There is now a Deployable Package for enabling/disabling Maintenance Mode so you don´t have to bother DSE. It is in the Asset Library.

NOTE: On Sandbox Environments, do the above procedure on one of the AOSes. You might need to run IISreset on all AOSes.


Microsoft Dynamics 365 Unified Operations: Batch Management Service (DynamicsAxBatch)

When running the DataUpgrade Package in D365FO it stopped at step 7 with this error message:

‘Microsoft Dynamics 365 Unified Operations: Batch Management Service (DynamicsAxBatch)’

Looking in the Event Viewer Application Log I found this:

AX is shutting down due to an error. Microsoft.Dynamics.AX.Batch.BatchService+MaintenanceModeBatchStartupException: Exception of type ‘Microsoft.Dynamics.AX.Batch.BatchService+MaintenanceModeBatchStartupException’ was thrown. at Microsoft.Dynamics.AX.Batch.BatchService.OnStart(String[] args) Exception details: Microsoft.Dynamics.AX.Batch.BatchService+MaintenanceModeBatchStartupException: Exception of type ‘Microsoft.Dynamics.AX.Batch.BatchService+MaintenanceModeBatchStartupException’ was thrown. at Microsoft.Dynamics.AX.Batch.BatchService.OnStart(String[] args)

Apparently the issue was that someone had put the environment in Maintenance Mode. Here is a description on how to enable/disable maintenance mode


Adding users WITHOUT an Azure AD Accounts to Dynamics 365 for Finance and Operations

Normally when using Dynamics 365 for Finance and Operations all you users are part of an Azure AD. This is created when ordering your license and is used for authentication. This AD is either stand-alone or synced with you OnPrem AD.

There might be situations where you need to add external users to your Dynamics installation and if these are part of an Azure AD you just use this guide but if the external part does not have Azure AD then it is a bit more problematic… You do not want to add them to your organization since this might add security issues and sometimes licensing costs, and you might not be able to force them to get their own Azure AD tenant.

There is however another way to do this. It will require the user to get a Microsoft Account, that should not be an issue since it is a free account.

  1. Log into the azure portal and go to Azure AD – All Users
  2. Click New Guest User
  3. Add the users Microsoft account (eg *, *
  4. Go to D365FO and choose Import users
  5. Select the new account, import it and give it the correct user role.

Now the user can log in using their hotmail adress

That’s all for today


Force running distribution jobs in Dynamics 365 for Operations Retail

When working with retain in Dynamics 365 for Finance and Operations, distribution jobs are used for moving data between Channel Database and the “AX” transaction database.

The jobs with the prefix P are inbound to AX and the other once are for outgoing sync. In some cases we need to trigger these jobs manually. To do this go to Retail IT – Distribution Schedule. Select the job and click Run Now

When the job is run click the History button to verify that it ran OK.



Call to TTSCOMMIT without first calling TTSBEGIN when installing a Deployable package

I just got an issue when running the DataUpgrade package to 8.1 form the command prompt in a Cloud hosted environment. The package failed on Step 6 with this error:

Application configuration sync failed. Microsoft.Dynamics.AX.Framework.Database.TableSyncException: Custom action sync failed with error: ‘InfoException:Stack trace: Call to TTSCOMMIT without first calling TTSBEGIN.

… followed by a huge stack trace… and since I am not fluent in stack trace I did what everyone does… I call a friend 😉

Fortunately I have great colleagues and I got the instant tip to restart IIS on the server; so I did and I reran the runbook :

AXUpdateInstaller.exe execute -runbookid=[yourrunbookid] -rerunstep=6

Presto… it worked…


Editing an runbook that fails

Today I had an issue with installing a deployable package from the sommand prompt. When the runbook tried to stop the Retail Server i got the following error on step 1:

System.Runtime.InteropServices.COMException (0x800706BA): The RPC server is unavailable. (Exception from HRESULT: 0x800706BA)

I then saw that it was using the server name, and I thought that it might work using locka host instead… the only problem was that I had imported the runbook and it had failed… how am I supposd to fix this?

I found my runbook file in the folder where I had extracted the package. I opened it in Notepad and ran search and replace on the file. I saved the file and tried to import it again using:

AXUpdateInstaller.exe import -runbookfile=”[runbookfilename]”

and then I restarted the package install using:

AXUpdateInstaller.exe execute -runbookid=[runbookid] -rerunstep=1

Wohoo… it worked!!!

Remember: If you are running AXUpdateInstaller from powershell you need to add .\ before the command


True wireless eller inte true wireless – det är frågan

Än en gång har jag fått låna ett par hörlurar (ja, jag vet… det är inte ett normalt beteende). Denna gången är det ett par Jabra Elite 65t, i en väldigt tjusig kopparfärg, som jag har fått testa. Dessa är ett par så kallade true wireless hörlurar vilka alltså inte har någon kabel alls. De använder Bluetooth 5.0 men jag misstänker att de använder någon annan standard för att kommunicera mellan höger och vänster lur. Anledning till denna gissning är att de flesta andra tillverkare gör så för att människokroppen är en ganska effektiv barriär för bluetooth och för att jag upplever vissa störningar mellan lurarna vid vissa tillfällen som jag inte upplevt med andra trådlösa lurar, t.ex när man går igenom larmbågarna i en butik. Lurarna har även stöd för multi-point för upp till 8 enheter och man kan även para ihop 5 par lurar för att 2 personer skall kunna lyssna på samma musik (har inte testats då jag bara har ett par). I övrigt isolerar hörlurarna bort väldigt mycket externt ljud vilket gör att man inte behöver spela speciellt högt, även när man t.ex åker tunnelbana, för att höra det man spelar. För att kontrollera lurarna laddar man ner en app from App Store eller Google Play, i denna kan man justera eq, uppdatera mjukvara mm.

På höger lur sitter en knapp för att pausa/starta musiken i lurarna samt svara i telefon. Denna knapp gör även att när man dubbelklickar på den så släpper lurarna igenom omgivningarna vilket är bra om man t.ex cyklar i trafiken. på den vänstra luren sitter knappar för att justera volym och för att hoppa frammåt och bakåt mellan låtar.

Batteritiden på lurarna är 5 timmar per laddning och Jabra skickar med ett laddnings case som totalt get lurarna 2 extra laddningar, alltså totalt 15 timmars tid. Man säger att 15 minuters laddning ger ca 1,5 timmars användande.

Hörlurarna är förhållandevis små och de sticker inte ut från öronen nämnvärt, varken nedåt som vissa konkurrenter eller utåt som andra konkurrenter. De känns väldigt kompakta och man upplever inte att de sitter i vägen, varken när man rör sig eller när man t.ex drar en tröja över huvudet.

Jag är normalt inte helt förtjust i in-ear lurar eftersom jag dels tycker att de är svåra att få fast och dels tycker de känns obekväma. Jabras lurar är in-ear lurar och jag måste säga att trots att jag fortfarande tycker att de är lite obekväma så måste jag säga att sitter gör de. Detta är ju ännu viktigare när lurarna inte sitter fast med någon kabel därför riskerar att försvinna om man inte passar sig. Enda gången jag har upplevt att de är lite kluriga att få fast är när man är lite våt i öronen… som t.ex efter ett bad. Annars sitter de kanon.

Till sist var det ju dags att svara på frågan som ställdes i rubriken… Skall man välja true-wireless eller inte? Jag kan givetvis inte tala för alla, utan endast för mig själv. Mina funderingar går såhär:

Mitt största problem med true wireless lurar är att de inte har någonstans att ta vägen när man inte använder dem. Jag har normalt lurar på mig hela dagen, inte nödvändigtvis i lurarna, men de hänger där kring halsen hela dagen… och helt ärligt är det ganska bekvämt. Man vet var man har dem och plockar man ur dem ut öronen kan man helt enkelt bara släppa dem. Detta märktes väldigt mycket när jag idag tig en liten tur på stan för att springa lite ärenden och man i några av butikerna behövde plocka ut lurarna ur örat för att prata med expediten och det fanns inget naturligt ställe att göra av dem. Om man kanske bara har dem till och från arbetet och alltså inte plockar i och ur dem är de väldigt smidiga och den lite sämre kontinuerliga batteritiden löses excellent av laddningsfordralet som enkelt ger dig en hel dags batteri (om du har ett par tillfällen att ladda under dagen).

På det hela har Jabra levererat ett par mycket trevliga och genomtänkta lurar och när de så småningom släpps i Evolve utförande för, certifierade för Skype/Teams och med USB dongle, tror jag att de kommer att bli riktigt trevliga.


Configuring a LCS Repository for Electronic Reporting in Dynamics 365 for Finance and Operations

In Dynamics 365 for Finance and Operations, Microsoft provides a large repository for Electronic Reports. These cover a lot of scenarios but for those scenarios that requires custom reports you can use LCS to store these in order to share them between environments.

This requires a configuration in D365

First you need to add a configuration provider:

  1. In D365FO search for “Electronic Reporting”
  2. In the right click Configuration Providers

  3. Click New, Give it a Name and a URL and click save
  4. Back in the GER Workspace select the new provider and click Repositories

  5. On the Configuration repositories screen click Add – LCS and Create Repository. Select the correct LCS project and click OK.

    Note: Sometimes you need to make a connection to LCS. To do that click “Click here to connect to LifeCycle Services”. This is done in a separate tab. When it is done switch back to the previous tab and click OK. If you get an error, try again.

  6. To look at the reports in the repository, select it and click Open. You will see the reports stored in the LCS repository.

  7. You are also able to see them directly in LCS, in the Asset Library. If you are working as a consultant this report can then be saved to your personal Asset Library and shared with your colleagues

  8. To give your organization access to your custom report, go to the Shared Asset Library, select it and click Publish