Presentation is loading. Please wait.

Presentation is loading. Please wait.

AX DEVELOPMENT FOR NON- DEVELOPERS Why did my 15 minute change take 3 weeks.

Similar presentations


Presentation on theme: "AX DEVELOPMENT FOR NON- DEVELOPERS Why did my 15 minute change take 3 weeks."— Presentation transcript:

1 AX DEVELOPMENT FOR NON- DEVELOPERS Why did my 15 minute change take 3 weeks

2 2 #AXUGFocus ERP Analyst at Tigercat Industries for 4 years; various IT / Engineering roles before that Tigercat designs and manufactures heavy forest harvesting equipment Twitter: @CoreyVantilborg COREY VANTILBORG

3 3 #AXUGFocus 3

4 4 BASIC TECHNOLOGY AND TERMINOLOGY OVERVIEW How AX works in 10 minutes

5 5 #AXUGFocus X++Primary Coding Language for Dynamics AX SSASSQL Server Analysis Services - Technology used to create OLAP cube for data analytics EnvironmentSeparate installs of Dynamics AX that may be used for different purposes examples include Production / Testing / Development SSRSSQL Server Reporting Services - The technology used by AX to render or create reports GENERAL TERMS

6 6 #AXUGFocus Dynamics AX is both a platform and an application. This means that is provides both end-user functionality like tracking sales orders, and developer tools like MorphX and X++. It is designed to be extensible, and is capable of much more then the functionality that Microsoft ships natively. WHAT IS AX

7 7 #AXUGFocus 7

8 8 Contains all modifiable elements of Dynamics AX Broken down into various object types AX Development Starts here APPLICATION OBJECT TREE

9 9 #AXUGFocus Objects represent individual pieces of code which make up the AX application. Can represent many different types of code Are arranged into a visual tree, known as the Application Object Tree or AOT All functions of AX are stored within the AOT Examples: SalesLine table ReqTransPOMarkApprove class which approves Planned Orders CustInvoice report which is the Customer Invoice OBJECTS

10 10 #AXUGFocus The AOT broken down in objects, and those objects are able to exist in one or more layers. Layers are used to separate code of different origins These layers are important to making AX an easily extensible system. LAYERS

11 11 #AXUGFocus LAYERS AGAIN

12 12 #AXUGFocus Performance Upgradability Usability IMPACT OF MODIFICATIONS

13 13 #AXUGFocus All mods have the potential to impact performance Many will have a negative impact on performance which must be mitigated PERFORMANCE IMPACT

14 14 #AXUGFocus Considering a mods effect on upgrades is critical. Generally speaking most changes can be implemented in a way which is upgrade friendly UPGRADABILITY

15 15 #AXUGFocus Effect on Microsoft help / documentation Mods typically = unique processes Makes finding help from other sources more difficult Employees trained in AX from else will have a steeper learning curve Future Process changes from Microsoft may be difficult to implement USABILITY

16 16 #AXUGFocus CHANGES

17 17 #AXUGFocus YES CAN AX BE MADE TO DO X ??

18 18 #AXUGFocus Cosmetic New functions New processes / modules Changes to existing logic New Reports Changes to existing reports TYPES OF CHANGES

19 19 #AXUGFocus No functional impact on system Add or Move Fields Similar to a permanent personalization Adding or Modify Fact Boxes Add or Modify Preview Panes COSMETIC

20 20 #AXUGFocus Add operation name to Route Form Add new Disallow Feedback check to Production Order master Add BOM field to Production BOM Form COSMETIC CHANGE EXAMPLES

21 21 #AXUGFocus Performance Impact Depending on exactly how the cosmetic change was implemented it has the potential to have a negative performance impact Deviation from Native By changing the layout of native forms, online help and guidance may become more difficult to follow COSMETIC CHANGE CONSIDERATIONS

22 22 #AXUGFocus 22 Display Method(Lookup) Low Performance Impact Extremely flexible Cannot filter or sort Table Join Possible significant performance impact Can filter and sort ADDING NEW FIELDS

23 23 #AXUGFocus 23 EXAMPLE OF COSTMETIC CHANGES 1.Added Filter Checkbox - Filters on Route Group 2.Added Extra filters to header - Makes it easy to determine which record is selected when looking at additional tabs. 3.Added Name Display Method- Looks up operation name 4.Added Remove Function – Sets Route Group to ‘Removed’ and sets Times to zero

24 24 #AXUGFocus Generally this is automating an existing process’ Will often leverage native code to make the modification easier Many classes within AX are designed to be automated this way Classes with Parm methods are designed to be used programmatically Could be new batch functions NEW FUNCTION

25 25 #AXUGFocus Production BOM Line Remove function Automatically sets qty = 0 and Position to removed string End Production Automation Automatically mark RAF’s productions whose estimate vs actual costing is outside a range Run a standard batch to end all RAF’d Production which are not marked NEW FUNCTION EXAMPLE

26 26 #AXUGFocus Data Integrity Any modification which can change data needs to be carefully analyzed to ensure that data integrity is maintained. The impact on downstream processes needs to be considered as well Code Upgrade Considerations When Microsoft updates AX; generally they do not change the programming interfaces so as long as the native classes were not changed, new functions should upgrade easily NEW FUNCTION CONSIDERATIONS

27 27 #AXUGFocus Changing the way something in AX works This involves modifying native code to work differently The range of changes in this category is huge. CHANGES TO EXISTING LOGIC

28 28 #AXUGFocus Note Copying logic Note automatically copied between various entity types Released Product Master > Sales Order Line Improved Product creation screen Add many fields and logic when creating a new product LOGIC CHANGE EXAMPLES

29 29 #AXUGFocus Potentially the most invasive type of change Careful consideration must be given to upgradability, it is easy to make changes which will be difficult to upgrade Performance is also a concern, the developer needs to understand the AX architecture to ensure that the performance impact is minimal LOGIC CHANGE CONSIDERATIONS

30 30 #AXUGFocus Requirement that document attachments (notes) getting copied from one entity to another as per our processes Item  Sales Line Sales  Planned Order Planned Order  Production Order DOCUMENT COPY EXAMPLE

31 31 #AXUGFocus REPORTING SSRS Based Reports

32 32 #AXUGFocus Standard Reporting technology for AX Best used for Line of Business reports Often there are better approaches for Business Intelligence reports ABOUT SSRS REPORTS

33 33 #AXUGFocus Reports in AX have two major components Data Provider class - code which builds the data source that the report will run, includes most business logic. Is an X++ object Report Definition – This defines the layout and formatting of the report. Is developed in Visual Studio, not MorphX(AX Dev Environment) MODIFYING EXISTING REPORT

34 34 #AXUGFocus MODIFIED DATA PROVIDER EXAMPLE Adding Item Notes to Purchase Lines automatically Code looks up notes on the item and links them to the temporary data source

35 35 #AXUGFocus Data provider and Report definition provide majority of the functionality ADDING A NEW REPORT

36 36 #AXUGFocus This is adding something entirely new to AX. Existing functionality may or may not be leveraged This type of mod could in have components which are themselves the other types of mods. ISV’s often implement changes like this NEW PROCESS / MODULE

37 37 #AXUGFocus Tigercat required a custom cost reporting solution. Material, Overhead, Labour broken down to multiple BOM levels CUSTOM COSTING EXAMPLE

38 38 #AXUGFocus FINAL WORDS

39 39 #AXUGFocus What requirement is this modification meeting? Is there a work around to avoid this modification? How many people will benefit from this modification? QUESTION TO ASK ABOUT MODS.

40 40 #AXUGFocus Documentation Testing ENSURING HIGH QUALITY MODIFICATIONS

41 41 #AXUGFocus All Design Documents need to be clear and concise. Don’t assume the developer will know what you mean Include technical details only if you are sure that is the best implementation DOCUMENTATION

42 42 #AXUGFocus The importance of testing cannot be understated. Unit Tests – Performed on Development box ; small test designed to verify functionality Process Test – Performed on complete pre- production ; complete test that verify both the new functionality and it’s integration into the rest of AX. TESTING


Download ppt "AX DEVELOPMENT FOR NON- DEVELOPERS Why did my 15 minute change take 3 weeks."

Similar presentations


Ads by Google