Pages

Friday, November 23, 2018

Modules on the environment do not match with modules in the package

If you try to deploy an 8.0 to 8.1 upgrade to sandbox/UAT where modules have been renamed, you will get the error "Modules on the environment do not match with modules in the package" together with a list of missing modules.

The regular process of renaming a module is to create a new module with the new name, move the code, delete the old module and add the old module name to the ModuleToRemove.txt files for removal during deployment.

When deploying the 8.0 to 8.1 upgrade to sandbox/UAT, Microsoft checks that the package holds at least the same modules as already deployed. But the ModuleToRemove.txt file is not taken into consideration during this check, and thus the modules appears to be missing.

The workaround is to keep and deploy empty models with the old names. Any code must of course be in the new models.

You can uninstall the empty modules at your next regular deployment using the normal process with the ModuleToRemove.txt file.

This is only an issue with 8.0 to 8.1. Not with, for example, 7.3 to 8.1.

Tuesday, November 20, 2018

Thumbprint error when pasting thumbprint into the Regression Suite Automation Tool (RSAT) configuration

You can get an error like this when you paste the thumbprint, from your new certificate, into the configuration tool.


The reason for this is that the certificate UI uses a Unicode enabled RichEdit control to show the value.

You can use a command prompt to list a thumbprint that is suitable for copy-n-paste.
Use "certutil -store my" for the machine certificates. The thumbprint can be located in the line that starts with "Cert Hash(sha1)".

Another workaround is to paste the thumbprint to a new Notepad file, save the txt file, reopen the text file and then copy the thumbprint from there.

Reference: https://support.microsoft.com/en-ca/help/2023835/certificate-thumbprint-displayed-in-mmc-certificate-snap-in-has-extra

Friday, November 16, 2018

Connecting to custom help sites from Finance and Operations

New information and tools from Microsoft to help you connect Dynamics 365 for Finance and Operations to a website that hosts your custom help content. You can base your custom help on our content, on your existing Dynamics AX 2012 content, or on your own content, as long as you add the required new metadata.

White paper: https://go.microsoft.com/fwlink/?linkid=2041185
Tools on GitHub: https://github.com/Microsoft/dynamics365f-o-custom-help

Tuesday, October 30, 2018

Debugger not hitting any breakpoints on new 8.1 boxes

I have had a few 8.1 dev boxes where the debugger just wouldn't hit any breakpoints.

The cause is this related to this setting in Visual Studio:


On the new boxes where I have had the problem "Only specified modules" was active, but no modules were specified. You can change this to "All modules, unless excluded" or figure out precisely which modules add.

Thursday, October 11, 2018

Where does the DefaultConfig.xml origin from?

In the DefaultConfig.xml file located under C:\Users\[user]\Documents\Visual Studio 2015\Settings you can change all sorts of settings for how Visual Studio works with Dynamics.

I needed to change something in this file on a local VM today. But the file kept being overwritten whenever I started Visual Studio again. So where did it originate from?

Google didn't have an answer. Ievgen Miroshnikov has though, but his article was just not very Google friendly along the terms of my query.

So I'm basically just able to repeat what Ievgen already has stated: The file originates from \AosService\PackagesLocalDirectory\Bin\DynamicsDevConfig.xml


Tuesday, October 2, 2018

Team Manager license and the Regression Suite Automation Tool

You'll need a Test Manager license to create and maintain test plans (add or remove tests).

Test Manager is included in Visual Studio Enterprise and Visual Studio Test Professional. You can see pricing here: https://visualstudio.microsoft.com/vs/pricing/

Alternatively you can buy a Test Manager license as a standalone SKU. You can find pricing here: https://marketplace.visualstudio.com/items?itemName=ms.vss-testmanager-web

Without the license you can still:
  • Create a new task recording, upload it to BPM and get it synchronized to Azure DevOps as a test.
  • Load the test plan into the Regression Suite Automation Tool, run the tests and investigate test results in Azure DevOps.
  • Update the tests with the artifacts generated by the tool. 

Friday, September 28, 2018

How to setup Azure Key Vault with Dynamics 365 for Finance and Operations

Azure Key Vault is a service that allows you to store secret keys, like passwords or certificates for external web-services, to be used by your different apps. When stored in Key Vault, none of your apps need to know details about or store these secrets by themselves. No more passwords laying around in code, in your version control system, in configuration files etc.

You can read more about Key Vault here.

Dynamics 365 for Finance and Operations has integration with key vault. It's just not very well documented and for now it seems only used a few places for integrations with different authorities.

I can't find any documentation on docs about the setup of Key Vault with Dynamics 365 for Finance and Operations, but I was able to find this support guide in stead: https://support.microsoft.com/en-us/help/4040294/maintaining-azure-key-vault-storage

If you follow the guide you'll be able to do the necessary setup on Azure.

In Dynamics you can find the setup form under System administration / Setup / Key vault parameters:


Let's try to figure out how to add a configuration to this form.

I have created a key vault called "PallesVault":


The "DNS Name" from the vault is what you enter in the "Key Vault URL" field.

I have registered my Dynamics instance as an app, as described in the support article. And I have added a Key to the registration. The Application Id and the secret key I have added goes into the "Key vault client" and "Key vault secret key" fields.


I have added single secret to my vault, which is my phone number ("Telefonnummer" is danish for phone number):


The address of the secret goes into the "Secret" field, as "vault://pallesvault/PallesTelefonnummer"

So, to get the value of this key from Dynamics the setup looks like this:



And here is some quick and dirty test code:

public static void main(Args _args) 

    KeyVaultCertificateTable keyVaultCertificateTable; 

    select firstonly KeyVaultCertificateTable 
        where KeyVaultCertificateTable.Name == "Telefon"; 

    str secretValue = KeyVaultCertificateHelper::getManualSecretValue(KeyVaultCertificateTable.RecId); 

    info (secretValue); 
}

In regards to pricing for the key vault, there is a Standard and a Premium tier. Standard is nearly free and Premium will set you back around 1$ a month.

Go secure your secret keys.