Microsoft Dynamics Ax developer's blog

Friday, November 07, 2008

AxPath plugin for Tabax which works with Ax3, Ax4, Ax2009

Now you can download AxPath.dll (with sources) which works with Ax 3, Ax 4, Ax 2009. Previously it worked only if Ax3 was installed.

Ivan fixed it to work with Ax2009, now I have extended it to probe registry keys for Ax2009, Ax4, Ax3 (in that particular order) and work with the version found first.

If you do not know what AxPath and Tabax are - look at,

AxPath plugin originated by AndyD from

Thursday, September 25, 2008

First experiments with XRefs and MSAGL

Tryng to get more visual represenation of cross references using MSAGL (Microsoft Automatic Graph Layout)

This is only calls inside Tax class. Methods which are called from external places are merked with ">". Methods ahich are called from descendats - with "*"

view complete xps

Simple job generates .dot file from xrefs which can be read my MSAGL.

There is also well known graph layout package - graphviz. (.dot it it's native format)

Friday, July 11, 2008

Sidax & Tabax for Ax2009

Here are first betas for the utilities that works under Ax2009. Tabax now can works with forms outside main Ax window.


Tuesday, July 01, 2008

How to hide Content Pane in Ax 2009

Here is a small job, which hides content pane in Dynamics Ax 2009. Content pane can be useful for end users, but when you develop something in can be irritating to see it oon top of all windows every time you click on menu item. So here is a small solution. I plan to add this feature to the future Tabax for Ax 2009

void TEST_HideContentFrame(Args _args)
HWND contentPane = WinApi::findWindowEx(
WinAPI::findWindowEx(infolog.hWnd(), 0, 'MDIClient', ''),
if (contentPane)
WinApi::ShowWindow(contentPane, #SW_HIDE);

Wednesday, June 18, 2008


Here is announce:

Within the next few weeks you will begin to see the Microsoft Dynamics Community pages located at, moving to a new location at We are making this move in an effort to streamline the accessibility of all Microsoft Dynamics communities and make the user experience of interacting with community experts and your peers much easier. The newsgroups as you see them today will still be intact, but the web pages which you use today to access them will be different. Plus you'll see more streamlined content and future functionality additions, such as networking tools!


To get a jump start on the transition, I would encourage you to register on the new site TODAY – once you do, you can begin to interact with our non-technical role based communities which reside there today for Finanse, Sales & Marketing, and Customer Service professionals.



Liz Hallen

Online Community Product Manager

Sunday, April 27, 2008

Book review: “Quality Assurance for Dynamics AX-Based ERP Solutions”

As some other bloggers, I have received the book for review. Here are my impressions…

This book is written about several aspects of quality assurance in Dynamics Ax implementation projects. I think the main focus is on customizations development because most topics related to it.

Quality in the following areas is covered by the book:

  • Code
  • User interface
  • Security
  • Performance
  • Organizational

Detail level differs from topic to topic: for example code topics contain introductory material and detailed BP rules, user interface topic consists of very concrete checklists and security aspects are showed almost only as general word about trustworthy computing. The book is not very thick (~150 pages), but contains information only in textual form (text, tables, lists), so information density is higher than in most modern books filled with screenshots and code samples.

My overall impression - good enough as introductory book. It can be useful if you are:

  • Novice developer and want to have overview about what quality in dynamics ax means
  • Some kind of manager who want to build a development process with focus on quality (you can borrow some rules and checklists)
  • Some other non-developer who wants to have overall outline about quality in Ax

I think, there are some topics, which should be covered by the future books of such direction, but haven't been covered by this book:

  • Administration issuer
  • Functional setup issues

Other topics (such as end-user training) which are parts of real implementation projects but haven't been represented in the book

Thursday, March 27, 2008

Sidax 0.4 b 6 will show you what groups can access selected main menu items

download (85K)

What's new:

  • multiple selection of main menu items

  • new item named "Show access" in the main menu item's context menu. If you choose this item all groups which have access to that item will be output to infolog

Monday, March 24, 2008

BeauSQL -- SQL beautifier

Download: binaries, sources

The purpose is to make SQL traces code more structured and core readable.

This tool consists of two parts:

  • DLL, which is written in Haskell - a very interesting functional programming language, and it do actual work of parsing and pretty printing

  • Small class in Ax which is a thin wrapper for the DLL and button to place in SQL trace form.

This is the first version, it is very experimantal and tested under Ax 3 only.

PS. Some code was stealed from cs4 tool for BAAN

Tuesday, March 18, 2008

How to manage rights by code

Some times ago I nedd to copy 8 security groups and remove access to some menu items in these new copies. I wrote a job for that purpose and now I've placed it to axaptapedia here.

Tuesday, January 29, 2008

Brainbench results

Brainbench is a site dedicated for online testing. There are some free tests which I have done some time ago. My transcript id is 6941773

Wednesday, January 23, 2008

Tweaking google desktop gadgets

Google Desktop has a calendar gadget. But it use american style: week begins with sunday and there are only english letters in title. Here in Russia week starts with monday. So I was interested to localize that gadget. And it was easy. SDK contains designer and good examples, and gadgets are only combination of XML and javascript, so they can be hacked by anyone who knows that technologies. If you are interested in localizing that gadget to your language, or have any ideas of integrating google desktop gadget technology with Ax - just reply to this post.

download this gadget

Thursday, January 17, 2008

Trace Parser small bug

Trace Parser is a new tool for profiling Dynamics Ax code. Unlike profiler, which makes execution of the code about 30 times slower, TraceParser takes extremely low resources - 4% according to Alexey Eremenko blog)

But since it is in the "beta" stage, there are some problems with usability and stability.

For example, when I run the "trace summary" menu item on my trace I've got an exception. It seems (thanks to reflector) the cause is in SqlTimeBreakDown function in SQL server Trace Parser database.

When I add condition to exclude division by zero, it results in empty
grid instead of exception.

This is the fix:

if @SQLTime>0  -- <<<<<<<<<<<<<<<< the fix
INSERT INTO @BreakdownInformation
SELECT (sum(PrepDuration) * 100)/@SQLTime [% of time in SQL Prep],(
sum(BindDuration) * 100)/@SQLTime [% of time in SQL Bind],
(sum(RowFetchDuration) * 100)/@SQLTime [% of time in SQL Row Fetch],
(sum(ExecuteDuration) * 100)/@SQLTime [% of time in SQL Execution]
from SqlQueryInstance
WHERE traceId = @Traceid AND sessionid = @sessionid
end -- <<<<<<<<<<<<<<<< the fix

Wednesday, January 16, 2008

Syntax highlighting of X++ code in your blog or site

1. Download highlight.js archive
2. Unpack archive and place it on your site
3. –źdd the following lines at start your html

<script type="text/javascript" src="highlight.js"></script>
<script type="text/javascript">

(or, add html/javascript block with that content in the template editor. If you use blogger, you should replace path to the script with full path to site where you uploaded the script like "")

4. Attach the sample.css stylesheet to your page or add it's contents to the "style" tag of your blogger template

5. Post your code snippets like this:

<pre><code class="Axapta">
// your code here

PS. You can also use export.html from the archive and skip all steps except 4 - just paste a generated code to your page