Create an ISV license from a cryptographic USB token
Dec03

Create an ISV license from a cryptographic USB token

This post is a product of not reading the full documentation. Lesson #1: read the docs thoroughly, or at least don’t stop reading when you think you’re done. Publishing an ISV solution One of the steps when you want to publish an ISV solution is generating the license for your customers. This license has to be signed  using an Authenticode certificate that will enable the solution, limit… Continue Reading Adrià Ariste...

Read More
Get the T-SQL query from X++
Nov26

Get the T-SQL query from X++

As you might know MSDyn365FO’s data access layer pretty different from T-SQL. This means that if you copy a query on AX and paste it in SSMS it won’t validate in the 99% of the cases (the other 1% being a select * from table). The differences are specially obvious in the join clauses, for example in AX’s (not) exists join which translates to T-SQL as a WHERE NOT EXISTS (SELECT statement). To… Continue Reading...

Read More
DevOps ALM automation in Microsoft Dynamics 365 for Finance and Operations
Oct29

DevOps ALM automation in Microsoft Dynamics 365 for Finance and Operations

I’ve already written some posts about development Application Lifecycle Management (ALM) for Dynamics 365 for Finance and Operations in the past: Dynamics 365 for Finance & Operations and Azure DevOps (part I) Dynamics 365 for Finance & Operations and Azure DevOps (part II) Setting up Release Pipeline in Azure DevOps for Dynamics 365 for Finance and Operations Set up the new Azure DevOps… Continue Reading Adrià...

Read More
Invent counting with AI Builder
Oct22

Invent counting with AI Builder

This past weekend I’ve attended my third 365 Saturday, this time in Barcelona, as a speaker. As you can see in the post title my session has been about creating inventory counting journals using AI with the Power Platform. The event has been great, but my session has left me with a bittersweet feeling because I haven’t been able to show the full app functionality due to stupid technical issues… Continue Reading Adrià...

Read More
Setup Entity Store’s export to Azure Data Lake storage
Oct07

Setup Entity Store’s export to Azure Data Lake storage

It’s easy to start this post, because many people can ask: What’s a Data Lake? Fishing in a Data Lake. By cazapelusas. A Data Lake is not an Azure product but a term referring to a place where data is stored, regardless of whether it’s structured or unstructured. Its only purpose is storing the data ready to be consumed by other systems. It’s like a lake that stores the water of its… Continue Reading...

Read More
Manually deploy Retail packages for Microsoft Dynamics 365 for Finance and Operations
Oct01

Manually deploy Retail packages for Microsoft Dynamics 365 for Finance and Operations

First Microsoft Dynamics 365 for Finance and Operations Retail post! I hope more will come. As you might know, one of the setbacks of the database refresh from production in LCS is that some data doesn’t get copied. This is a safety feature that prevents, among others, that emails are sent or batches run accidentally after a DB restore. Remember that it’s a good idea to have a SQL query/script… Continue Reading Adrià...

Read More
Parse XML and JSON easily in MSDyn365FO
Sep17

Parse XML and JSON easily in MSDyn365FO

Some time ago I had to create an interface between MSDyn365FO and a web service that returned data as XML. I decided to use X++’s XML classes (XmlDocument,  XmlNodeList, XmlElement, etc…) to parse the XML and get the data. These classes are terrible. You get the job done but in an ugly way. There’s a better method to quickly parse XML or JSON in MSDyn365FO. .NET to the rescue There’s a… Continue Reading Adrià Ariste...

Read More
Feature management: create a custom feature
Sep10

Feature management: create a custom feature

Feature management has been around in Microsoft Dynamics 365 for Finance and Operations for some time now. Before that features were enabled through flighting running a SQL query on dev and UAT boxes (and the DSE team would do it on production). Now we have a nice workspace showing all the available features and flighting is still around too. The main difference between flighting and features… Continue Reading Adrià Ariste...

Read More
Set up the new Azure DevOps tasks for Packaging and Model Versioning
Sep05

Set up the new Azure DevOps tasks for Packaging and Model Versioning

During this past night (at least it was night for me :P) the new tasks for Azure DevOps to deploy the packages and update model versions have been published: The official @AzureDevOps task to deploy @MSFTDynamics365 F&O customizations is now added to our marketplace extension! Hot off the press! https://t.co/ExXJ3CKbUW https://t.co/q4qOScg6vv#FinOpsDevOps — Joris de Gruyter (@jorisdg) May… Continue Reading Adrià Ariste...

Read More
Application Checker: enforcing better coding practices?
Sep03

Application Checker: enforcing better coding practices?

Unless you’ve been working for an ISV there’s a high percentage of probabilities that you’ve never cared about Dynamics Best Practices (BP), or maybe you have. I haven’t worked for an ISV myself but back when I started working with AX I was handed the development BP document and I’ve tried to follow most of them when writing code. But BPs could be ignored and not implemented without… Continue Reading Adrià’s Article on...

Read More
Self-service deployments: the future is here
Aug23

Self-service deployments: the future is here

Right now Microsoft Dynamics 365 for Finance and Operations has an old style monolithic architecture, even it’s now in Azure’s cloud, what we really have is a single (or multiple for Tier 2+ environments) VM that runs everything: the AOS/IIS, Azure SQL Server, the Batch service, MR, etc. Exactly the same as AX 2009/2012. This is going to change in the coming months with the self-service… Continue Reading Adrià’s Article on...

Read More
Slow set-based operations?
Aug21

Slow set-based operations?

In Microsoft Dynamics 365 for Finance and Operations we can execute the CRUD operations from code in two different ways, record-per-record or set-based. Microsoft’s recommendation is to always use set-based operations, if possible, as you can check on the Implementation Best Practices for Dynamics 365: Performance best practices for a successful Dynamics 365 Finance and Operations… Continue Reading Adrià’s Article on their...

Read More
Update to Visual Studio 2019 for #MSDyn365FO
Jul23

Update to Visual Studio 2019 for #MSDyn365FO

Tired of developing in Visual Studio 2015? You feel you’ve been left and forgotten in the past? Worry no more, you can use Visual Studio 2017/2019 to develop Microsoft Dynamics 365 for Finance & Operations! What are the advantages? Absolutely none at all! Visual Studio will still go non-responding whatever the version is because it’s the dev tools extension what’s causing the issues. Of… Continue Reading Adrià’s...

Read More
Consume a SOAP web service in Dynamics 365 for Finance and Operations using ChannelFactory
Jul12

Consume a SOAP web service in Dynamics 365 for Finance and Operations using ChannelFactory

If you ever need to consume a SOAP web service from Dynamics 365 for Finance and Operations, the first step you should take is asking the people responsible for that web service to create a REST version. If that’s not possible this post is for you. I’ll use this SOAP web service I found online at http://www.dneonline.com/calculator.asmx for the example, it’s a simple service-calculator with… Continue Reading...

Read More
Do you want to become a better X++ developer?
Jul07

Do you want to become a better X++ developer?

I’ve been a X++ developer for almost 10 years, that’s the 100% of my professional career, excluding internships. During these 10 years I’ve seen the product evolve and, in my opinion, the last three years with #MSDyn365FO have been the most exciting by far as I’ve said several times. The move from the notepad-like MorphX to Visual Studio, Azure DevOps and the asset upload and release… Continue Reading Adrià’s Article on...

Read More
Microsoft Business Applications Summit 2019
Jun20

Microsoft Business Applications Summit 2019

During the past week I attended the Microsoft Business Applications Summit (MBAS) with some of my colleagues at Axazure. It was my first time in an event like this and the experience has been wonderful and intense (and tiring). The event took place from Sunday to Tuesday and traveling from Madrid to Atlanta and back, including a 5 hour delay in Toronto and a 6 hour layover in Newark, in just 5… Continue Reading Adrià’s...

Read More
Override the default theme per company (proof of concept)
Apr13

Override the default theme per company (proof of concept)

At this point I’m 99% sure almost all of us have been asked the “can we change the theme color to the one of our company/brand?” question. While this is unfortunately not possible what we can do is defining a different theme for each company. This is just a proof of concept. I still haven’t managed to successfully change the theme when the DataArea is changed using the company list. The… Continue Reading...

Read More
Using Azure Application Insights with MSDyn365FO
Apr05

Using Azure Application Insights with MSDyn365FO

First of all… DISCLAIMER: think twice before using this on a productive environment. Then think again. And if you finally decide to use it, do it in the most cautious and light way. Why does this deserve a disclaimer? Well, even though the docs state that the system performance should not be impacted, I don’t really know its true impact. Plus it’s on an ERP. On one in which we don’t have… Continue Reading...

Read More
Generate number sequence values from REST services and OData
Mar29

Generate number sequence values from REST services and OData

One of the options to integrate MSDyn365FO with external systems is using the data entities with REST services and OData. To use OData the entity must have its IsPublic property set to Yes: Otherwise, if it´s an standard entity, we´ll need to duplicate it because it´s not possible to change the property value in an extension. If we´re doing an integration with an external system using… Continue Reading Adrià’s Article on...

Read More
Dynamics 365 for Finance & Operations and Azure DevOps (part II)
Feb23

Dynamics 365 for Finance & Operations and Azure DevOps (part II)

In the first part of this post I wrote about Azure DevOps value and how to set it up in MSDyn365FO. I want to start this second part with a little rant. As I said in the first part, those who have been working with AX for several years were used to not using version-control systems. MSDyn365FO has taken us to uncharted territory, so it is not uncommon for different teams to work in different… Continue Reading Adrià’s...

Read More
Dynamics 365 for Finance & Operations and Azure DevOps (part I)
Feb17

Dynamics 365 for Finance & Operations and Azure DevOps (part I)

One of the major changes we got with Dynamics 365 has been the mandatory use of a source control system. In older versions we had MorphX VCS for AX 2009 and the option to use TFS in AX 2009 and AX 2012 (and there’s training available about this on El rincón Dynamics, in Spanish), but it wasn’t mandatory. Actually, always from my experience, I think most of projects used no source control… Continue Reading...

Read More
Unresponsive builds in Azure DevOps
Feb15

Unresponsive builds in Azure DevOps

It is possible that after queuing a new build, the job won’t start. It won’t be possible to cancel it either, and nothing will change after rebooting the build server VM. This can be an unusual case but it’s not something impossible. The build server Even though the build machine is exactly as a developer box it really isn’t. It has Visual Studio installed in it, the AosService folder… Continue Reading Adrià’s Article on...

Read More
The mystery of the non-filtering query
Feb14

The mystery of the non-filtering query

There’s no mystery here but a misperception. Recently, a colleague found a little issue when using an AOT query to feed a view with a range dynamically filtered using a SysQueryRangeUtil method. Recreating the issue The query is pretty simple, only showing ledger transaction data from the GeneralJournalEntry and GeneralJournalAccountEntry tables. A range in the Ledger field from the… Continue Reading Adrià’s Article on...

Read More
Setting up Release Pipeline in Azure DevOps for Dynamics 365 for Finance and Operations
Feb13

Setting up Release Pipeline in Azure DevOps for Dynamics 365 for Finance and Operations

Let’s go… Some weeks ago, the release pipeline extension for #MSDyn365FO was published in Azure DevOps Marketplace, taking us closer to the continuous integration scenario. While we wait for the official documentation we can check the notes on the announcement, and I’ve written a step by step guide to set it up on our projects. To configure the release pipeline, we need: AAD app… Continue Reading Adrià’s...

Read More