我正在尝试消除在CRM 2011中更改用户业务部门时丢弃安全角色的问题。我采取了几种方法,取得了不同程度的成功,但没有一种方法能提供无缝的解决方案。到目前为止,插件的组合似乎是最好的方式。
挑战在于:在预验证阶段之后,但在预操作阶段之前,删除安全角色。如果我执行的更新不是更改业务单位,则在预验证阶段注册插件时,我可以在原始业务单位中捕获用户的安全角色,但在运行更改业务单位更新时不会触发预验证插件(第一个阶段是预操作)。在更新用户的业务部门时,我需要执行预验证插件。一旦我获得了安全角色的名称,我可以将其存储在PluginExecutionContext共享变量中,然后在我的后期事件插件中,我可以查询与我的新业务单位关联的具有正确名称的新安全角色(这部分代码正在工作)。
有没有人想出了如何:
a)将用户的安全角色从原来的BU转移到新的BU(使用插件或不使用插件)
或
b)为更改用户的业务单元操作触发在预验证阶段注册的插件
发布于 2015-09-01 00:02:41
由于我无法得到这个问题的答案,我将发布我的解决方案(虽然我不喜欢,但它确实比必须返回并手动重新添加角色的通常过程更有效地完成工作)。
这是一个2步的过程,而不是我正在寻找的更优雅的1步过程。我在用户记录中添加了2个新字段,一个位字段和一个字符串字段。
步骤1)我设置了一个按需工作流,它只将bit字段设置为yes (不在任何表单上)。插件在该字段发生更改时触发,查询securityRoles表并获取与该用户关联的所有记录,将角色的名称复制到竖线分隔的字符串中,并将该字符串保存到新的字符串字段中。
步骤2)当用户改变总线时,该字符串字段被用作要结合新的BU查询的新角色的列表。然后,只需遍历所有新角色并将其与用户关联即可。
https://stackoverflow.com/questions/32103361
复制相似问题