Did you ever find any ‘personal’ comments from a Microsoft developer in AX code? I did. In AX2009 SP1 I found the following code block in the method displayComments() on the form HRMGoal: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 … Continue Reading
Archives
Working with numbersequences – new NumberSequence
When you want to create a new NumberSequence in AX you have to do the following steps: 1. Create a new Extended Data Type (EDT). Often this EDT extends from num. (this step is not mandatory, but it is a best practice) 2. Discide in witch module this new Number Sequence Reference (classes NumberSeqReference_…) should … Continue Reading
Use of DateTime in select statement
Created/ModifiedDateTime is a datetime field and the value will be stored as UTCDateTime. So when you want to find all the records created/modified on a certain date, you have to find all the records between the start of the day and the end of the day. The newDateTime() function is defined in the DateTimeUtil class … Continue Reading
Customizing EditorScripts
Ax had a few interesting scripts for the developer. When you have an idea for a new useful script you can extend the the EditorScripts Class (ClassesEditorScripts) with your new class. Here is a example where you automate some custom comment while developing: 1 2 3 4 5 6 7 void comments_MyComment(Editor e) { e.unmark(); … Continue Reading
Security key disabled, even for the Admin
When you import a new security key trough a XPO, this new key will be disabled even for the admin group. Since you can’t adjust the security setting for the admin group you can’t use the keys functionality. There is a verry simple solution for this problem. Open the method FormsSysUserGroupSecurityMethodsisAdmin and force this method … Continue Reading
Select Table/Field/User/… (PickList)
Sometimes you want your user to select a sertain table/field/… When you want to program this selection all by yourself you have to make a table, override the lookup()-method, … There is also a easy way to do this. You can use the pic**** methodes in the Global class: How do you use these classes … Continue Reading
Type of Anytpe enum
Normaly you try to avoid using AnyType variables, but sometimes you are forced to use them. When you use a AnyType enum and you want to cast it to it’s actual data type, be sure you cast it to the right type to prevent stack-traces. You can get the enumId from a AnyType-enum by using … Continue Reading
Hide/destroy annoying Content Pane in AX2009
Here is a small job, which hides content pane in Dynamics Ax 2009. This content pane can be useful for users, but as a developer it can be very annoying. 1 2 3 4 5 6 7 8 9 10 11 12 static void hideAnnoyingContentPane(Args _args) { HWND contentPane = WinApi::findWindowEx( WinAPI::findWindowEx(infolog.hWnd(), 0, ‘MDIClient’, ”), … Continue Reading
Class RunBaseReport
When you create a class that extends from RunBaseReport and you try to modify the printer preferences it won’t have any effect. This small bug can be fixed very easy. Edit the class RunBaseReportDialog, method main and check lines 14 and 15: 1 2 3 4 5 6 7 8 9 10 11 12 13 … Continue Reading
Fix unbalanced TTS
During development you may see one of these errors: They are pritty anoying because set your Ax session in an unusable state that you can’t close properly. Normally you have to kill the ax32.exe in the Task Manager. Instead, open the AOT and run this job: 1 2 3 4 5 static void resetTTS(Args _args) … Continue Reading