The advanced filter and query in Dynamics AX is a very powerful tool. Here you can search on most fields, and also add relations to the query.
You can open this advanced query screen from almost any AX screen, and the short-cut is “CTRL-F3”.
But there is one area that the advanced query screen is not handling. That is “Not-exists-join”. Let’s say I want a list of all the purchase orders that DON’T have purchase lines. The standard AX will not help you here. Often a developer must come inn and create a smart query or script to find this. With the introduction of attributes and retail categories, I see the need for this “not-Exists-join” feature to be able to create advanced queries.
I don’t accept this, because I want to empower the end-user to perform such queries. So here is my gift to the Dynamics AX ecosystem; NotExistsJoin directly on the advanced query screen:
Then I can look at the filtered purchase list page, and I only see purchase orders that DON’T have any purchase lines J
This will work allover dynamics AX, even on cue’s and on other query based functionality.
So what’s the trick? A few changes to the following two classes:
Let’s take the changes “one-by-one”, or you can download the code here : https://dynamicsax2012r3notexists.codeplex.com/
Then here is the last change to get a icon on not-exists join:
Have fun DAX’ing 😉