License compare tool

I was always missing a tool which allows us to see what is going to be changed when we are importing a new license into our system. The SysLicenseCode form and SysLicenseCodeReadFile class handles the license importing in Dynamics AX 2009, for which I needed to have a license compare tool.

After checking how does it work I have created a tool called License Impact Manager, which extends the original AX code to be able to read in a new license file and show any changes:


DAXRunBase / 2010-06-16 / AX 2009 / 0 Comments

Non-visible fields in the Table browser

As developers and consultants often require the ability to check the content of hidden fields without writing a select statement / query, or taking a quick look in the database for retrieving information, I was wondering if there is a way to do that.

The SysTableBrowser class is using the FormBuildControl.addDataField(int dataSourceId, fieldId fieldId) method for bound and FormBuildControl.addControl(FormControlType controlType, str controlName) as an unbound control. These methods are on kernel level, and they are forcing to hide any bound controls where the field property Visible is set to No.

We can add the hidden fields as extra columns in the SysTableBrowser class with a highlighted color, but as the display grid is tied to the datasource we are using it is not possible to populate it with the right values per record.


DAXRunBase / 2010-04-19 / AX 2009 / 2 Comments

Deep Best practice checks with layer filtering in compiler

You can (and should) enable best practice checks for the MorphX and X++ developer environment, which is similar to the dotNET FxCop code analysis tool. Though the standard Microsoft Dynamics AX 2009 code does not have any best practice errors, you can still find a lot of warning and info type problems.

Update: Microsoft just released a new version of the BP document, which is available here: Microsoft Dynamics AX 2009 Development Best Practices White Paper

To enable best practice checks, go to the menu under Tools/Options, then press the Compiler button on the right. You have to set Diagnostic Level 4 to enable the compiler to check your code for necessary and possible optimizations.


DAXRunBase / 2010-04-14 / AX 2009 / 0 Comments

Label search with an exact match

If you are trying to look up a label under the menu Tools/Development tools/Label/Label editor, the search string matches your label string with a wildcard.

For search strings like “item” it might display many hits, and takes a lot of time to get the results. But if you enter the label on an object property and you do the lookup there, an exact match search is executed.

If you take a look on \AOTClassesSysLabel::searchStringBuildExactStr(LabelType _searchString) you can find the solution there as a macro.

If you use the same search term, then you will get an exact match:


DAXRunBase / 2010-04-14 / Microsoft Dynamics AX / 3 Comments