什么处理动态:// URL?

Ale*_*tny 5 startup x++ axapta dynamics-ax-2009

我正在尝试创建自己的自定义深入分析功能,其中URL dynamics://0?myfunction_123456将启动我自己的代码.

C\SysStartupCmd\construct,这个基本代码:

    case 'viewalert':
        sysStartupCmd = new SysStartUpCmdViewAlert(s,parm);
        break;
    case 'drilldown':
        sysStartupCmd = new SysStartUpCmdDrillDown(s,parm);
        break;
    case 'viewalertrule':
        sysStartupCmd = new SysStartUpCmdViewAlertRule(s,parm);
        break;
Run Code Online (Sandbox Code Playgroud)

我已经测试了,所有这些都被这些网址解雇了:

  • 动态:// 0/DrillDown_382576
  • 动态:// 0/ViewAlert_382576
  • 动态:// 0/ViewAlertRule_382576

但是,如果我添加自己的案例,让所有其他代码保持不变,我就无法获取要触发的URL:

    case 'myFunction':
        sysStartupCmd = new SysStartUpCmdDrillDown(s,parm);
        break;
Run Code Online (Sandbox Code Playgroud)

我在整个系统中进行了挖掘,并且无法弄清楚是什么导致dynamics://URL只针对这三种情况触发.有注册表项还是什么?我发现C\EventDrillDownPoller哪个似乎创建了一个PipeServer来处理传入的内容?

Ale*_*tny 6

当然,每次输入stackoverflow问题时,我都会找出自己的答案,但我认为这些信息非常有用.

这个堆栈问题让我发现 C:\Program Files (x86)\Microsoft Dynamics AX\50\Client\Bin\AxHLink.exe %1处理Dynamics:// URL.

这导致我进入微软的社区论坛,其他人面临着与我类似的问题.

所以解决方案是:

  • 使用C#或其他语言创建自定义URI处理程序以与AX通信(与此类似)
  • Hi-jack其中一个处理过的现有案例中有一些自定义X ++代码试图分离它.也许通过更改URL中的钻取目标并处理该方式,或者在字符串中附加一些特殊字符.
  • 呼叫"c:\Program Files (x86)\Microsoft Dynamics AX\50\Client\Bin\Ax32.exe" -startupcmd=myfunction_myParams并使其成为可点击的链接.


Jan*_*sen 6

您已经回答了自己的问题,但很容易(如果您知道如何)挂钩标准的DrillDown代码来自定义AX以启动特定的表单,如:

在公司XXX中的项目03310511上启动AX

start dynamics://TEST/?DrillDown_0?table=InventTable&field=itemId&value=03310511&company=XXX
Run Code Online (Sandbox Code Playgroud)

它将假定合理的默认值.

start dynamics://TEST/?DrillDown_0?table=CustTable&value=113545
Run Code Online (Sandbox Code Playgroud)

假设接收者有一个AX客户端,可以从HTML电子邮件中调用AX!

<a href="dynamics://TEST/?DrillDown_0?table=CustTable&value=113545">113545</a>
Run Code Online (Sandbox Code Playgroud)

你在我的pastebin中找到我的自定义.