Download presentation
Presentation is loading. Please wait.
Published byCharles King Modified over 8 years ago
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
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.