将Dynamics CRM 2016中的非托管解决方案导入到Dynamics 365的干净实例时,我收到此错误。没有其他详细信息,因此我不知道哪个特定实体出现问题
无法在对象'dbo.DependencyBase'中插入具有唯一索引'ndx_UniqueDependencyNodes'的重复键行。重复键值是(b8e82bca-64b2-4b4c-9192-0eb2010de885,a5396ca9-d5fa-4951-ba3f-619bb8fab0b7)。该语句已终止。
有没有人遇到过这个?
Dynamics CRM 2016版本为(8.1.0.569)(DB 8.1.0.563)
[更新] CRM 2016和Dynamics 365都是在线实例。
答案 0 :(得分:3)
这是当前Dynamics 2016产品中的一个错误。微软正在研究解决方案。
CRM中解决方案的导入过程可能会在组织数据库中产生不一致,只能由SQL脚本修复。这本身不受支持,无法在Dynamics 365 / OnLine上完成。
我最近有关于CustomControlDefaultConfig
实体的类似问题。
有关DependencyBase
表的特定问题可以通过以下SQL脚本解决:
delete from
DependencyBase
where
DependencyId in
(
select
d.DependencyId
from
Dependency d
left join CustomControlDefaultConfig dc
on d.DependentComponentObjectId = dc.CustomControlDefaultConfigId
left join CustomControlDefaultConfig rc
on d.RequiredComponentObjectId = rc.CustomControlDefaultConfigId
where
(d.DependentComponentType = 68 and dc.CustomControlDefaultConfigIdUnique is null)
or (d.RequiredComponentType = 68 and rc.CustomControlDefaultConfigIdUnique is null)
);
请注意
在CRM数据库上执行此脚本是不受支持的操作。首先进行数据库备份并使用它需要您自担风险。
答案 1 :(得分:0)
对我来说,问题在于解决方案中包含的SLA。
我的情况是这样的:
- 在线PROD实例上开发和自定义(上线前) - 在一个解决方案中收集所有自定义
从此PROD复制(重新部署)到两个沙盒实例
- 将解决方案从一个沙箱导出到另一个沙箱或返回到PROD实例
我通过去除目标系统中的SLA然后删除SLA来纠正问题。
从那时起,我的解决方案可以反复导入,其中包含SLA,即使目标系统将SLA作为默认值并处于活动状态。