我正在尝试通过扩展 CustTable 来使用 D365FO 中新的“命令链”功能。
在我们将它记录到新表之前,我们需要检查更新方法上的值是否已更改。
[ExtensionOf(tableStr(CustTable))]
final class CustTable_Extension
{
void update(boolean _updateSmmBusRelTable = true, boolean _updateParty =
true)
{
CustTable custTable_Orig = this.orig();
boolean hasChanged = this.CreditMax != custTable_Orig.CreditMax;
next update(_updateSmmBusRelTable, _updateParty);
if(hasChanged)
{
//do something
}
}
}
但是,在运行此代码时,我们会收到“对象未设置为对象的实例”错误。发生错误是因为“this”对象为空。调用“下一次更新(_updateSmmBusRelTable,_updateParty);”时,我也会遇到同样的错误。
文档指出:“这允许在不需要使用事件处理程序的情况下扩展公共和受保护方法的逻辑。当您包装一个方法时,您还可以访问该类的其他公共和受保护方法和变量。”
有任何想法吗?