分析 | 自助搭建工作流的流程引擎
工作流在企业中承担着“生命血液”的作用,让所有流程按部就班地创建、流转、完成,是办公线上化的重要功能。
流程引擎的作用即用户可自主搭建表单、配置/发布流程审批节点,不需要开发参与,或给开发提供高级功能,能快速搭建复杂表单,生成用户可使用的表单与工作流,不需要从头开发,从而达到快速上线新流程、流程功能/风格/配置统一的目的。
各大办公协作平台都有自己的流程引擎来配置工作流,如钉钉、飞书、企业微信的审批后台,也有专门做好工作流一件事的平台,比如轻流。通过体验、梳理这几个平台的相关功能,以及为自己公司设计了一版流程中心后,对工作流的特性、重点逐渐清晰。
一、流程中心总体架构
流程中心主要作用可分为前后端功能:
🔹后台配置——流程引擎:在工作流配置中,一个流程需要有基础信息、表单、审批流,来创造一个完整的审批表单,同时根据需要,提供一些高级功能设置。
🔹前台处理——审批单据:一条流程发布后,审批流节点上的人员将会看到表单,然后根据在审批流上配置的权限对单据进行同意、不同意、提交、转派等处理,实现真实流程流转。
二、流程引擎
根据前文,流程引擎的主要内容有基础信息、表单设计、审批流设计、以及提高能力的更多设置。
1、基础信息
🔹流程名称:即用户在使用时,看见并能创建的流程名;
🔹可见/可用权限:配置哪些人及部门可以看到流程入口,配置哪些人及部门可以看见且可使用此流程,注意具体的流程实例是否可见是由审批流节点决定的;
🔹流程管理员:流程在后台对其可见,且可对流程进行修改、发布、启用停用、删除等操作。
还有一种比较特殊的角色,比如流程负责人,也许不会在后台修改流程,但需要能看到所有人发起的所有流程实例从而进行管理和统计,此时可提供配置字段“可查看全部流程”来配置相关人员。
2、表单设计
1)表单搭建
表单模块往往采用拖拉拽的形式,让用户选择需要的组件拖拽到画布中组成表单,至于拖拉拽的交互方式各个平台大同小异,而且也比较简单和成熟。
但提供的组件和其附有的功能能大大提升用户在填写表单时的体验,在维护表单组件时,就应考虑到填写表单时的验证、反馈、自动键盘等体验。
轻流组件示例
2)组件分类
表单组件首先可大致分为两类:
基础组件:无数据传输,仅供填写的组件,常见的有输入、单选、多选、数字、日期、时间、地点、电话、邮箱、图片、附件等,注意要附带相关格式验证、键盘在数字、字母、邮箱及其他可能数据下的自动切换。
关联组件:这是在基础组件的基础上,梳理出通用字段与数据库关联形成配置组件,可从系统获取有组织性、正确性的数据,如部门、人员、定位,也可关联已有字段自动获取信息,比如关联工号字段可带出姓名、手机号、剩余假期等字段。
轻流组件示例
3)组件配置
每个组件在被选择后,即为表单中的一个字段,字段由表头、填写区域组成,需要配置相应的属性:
a. 字段属性
一个组件即表单中的一个字段,需要有字段名称。
b. 填写属性
🔹暗文:可用作指导用户的简单提示;
🔹内容填写方式:手动填写,用户使用键盘输入;扫码,可或仅能通过扫描二维码/条码输入,常会在填写区域上防止扫码图标作为提示;关联带出,通过关联到数据库,再设定与前置字段的关联公式,来自动带出填写内容,之前介绍的关联组件在此处即默认帮用户配置好了关联数据库。
c. 填写限制
字数限制、是否必填等。
d. 显示逻辑
🔹常在:字段默认显示;
🔹条件显示:某些字段是在触发条件后才出现的,比如金额字段的填写内容大于1000时,才出现上传凭证图片的字段。
3、流程设计
流程设计对普通用户来说,大概是学习成本最大的一个模块,主要是选择审批人和审批方式的选项繁多,而且用词专业性较高,所以在当前的流程设计模块中,大部分字段后都跟着说明,来告知用户选择后的审批效果。
在流程设计模块中,首先通过可视化界面将流程架构搭建出来,常有以下节点:发起人、审批人、办理人、抄送、条件。
🔹发起人:即可发起此流程实例的人,已有平台中有的可在这配置范围,此时可能与流程基础信息中的可用权限重复,建议仅保留基础信息处,因为当后期流程基本不变,但需要经常维护可用范围时,只需修改和发布基础信息中的内容,否则每次发布都会重新发布流程,可能导致不稳定;
🔹审批人:通常是只需要检查内容是否有问题、判断流程是否流转下去的决策者,在前端审批界面显示的主要操作为同意、不同意;
🔹办理人:通常为需完成表单中任务后再继续提交到下一个节点,任务可为填写/修改内容、线下活动等,在前端审批界面显示的主要操作为:提交;
🔹抄送:指被通知查看表单的人员,只能查看表单,不可编辑;
🔹条件:指同一条流程有多条分支,不同分支下可能有不同审批节点和审批人,根据条件判断进入哪条分支,而条件通常是表单页的金额、数字、下拉框等字段,或部门小组等固有数据。
针对审批人、办理人、抄送人节点,需要设置每个流程实例的真实节点人员,以及该节点的权限。
1)设置审批/办理/抄送范围
主要可分为以下四类:
a. 发起人自选
需要发起人在创建流程实例时就填写该节点的审批人。
b. 指定成员
直接在流程引擎中选择审批人,所有用户创建的流程实例中节点审批人不会变化。
c. 角色
角色指一个人群的集合,通常有一个设置页专门维护角色里的人员。
🔹若在角色维护页面中设置了每个人的负责范围,就能达到条件分流的目的,如吴琪琪负责部门A,张三负责部门B,那么部门A成员提交的单据由吴琪琪审批,部门B提交的单据由张三审批。
🔹若未设置每个人的负责范围,通常这个节点由这个角色中的所有人同时审批。
d. 动态角色
动态角色也是一群人的集合,但不需要提供给用户配置页来维护角色中的人员,而是从系统抓取拥有这个角色的人,同时还会赋予审批条件流,通常需要开发来维护好供用户选择。
🔹常用的动态角色会被直接放出来作为一个范围选项,这属于体验优化,但根据属性归纳都属于动态角色,比如上级、部门负责人是存在于组织架构中已有的角色,且绑定部门形成条件流,审批节点中带出来的审批人会根据发起人的所属组织变化,所以我们常见的流程引擎中可直接选择上级、连续上级、部门负责人,这就是已维护好的动态角色;
🔹动态角色与角色的差异主要在于不需要用户手动维护角色中人员的负责范围,动态角色在创建的时候往往就已经绑定好了组织,取人时层级是组织-角色-人员,而角色是取人层级是角色-负责组织-人员;
🔹如果是为明确的客户或业务开发流程引擎,可以根据其需要提前维护更多的动态角色;
🔹若需提供开发使用的高级版本,可直接给出动态角色的配置功能如下:
开发版流程中心设置动态角色
2)审批方式
审批方式常放在设置审批人之后,根据审批人数量决定是否显示多人设置,当多人审批时需选择审批方式:
🔹会签(需所有审批人同意)
🔹或签(一名审批人同意即可)
🔹依次审批(按顺序一次审批)
飞书设置审批人
3)表单权限
每个节点可设置审批人对表单字段的查看/编辑权限。
钉钉设置表单权限
4)更多操作权限
常见的更多操作权限主要有是否可回退、回退节点、是否可转发、转派、撤回、打印等。
轻流设置节点操作权限
4、更多流程设置
在搭建完流程主体之后,可对该流程进行整体配置,根据流程重要程度、业务需要赋予相应的功能,常见设置项如下:
飞书流程高级设置
三、总结
线上化办公已达到一定覆盖率,流程搭建线上化也是大势所趋,无论是使用已有平台提供的流程引擎或自主设计开发,都需要先对其中的字段、功能了解清楚,了解已有流程配置方式,再根据业务目标进一步优化,甚至可结合开发需求提供高级配置版本,提高表单开发效率,保证流程操作与页面的一致性。