动态:/ URL怎么处理?

问题描述 投票:5回答:2

我想创建我自己的自定义drilldown功能,其中一个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;

我测试过了,这些都是用这些URLs发射的。

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

但是,如果我添加自己的case,其他代码都不变,就无法让URL火起来。

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

我挖遍了整个系统,也没能找出是什么原因导致了... dynamics:// URL要只针对这三种情况发射。 是不是有注册表条目什么的? 我发现 C\EventDrillDownPoller 这似乎是为了创建一个PipeServer来或许处理传入的东西?

startup axapta x++ dynamics-ax-2009
2个回答
6
投票

当然,每次打出一个stackoverflow的问题,我都会自己找出答案,但我觉得这些信息真的很有用。

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

这让我想到了 微软的社区论坛 其中有人和我面临类似的问题。

因此,解决方案将是要么。

  • 用C#或其他语言创建一个自定义的URI处理程序来与AX进行通信(与此类似)
  • 用一些自定义的X++代码来劫持现有的3个处理案例中的一个,并尝试从它身上分叉。 也许通过改变URL中的drilldown目标并以这种方式处理,或者在字符串中添加一些特殊字符。
  • 调用 "c:\Program Files (x86)\Microsoft Dynamics AX\50\Client\Bin\Ax32.exe" -startupcmd=myfunction_myParams 并使之成为一个可点击的链接。

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>

你可以在 我的粘贴栏.

© www.soinside.com 2019 - 2024. All rights reserved.