什么处理动态:// URL?

时间:2014-01-23 17:34:19

标签: startup axapta x++ dynamics-ax-2009

我正在尝试创建自己的自定义深入分析功能,其中网址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;

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

  • 动力学:// 0 / DrillDown_382576
  • 动力学:// 0 / ViewAlert_382576
  • 动力学:// 0 / ViewAlertRule_382576

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

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

我在整个系统中进行了挖掘,无法找出导致dynamics://网址仅导致这三种情况的原因。有注册表项还是什么?我发现C\EventDrillDownPoller似乎创建了一个PipeServer来处理传入的内容?

2 个答案:

答案 0 :(得分:6)

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

此堆栈问题led me to find out that C:\Program Files (x86)\Microsoft Dynamics AX\50\Client\Bin\AxHLink.exe %1处理Dynamics://网址。

导致我Microsoft's community forums其他人面临与我类似的问题。

所以解决方案是:

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

答案 1 :(得分:6)

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

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

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

它将采用合理的默认值。

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

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

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

您可以在my pastebin找到我的自定义。