Dynamics crm 2011 导入失败-Id为的角色不存在

Dynamics crm 2011 导入失败-Id为的角色不存在,dynamics-crm-2011,Dynamics Crm 2011,我在使用托管CRM 2011解决方案的特定环境中遇到导入错误。该解决方案以前已导入到许多其他环境中,但其中失败的环境会引发以下错误: Dependency Calculation role With Id = 9e2d2d9b-645f-409f-b31d-3a9c39fcc340 Does Not Exist 我对此有点困惑。我在解决方案XML中进行了搜索,未能找到对9e2d2d9b-645f-409f-b31d-3a9c39fcc340这一特定GUID的任何引用。我也不能在SQL中真正找到

我在使用托管CRM 2011解决方案的特定环境中遇到导入错误。该解决方案以前已导入到许多其他环境中,但其中失败的环境会引发以下错误:

Dependency Calculation
role With Id = 9e2d2d9b-645f-409f-b31d-3a9c39fcc340 Does Not Exist
我对此有点困惑。我在解决方案XML中进行了搜索,未能找到对9e2d2d9b-645f-409f-b31d-3a9c39fcc340这一特定GUID的任何引用。我也不能在SQL中真正找到它,只是在不同的表中漫游,但也许我不知道在哪里可以找到它

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

  • 对安全角色的引用实际存储在哪里?这应该是我的解决方案中的东西吗?我现有的CRM部署希望我导入这个解决方案
  • 如何解决此问题,以便能够导入此解决方案

  • 这是我们用来解决问题的代码。我们必须运行两个不同的脚本。脚本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       
        )
    
    update RoleBase
    set RoleTemplateId = NULL
    where RoleTemplateID='ABCD89FF-7C35-4D69-9900-999C3F605678'
    
    脚本B:

    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       
        )
    
    update RoleBase
    set RoleTemplateId = NULL
    where RoleTemplateID='ABCD89FF-7C35-4D69-9900-999C3F605678'
    

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

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

    我很乐意将此添加到对答案的评论中,但目前还没有足够的代表。

    您是否尝试在以前部署的环境中寻找安全角色?我可能找错了地方。我在
    dbo.RoleBase
    表下查看每个实例。我在任何地方都没有看到对该GUID的引用(在
    中搜索[RoleId]=“9e2d2d9b-645f-409f-b31d-3a9c39fcc340”
    )。我刚刚检查了解决方案已经成功安装的实例(我想这就是你的建议)。是的,我想知道其他成功导入解决方案的组织中是否有一个在其中包含角色Id。