AX Developer Tips for Newbies: Part 1

by | Updated August 15, 2016 | Development, Dynamics AX

I have compiled a collection of tips that seem to help new AX developers in my training classes, so I thought it would be good to share with the public. The selections in Part I are somewhat random and cover different areas of the Development Workspace.

Read more on X++ coding tips in AX Developer Tips for Newbies: Part 2

Tables in AX

Don’t forget about Field Groups

Any field that will be displayed in the interface should be in a Field Group.

Let’s take the BankAccountTable, Description Field Group for example. Note how the fields in the Field Group correspond to the fields in the Description group on the form.

AOT Data Dicionary

Now, if we add a new descriptive field to the table, we can add it to the Description Field Group and it will automatically appear within the group on the form. No developer intervention required!

AOT Forms

AOT Forms

Note: Conversely, you cannot add a field/control that is not in the field group to this group on the form by dragging and dropping. This is because of the DataGroup property of the form group Group:Description. Removing the value from this property will allow you to add controls manually.

Forms in AX

Finding, Modifying, Fields & Methods

When first starting to learn AX, it may not be obvious how to find what form to modify and what fields and methods are used on a form.

From the application, open the form you need to work with. Right-click anywhere on the form and select Personalize.

Customers Personalize

On the Information tab, you will find the name of the form in the AOT, and clicking on Edit will open the form directly in the AOT.


On the layout tab with any field highlighted, you can see the table.fieldname in the System Name text box.

Personalization Cust Table

Note, if a table.fieldname ends with () as below, the field is actually a display or edit method and not a table field.

Personalizaton Primary Contact

Dragging & Dropping Fields

When dragging and dropping fields from a Data Source to a Design Node, things don’t always end up where you ultimately need them. Trying to then drag the field up or down in the field list is not very precise, and it can be difficult to place fields in the order you need.  A little known shortcut is to use the Alt key in combination with the Up/Down arrows. With the field you want to move highlighted, hold down the Alt key and press the Up arrow or Down arrow as needed to get the field in the correct position.

Cust Table Account Statement

Combo Box Cust Table Account Statement

Reports in AX

Changing Parameters or Dialog:

If you have changed the parameters or dialog selections for a report, it will probably be necessary to reset Usage Data for users who have executed the report previously. If this isn’t done, when the users run the report it may appear as though your changes are not implemented.

Actually, if you make changes to a report or to its classes and it appears that your changes are not being picked up by client or server, any or all of the following steps may be needed, depending on what you changed and how your environment is configured. When all else fails, I do them all!

1. Deploy the report and make sure there are no errors
2. Reset usage data for any user who has executed the report (Tools/Options/Usage Data/Reset button)
3. Stop the AOS
4. Delete .auc files in the user’s appdata\local folder
5. Restart AOS
6. Restart SSRS

*For problems with extra blank pages on reports, please be sure to check out our blogs on the subject of blank page issues.

Classes in AX

What is super()?

The call to super() is used in relation with Inheritance. When one class extends another, it is often called the “child” class and the extended class the “parent” (even though this is not the correct Inheritance terminology…see However, if we keep in mind that parent classes can also be referred to as “Super” classes, this will help us in understanding the super() method call.

For example in AX, the InventMov_Sales class extends InventMovement. Note: The underscore in the class name is often an Inheritance indicator. The “child” or derived class has an override method canBeUpdatedRegistered. Specific logic has been added to determine if a sales order is Intercompany and can therefore not be updated. If not, then a super() call is made to the same method in the “super” or base class. See the screenshot below.

Classes Invent Movement

Be careful when adding code to override methods, as the placement of code before or after the super() call can cause very different behavior.

Troubleshooting in AX

When troubleshooting errors in AX, it can be helpful to place a breakpoint in the Info class, Add method, since all error messages in AX pass through this method.

We often have no idea what class/method is throwing an error, so with this breakpoint we have access to the call stack.

Microsoft Dynamics AX Debugger

Hopefully, there are some helpful tips here for you. Stay tuned for more!


Related Posts


Submit a Comment

Your email address will not be published. Required fields are marked *

Upcoming Events


01sep10:00 am10:30 amEnsuring Quality and Compliance for Batch Manufacturers in Life Sciences

01sep12:00 pm12:30 pmIs it Worth It to Move to the Cloud? A Look at Considerations for Current Agribusinesses Using Dynamics GP

01sep2:00 pm2:45 pmWhat’s New in Dynamics 365 Finance and Supply Chain

09sep11:00 am12:00 pmConfab Live with Stoneridge – Data Strategy and Reporting – Mining Decision Making Insights

15sep10:00 am11:00 amSolving the Biggest Challenges in Agribusiness Through Innovation and Technology

22sep12:00 am12:30 pmSimplifying Payroll and HR Management with ADP Workforce Now

22sep10:00 am10:30 amStreamlining Batch Manufacturing with Technology

22sep2:00 pm2:30 pmProcess Automation for Microsoft Dynamics D365 for Business Central, Finance and Operations and GP

23sep11:00 am12:00 pmConfab LIVE with Stoneridge - Riding the Wave 2 Release – Key Features Coming to Dynamics 365 this October

27sep(sep 27)9:00 am15oct(oct 15)11:00 amDynamics 365 Finance & Supply Chain Development Training - Online Workshop

29sep10:00 am11:00 amTop Five Reasons Why NOW is the Right Time to Move from Salesforce to Dynamics 365 Customer Engagement

29sep12:00 pm12:45 pmUnderstanding Job Costing and Tax Management in Business Central

29sep2:00 pm3:00 pmDigitalizing Horticulture & Agriculture - How to Sell Plants Online and Simplify Business Management

30sep12:00 pm4:00 pmSecurity and Permissions Training for D365 Business Central or Dynamics NAV


27sep(sep 27)9:00 am15oct(oct 15)11:00 amDynamics 365 Finance & Supply Chain Development Training - Online Workshop

06oct10:00 am10:30 amPreview of D365 Business Central Fall Release Features and Functionality

06oct12:00 pm12:30 pmInsider's Guide to New Features Available in the Fall Release of D365 Finance and Supply Chain

07oct11:00 am12:00 pmConfab LIVE with Stoneridge - Dataverse and Dynamics in Review – Let’s Get Technical

21oct11:00 am12:00 pmConfab LIVE with Stoneridge - Dataverse and Dynamics in Review – Let’s Get Functional

26oct(oct 26)9:00 am28(oct 28)5:00 pmStoneridge Connect Leadership and Community Conference

About Stoneridge
Stoneridge Software is a unique Microsoft Gold Partner, with emphasis on partner. With specialties in Microsoft Dynamics 365, Microsoft Dynamics AX, Microsoft Dynamics NAV, Microsoft Dynamics GP and Microsoft Dynamics CRM, we focus on attracting the most knowledgeable experts in the field to our team, and prioritize delivering stellar solutions with maximum impact for your business. At Stoneridge, we are deeply committed to your results. Each engagement is met with a dedicated team, ready to provide thorough, tailored, and expert service. Based in Minnesota, we intentionally “step into your shoes,” wherever you are. We focus on what you care about, and develop trusting, long-term relationships with our clients.

Subscribe To Our Blog

Sign up to get periodic updates on the latest posts.

Thank you for subscribing!