Dynamics CRM 2011 -在更改用户业务单元时转移安全角色

本文关键字:单元 业务 转移 角色 安全 用户 2011 CRM Dynamics | 更新日期: 2023-09-27 18:08:51

我试图消除在CRM 2011中更改用户业务单元时丢失安全角色的问题。我采取了一些方法,取得了不同程度的成功,但没有一种方法能提供无缝的解决方案。到目前为止,插件的组合似乎是最好的方式。

挑战在于:安全角色在预验证阶段之后,但在预操作阶段之前被删除。如果我执行更新而不是更改业务单元,那么当我在预验证阶段注册插件时,我能够在原始业务单元中捕获用户的安全角色,但是在运行更改业务单元更新时不会触发预验证插件(发生的第一个阶段是预操作)。我需要在更新用户的业务单位时执行预验证插件。一旦我获得了安全角色的名称,我就可以将其存储在PluginExecutionContext共享变量中,然后在我的后期事件插件中,我可以查询具有与我的新业务单元相关联的正确名称的新安全角色(该部分代码正在工作)。

有没有人知道如何:

a)将用户的安全角色从原来的BU转移到新的BU(无论是否使用插件)

b)触发在预验证阶段注册的插件,用于更改用户的业务单元操作

Dynamics CRM 2011 -在更改用户业务单元时转移安全角色

由于我无法得到这个问题的答案,我将发布我的解决方案(尽管我不喜欢,但它确实比必须返回并手动重新添加角色的通常过程更有效地完成工作)。

这是一个两步的过程,而不是一个更优雅的一步过程,我一直在寻找。我在用户记录上添加了2个新字段,一个位字段和一个字符串字段。

步骤1)我设置了一个按需工作流,只将位字段设置为yes(这不在任何形式上)。当字段发生更改时,插件将触发,查询securityRoles表并获取与该用户相关的所有记录,将角色名称复制到管道分隔的字符串中,并将该字符串保存到新的字符串字段中。
步骤2)当用户更改BU时,该字符串字段将作为新角色列表,并结合新BU进行查询。然后,只需循环遍历并将所有新角色与用户关联。