Renaming a OneBox Dev environment


Tonight I helped one of my developer colleagues who had issues with one of his DEV environments. The issue was that he had renamed the VM (you cannot have multiple machines in Azure DevOps with the same name). The problem was that he had not completed all the steps that is required to rename so it was behaving a bit weird.

First of all we were not able to connect to Reporting Services Configuration Manager. The solution was unfortunately not very logical… In the onebox environment there is a couple of SQL components installed from different SQL Server Versions:

If you use the wrong SSRS Configuration Manager it is not able to connect to the SSRS Server and get the error message: No report servers were found

The correct version is 2016! Completely logical… NOT!

When this was done we just followed this guide to complete the rename and all is well 🙂



Flow Friday: Sync selected Calendar items between calendars

The other day I thought I would make myself use Microsoft Flow more… the best way I could think of was to force my self to write a series of blog posts every week… that should work 🙂

My first post is a description on how to keep your partner happy (or at least happier) when you need to work late.

I keep two calendar, one personal and one for work, where I share my personal calendar with my wife in order for her to know what I am up to. When I need to work late or have an event at work I would like her to know (since I often forget to tell her). This flow adds all events in my work calendar that end after 17.00 to my personal calendar and it also sends an invite to my wife.

We start with the trigger that triggers on all new events. Then we converts the time to Swedish Time Zone (1) and then we check if the event “Show As” field is “Busy” (2)

If the event is not busy we simply terminate the flow, if it is Busy we first validate that End Time is later than 17.25 (3) and if it is we create a new event in personal calendar with the same settings where I invite my wife as an optional attendee (4).


Automation is King!!



Flow Friday: Using Approval Status for Sharepoint lists in Microsoft Flow

Tonight I was trying to filter a Sharepoint List based on Approval Status in Microsoft Flow… this turned out to be a bit tricky… maybe even more than a bit.

Apparently the column Approval column is a system column and those are not visible as properties in Flow. There is however a way to get it… The property you need to use is OData__ModerationStatus. The different status values are

  • 0 for “Approved”
  • 1 for “Rejected”
  • 2 for “Pending”

The correct statement in Flow is

OData__ModerationStatus eq ‘0’

Another field you can access this way is OData__Moderation_comments

That is it for tonight


Bitlocker recovery key in Azure AD

At my current job I normally do not handle IT support but since I have a history of doing support my colleagues sometimes asks me for help. Todays issue was a computer with a new motherboard that was missing a Bitlocker Recovery Key.

We are a small company so we do not have out own infrastructure and are relying on Azure AD. When you join a Bitlocker encrypted device to Azure AD the key is stored in you user account in the Azure portal. To retrieve it, log in to the Azure Portal, goto Azure Active Directory and open the User you are looking for. In the user properties go to devices and find the key. If the user has more than one key you can use the Bitlocker Key ID to locate the correct key.



Finding your Bitlocker Recovery Key in Azure AD

Regression Suite Automation Tool: System.Exception: Microsoft (R) Visual C# Compiler version 4.6.1586.0 for C# 5

I had a really annoying issue today…

We are starting use Regression Suite Automation Tool (RSAT) for test automation in Dynamics 365 for Operations. This tool is using Task Recorder, Business Process Modeller and Azure Devops for automatically testing process in D365FO.

I needed to install it for one of my colleagues and run into this error message when I was trying to regenerate test files for a test case:

[BITS D365 RSAT] Create party record (external)
System.Exception: An error occurred while generating test cases. See details below. —> System.Exception: Microsoft (R) Visual C# Compiler version 4.6.1586.0
for C# 5
Copyright (C) Microsoft Corporation. All rights reserved.
This compiler is provided as part of the Microsoft (R) .NET Framework, but only supports language versions up to C# 5, which is no longer the latest version. For compilers that support newer versions of the C# programming language, see

c:\Temp\XXXX\MyTestCase.cs(253,56): error CS0266: Cannot implicitly convert type ‘Microsoft.Dynamics.TestTools.Dispatcher.Client.DispatchedForm’ to ‘MS.Dynamics.TestTools.DispatcherProxyLibrary.MyForm.MyGrid’. An explicit conversion exists (are you missing a cast?)

— End of inner exception stack trace —

My thoughts was that there was something wrong with my Dynamics 365 FO VM and I could not get it to work… after several frustrating hours I read a Yammer post that indicated that it might be an issue with the actual test case… go figure I had been testing with the same test case every single time. Once I switched test case everything worked… That is great… Wohoo

That is it for today


Looking at OData in Excel

In Dynamics 365 for Finance and Operations most of the data is represented in Entities which in turn are surfaced as OData feeds for used for integrations. If you need a raw look at the entity you can access the raw OData feed, unfortunately it is not easily readable for humans:

Excel to the rescue. In Excel go to Data – Get Data –  From Other Sources – From OData Feed

A lot more readable… right 🙂

That’s it for today

A fantastic Chrome addin if you are using D365FO

On of my primary tasks at work every day is maintaining multiple Dynamics 365 for Operations environments for my customer. This means that I often juggle a couple of environments at the same time and often I have to double check the URL to make sure I am in the right place.

There is of course the possibility to set different banners on each environment to be able to differentiate between them.

Today I found a wonderful tool that can help me, a chrome addin that puts a border at the edge of the window, in different color, depending on the URL 🙂

You configure the addin with different keywords which triggers the color switch The keywords can be URLs:

Or you can for instance use name of the legal entity:

Note that the keyword is Case sensitive. The result looks like this:

Since the addin doesn’t car what you are running in the browser you can use it to differentiate between other similar sites as well… as long as the URL differs in a consistent way.

If you are running the new Microsoft Edge (nased on Chromium… It works there as well 🙂


Screenshots in Task Recordings ni Dynamics 365 for Operations

The new Task Recorder in Dynamics 365 for Operations is a cool tool. It allows you to create a complete recording of a business process which then can be used for documentation, training and also for automated testing (I will revisit that in a later post). In this one we will take a closer look at documentation.

In AX 2012 the task recorder created nice screenshots in the word export but feature is no longer present in D365 for Operations. At least not in PU20 that my customer is running. There is however a solution.

If you use Google Chrome (which I do) there is actually a plugin that you can install and silently monitors you progress when you are creating you task recordings and takes a snapshot when you click on something. Once you save the recording as a Word Document these snapshots are inserted into the document.

Beware of the BacPac

The other day one of my colleagues needed a database copied from PROD to a DEV OneBox. Unfortunately there is no direct route from PROD to Onebox, you need to make a refresh to a Tier-2 environment and then move the database from the Tier-2 environment to LCS and then restore it to the OneBox environment. The issue I had was that I need to keep the data in the Tier-2 environment.

I used LCS to make an export to LCS, performed the entire process from above and it was finally time to restore the export… did not work… The issue I was getting was an error trying to create a trigger referring to a missing column. When I looked closer at this I found that the column was missing had been removed a long time ago and (in AX/D365 removed columns gets the prefix DEL_ and this column had that). Apparently the column had been removed before the export was done and for some reason the export was not consistent.

There are a couple of different solution to this problem…

In my case I opened up the bacpac file (it is apparently a zip file). Inside is all the data and the schema for the database. I opened the model.xml file and search for the T-SQL statement that created the trigger, I changed the statement to point to the DEL_ table, saved the file and put it back into the zip and renamed it back to bacpac.

When I tried to import it I got an error that said “mismatching checksum”. In the file called origin.xml there is a line containing the checksum for model.xml:

<Checksum Uri=”/model.xml”>8E0D68CEA76ACDB4DD4EE9853065E0E10D9C426F0CC880D18ABC19AAC64624C9</Checksum>

This prevents someone tampering with the model file. To generate a ned checksum for the model file, run the following PowerShell script and point to the model.xml file. Past the HASH in origin.xml

$modelXmlPath = Read-Host "model.xml file path"

$hasher = [System.Security.Cryptography.HashAlgorithm]::Create("System.Security.Cryptography.SHA256CryptoServiceProvider")

$fileStream = new-object System.IO.FileStream ` -ArgumentList @($modelXmlPath, [System.IO.FileMode]::Open)

$hash = $hasher.ComputeHash($fileStream)

$hashString = ""

Foreach ($b in $hash) { $hashString += $b.ToString("X2") }



Put both Origin.xml and model.xml in the zipfil and change the extension to bacpac. Import it again.

The final takeaway: DO NOT RELY ON BACPAC EXPORTS for backup!!! Or at least test them in some way…

Note added after post:

A safer way to do this is probably (as long as we still have RDP access to t-2 environment):

Creating a new database as a copy of the original (since you are going to mess with it) by running this SQL query:

CREATE DATABASE MyNewCopy AS COPY OF axdb_mySourceDatabaseToCopy

Since this operation runs asynchronously in the background you will have to keep an eye on it before continuing:

SELECT * FROM sys.dm_database_copies

En Liten Podd om IT – Avsnitt 217 – Jag har en spik rakt igenom foten och det är ganska OK

Om Shownotes ser konstiga ut så finns de på webben här också:

Avsnitt 217 spelades in den 2:a juni och eftersom en normal person producerar tillräckligt med saliv för att fylla två olympiska simbassänger så handlar dagens avsnitt om:



* David är nöjd och har fått en lagad skärm. Björn har sålt soffa, köpt soffa, skruvat altan, sålt andra saker osv, Johan har varit på bakluckeloppis och gått _lite_ med vinst (Björn är tveksam till konceptet bakluckeloppis)

* Johan rättar sig själv om Foxconn-fabriken i wisconsin




* Microsoft har släppt “Security baseline for Windows 10 v1903” och vi är överensom att det verkar bra. :)

* Det har varit “SharePoint Conference 2019”. Där gick man bland annat ut med information om nyheter i OneDrive (Visa filer från Teams, Sharepoint, Outlook. Använda metadata för att organisera (+ workflows mm). Delta-sync på filer osv. osv. 

* Microsoft Azure: Adaptive network hardening är nu släppt. Hur coolt är inte detta, nu behöver vi varken säkerhetsfolket eller nätverksfolket!! :)

Satya Nadella var i Stockholm och pratade om nya datacenter i Sverige




* WWDC nästa vecka.

* Snackisar: iTunes sägs komma försvinna en till länk om typ samma sak. 

Limit 3rd party tracking

* David hoppas på ios 13, och MacOS 10.15, nytt watchOS och kanske en ny Mac Pro.

* Andra saker som det snackas om: Använda mus till Ipad Pro, använda Ipad pro som extern skärm

Man har gått ut med att det är släppt en ny iPod touch 7




ny antitrust mot google i USA

ny Oxygen OS open Beta.




* Blandade länkar med filmer och bilder:



ÖVRIGA NYHETER 2 – Starwars på Disney land.


Shut up and take my money:

* Johan: En batteribas till Google Home Mini eller Google Home

* Björn:  antingen en ny dator eller en sån här

* David: 2st iPad till ungarna… 🙄


* Hur f*n kan det komma sig att Microsoft Outlook (alltså programmet som man installerar lokalt på dator som ingår i Office Paketet) inte har stöd för 2FA


En Liten Podd Om IT på webben

En Liten Podd Om IT på Facebook




Apple Podcaster (iTunes)








(tack för att du har läst hela vägen hit, du får veckans guldstjärna!)

Tip of the week: Getting rid of Standard View

In Dynamics 365 for operations there is a very useful tool called Data Management Framework which is used for import and export of data…

A couple of month ago Microsoft introduced a new view called Enhanced View that I personally think is nice… but for some strange reason (maybe inertia) the Standard View (the old one) is still standard and every time you choose it the UI tells you that “Standard view has been deprecated, and will be removed. You can change your default view to Enhanced on the Data management framework parameters page.” which can be a bit annoying. Microsoft has promised that soon the Enhanced View will be standard… If it was only soon now 🙂

In the mean time you can set the default view.

  1. Go to the Data Management Workspace
  2. Go to Framework Parameters
  3. Change View Defaults to Enhanced

Happy Days!!