Что обрабатывает динамику:// 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>
Вы найдете мои настройки в моей папке.