Dynamic Communities Magazine

Dynamic Communities creates technology-centric communities to exchange ideas on how to best maximize industry knowledge through user-produced education, enriched networking, and conference attendance.

Eliminating Technical Debt Before Upgrading

04-14-2020 17:46 Corey Vantilborg Dynamics 365 CE | CRM

In looking ahead to an eventual upgrade from Microsoft Dynamics AX to Microsoft Dynamics 365 for Finance & Operations, discover how to simplify the upgrade process by identifying and clearing up technical debt. 

Originally published in H1 2019 AXUG Magazine

When I first brought up the idea of upgrading to Microsoft Dynamics 365 for Finance & Operations to our CFO, her response was a quick “absolutely not.” It was a reasonable response: We have been implementing Microsoft Dynamics AX 2012 R2 for the last few years and are just now getting to something resembling stability and normalcy. The thought of another big change is not very appealing. However, like most choices, there are subtleties and grey areas that may not be immediately obvious. Stagnating and hoping that a better solution will appear in the future is not a very good plan. We end up in limbo; we know that we will need to upgrade eventually, but implementing another large change so soon is just not practical. The path forward for us is to prepare for an upgrade we know is coming even if we do not know when.

To do that, an understanding of how a Microsoft Dynamics AX 2012 to a Microsoft Dynamics 365 for Finance & Operations upgrade looks is important. For us, it comes down to three major areas where there is technical debt that needs to be cleared to prepare for an eventual upgrade. Our pre-planning focuses on three main areas, each of which has specific tasks that we can complete long before the upgrade:

  • Code Upgrade Review and Prep: The less code we need to upgrade, the simpler the update will be to execute.
  • Data Clean-Up: Reducing the size of our OLTP database will reduce the effort to upgrade and reduce the running costs of a hosted Microsoft Dynamics 365 for Finance & Operations.
  • Licensing: Carefully controlling and documenting licensing will reduce the eventual costs of Microsoft Dynamics 365 for Finance & Operations.

Code Upgrade Review and Prep
If you are like us, then you probably have a fair amount of custom code written for Microsoft Dynamics AX. The code was most likely written over a long period of time and against possibly outdated gaps and processes. Many of our modifications to Microsoft Dynamics AX were based on a fit/gap analysis done many years ago before we as a company had a good handle on the solution. Due to the changes in how modifications need to be done in Microsoft Dynamics 365 for Finance & Operations, upgrading code will require a significant refactoring effort. Being forced to refactor custom code may seem like a negative, but it is not. It is an excellent opportunity to clear some technical debt. The simple question, “Do I need this?”, is the core of this step for us.

Answering that question, though, is more complicated. To do so, you need a native instance of Microsoft Dynamics 365 for Finance & Operations to test new functionality. In our case, we haven’t looked at truly native Microsoft Dynamics AX functionality in more than six years, and we see this as a chance to re-evaluate native Microsoft Dynamics 365 for Finance & Operations.

We also learned during our initial implementation that demo data is not very useful for analyzing our processes; we need our data. As a result, we don’t just need a native instance of Microsoft Dynamics 365 for Finance & Operations, we need a native instance of it with our data in it. Getting to this end, however, requires several steps first. The process we are using is to:

  • Create a new development environment which is an exact copy of our production environment.
  • Uninstall CUS and USR layer models from this environment to achieve a native Microsoft Dynamics AX 2012 environment.
  • Deploy a single box developer Microsoft Dynamics 365 for Finance & Operations environment.
  • Perform the required code upgrades in the Microsoft Dynamics 365 for Finance & Operations environment, which will be minimal due to step 2.
  • Perform the data upgrade in the Microsoft Dynamics 365 for Finance & Operations environment.
  • Start new gap analysis based on native Microsoft Dynamics 365 for Finance & Operations code.

There is a developer-related topic which is not covered here: designing modifications to Microsoft Dynamics AX 2012 to be easily refactored for Microsoft Dynamics 365 for Finance & Operations. See www.axug.com for a variety of sessions on this topic.

Data Clean-Up
We have been live since December 2014. During this time, we have done minimal data clean-up. Once again, our upgrade pre-planning provides an excellent opportunity to complete some data clean-up. There are several routes to take on this. Out-of-the-box Microsoft Dynamics AX includes some data clean-up batch jobs which could be used. After careful analysis, we determined that most of these out-of-the-box classes did not meet our requirements. The most common reason was the native clean-up jobs are too aggressive and remove too much data. Also, they did not target the largest tables. The other Microsoft option is the Intelligent Data Management Framework (IDMF). The tool (available via LCS) is a full development data management suite that cannot only clean up data, but also aggregate and archive it as well.

However, after looking into this tool, we decided it was too complicated to implement for a short-term solution. Instead, we are developing a custom batch class that will be able to delete records from any table to reduce its size. This requires careful analysis of each table, looking for impacts of removing records from that table. See www.axug.com for the code we used to do this.

Licensing
It is easy to overlook licensing when planning for the rest of your Microsoft Dynamics 365 for Finance & Operations upgrade. Controlling your licensing will have a direct impact on the operational cost of Microsoft Dynamics 365 for Finance & Operations. In Microsoft Dynamics AX 2012, there are four levels of licensing; in Microsoft Dynamics 365 for Finance & Operations there are three
levels of licensing. However, the top three levels are roughly analogous. If you haven’t done so before, I recommend taking a read-through of the Microsoft Dynamics 365 for Finance & Operations Licensing Guide as it does have some new considerations versus Microsoft Dynamics AX 2012.

Our major pre-planning effort is to develop custom Security Roles which target the requirements of various positions at our company. License level in Microsoft Dynamics AX and Microsoft Dynamics 365 for Finance & Operations is determined by menu item access. The assumption we are making is that those levels and menus are roughly equal in Microsoft Dynamics AX 2012 and Microsoft Dynamics 365 for Finance & Operations. Looking through the licensing guides, this appears correct. We make extensive use of the Security Development Tool, which can be downloaded from LCS. Once installed, the tool is useful for many security tasks.

Figure 1-1

  • Select Security Role
  • Select “Load additional metadata” button
  • Filter out no access items, and sort by Effective User license type

This process will allow you to see what menu items are driving your licensing requirements. Note that the highest license level in a role determines the license type needed.

Final Thoughts
Looking ahead to an inevitable upgrade is daunting. Planning far ahead for that upgrade will ease the upgrade process and is a productive task. The tasks above not only prepare us for an upgrade, but they also clear technical debt from our current environment. While each company must make its own decision about when and if to upgrade, everyone benefits from planning for the future. Moving forward all decisions regarding our current environment will be undertaken with an eye toward how they impact our ability to upgrade.

 

Corey Vantilborg

Written by Corey Vantilborg

Terms of Use: Dynamic Communities does not take responsibility for any incorrect or outdated information and looks to the author as the expert to provide accurate content.

Subscribe to Email Updates

Recent Posts