Pregunta

I'm trying to create my own custom drilldown functionality, where a URL dynamics://0?myfunction_123456 will launch my own code.

In C\SysStartupCmd\construct, this base code:

    case 'viewalert':
        sysStartupCmd = new SysStartUpCmdViewAlert(s,parm);
        break;
    case 'drilldown':
        sysStartupCmd = new SysStartUpCmdDrillDown(s,parm);
        break;
    case 'viewalertrule':
        sysStartupCmd = new SysStartUpCmdViewAlertRule(s,parm);
        break;

I've tested and these all get fired with these URLs:

  • dynamics://0/?DrillDown_382576
  • dynamics://0/?ViewAlert_382576
  • dynamics://0/?ViewAlertRule_382576

However, if I add my own case, leaving all other code the same, I can't get the URL to fire:

    case 'myFunction':
        sysStartupCmd = new SysStartUpCmdDrillDown(s,parm);
        break;

I've dug all over the system and can't figure out what causes the dynamics:// URL to only fire for those three cases. Is there a registry entry or something? I've found C\EventDrillDownPoller which appears to create a PipeServer to maybe handle what's incoming?

¿Fue útil?

Solución

Of course, I figure out my own answer every time I type up a stackoverflow question, but I think the information is really useful.

This stack question led me to find out that C:\Program Files (x86)\Microsoft Dynamics AX\50\Client\Bin\AxHLink.exe %1 handles Dynamics:// URLs.

Which led me to Microsoft's community forums where somebody else was facing a similar problem as me.

So the solution would be to either:

  • Create custom a URI handler with C# or some other language to communicate to AX (Similar to this)
  • Hi-jack one of the 3 handled existing cases with some custom X++ code to try and fork off of it. Perhaps by changing the drilldown target in the URL and handling that way, or appending some special characters to the string.
  • Call "c:\Program Files (x86)\Microsoft Dynamics AX\50\Client\Bin\Ax32.exe" -startupcmd=myfunction_myParams and make that a clickable link.

Otros consejos

You have answered your own question, but it is quite easy (if you know how) to hook on the standard DrillDown code to customize AX to start a specific form like:

Starts AX on item 03310511 in company XXX

start dynamics://TEST/?DrillDown_0?table=InventTable&field=itemId&value=03310511&company=XXX

It will assume reasonable defaults.

start dynamics://TEST/?DrillDown_0?table=CustTable&value=113545

And AX can be called from a HTML e-mail, assuming the receiver has an AX client!

<a href="dynamics://TEST/?DrillDown_0?table=CustTable&value=113545">113545</a>

You find my customization in my pastebin.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top