当数据源与 D365 F&O 中的外部连接 link 连接时,子数据源中的外键字段未填充
Foreign key field in Child data source is not filling when the data source joined with Outer join link in D365 F&O
我创建了一个简单的 table SaleslineEx。它与 SalesLine table.
有外键关系
尝试在销售行中创建新记录时,SalesLineEx 销售行 字段未填充销售行记录.
我尝试了博客中的不同解决方案,但它们都不起作用。谁能给我一个解决方案?
我能够通过使用 SysExtensionSerializerExtensionMap
在我的扩展 table 和 SalesLine
之间创建映射来解决这个问题。
添加映射后,为 SalesLine
table 创建扩展 class,并为 insert
方法创建 COC 方法。在下一次调用销售行insert
方法后调用Extensiontable的insert操作,使用SysExtensionSerializerExtensionMap
class从extensiontable缓冲区如下图.
next insert(_dropInvent, _findMarkup, _childBuffer, _skipCreditLimitCheck, _skipWHSProcesses, _interCompanyInventTransId);
if(FormDataUtil::isFormDataSource(this))
{
SalesLineExt salesLineExt = this.SysExtensionSerializerMap::getExtensionTable(tableNum(SalesLineExt));
salesLineExt.SysExtensionSerializerExtensionMap::insertAfterBaseTable(this);
}
我创建了一个简单的 table SaleslineEx。它与 SalesLine table.
有外键关系尝试在销售行中创建新记录时,SalesLineEx 销售行 字段未填充销售行记录.
我尝试了博客中的不同解决方案,但它们都不起作用。谁能给我一个解决方案?
我能够通过使用 SysExtensionSerializerExtensionMap
在我的扩展 table 和 SalesLine
之间创建映射来解决这个问题。
添加映射后,为 SalesLine
table 创建扩展 class,并为 insert
方法创建 COC 方法。在下一次调用销售行insert
方法后调用Extensiontable的insert操作,使用SysExtensionSerializerExtensionMap
class从extensiontable缓冲区如下图.
next insert(_dropInvent, _findMarkup, _childBuffer, _skipCreditLimitCheck, _skipWHSProcesses, _interCompanyInventTransId);
if(FormDataUtil::isFormDataSource(this))
{
SalesLineExt salesLineExt = this.SysExtensionSerializerMap::getExtensionTable(tableNum(SalesLineExt));
salesLineExt.SysExtensionSerializerExtensionMap::insertAfterBaseTable(this);
}