通过DataEntity导入数据时,有一些private field的值,没有在数据的文件里指定,所以需要用代码来设定值,类似于在Table插入数据时的值自动设定。通过继承mapEntityToDataSource()
来实现。
public void mapEntityToDataSource(DataEntityRuntimeContext _entityCtx, DataEntityDataSourceRuntimeContext _dataSourceCtx)
{
super(_entityCtx, _dataSourceCtx);
if (_dataSourceCtx.name() == dataEntityDataSourceStr(XXX_DimensionAttributeEntity, XXX_DimensionAttribute))
{
XXX_DimensionAttributeEntity dimAttriEntity = _entityCtx.getEntityRecord();
XXX_DimensionAttribute dimAttri = _dataSourceCtx.getBuffer();
dimAttri.DimensionAttribute = DimensionAttribute::findByName(this.DimensionAttributeName).RecId;
}
}
参考资料
D365FO – AX – Update Data Entity Target Entity fields with X++