D365基于团队的路由:50+团队Dataverse权限与审批视图问询
Dataverse模型驱动应用:团队级可见性与审批视图配置方案
背景与需求
正在Dataverse上构建一款Model-Driven Power App,核心功能为基于团队的记录可见性与多层级审批路由。当前已完成Views、安全角色配置及审批功能开发,现有50+团队,每个团队固定配置1名提交者和4名层级审批者。
可见性规则:
- 提交者:仅能查看所在团队的所有记录
- 审批者(4个层级):可查看处于自身审批阶段的待处理记录,同时能查看主视图中本团队的所有记录
- 所有角色均无法查看其他团队的记录
技术问题解答
1. 提交时设置所属团队 vs 业务单元(Business Units):哪种方式更适合限制跨团队可见性?
直接用**团队(Team)**做跨团队可见性限制完全可行,且更贴合你的场景:
- 操作逻辑:提交记录时自动关联所属团队,给各角色配置记录级权限时选择“所属团队”维度(比如提交者的读取权限设为“所属团队”),即可直接限制用户仅能查看自身团队的记录。
- 业务单元的适用场景:仅当组织存在多层级部门架构,需要按部门做粗粒度权限隔离时才需要使用。你当前的50+团队为平级结构,用团队足够,无需引入业务单元增加复杂度。
2. 用Power Automate更新审批层级字段驱动阶段视图,是否是推荐方案?有没有更优模式?
这是当前Model-Driven App中最直接的实现方案,也可通过以下方式优化:
- 基础实现:审批流转时,用Power Automate自动更新记录上的“当前审批层级”字段(建议设为选单类型:层级1/层级2/层级3/层级4),给每个审批角色创建对应视图,过滤条件设为
当前审批层级=对应层级+所属团队=当前用户所在团队。 - 优化方案:将审批层级与Dataverse的**业务流程(Business Process Flow, BPF)**绑定,BPF阶段切换时自动同步“当前审批层级”字段,无需单独维护Power Automate流,更贴合模型驱动应用的原生能力,减少维护成本。
3. 同一团队内多安全角色,如何配置权限让每个角色仅看对应阶段的记录?
核心是安全角色记录级权限+视图过滤结合:
- 基础权限隔离:给所有角色(提交者+4层审批者)配置实体的读取权限为“所属团队”,确保所有人只能查看自身团队的记录,先完成跨团队隔离。
- 阶段权限控制:
- 视图过滤:给每个审批角色创建专属视图,过滤条件设为
当前审批层级=对应层级,在App站点地图中仅给对应角色分配该视图(比如层级1审批者仅能看到“层级1待审批”视图),同时保留“团队所有记录”主视图供全角色访问。 - 进阶严格控制:若需禁止审批者通过高级查找查看其他阶段记录,可使用Dataverse行级安全(RLS),创建规则:当记录的当前审批层级等于角色对应层级且所属团队为用户所在团队时,允许读取。(注:RLS配置复杂度较高,视图过滤已能满足大部分场景)
- 视图过滤:给每个审批角色创建专属视图,过滤条件设为
4. 与审批阶段绑定的角色特定视图,有哪些最佳实践?
- 统一命名规范:采用
[角色]-[审批阶段]-待处理记录或[团队]-层级X待审批的命名格式,方便后续维护与识别。 - 精准权限分配:在Model-Driven App站点地图中,给每个视图设置可见角色,确保仅对应审批角色能看到自身阶段视图,提交者无权限访问审批视图。
- 复用基础视图:先创建“团队所有记录”基础视图,再基于该视图复制出各审批阶段视图,仅修改过滤条件,减少重复配置工作。
- 绑定BPF阶段:若使用BPF,直接基于BPF阶段创建视图(如“BPF阶段:层级1审批”),视图与业务流程完全同步,无需手动维护过滤条件。
- 定期清理冗余视图:随审批流程调整及时删除废弃视图,避免导航栏杂乱,提升用户体验。
内容的提问来源于stack exchange,提问作者Bhogavilli Mohitha
相关产品推荐
相关产品推荐

