处理动态的方法:// URL



我正在尝试创建自己的自定义钻取功能,其中url dynamics://0?myfunction_123456将启动我自己的代码。

CSysStartupCmdconstruct中,此基本代码:

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

我已经测试过,所有这些都被这些URL发射:

  • Dynamics://0/?drilldown_382576
  • Dynamics://0/?ViewAlert_382576
  • Dynamics://0/?viewalertrule_382576

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

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

我已经在整个系统上挖了,无法弄清楚是什么原因导致dynamics:// URL仅在这三种情况下开火。有注册表条目吗?我找到了CEventDrillDownPoller,它似乎创建了一个管道服务器来处理传入的内容?

当然,我每次键入stackoverflow问题时都会找出自己的答案,但我认为信息确实很有用。

这个堆栈问题使我发现C:Program Files (x86)Microsoft Dynamics AX50ClientBinAxHLink.exe %1处理动态://urls。

这导致我参加了微软社区论坛,其他人面临与我相似的问题。

因此,解决方案将是:

  • 创建具有C#或其他语言的URI Handler,以与AX进行通信(类似于此)
  • hi-jack 3个处理现有案例之一,其中有一些自定义X 代码,以尝试并从中分叉。也许通过更改URL中的钻取目标并以这种方式处理,或者将一些特殊字符附加到字符串中。
  • 呼叫"c:Program Files (x86)Microsoft Dynamics AX50ClientBinAx32.exe" -startupcmd=myfunction_myParams并将该单击链接。

您已经回答了自己的问题,但是很容易(如果您知道如何)挂接标准钻取代码以自定义斧头以启动特定表单,例如:

在公司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电子邮件调用,假设接收器具有斧头客户端!

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

您在我的Pastebin中找到了我的自定义。

最新更新