Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Startup 什么处理动态URL?_Startup_Axapta_X++_Dynamics Ax 2009 - Fatal编程技术网

Startup 什么处理动态URL?

Startup 什么处理动态URL?,startup,axapta,x++,dynamics-ax-2009,Startup,Axapta,X++,Dynamics Ax 2009,我正在尝试创建自己的自定义深入功能,其中URLdynamics://0?myfunction\u 123456将启动我自己的代码 在C\SysStartupCmd\construct中,此基本代码: case 'viewalert': sysStartupCmd = new SysStartUpCmdViewAlert(s,parm); break; case 'drilldown': sysStartupCmd = new Sys

我正在尝试创建自己的自定义深入功能,其中URL
dynamics://0?myfunction\u 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;
我已经测试过,所有这些都会被以下URL解雇:

  • dynamics://0/?DrillDown_382576
  • dynamics://0/?ViewAlert_382576
  • dynamics://0/?ViewAlertRule_382576
但是,如果我添加我自己的案例,让所有其他代码保持不变,我将无法启动URL:

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

我已经在整个系统中搜索过了,无法找出是什么原因导致
dynamics://
URL仅在这三种情况下触发。有注册表项吗?我发现了
C\EventDrillDownPoller
,它似乎创建了一个PipeServer来处理传入的内容?

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

此堆栈问题
C:\Program Files(x86)\Microsoft Dynamics AX\50\Client\Bin\AxHLink.exe%1
处理Dynamics://URL

这让我想到了另一个人正面临着与我类似的问题

因此,解决方案是:

  • 使用C#或其他语言创建自定义URI处理程序以与AX()通信
  • 嗨,jack,这三个例子中的一个用一些自定义的X++代码来处理现有的案例,试图从中解脱出来。可能通过更改URL中的向下搜索目标并以这种方式进行处理,或者在字符串中添加一些特殊字符
  • 调用
    “c:\Program Files(x86)\Microsoft Dynamics AX\50\Client\Bin\Ax32.exe”-startupcmd=myfunction\u myParams
    ,并使其成为可单击的链接

您已经回答了自己的问题,但是很容易(如果您知道如何)使用标准的向下展开代码来定制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
并且可以从HTML电子邮件调用AX,假设接收者有一个AX客户端

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


您可以在中找到我的定制。

啊,太棒了。非常好的代码,节省了我很多时间!但是,代码中的一个问题是,当您挂接到定制的SysStartupCmd*时,您会去掉
TEST
的实际导航标记,在您的情况下,这可能会导致诸如SalesTable之类的变量更大的问题,或者如果有人使用您的代码执行或其他操作。超级有用!它可能应该测试
test
是否与存储在参数中的值匹配(就像在正常的深入代码路径中一样)。Yup:)。我将
parseDrillDownNavigationMark
中的代码移动到一个新的静态方法
parseDrillDownCustomParam
,然后将
parseDrillDownNavigationMark
中的代码切换回base,然后将分隔符行更改为
int delimiter=strscan(parm',?',strlen parm,-strlen(parm))(注意
-
符号)。然后在C\SysStartUpCmdDrillDown\infoRun中,我刚刚将
if(!EventDrillDownPoller::checkDrillDownNavigationMark(navigationMark))
移回自定义代码上方。很容易修复。我认为存在一个MS错误,它有时会导致drilldowntarget被剥离。同一个URL反复出现,有时会剥离深入目标。我拿不回来了。我猜是一个完整的系统编译和重新启动,或者有什么东西可以修复它。@TinavanderVyver-您是正确的,在AX12中,第二部分必须是整数,但向下搜索的目标不一定是整数。在url
动态中有两件事是动态的://[Drilldown target]/?Drilldown.[Integer]
<代码>[向下搜索目标]
SysAdmin>Setup>SystemParameters,Alerts,Drill-down target
中的配置相匹配。因此,在该设置中,您可能需要将
TEST
放在那里,但您可以自定义
\Classes\EventDrillDownPoller\parseDrillDownNavigationMark
,然后将URL更改为
dynamics://TEST_mytext/?DrillDown_12345
并解析目标,不是整数。当然你解决了自己的问题,这是一种多么棒的调试方式!