关联子表的流程权限控制案例
1. 简介
1.1 方案简介
在某些主表流程中,成员需要拥有关联表(如明细数据表)的操作权限,但仅允许在特定流程节点进行 关联子表操作,而在其他节点禁止操作。例如:
典型场景 | 说明 |
采购审批 | 审批时禁止成员修改关联的采购明细,但在流程回退到发起节点时,需要允许成员编辑。 |
财务报销 | 审批时需锁定相关联发票明细编辑权限,但同理,也需允许在发起节点编辑。 |
项目管理 | 任务卡在“进行中”状态时,自动禁止修改关联的子任务。 |
本方案通过流程节点权限控制,结合 表单隐藏 功能,实现仅在固定节点向成员开放关联子表的操作权限。
1.2 应用场景
以财务报销为例,成员在「报销单」中发起报销时,可能会遇到以下情况:
- 发起报销时,需要先暂存数据,后续再进行编辑;
- 发起报销后,因材料不足等原因被驳回,需要修改发票明细后再次提交。
均要求成员在发起节点上具有编辑权限,但在进入审批环节后,禁止编辑发票明细。
1.3 设计思路
案例中的「报销单」已通过关联子表绑定「发票明细表」,用于录入关联的发票明细。其权限控制思路如下:
1)在「发票明细表」中设置权限组,允许成员新增/编辑发票明细数据。
2)配置「报销单 >> 发起报销节点」上的关联子表操作权限,仅允许成员在发起节点新增/编辑/删除;
3)从应用目录中隐藏「发票明细表」的入口,防止成员在该表中越权修改已有的发票明细数据。
1.4 预期效果
1)成员在目录中不可见「发票明细表」,即使拥有该表数据的操作权限,也只能通过「报销单」进行操作。
2)对于回退到发起节点的报销流程,成员可以在关联子表中编辑、删除发票明细数据等。当再次提交流程并流转至「财务审核」节点后,不再拥有发票明细数据的操作权限。
2. 设置步骤
注:在学习之前建议安装 关联子表×流程权限控制 应用模板,本文将按照模板中的示例数据进行讲解。
2.1 搭建表单
本文案例需要使用如下 2 张表单:
- 报销单:用于记录每次报销的基础信息,并通过关联子表绑定了「发票明细表」。
- 发票明细表:存储报销单相关联的每条发票数据。
其中,「报销申请表」的流程设定为「发起报销 >> 财务审批」,如下图所示:
2.2 配置权限组
在「发票明细表」中添加权限组,允许成员(通过关联子表)新增,或是编辑/删除本人提交的发票明细数据。例如,可以在「表单发布 >> 对成员发布」处,将成员添加到「添加并管理本人数据」权限组。
2.3 设置关联子表权限
进入「报销明细表」的编辑页面,对关联子表(即「发票明细」字段)进行如下权限配置:
1)在「字段属性 >> 数据操作」处勾选「随主数据一同新增」选项,使成员在发起报销时,能够填写发票明细。且发起后,填写的发票明细会入库到「发票明细表」中。
2)进入「流程设定」页面,在「发起报销 >> 字段权限」处勾选「发票明细」字段的可见权限,点击「设置」按钮并开启自定义功能,勾选以下数据操作类型:
- 可新增
- 可直接编辑已有数据
- 可删除已有数据
2.4 隐藏发票明细表
回到应用目录中,点击「发票明细表」后的「设置 >> 对成员隐藏」按钮,将表单从目录中隐藏。
2.5 效果演示
效果参见本文【1.4 预期效果】