Что обрабатывает динамику:// URL?

Я пытаюсь создать свою собственную функцию детализации, где 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;

Я проверил, и все они уволены с этих URL:

  • динамика://0/ DrillDown_382576
  • динамика://0/ ViewAlert_382576
  • динамика://0/ ViewAlertRule_382576

Однако, если я добавлю свой собственный случай, оставив весь остальной код таким же, я не смогу запустить URL:

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

Я выкопал всю систему и не могу понять, что вызывает dynamics:// URL только для тех трех случаев. Есть запись в реестре или что-то? я обнаружил C\EventDrillDownPoller который, кажется, создает PipeServer для обработки входящего?

2 ответа

Решение

Конечно, я каждый раз вычисляю свой собственный ответ каждый раз, когда набираю вопрос о переполнении стека, но я думаю, что эта информация действительно полезна.

Этот вопрос стека заставил меня выяснить, что C:\Program Files (x86)\Microsoft Dynamics AX\50\Client\Bin\AxHLink.exe %1 обрабатывает Dynamics:// URL.

Что привело меня на форумы сообщества Microsoft, где кто-то другой столкнулся с такой же проблемой, как и я.

Таким образом, решение было бы либо:

  • Создайте пользовательский обработчик URI с C# или другим языком для связи с AX ( аналогично этому)
  • Hi-jack один из 3 обработал существующие случаи с некоторым пользовательским кодом X++, чтобы попытаться раскошелиться. Возможно, изменив цель детализации в URL и обработав его таким образом, или добавив в строку некоторые специальные символы.
  • Вызов "c:\Program Files (x86)\Microsoft Dynamics AX\50\Client\Bin\Ax32.exe" -startupcmd=myfunction_myParams и сделайте это кликабельной ссылкой.

Вы ответили на свой вопрос, но довольно легко (если вы знаете, как) подключить стандартный код DrillDown, чтобы настроить AX для запуска определенной формы, например:

Начинает AX с позиции 03310511 в компании XXX

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>

Вы найдете мои настройки в моей папке.

Другие вопросы по тегам