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)
我已经测试了,所有这些都被这些网址解雇了:
但是,如果我添加自己的案例,让所有其他代码保持不变,我就无法获取要触发的URL:
case 'myFunction':
sysStartupCmd = new SysStartUpCmdDrillDown(s,parm);
break;
Run Code Online (Sandbox Code Playgroud)
我在整个系统中进行了挖掘,并且无法弄清楚是什么导致dynamics://
URL只针对这三种情况触发.有注册表项还是什么?我发现C\EventDrillDownPoller
哪个似乎创建了一个PipeServer来处理传入的内容?
当然,每次输入stackoverflow问题时,我都会找出自己的答案,但我认为这些信息非常有用.
这个堆栈问题让我发现 C:\Program Files (x86)\Microsoft Dynamics AX\50\Client\Bin\AxHLink.exe %1
处理Dynamics:// URL.
这导致我进入微软的社区论坛,其他人面临着与我类似的问题.
所以解决方案是:
"c:\Program Files (x86)\Microsoft Dynamics AX\50\Client\Bin\Ax32.exe" -startupcmd=myfunction_myParams
并使其成为可点击的链接.您已经回答了自己的问题,但很容易(如果您知道如何)挂钩标准的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中找到我的自定义.