DEMO地址:budget
假设业务背景:
某企业按【年】编制预算(不到月份),编制内容有【收入、费用、利润】,对应科目维的成员
公司层级:一级(E01、E02···),再往下二级(E01_01、E01_02、···、E02_01、E02_02···),也可以把二级理解为部门之类的,还可以再继续往下细分
预算下发:假设是管理员统一下发,按【年份】+【场景】+【版本】+多选【实体】下发,实体可以多选【一级公司】,以【一级公司】为最小单位,控制其及其后代的预算填报、审批、锁数
财务模型权限:
角色组:查看(可以看,不能编辑)、编制(可以看,可以编辑)
公司权限:给测试用户【USER001】配置了【E01的编制】权限+【E02的查看】权限,给测试用户【USER003】配置了【E02的编制】权限,包括其后代实体成员
数据权限:数据状态=0是锁数状态(只读),=1是解锁状态(可写)
用自己的管理员账号触发,申请DEMO环境的用户都会为你开启管理员账号
测试用户【USER001】和【USER003】都只有应用成员的权限,账号密码是Abcd1234,用这两个成员,进行预算填报。
填报的时候,如果发现状态已经锁数了,说明下发的这个维度,可能有其他用户跑过了,可以回到预算下发界面,点一下【锁数后一键还原】,将状态回滚。
从待办进入预算填报页面:
两个测试用户的公司权限不一样,只能编制各自负责的公司及其后代公司:
【USER001】配置了【E01的编制】权限+【E02的查看】权限
【USER003】配置了【E02的编制】权限
DEMO中配置审批人是下发的用户,因此就是你的管理员账号。
从待办进入预算审批页面:
管理员账号不受权限控制,因此可以看到所有公司的数据,且都可写。
审批有两个可选结果:同意、拒绝。
同意后,会锁数下发的维度(【年份】+【场景】+【版本】+多选【实体】及其后代),数据状态变成只读
拒绝,需要先多选驳回的公司
任意选,会按公司+权限方案找预算编制的用户,找到之后会去重,所以,如果选【E01_01】和【E01_02】,虽然都找到了【USER001】,但不会生成他的两次任务
如果只驳回【E01】及其后代,则只生成【USER001】的任务,他重新提交后,就到审批了,【USER002】不用再提交
要实现这个效果,需要关注工作流的配置:1、提交节点分配执行人,使用了权限方案,传的Entity维度用了全局变量【wfv$EntityList】,这个变量初始是下发的公司列表,比如【E01、E02】,那么就会找到【USER001】和【USER003】;2、然后在审批节点,在任务完成时映射,改变了这个全局变量的值,拿到了审批页面中选择的驳回公司,如果只驳回【E01】,那么这个变量就被更新为【E01】,重新发起预算提交的子任务时,就只找到了【USER001】
审批同意后,由工作流自动锁数,锁数效果(要用测试用户看,财务模型权限对管理员账号不生效!)如下:
用数据流3.0组件实现了版本复制,逻辑简要概括为:
按所选维度查询【旧版本】数据
将【旧版本】的值替换为【新版本】
将替换后的数据保存至财务模型
数据流DEMO地址:budget_copy
DEMO中是用UX承载,配置了一个按钮,用来启用数据流,通过数据流的执行来实现版本复制的。
当然,也可以将启动数据流这一步,编排在预算工作流的最后一个节点,以实现自动化,但需要考虑如何传参,用户可以结合工作流的【启动数据流】进行思考,应该如何进行编排。
回到顶部
咨询热线