有个客户要求我们做个定制开发,客户觉得钉钉的操作体验比较不错(用户使用的惯性),要求我们要实现钉钉的自动配置审批流程,不过幸不辱命,对比个钉钉的流程审批、表单配置的相关功能,做了个Java私有化的版本。
钉钉的流程审批操作确实相对于activity、flowable 更加贴近于业务人员,后面两个常用的流程引擎更加适合于技术人员。
如上图对比,其中,左侧的卡片式的流程配置要比右侧传统的流程配置,操作简洁、流程透明,体验好很多。本篇我们详细拆解审批功能,如果你的产品中涉及到业务审批流的,强烈推荐你了解一下卡片式配置的审批流是如何设计的。相信看完这篇后,你会对审批流有非常清晰的认知。
一、审批流基本内容
做审批流程,我们要思考流程审批的几个基础问题:
1、流程从哪里来?发起流程
2、流程到哪里去?流程的路径
3、参与人是谁?参与人员
4、要干什么事?交互的结果
要解决从上面几个问题,我们就需要深刻理解流程,流程包括集中核心能力拼装而成:
1、发起节点;
2、人工执行节点(审核);
3、路由判断节点;
4、自动化业务节点(触发);
分析我们逐一拆解,分析,讲解我们是如何实现仿钉钉审批功能。
二、流程发起
在日常的企业内部的业务过程中,发起流程的场景可以有
1、在用户的工作台里边发起一个流程 ,通过工作台的业务申请入口创建流程(例如,个人用户主动发起费用报销)
2、在业务执行过程中,需要发起流程审批,这种模式需要在数据管理或者列表管理的中,通过按钮/表单去触发流程 (例如,在创建入库单的时候,需要发起流程审批)
3、系统内部或者外部系统达到某种条件的时候,系统自动创建审批流程,这种模式下需要支持接口创建流程的能力 (例如,设备故障,自动创建一个故障处理的故障单)
这种我们构建了逻辑引擎,在逻辑引擎中实现了 通过接口创建工作流的功能
三、人工审批节点
人工节点审批包括:包括了环节名称、环节关联的表单、环节处理的人员(关联组织/公司/团队/角色/个人)、审批的时限、业务触发按钮等等,如下图所示。
其中,要支持自动审批、审批后触发的关联业务逻辑等等,如下图所示
审批人的表单,是可以独立设计的,点击设计后会进入表单设计器中
审批表单设计采用了“所见即所得”的拖拽式表单设计器。布局上,左侧是表单控件区、右侧是表单的信息和表单控件的属性设置,中间则是表单预览区。设计表单的时候,用户可以直接从左侧的表单控件区拖拽表单到预览区,然后在右侧设置该字段的属性即可完成一个表单字段的增加。删除表单字段只需要点击选中一个字段后,点击小垃圾桶图标删除即可。
除了审批环节,也可以支持抄送环节:
四、分支节点
分支条件:流程会随着表单的内容(分支条件变量)、发起人的信息不同而经过不同的审批环节,控制流程进入不同审批环节的元素称之为分支条件。举个例子,对于借款这个流程,有些公司会设置1000-5000天以内部门负责人审批即可,超过5000需要更高一级领导审批。
审批的条件可以根据表单的数据进行函数加工,灵活实现各种判断条件
五、在线测试
配套列表与测试功能,可以便捷的完成业务的测试与入口的构建。
六、会签功能
七、触发自动化业务
从人工业务联动自动化处理的业务,通过新增自动化业务节点实现。
八、总结
钉钉作为当下国内移动协同办公的老大,能够满足大部分企业的办公需求,当然在很多场景下,客户需要私有化部署、定制化开发、且成本需要控制的情况下,那么就可以考虑JVS快速开发平台。如果想要获得更多了解,可以在 Gitee上搜索“JVS”。
九、获取开源
管理平台(含管理平台、低代码、数据智仓):https://frame.bctools.cn/