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.

Personalization

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 https://msdn.microsoft.com/en-us/library/gg845237.aspx). 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

0 Comments

Submit a Comment

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

Upcoming Events

september

02sep10:00 am10:30 amThe Modern Manufacturer - Cycle Count Management

02sep12:00 pm12:30 pmBest Practices for Work Order Planning and Routing for Field Service Companies

09sep10:00 am11:00 amWhat is Levridge? An Overview of the Ultimate Ag Solution

09sep12:00 pm12:30 pmOverview of Microsoft Promotion for NAV and GP Clients

10sep11:00 am12:00 pmConfab with Stoneridge - Livestream - Field Service Comparisons

16sep10:00 am10:30 amThe Modern Manufacturer - Product Lifecycle Management

16sep12:00 pm12:30 pmHow to Upgrade to Dynamics 365 Finance and Operations: Examining Custom Code and ISV Implications

16sep2:00 pm2:30 pmScheduling and Dispatching for the Modern Field Service Company

23sep12:00 pm1:00 pmDynamics 365 Business Central Wave 2 Release Preview - An Overview of the Most Exciting New Features Coming in October

24sep11:00 am12:00 pmConfab with Stoneridge - Livestream - The Modern Workplace: Teams, Sharepoint, Outlook, Office, and AI Integration

30sep10:00 am10:30 amThe Modern Manufacturer - Return Management

30sep12:00 pm12:30 pmEmpowering Your Field Service Technicians with a Mobile Solution

october

07oct12:00 pm1:00 pmThe Three Paths to Business Central from Dynamics GP

08oct11:00 am12:00 pmConfab with Stoneridge - Livestream - The Vision and Strategy of Microsoft Business Systems

14oct10:00 am10:30 amThe Modern Manufacturer - Complex Cost Modeling

14oct12:00 pm12:30 pmGenerating Custom Inspection or Process Forms

19octAll Day22Stoneridge Connect Fall 2020

22oct11:00 am12:00 pmConfab with Stoneridge - Livestream - Stoneridge Connect Recap

28oct10:00 am10:30 amThe Modern Manufacturer - Engineering Change Orders

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!

X