Smart customizations Microsoft Dynamics TM AX 4.0 Michael Fruergaard Pontoppidan Partner Productivity – Microsoft Dynamics AX TM Microsoft Corporation SCREENCAST
Agenda Overlayering How to avoid overlayering Unit testing Code upgrade
Overlayering Applications elements vary in size Forms and reports are big Tables, menus, queries are medium Fields, field groups, methods, etc. are small
Overlayering Empty layers An empty layer is transparent Elements from lower layer(s) are used
Overlayering Customizing Customizing existing elements will Copy of the existing element to your layer Hide existing elements
Overlayering Upgrade conflicts During version upgrade conflicts occur when You have customized an element, AND Microsoft has changed the element = cost = waste Upgrading costs 30% of original cost
Overlayering Lessons learned Avoid overlayering when possible Prefer overlayering of small elements Prefer overlayering elements less likely to change Creating new elements is not ’overlayering’
Overlayering
Agenda Overlayering How to avoid overlayering Unit testing Code upgrade
Avoiding overlayering IntelliMorph Use field groups Use extended data types X++ Use class substitution
Extended Data Types Fields Fields groups Locale Authorization Configuration Personalization Preferences Regional settings IntelliMorph The User Interface in AX is build at runtime Forms Reports Web forms Web Reports Menus
> Original New() Dialog() Run() static Main() static Construct Class substitution Goal Make customizations to a class with as little overlayering as possible Idea Ensure all instances of a class are replaced by a class of your choice > Substitute New() Run() static Construct() Steps 1. Create a new class, inheriting from the class to substitute 2. Change the original class’s Construct method > Original New() Dialog() Run() static Main() static Construct(usr)
Avoiding overlayering
Agenda Overlayering How to avoid overlayering Unit testing Code upgrade
Unit test In a nutshell Purpose: Detect regressions Test code exercising feature code Written by the developer Repeatable
Unit test MorphX integrated Fully scalable architecture Recording of code coverage Fully automated Outputs to: XML, DB, TXT, etc. Supports repeatability Supports Test Driven Development
Unit testing
Agenda Overlayering How to avoid overlayering Unit testing Code upgrade
Detecting Upgrade Conflicts Has Microsoft modified the element ? Are our changes identical ? Have you modified the element ? Delete (obsolete)Add to projectIgnore No Yes
Overlayering Upgrade conflicts During version upgrade conflicts occur when You have customized an element, AND Microsoft has changed the element
Upgrading smart customizations
© 2006 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.