Thursday, October 3, 2019

Track Dynamics 365 Implementation Updates More Efficiently with Data Dictionary

Business Case:

Our client, a multinational technology company, partnered with us to deploy Dynamics 365 – a cloud-based business applications platform. The platform combines enterprise resource planning (ERP) and customer relationship management (CRM) components with productivity application and artificial intelligence (AI) features.

Out of the box, Dynamics 365 offers diverse tools, but complex business environments often require custom components, called solutions. However, when solutions are updated, Dynamics 365 does not maintain a solution subversion. Without subversions, team members must manually track the changes to ensure release of the latest solution. Manual tracking increases time to release and allows a margin of error.

Key Challenges:

  Track solution changes in a Dynamics 365 environment across multiple releases 
  Reduce manual tracking effort

Our Solution:

We created a utility called Data Dictionary that accepts two Dynamics 365 solution files as inputs.

Figure 1: Utility comparison flow diagram

Data Dictionary compares two versions of a solution (previous and current version). The utility processes the solution files and generates an output in the form of three Excel files.

Excel Output Files:

1. Excel file (previous version) - Provides schema of the previously deployed solution.

2. Excel file (current version) - Provides schema of the current solution, including the objects from the previous version and those introduced in the current version.

3. Excel file (delta) – Provides highlights to clearly identify what has been added, modified, or removed from the system in the current version.

Business Outcomes:

Data Dictionary saved significant manual effort in identifying and communicating changes in solutions releases. We run Data Dictionary after each major Dynamics 365 deployment and share the output files with key stakeholders.


  Helped the internal team review what has changed in a solution before deploying the solution to production. 
  Communicated changes between releases to downstream systems. Knowing the changes allows downstream users to update their ETL (Extract-Truncate-Load) jobs, ensuring that they report on the latest data points.
  Improved dev team collaboration by allowing them to quickly spot differences between two solutions versions.