使用团队拆分实体访问
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 抛出异常
我猜你的问题比这更复杂,所以你可能需要有点创造性来处理它。它可能就像复选框一样简单。它甚至可能必须是一种关系。您甚至可能必须编写自己的访问团队版本才能解决这个问题。我所知道的是,不幸的是,它看起来像是为您定制的一些代码。
我们在 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 抛出异常
我猜你的问题比这更复杂,所以你可能需要有点创造性来处理它。它可能就像复选框一样简单。它甚至可能必须是一种关系。您甚至可能必须编写自己的访问团队版本才能解决这个问题。我所知道的是,不幸的是,它看起来像是为您定制的一些代码。