我们有 Table 和字符串字段 Field 。您可以像这样覆盖 update()方法:
public void update()
{
//check begin
if (this.orig().Field != this.Field)
{
info('Changed');
}
//check end
super();
}
是否可以创建将进行检查的委托?代表必须与方法参数完全匹配,此处没有任何参数,否则他们可以使用 XppPrePostArgs ,但是我看不到如何获取_common _和 common.orig()的方法。从中。
如何在表方法的委托中获取 common.orig()?有可能吗?
我正在使用Microsoft Dynamics AX 2012。
答案 0 :(得分:3)
您不能在表方法上有委托,但是可以有事件处理程序。参见:
https://docs.microsoft.com/en-us/dynamicsax-2012/developer/event-handler-nodes-in-the-aot
http://daxtechies.blogspot.com/2013/04/how-to-use-event-handler-in-microsoft.html
您只需在表更新方法上放置一个事件前处理程序,然后类似于以下内容使用xppPrepostArgs
:
public static void updatePreEventHandler(xppPrepostArgs _args)
{
CompanyInfo companyInfo = _args.getThis();
// Common common = _args.getThis(); // Alternatively
if (companyInfo.orig().Name != companyInfo.Name)
{
info('Changed');
}
}