Microsoft Dynamics Ax developer's blog

Showing posts with label axapta extensions. Show all posts
Showing posts with label axapta extensions. Show all posts

Monday, April 09, 2012

Code folding in ax 2012

As mentioned Martin Drab, editor extensions for VS 2010 work also in Ax 2012. Including code outlining example. Below is CustVendSettle.settleNow, lines 111 to 777:

Tuesday, July 12, 2011

XRef–> DGML

image

Just updated my old sample to produce DGML in addition to .DOT, so now you can view cross-references in VS2010 interactively (filter, rearrange so on). For example picture above shows relations of LedgerVoucherObject.check



Download the job from SkyDrive:

Friday, October 29, 2010

How to open a form in a running Ax client from an external application

Some times ago someone asks me if it possible to open form in running Dynamics Ax application with external code. He don’t want to use AxPath for some reason.
I recalled there is a similar thing in Ax (since version 4.0) – when you receive an event alert message you can click an a link and go to the corresponding alert.
The idea was to reuse alert handling code as much as possible. And I achieved that without changing Ax code at all.
How alert links work?
1. When you start Ax32.exe, it runs the EventDrillDownPoller class, that creates a named pipe with name like “Dynamics\Event\0S-1-5-5-0-686394” (you can use pipelist utility from the SysInternals suite to obtain exact name of your named pipe) where
  • Dynamics\Event\ – is a constant prefix
  • 0 – is a value from the “Drill Down target” field in the “Basic\Setup\Alert\Alert parameters” form
  • S-1-5-5-0-686394 – is a user system session ID
and then time is being initialized, handler of the timer polls named pipe and executes SysStartupCmd descendant when message received.
You can look at \Classes\EventDrillDownPoller\scheduledPoll code to see the details.
2. When you click on the link in e-mail, axhlink.exe protocol handler is executed, it parses url and connects the named pipe obtaining it’s name using “Drill down target” from url and current session id. Then it writes a command to the named pipe.
3. When timeout handler (which was subscribed to the times in 1.) detects there is a new message in the pipe, it just runs a SysStartupCmd and then recreates a named pipe (see \Classes\EventDrillDownPoller\scheduledPoll – unfortunately it uses the current company to detect a drill down target, so if you have different values of the field in different companies ad user changes the current company, you can see it recreating a named pipe with a different name – it can cause mistakes)
So the task is pretty simple
  • Create an autorun startup command configuration file
  • Connect to the named pipe using session id and provided drill down target
  • Write a zero terminated Unicode string with a startup command to the pipe
You can download code example here

Contents:
  • C# sources of sending a message  (command line utility that takes startup command and drop target ID)
  • XML file example
  • XPO with modification for autorun startup command code, adding a parameter to navigate to a specific record (that was additional requirement – it takes table and recID attributes)

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 http://axaptapedia.com/AxPath, http://axaptapedia.com/Tabax

AxPath plugin originated by AndyD from http://axforum.info

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.

download

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, October 23, 2007

new version of the DEV_CreateStandardsMethods extendion



The extension now can add suffix to created methods and is fully translated to english. For example parameters from the screenshot will lead to creation of findByGUID and existByGUID methods. See axaptapedia article for download and details.

Wednesday, October 03, 2007

Tabax is one year old

About one year ago the first version of tabax was released to public

Great Thanx to all people who took part in Tabax development: AndyD, Ivan, OIP and others.

And for i18n: Manel, Helmut, Romain Gasnier

BTW, Google Alerts gave me some Brazilian blog in Portugues and the only thing, that I can read there was Tabax :)

Below there are two screenshots:

A sidax predecessor, which was developed sombody from axforum




First internal version of sidax (which is two year old now).






Tuesday, August 07, 2007

Tabax 0.3.2

download
Changes:
  • AxPath: use of primary key of the record instead of recID
  • French localization (thanx to Romain Gasnier)
  • If tabax can not find it's resources on disk it tries to download them from Ax resources (useful for Ax 4 installations)

Thursday, July 12, 2007

TabaxLite

TabaxLite is a stripped down version of Tabax for end users.
It is focused solely on the window management and does not require any external component



Monday, May 14, 2007

Tabax v 0.3

download (87k)

After the long period of beta stage, the new release of Tabax is out.


This release introduces several new features which will be very useful for developers and end-users

First of all, it works under version 4 of Dynamics Ax.

Second, it introduces the Tabax Plugin API which allows developers to increase functionality of Tabax sufficiently.

There is a plugin for Tabax (in the tabax archive) to integrate AxPath with your system: so, if you install this plugin, you can click on AxPath links in browsers and email clients and go to specific location in code or specific record in the database (thank to AndyD for this functionality).

Ivan Kashperuk has developed a great plugin named RecentWindows which I use heavily. If you close some window, it allows to reopen it quickly.

Also, Ivan added a very useful feature to Tabax: if You press the 'Edit current field' toolbar button, while holding Ctrl and Shift down, Tabax will open a table field or data method related to the currently selected form field.

I have added similar fuctionality to the 'cross referebces' buton - now You can press it while working with form, and you will see cross refereces for the fireld related to the active control.

There are also some minor bugfixes and enhancements in this release

Tuesday, May 08, 2007

Tabax 0.3 rc 1:

download (80K)

changes:

  • fixes bugs in AxPath

  • AxPath browser integration plugins is in archive in the extras folder

  • Plugin SDK documented

Wednesday, April 25, 2007

AxPath integration with browser email etc

With great help of AndyD, Tabax now have an integration with browser and other tools. For example you can send a link to the specific purchase order via outlook, and when the link will be clicked, user will see purchase order you linked to.

You can also link to the specific parts of code. For example here tabax checks your access to development environment when you are navigating AOT link.

How to make it work:

  • download the latest beta of Tabax
  • Install Tabax and Plugin SDL
  • download and install AxPath plugin. Run register.bat

Monday, April 23, 2007

SYS_ExpressionQueryBuilder

SYS_ExpressionQueryBuilder is an ExpressionBuilder for queries. Read more @ axaptapedia

InventTrans inventTrans;
QueryRun qr = SYS_ExpressionQueryBuilder::construct()
.dataSource(tableNum(InventTrans))
.count(fieldNum(InventTrans, RecID))
.groupBy(fieldNum(InventTrans, ItemID))
.between(fieldNum(InventTrans, DatePhysical), 01012006, 31122006)
.matches(fieldNum(InventTrans, Qty), '<0')

.exists(tableNum(InventDim))
.link(fieldNum(InventTrans, InventDimID),
fieldNum(InventDim, InventDimID))
.matches(fieldNum(InventDim, InventLocationID), condition)
.run();
;
while(qr.next())
{
inventTrans = qr.get(tableNum(InventTrans));
info(strFmt('%1: %2', inventTrans.ItemId, InventTrans.RecId));
}

Tuesday, April 03, 2007

Infolog stack trace



This extension allows to see stacktrace of infolog items and navigate through call stack. read more @axaptapedia

Monday, March 26, 2007

Tabax 0.3 beta 3

Starting a beta stage of the new Tabax version (download)

What's new since 0.2.x:

  • Works with Ax 4 (icons are in tabax.ax4 they should be copied to "C:\Program Files\Microsoft Dynamics AX\40\Client\Share\Include\tabax")
  • User interface can be localized (it is translated already to Russian and Spanish (the last by Manel Querol (Mkz) from http://www.TrucosAx.com))
  • windows management (enable "fit maчimized" in setup and your window maximization will be emulated with fitting)
  • tab width setup (maximal width, minial width and "Tabs have same size")
  • Plugin SDK (it's only first small step)
  • Ivan Kashperuk added the "Open table field" functionality to the "Edit current field" button
  • Autosize: tabax don't let to change it's size