导入失败 - 具有Id的角色不存在

时间:2013-07-01 15:53:58

标签: dynamics-crm-2011

我在使用托管CRM 2011解决方案的特定环境中收到导入错误。该解决方案之前已导入到许多其他环境中,但特别是失败的解决方案是抛出以下错误:

Dependency Calculation
role With Id = 9e2d2d9b-645f-409f-b31d-3a9c39fcc340 Does Not Exist

我对此感到有点困惑。我在解决方案XML中搜索并且无法找到对此特定GUID 9e2d2d9b-645f-409f-b31d-3a9c39fcc340的任何引用。我也无法在SQL中找到它,只是在不同的表中闲逛,但也许我不知道到底在哪里看。

我尝试多次导入解决方案。作为一种绝望的努力,我尝试在导入之前重命名目标环境中的所有安全角色,但这没有帮助。

  1. 这对实际存储的安全角色的引用在哪里?这是否应该在我的解决方案中 - 我现有的CRM部署期望我导入?
  2. 如何解决问题,以便我能够导入此解决方案?

2 个答案:

答案 0 :(得分:5)

这是我们用来解决问题的代码。我们必须运行两个不同的脚本。脚本A我们必须共运行四次。运行一次,尝试导入,然后查阅日志以找到导致问题的角色 - 如果您收到另一个角色的其他错误。

要运行脚本A,您必须使用数据库中的有效RoleTemplateId。我们只选了一个。您使用哪一个并不重要,因为您将使用脚本B擦除该数据元素。

修复了所有角色后,我们得到了一个不同的错误(抱怨RoleTemplateId已经与某个角色相关),并且必须运行脚本B.这将删除RoleTemplateId多个不同的角色并将其设置为NULL

脚本A:

insert into RoleBaseIds(RoleId)
values ('WXYZ74FA-7EA3-452B-ACDD-A491E6821234')

insert into RoleBase(RoleId
    ,RoleTemplateId
    ,OrganizationId
    ,Name
    ,BusinessUnitId
    ,CreatedOn
    ,ModifiedOn
    ,CreatedBy
    )
values ('WXYZ74FA-7EA3-452B-ACDD-A491E6821234'
    ,'ABCD89FF-7C35-4D69-9900-999C3F605678'
    ,(select organizationid from Organization)
    ,'ROLE IMPORT FIX'
    ,(select BusinessUnitID from BusinessUnit where ParentBusinessUnitId is null)
    ,GETDATE()
    ,GETDATE()
    ,null       
    )

脚本B:

update RoleBase
set RoleTemplateId = NULL
where RoleTemplateID='ABCD89FF-7C35-4D69-9900-999C3F605678'

答案 1 :(得分:1)

完美的解决方案,为我工作!我唯一的评论是脚本B中的错误:它不应该清除给定模板的所有角色的模板ID,只清除新创建的“修复”角色的模板ID,如下所示:

update RoleBase
set RoleTemplateId = NULL
where RoleID='WXYZ74FA-7EA3-452B-ACDD-A491E6821234'

我很乐意将此作为对答案的评论,但截至目前还不够。

相关问题