AX2012:在表单初始化时捕获SysInfoAction

时间:2014-11-11 13:43:36

标签: microsoft-dynamics dynamics-ax-2012

情况: 我正在通过错误消息(信息日志)中的 SysInfoAction (确切地说是 SysInfoAction_FormrunQuery )打开一个表单,如下所示(压缩了一下):

query.addDataSource(tableNum(WDPErrorLogView)).addRange(fieldNum(WDPErrorLogView, ErrorOutboundMessage)).value(SysQuery::value(resultRecId));
error("@WDP1299", '', SysInfoAction_FormrunQuery::newFormnameQuery(formStr(WDPErrorLog), query));

问题: 我在这里调用的表单有多个选项卡,因为它可以使用各种表的查询打开。我想捕获这个调用记录,不仅要对传递的记录进行过滤(这已经由于 SysInfoAction 而发生),而且还使相应的标签页处于活动状态。

我认为 element.args()。record()会包含这个调用记录,但令我惊讶的是它没有。任何想法如何能够掌握这个记录...或者,至少它的表ID?

1 个答案:

答案 0 :(得分:0)

这很容易。只需将对象/调用者的parmMethod添加到\Classes\SysInfoAction_FormrunQuery即可。复制静态方法newFormnameQuery并将其称为newFormnameQueryWithCaller,然后添加一个额外的参数,然后在parm方法中使用与newFormnameQuery相同的样式设置该参数。

然后在\Classes\SysInfoAction_FormrunQuery\run设置args记录的位置,只需添加args.caller(...)并设置调用方对象(如果存在)。