Synchronize Models between workspaces in MSDyn365FO

For our upgrade project we have decided to create 4 packages/models to start with, which is enough to separate larger areas. Once the models have been created on my VM, I had to make it available for everyone. The goal was to synchronize models between workspaces of other developers.

Package / ModelDescription
JAD CoreCore application framework changes, essentially what is in Platform and Foundation
JAD OperationBusiness application customizations, later on we might create additional models for larger functionality
JAD IntegrationFor exchanging
JAD ReportingFor reporting, data warehousing, CDS and entities

The devil lies in the details and for some reason the model was not showing up after synch. It turns out that the model description sits in an XML file within the Descriptor folder. You need to manually include it in source control, as explained in the documentation as well. Once it is checked in, all you need to do to synchronize models between workspaces is to get latest changes, then click on Dynamics 365 > Model Management > Refresh models.

Synchronize models between workspaces

DAXRunBase / 2018-10-18 / Dynamics 365 for Finance and Operations, MSDyn365FO / 0 Comments

Developer VM performance for MSDyn365FO

When you are used to snappy desktops or locally hosted virtual machines and suddenly you need to move to the cloud, you would expect to see similar capabilities for a reasonable price. Unfortunately that was not my experience when it comes to deploying AX 8.1 in Azure cloud. This post is about setting expectations straight for MSDyn365FO developer VM performance hosted in the cloud vs. locally.

First of all, when you deploy your developer VM on the cloud, you have two options. Standard and Premium, which is a reference to what kind of storage will be allocated to your machine. The default size is D13 (8 cores, 56 GB RAM) for regular rotating hard disks, and you need to use the DS-prefixed computers for the flash storage with memory-optimized compute. You can read up about them on these pages in more detail on the Microsoft Docs site:

Premium disk tiers
Virtual machine sizing

When it comes to premium performance, the Virtual Machine template that Microsoft has built for the LifeCycle Services deployment is using the following structure:

PurposeTierIOPSThroughput
Operating SystemP1050025 MB/sec (50K reads)
Services and DataP202300150 MB/sec (64K reads)
Temporary BuildP1050025 MB/sec (50K reads)

(more…)

DAXRunBase / 2018-10-15 / Dynamics 365 for Finance and Operations, MSDyn365FO / 0 Comments

Microsoft Ignite 2018 day 1 recap

Today Microsoft Ignite 2018 has kicked off with a lot of exciting news.
You may view sessions and on-demand videos on the main site:

Microsoft Ignite 2018

One of the most important content is the fall release documentation referred as 2018 October Release Notes, available on the Docs site

We can use new, more advanced and modern capabilities of the Power platform. Microsoft is also introducing AI to many Dynamics 365 products.

We can access a new library of training courses on a portal called Microsoft Learn. Here we get free learning opportunity for tools like PowerApps, Flow and Common Data Service.

The highlight which I am very excited about now is the soon-to-be-released tool called Regression Test Suite already mentioned in the release documentation. It was one of our requests during a workshop with Microsoft to improve capabilities on automating our manual user interactions. Every Friday after our regular maintenance we go through the same set of tasks for validating stability. This is to ensure that there are no disruptions to our business operation due to deploying code. This tool could be the answer to that by creating chains of small operational tasks, then running the entire test suite containing those test cases and validating the results in an automated fashion.

Microsoft is also improving the technical areas with further updates:

I would highly recommend to take your time and go through the wealthy content and videos shared as part of Microsoft Ignite 2018.

DAXRunBase / 2018-09-24 / Dynamics 365 for Finance and Operations / 0 Comments

SQL data compression for Dynamics AX 2012 (Part 2)

It has been a while since I have touched up on SQL data compression in part 1 on my blog. It is time to re-visit the topic.

SQL data compression for Dynamics AX 2012 (Part 1)

Since that post Microsoft has published an excellent series of articles on how to apply compression within AX, or directly on SQL Server. It is a must-read blog post for everyone, so start there:

https://blogs.msdn.microsoft.com/axinthefield/sql-server-data-compression-for-dynamics-ax-0-blog-series/

Since JJ Food Service has a very large database, we have started applying compression to Production AX. Our SalesLine and CustInvoiceTrans has been between 250-350 GB size each! Our approach was to apply compression before a maintenance window using the Enterprise Edition license of SQL Server in ONLINE mode and using TempDB sorting, so it was running during business hours only adding a slight overhead to the system (mostly as disk I/O). It took 4 and 6 hours respectively, and space saving was more than 75% which is excellent.

Once the compression has finished and we were about to begin our regular Friday night maintenance, once the AX AOS, reporting and web services were all down, we could run the post-compression SQL script provided by Microsoft to populate the SQLStorage table. This is required for the Data dictionary synchronization step to recognize compressed indexes, so it would not drop and recreate them uncompressed.

Eventually we will consider compressing our whole database for Page level. The reason being is that Dynamics 365 for Finance and Operations, Enterprise edition in the background uses full page compression for the whole AX database. If you would like to use the upgrade scripts from 2012, even the documentation mentions that compression is a pre-requisite step:

https://docs.microsoft.com/en-us/dynamics365/unified-operations/dev-itpro/migration-upgrade/prepare-data-upgrade

As a result we have seen great performance boost for the tables involved and much lower numbers in the slow performing SQL statements, since more data could be kept in the SQL memory buffer.

DAXRunBase / 2018-02-27 / AX 2012, Dynamics 365 for Finance and Operations / 0 Comments