【问题标题】:Splitting entity access using teams使用团队拆分实体访问
【发布时间】:2017-03-18 20:50:51
【问题描述】:

我们在 Dynamics CRM 中获得了一个自定义实体“合同”,其所有者为“组织”。

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

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

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

Dynamics 提供了哪些解决上述方案的方法?

【问题讨论】:

    标签: dynamics-crm dynamics-crm-2015


    【解决方案1】:

    我可能不会一开始就使用组织所有权。因为大部分问题是通过团队所有权而不是使用这个“联系人类型”字段来解决的。

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

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

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

    根据 cmets 编辑:

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

    • 在合同实体上创建一个名为“允许 A 团队更新”的复选框。
    • 编写插件来阻止更新
    • 如果 A 团队尝试更新合同类型 B 并且“允许 A 团队更新”是错误的,则抛出一个 exectpion
    • 如果团队 B 尝试更新合同类型 A 抛出异常

    我猜您的问题比这更复杂,因此您可能需要对如何处理它有点创造性。它可能就像复选框是一个下拉菜单一样简单。它甚至可能必须是一种关系。您甚至可能必须编写自己的访问团队版本来解决问题。我所知道的是,不幸的是,它看起来将是一些适合您的自定义代码。

    【讨论】:

    • 我们的用例比我上面的例子要复杂一些。将我们的实体转换为团队所有权不是一种选择。那么,我可以使用访问团队有哪些选择?访问团队是绩效问题吗?
    • 他们不是性能问题,他们可能是为了规避标准共享的 POA 性能问题而引入的。让我更新我的答案,包括您将如何与访问团队一起管理此问题。
    • @Sparhawk 你有一个更大的问题......在验证这可能如何与组织拥有的实体一起工作时,我发现你无法为此类实体启用访问团队。我已经写了一个你可以解决它的方法......但它被简化了,因为我猜你自己已经简化了问题
    • 感谢您的测试。你是对的,组织所有者和访问团队不一起工作。案件已结案,感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-19
    • 1970-01-01
    • 1970-01-01
    • 2015-10-01
    • 2016-10-23
    • 1970-01-01
    相关资源
    最近更新 更多