Dynamics 365 CE-货币不能为null



我正在编写一个扩展方法,将源实体属性复制到给定要复制的属性列表的新目标AttributesCollection对象。如果源实体不包含任何提供的属性,则目标集合应包含该属性的Null值。这适用于除货币/货币以外的大多数属性类型。我收到一条错误消息,"货币不能为空。"当我用目标集合更新目标实体时。

public static AttributeCollection CopyAttributesFrom(this AttributeCollection target, Entity source, string[] attrList, bool resetAttributeIfMissingFromSource = false)
{
foreach (var attr in attrList)
{
if (resetAttributeIfMissingFromSource && !source.Contains(attr))
{
target[attr] = null;
continue;
}
target[attr] = source[attr];
}
return target;
}

有人能提供一种一致且通用的方法来做到这一点,而不必以某种方式注入数据类型并检查方法中的类型吗?

您在该实体中有一个Money属性,因此TransactionCurrencyId属性被添加到该实体中,该属性应使用组织的默认货币或用户设置的货币填写。该平台将利用这一点来支持多种货币的计算。

当您试图将其标记为null时,验证会启动并抛出此异常,这是意料之中的事。当场景试图取消该属性时,请检查该场景,或者将其保留在排除列表中,以免将其标记为null。

相关内容

最新更新