Article: DynamicsCon Fall 2021 Preview: Why microservices matter to the future of Dynamics 365 for Finance and Operations

Microsoft Dynamics 365 for Finance and Operations (D365FO) is Microsoft’s latest iteration of their flagship ERP system that used to be called Dynamics AX (and before that Axapta). Over all those years of software evolution, the ongoing goal has been to build a modern ERP system that is easier to support, maintain, and innovate on with new types of application development.

With D365FO, Microsoft has introduced many important changes that modernize the ERP experience and make it more attractive to customers. Key differences from the AX era include a new model for development, a One-Version policy for periodic updates, and an evolving approach to adding features to the ERP system.

For those of you who are already using D365FO, you have probably noticed feature management, where new features appear after updating to the latest version. Most new features represent new or improved capabilities that are based on what was already in the product, but sometimes a large new feature appears that provides a significant new tool or something that has been totally rebuilt from scratch.

When Microsoft create these large changes, they are probably thinking (I do not work for Microsoft so I cannot be sure) “Should this really become part of the core product?”. There are some historic examples of this type of decision making from the product team: The retail components in Dynamics AX 2012, integrations in AX moved to an external integration platform, and using SSRS instead of a built-in reporting engine.

Today, Microsoft are continuing to move traditional features out of D365FO and deploy modernized versions of them as cloud services that are accessible from the core ERP with APIs. The first one that became available was resource planning. The built-in MRP functionality has been deprecated and completely removed from the core product and it is instead available as a plugin to install from LCS. Another example is the configuration of exports to Data Lake (which will replace the Entity Store). In fact, Data Lake and Dataverse are an integral part in other microservice integrations.

A lot of these services are in preview now and will soon be available. A few other examples include Finance Insights, Tax Calculation, Electronic Invoicing, and Expense Management. I suspect we will be seeing a lot more of these in the future.

There are many reasons to why this change is happening right now. When Microsoft “moved” AX to the cloud, “AX7” was mostly Dynamics AX 2012 R3 with a web interface. In the five or so years since then, we have seen a lot of change. The entire architecture has changed from a traditional on-prem software stack with a database and a Win32 frontend to a containerized solution with near zero-downtime maintenance. In order to improve the product even more, reduce the complexity, increase performance, and improve resilience to developing customizations, Microsoft are building a more modularized solution that scales better and does not affect the speed of the core product. We see this clearly in MRP where a resource planning job that used to take multiple hours now finishes in 15 minutes.

Another upside of this design is that these services can be updated without having to “respect” customizations made by customers and partners outside of Microsoft’s control. With just a lightweight interface for all parties to respect, Microsoft is free to iterate even faster than the monthly cadence of One-Version.

We are also seeing customers and ISV vendors using the same methodology when building code… “If it doesn’t need to be in the ERP system, we should probably move it out”. If you look in Microsoft Azure, you will also notice that there is a whole slew of services available for building these modular solutions.

If you want to learn more about these services, why they exist, how to use them and whether you can build your own; please register for DynamicsCon and see my session called “Why Micro Services in Dynamics 365 for Finance and Operations”. I will be there for the session and of course to answer all your questions.

The article was originally posted in MSDynamicsWorld on Aug 20:th 2021

Build Pipelines with D365FO version 10.0.21

Hi all

Yesterday Microsoft released the PEAP version of 10.0.21 and on the new VM images they have decided to update a whole lot of stuff (Yay!!).

The new VMs are based on Windows Server 2019, SQL Server 2019 and Visual Server 2019 which means that your existing pipelines in Azure Devops will not work any more if you do not do some minor changes. I basically made some adjustments to this article by Joris de Gruyter and added a final step to mitigate a SQL server issue

  • In the Build Solution change MSBuild Version to MSBuild 16.0
  • In the Database Sync step change MSBuild Verson to MSBuild 16.0
  • In the Execute Tests step change Test Platform version till Visual Studio 2019
  • In the script “C:\DynamicsSDK\DeploySSRSReports.ps1” on line 127, change
    Restart-Service -Name “ReportServer” -Force
    Restart-Service -Name “SQLServerReportingServices” -Force
That´s it... the SQL issue will most certanly be fixed in the released version of the VMs        

Updating The Legacy Pipeline for Visual Studio 2017 (

Package Management in Windows

One of my main envies of Linux in the past years have been Apt-Get – the solution for managing installs and updates of software packages. There have been a couple of different solutions available for Windows historically. The best known one is a third party solution called Chokolatey that you can install and use on Windows and which has a huge repository of software available. The issue I had with Chokolatey was that is was not built-in to Windows… It felt a bit off having to install software to be able to install software.

A couple of years ago Microsoft included OneGet in Microsoft Powershell and I tried is a couple of times but being a bit lazy as I am I always felt it was a bit over-complicated. I never got the hang of having to install an trust providors and repositories. Since I mainly do this once when I reinstall a computer I never really found it worth the time to learn how to do this.

Fast forward to May 2020 when Microsoft introduced Winget. It was first made available as an install from Windows Store or directly from Github and from around May 2021 it is included in Windows as a default with no extra install required.

Yesterday when I reinstalled my computer I thought I would give is a shot.

To find software you use winget search. You can for instance type “winget search microsoft.” (Note the . at the end) to see all Microsoft software in the repository.

When you see the list of Microsoft packages you see that a lot of the regular downloadable packages such as Powershell and OneDrive. You will also find Microsoft Office, Teams and Visual Studio. All of Microsoft’s redistributable packges for supporting .NET and C++ are also available if you have any pre-requirement packages. A lot of the software might require a license which you will have to provide… when you for instance install Office you log into it as usual to provide your license informaton.

To install software you use the command winget install. You could for instance use winget install PowerToys to install Microsoft PowerToys or winget install “Microsoft vscode-insiders” to install Visual Studio Code Insider version. Note that you can use any of the information in the search results to identify which package should be installed.

Winget also handles the update of packages. To upgrade a specific package you can use winget upgrade [package name] or just use winget upgrade to upgrade all packages.

I really like what I see so far… 🙂

That is all for today

Fixing: The model version ‘3.6’ is not supported

When doing a refresh today of one of our D365FO Dev environments I encountered an issue that puzzled me a bit. I ran the following script to import the BacPac file:

cd C:\Program Files (x86)\Microsoft SQL Server\140\DAC\bin

SqlPackage.exe /a:export /ssn:<server> /sdn:MyNewCopy /tf:D:\Exportedbacpac\my.bacpac /p:CommandTimeout=1200 /p:VerifyFullTextDocumentTypesSupported=false /sp:<SQLAdmin password> /su:sqladmin

At first it was not able to find the folder 140\DAC\bin but there was a folder called 130\DAC\BIN

Unfortunately this SqlPackage file was too old to handle the BacPac file.

First I tried to update Management Studio… unfortunately that did not help. After researching a bit online I found Microsoft® SQL Server® Data-Tier Application Framework (18.2) which installed a later version of SqlPackage in C:\Program Files\Microsoft SQL Server\150\DAC\bin. That did the trick.


Using RSAT for regression testing in a Tier-2 environment

We have been running an integrated pipeline for RSAT test for a while now but all of the testing has been focused towards stabilizing the tests and minimize noise and false positives. In doing this we have selected to run it against our SIT (OneBox) environment.

We have now decided to start testing for real in our UAT environment, which means that we need to redirect RSAT to connect to one of our Tier 2 environments instead. We will still use the SIT environment as a RSAT client but with an alternate configuration. This is a short step-by-step guide on how to create the new configuration.

  1. Log into the RSAT client computer and start RSAT
  2. Change the URL and SOAP URL to the:

  3. In LCS go to the UAT environment and export the RSAT Certificate. Remember to save the export password.
  4. Upload the file and extract it on the RSAT client machine
  5. Install the cer file to Local Machine – Trusted Root Certificate Authorities
  6. Import the .pfx file (using the password above) to the local machine

    more details are here:
  7. In RSAT – Setting change the certificate thumbprint to the one for your Tier 2 environment.
  8. In order to use the new config but still be able to test against the SIT enviroenment, click Save As at the top of the page ang save the new configuration to a file. You can now manually switch between the two configurations and also use the different files in build and deploy pipelines.

    That is all for today… Good Luck and happy testing 🙂

Regression suite automation tool installation and configuration – Finance & Operations | Dynamics 365 | Microsoft Docs
Troubleshoot the Regression suite automation tool – Finance & Operations | Dynamics 365 | Microsoft Docs

UPDATED: Configuring access for mobile warehousing app in Dynamics 365 for Operations

Back in 2018 I wrote an article on how to configure a D365FO instance to enable the Warehousing App. A lot of time has passed and tonight I will set up the all new and improved Warehouse App so I thought I would also take the time to update the original article

  1. Go to the azure portal. In Azure Active Directory – App Registrations create a web application for the warehouse portal
    Name: WhatEverYouWant
    Who can use thisapplication or access this API: Accounts in this organizational directory only
    Application Type: Web app/API
    Sign-on URL: https://[theURLforyourdynamicsinstance]/oauth
  2. Open the application to edit it
  3. Verify Application ID. Save this for later…
  4. Go to API Permissions and click Add a permission
  5. Select the API called Microsoft Dynamics ERP (Microsoft.ERP)
  6. Choose Delegated Permissions
  7. Under Permission to other applications click add application and add Microsoft Dynamics ERP
  8. Add the following permissions
    – Access Dynamics AX online as organization users
    – Access Dynamics AX data
    – Access Dynamics AX Custom Service
    Click Add Permissions
  9. Click Grant admin consent for [Your Organization] and confirm your choice
  10. Go to Certificates and Secrets and click New client secret. Select an expiration and give the key a description like D365FO Warehousing App
  11. Log into Dynamics 365 for Operations and go to System Administration – Users and create a new user (in my case called WMAPP. The email address can be anything since it will never be used. The user needs this role:
    – Warehouse mobile device user
  12. Now we need to associate the user to the AD Application which is done on System Administration – Setup – Azure Active Directory applications. Here we paste the App ID/ClientID from before and select the user we created. Click Save and you are done.
  13. Install the App from app store and enter these settings:
    1. Azure Active Directory ID: AppID/ClientID from step 3
    2. Azure Active Directory Client Secret: The key from step 10
    3. Azure Active Directory Resource: Your Dynamics 365 URL
    4. Azure Active Directory Tennant:
    5. Company: Dynamics 365 for Operations Legal Entity
  14. To configure the mobile att you create a JSON file with the connection setting
    "ConnectionList": [
            "ConnectionName": "YourConnection",
            "ActiveDirectoryResource": "https://{[yourdynamicsenvironent]",
            "ActiveDirectoryTenant": "[yourtenantid]",
            "Company": "USMF",
            "IsEditable": true,
            "IsDefaultConnection": true,
            "ConnectionType": "clientsecret"
  1. The JSON file can either be uploaded to the device or converted to a QR code using a service like this.
  2. Unfortunately/Thankfully the client secret cannot be put in the file/QR code and it have to be entered manually by editing the connection on the mobile device.
  3. To login in to the app you will need to have a username and password. Go to Warehouse Management – Setup – Worker – Users and select a user (in my case 24). Reset the password for worker 24
  4. Login to the app using User ID 24 and the new password you just set

To use the new Warehousing App you will need to enable a feature i D365FO called User settings, icons, and step titles for the new warehouse app which is available from 10.0.17

Install and connect the warehouse app – Supply Chain Management | Dynamics 365 | Microsoft Docs

ELPOIT #308 -Cold Potato and Hot Potato Routing

Om Shownotes ser konstiga ut (exempelvis om alla länkar saknas. Det ska finnas MASSOR med länkar) så finns de på webben här också:
Avsnitt 308 spelades in den 16:e mars 2021 och eftersom att rymden luktar grillat kött ( så handlar dagens avsnitt om:

* Björn har haft Mello, Johans familj har också haft mello så då har Johan gjort annat (varit ute och sprungit)

* Ikea “åskväder”
* Johan förklarar “non fungible tokens”—-everything-you-need-to-know-about-non-fungible-tokens
+ this week in Google ep 602 ( 


* GeekWire: Microsoft 365 authentication issue causes Microsoft Teams and other services to go down.
* Microsoft Ignite. ( 
  * Microsoft Mesh,
  * Microsoft Teams
     * Teams connect (4.2.1)
     * Teams webinar (4.2.5)
     * Teams vyer (4.2.2)
     * Teams breakout rooms
     * Auto transcriptions
  * Microsoft Viva (4.2.6) (
  * Säkerhet
     * Passwordless i Azure AD (5.3.3)
     * Co-authoring (5.2.3)
     * Azure sentinel (5.1.4)
     * AWS och Azure AD (5.3.1)
  * Azure 
     * Mega Godzilla beast VM (
     * Bicep (
     * Azure Migrate (1.5.6)
     * Azure routing dashboard (1.5.8)
     * Scalable Bastion  (1.5.9)
 * Power platform
     * Trigga saker från Teams i power automate
     * Governance och security (2.2.4)
     * Power Fx (2.2.3)
     * Power Automate Desktop (2.2.1)
  * industry cloud (3.1.1)

* M1 Mac och vad som händer med priser

* Google play sänker hur mycket de vill ha i playstore från 30% till 15%
* Google Family link har fått uppdateringar

* Oscars kommer tillåta streaming-only filmer att kvalificera sig, men med restriktioner

* Björn:
* Johan:

* En Liten Podd Om IT på webben,
* En Liten Podd Om IT på Facebook,
* En Liten Podd Om IT på Youtube,
* Ge oss gärna en recension

* Apple Podcaster (iTunes),
* Overcast,
* Acast,
* Spotify,–Ujg%20
* Stitcher,


(Och glöm inte att maila om du vill ha klistermärken, skicka med en postadress bara. 🙂 

ELPOIT #307 – Vi ser ut som ett pojkband

Om Shownotes ser konstiga ut (exempelvis om alla länkar saknas. Det ska finnas MASSOR med länkar) så finns de på webben här också:

Avsnitt 307 spelades in den 9:e mars 2021 och eftersom att den 18 mars 1965 så var Alexei Leonov den första att göra en rymdpromenad så handlar dagens avsnitt om:–soviet-cosmonaut-alexei-leonov-becomes-first-man-to-walk-in-space-173726003.html

* David har haft en jättekul vecka, i fredags så var han med i ett avsnitt av “Inside Security”
   * BONUSLÄNK: Inside Security, Episode 3 | Everything about Security Operations Centers with David Lilja –
* Björn har ett städat hus och njuter. 
* Johan har gjort det vanliga, promenerader. Frusit som f*n. 
* Snygg burn. A Tale of Two Slings: Peak Design and Amazon Basics.

* Jack Dorsey säljer sin första tweet
   * BONUSLÄNK. grandrolfs bild:

* Microsoft har haft ett säkerhetshål i Exchange server (onprem)
   * BONUSLÄNK: från Stanitch i chatten.
* Microsoft Ignite
   * Johan har spelat in tre avsnitt på Linked in
     DAG 1.
     DAG 2.
     DAG 3.
   * Microsoft Mesh,
     Bra artikel:
   * End-2-End kryptering börjar dyka upp i Teams,
   * Visual studio Code kommer släppas native till M1 Macs,
   * Microsoft Edge får Virtual Tabs,
* Ny grej i web-versionen av Word. “Save as Powerpoint”. 

* Förberedelser för en anti-trust rättegång??
* Man för inte heta True om man har iCloud

* Chrome kommer att släppas en gån per månad
* Google Duo funkar över taskig uppkoppling
* Liten, men bra förändring

* David: En ny smartklocka,
* Björn: Elgato Game Capture HD60 S+ (
Fast jag ville ha en sån här för bara några dagar sedan.
* Johan: En kabel till Surface

* En Liten Podd Om IT på webben,
* En Liten Podd Om IT på Facebook,
* En Liten Podd Om IT på Youtube,
* Ge oss gärna en recension

* Apple Podcaster (iTunes),
* Overcast,
* Acast,
* Spotify,–Ujg%20
* Stitcher,


(Och glöm inte att maila om du vill ha klistermärken, skicka med en postadress bara. 🙂   

ELPOIT #306 – 18 timmar Peppa Pig

Om Shownotes ser konstiga ut (exempelvis om alla länkar saknas. Det ska finnas MASSOR med länkar) så finns de på webben här också:

Avsnitt 306 spelades in den 1:a mars 2021 och eftersom att matpyramiden är ett svensk uppfinning så handlar dagens avsnitt om:

* David gillar Webbhallen, Björn gillar Kjell och Co, Johan gillar sportlov och tippen. Dessutom har Johan varit ute och sprungit en massa.

* Appropå Headphone Safety är Björn inte helt ensam,
* Det kanske bli lagkrav på att tillverkarna ska uppdatera telefoner längre
* TIPS från DISCORD:Lastpass har trackers i sin Android version
* Deep fakes används av myheritage för att animera gamla familje foton
* Tips på Podcast: Knee-deep in tech avsnitt 143,
* Tips på Inside Security

* Hur gör ni med dator till barn?

* Tre nya “moln erbjudanden”. “Nonprofit”, “Manufacturing” och “financial services”
* Microsoft har släppt 3:e versionen av “feature experience pack” till beta channeln för Windows inside program
* Private Azure Marketplace
  * BONUSLÄNK: Här han man kolla vad som finns på marketplace,

* M1X i ny MacBook Pro:
* Rykte: Portless iPhone 13?
* Mer iPhone 13-rykten:
* Hur man får FaceID att funka med ansiktsmask
* MacOS i molnet? Jupp visst kan man få det!!

* Google Assistant får uppdateringar för att funka bättre mot G-suite
* Nya features till äldre versioner av Android

* Nu kan Netflix ladda hem rekommenderade filmer och serier
* Playstation har stora spel
* Men det kan bli mer lagring i PS5

* David: det kan vara så att det är dessa lurar som David vill ha,
* Björn: eGPU, 
* Johan: Mer lampor

* En Liten Podd Om IT på webben,
* En Liten Podd Om IT på Facebook,
* En Liten Podd Om IT på Youtube,
* Ge oss gärna en recension

* Apple Podcaster (iTunes),
* Overcast,
* Acast,
* Spotify,–Ujg%20
* Stitcher,


(Och glöm inte att maila om du vill ha klistermärken, skicka med en postadress bara. 🙂