使用团队拆分实体访问

Splitting entity access using teams

我们在 Dynamics CRM 中得到了一个自定义实体 "contract",它的所有者是 "organization"。

现在,我们得到了一个将合同分成不同类型的标志。我们有两支球队。两个团队都应该能够阅读所有合同,但只有团队 A 应该能够编辑类型 A 的合同以及合同类型 b 和团队 B 的一些合同。

这可以通过访问团队实现吗?我们是否会编写一个工作流来确保 A 类合同由团队 A 管理,反之亦然?

我对列出使用模板的访问团队和自动访问团队的文档感到有点困惑。

Dynamics 提供了哪些方法来解决上述场景?

我一开始可能不会使用组织所有权。因为大部分问题是由团队所有权解决的,而不是使用这个 "contact type" 字段。

团队 A 拥有联系人类型 A,团队 B 拥有合同类型 B。然后使用安全角色允许读取整个企业的合同 unit/organisation,并将更新权限限制为仅您拥有的合同。

然后对于他们都可以编辑的少数合同,这确实有助于使用访问团队。启用实体的访问团队,允许访问团队更新实体的权限,并将相关用户添加到他们需要能够编辑的记录中。

注意:您可以使用如上所述的访问团队,也可以将它们归属于所有用户都是其成员的第三方团队 "AB"。该团队将拥有他们都需要编辑的任何合同类型 B。以上两个都为你解决了额外的问题

根据评论编辑:

如果您无法更改组织拥有的实体,则说明您有问题。您只能在 team/user 个拥有的实体上启用访问团队。相反,您需要做的是想出一种手动方法来管理它。例如,这是非常基本和简化的解决方案(我知道您已经简化了问题):

  • 在名为 "Allow updates by Team A" 的合同实体上创建一个复选框。
  • 写一个插件来阻止更新
  • 如果团队 A 尝试更新合同类型 B 并且 "Allow Updates by Team A" 为假,则抛出一个执行
  • 如果团队 B 尝试更新合同类型 A 抛出异常

我猜你的问题比这更复杂,所以你可能需要有点创造性来处理它。它可能就像复选框一样简单。它甚至可能必须是一种关系。您甚至可能必须编写自己的访问团队版本才能解决这个问题。我所知道的是,不幸的是,它看起来像是为您定制的一些代码。