分析 | 自助搭建工作流的流程引擎

工作流在企业中承担着“生命血液”的作用,让所有流程按部就班地创建、流转、完成,是办公线上化的重要功能。

流程引擎的作用即用户可自主搭建表单、配置/发布流程审批节点,不需要开发参与,或给开发提供高级功能,能快速搭建复杂表单,生成用户可使用的表单与工作流,不需要从头开发,从而达到快速上线新流程、流程功能/风格/配置统一的目的。

各大办公协作平台都有自己的流程引擎来配置工作流,如钉钉、飞书、企业微信的审批后台,也有专门做好工作流一件事的平台,比如轻流。通过体验、梳理这几个平台的相关功能,以及为自己公司设计了一版流程中心后,对工作流的特性、重点逐渐清晰。

一、流程中心总体架构

流程中心主要作用可分为前后端功能:

  • 🔹后台配置——流程引擎:在工作流配置中,一个流程需要有基础信息、表单、审批流,来创造一个完整的审批表单,同时根据需要,提供一些高级功能设置。

  • 🔹前台处理——审批单据:一条流程发布后,审批流节点上的人员将会看到表单,然后根据在审批流上配置的权限对单据进行同意、不同意、提交、转派等处理,实现真实流程流转。

二、流程引擎

根据前文,流程引擎的主要内容有基础信息、表单设计、审批流设计、以及提高能力的更多设置。

1、基础信息

  • 🔹流程名称:即用户在使用时,看见并能创建的流程名;

  • 🔹可见/可用权限:配置哪些人及部门可以看到流程入口,配置哪些人及部门可以看见且可使用此流程,注意具体的流程实例是否可见是由审批流节点决定的;

  • 🔹流程管理员:流程在后台对其可见,且可对流程进行修改、发布、启用停用、删除等操作。

还有一种比较特殊的角色,比如流程负责人,也许不会在后台修改流程,但需要能看到所有人发起的所有流程实例从而进行管理和统计,此时可提供配置字段“可查看全部流程”来配置相关人员。

2、表单设计

1)表单搭建

表单模块往往采用拖拉拽的形式,让用户选择需要的组件拖拽到画布中组成表单,至于拖拉拽的交互方式各个平台大同小异,而且也比较简单和成熟。

但提供的组件和其附有的功能能大大提升用户在填写表单时的体验,在维护表单组件时,就应考虑到填写表单时的验证、反馈、自动键盘等体验。

轻流组件示例

2)组件分类

表单组件首先可大致分为两类:

  1. 基础组件:无数据传输,仅供填写的组件,常见的有输入、单选、多选、数字、日期、时间、地点、电话、邮箱、图片、附件等,注意要附带相关格式验证、键盘在数字、字母、邮箱及其他可能数据下的自动切换。

  2. 关联组件:这是在基础组件的基础上,梳理出通用字段与数据库关联形成配置组件,可从系统获取有组织性、正确性的数据,如部门、人员、定位,也可关联已有字段自动获取信息,比如关联工号字段可带出姓名、手机号、剩余假期等字段。

轻流组件示例

3)组件配置

每个组件在被选择后,即为表单中的一个字段,字段由表头、填写区域组成,需要配置相应的属性:

a. 字段属性

一个组件即表单中的一个字段,需要有字段名称。

b. 填写属性

  • 🔹暗文:可用作指导用户的简单提示;

  • 🔹内容填写方式:手动填写,用户使用键盘输入;扫码,可或仅能通过扫描二维码/条码输入,常会在填写区域上防止扫码图标作为提示;关联带出,通过关联到数据库,再设定与前置字段的关联公式,来自动带出填写内容,之前介绍的关联组件在此处即默认帮用户配置好了关联数据库。

c. 填写限制

字数限制、是否必填等。

d. 显示逻辑

  • 🔹常在:字段默认显示;

  • 🔹条件显示:某些字段是在触发条件后才出现的,比如金额字段的填写内容大于1000时,才出现上传凭证图片的字段。

3、流程设计

流程设计对普通用户来说,大概是学习成本最大的一个模块,主要是选择审批人和审批方式的选项繁多,而且用词专业性较高,所以在当前的流程设计模块中,大部分字段后都跟着说明,来告知用户选择后的审批效果。

在流程设计模块中,首先通过可视化界面将流程架构搭建出来,常有以下节点:发起人、审批人、办理人、抄送、条件。

  • 🔹发起人:即可发起此流程实例的人,已有平台中有的可在这配置范围,此时可能与流程基础信息中的可用权限重复,建议仅保留基础信息处,因为当后期流程基本不变,但需要经常维护可用范围时,只需修改和发布基础信息中的内容,否则每次发布都会重新发布流程,可能导致不稳定;

  • 🔹审批人:通常是只需要检查内容是否有问题、判断流程是否流转下去的决策者,在前端审批界面显示的主要操作为同意、不同意;

  • 🔹办理人:通常为需完成表单中任务后再继续提交到下一个节点,任务可为填写/修改内容、线下活动等,在前端审批界面显示的主要操作为:提交;

  • 🔹抄送:指被通知查看表单的人员,只能查看表单,不可编辑;

  • 🔹条件:指同一条流程有多条分支,不同分支下可能有不同审批节点和审批人,根据条件判断进入哪条分支,而条件通常是表单页的金额、数字、下拉框等字段,或部门小组等固有数据。

针对审批人、办理人、抄送人节点,需要设置每个流程实例的真实节点人员,以及该节点的权限。

1)设置审批/办理/抄送范围

主要可分为以下四类:

a. 发起人自选

需要发起人在创建流程实例时就填写该节点的审批人。

b. 指定成员

直接在流程引擎中选择审批人,所有用户创建的流程实例中节点审批人不会变化。

c. 角色

角色指一个人群的集合,通常有一个设置页专门维护角色里的人员。

  • 🔹若在角色维护页面中设置了每个人的负责范围,就能达到条件分流的目的,如吴琪琪负责部门A,张三负责部门B,那么部门A成员提交的单据由吴琪琪审批,部门B提交的单据由张三审批。

  • 🔹若未设置每个人的负责范围,通常这个节点由这个角色中的所有人同时审批。

d. 动态角色

动态角色也是一群人的集合,但不需要提供给用户配置页来维护角色中的人员,而是从系统抓取拥有这个角色的人,同时还会赋予审批条件流,通常需要开发来维护好供用户选择。

  • 🔹常用的动态角色会被直接放出来作为一个范围选项,这属于体验优化,但根据属性归纳都属于动态角色,比如上级、部门负责人是存在于组织架构中已有的角色,且绑定部门形成条件流,审批节点中带出来的审批人会根据发起人的所属组织变化,所以我们常见的流程引擎中可直接选择上级、连续上级、部门负责人,这就是已维护好的动态角色;

  • 🔹动态角色与角色的差异主要在于不需要用户手动维护角色中人员的负责范围,动态角色在创建的时候往往就已经绑定好了组织,取人时层级是组织-角色-人员,而角色是取人层级是角色-负责组织-人员;

  • 🔹如果是为明确的客户或业务开发流程引擎,可以根据其需要提前维护更多的动态角色;

  • 🔹若需提供开发使用的高级版本,可直接给出动态角色的配置功能如下:

开发版流程中心设置动态角色

2)审批方式

审批方式常放在设置审批人之后,根据审批人数量决定是否显示多人设置,当多人审批时需选择审批方式:

  • 🔹会签(需所有审批人同意)

  • 🔹或签(一名审批人同意即可)

  • 🔹依次审批(按顺序一次审批)

飞书设置审批人

3)表单权限

每个节点可设置审批人对表单字段的查看/编辑权限。

钉钉设置表单权限

4)更多操作权限

常见的更多操作权限主要有是否可回退、回退节点、是否可转发、转派、撤回、打印等。

轻流设置节点操作权限

4、更多流程设置

在搭建完流程主体之后,可对该流程进行整体配置,根据流程重要程度、业务需要赋予相应的功能,常见设置项如下:

飞书流程高级设置

三、总结

线上化办公已达到一定覆盖率,流程搭建线上化也是大势所趋,无论是使用已有平台提供的流程引擎或自主设计开发,都需要先对其中的字段、功能了解清楚,了解已有流程配置方式,再根据业务目标进一步优化,甚至可结合开发需求提供高级配置版本,提高表单开发效率,保证流程操作与页面的一致性。

(0)

相关推荐

  • 低代码开发平台

    今天准备再谈下对低代码开发平台的扩展思考,最近2到3年,低代码开发平台可以算作一个小热点,不论是传统的BPM厂家,还是原来的快速开发平台厂家,包括还有一些中台建设厂家都逐步推出自己的低代码开发平台. ...

  • .NET CORE敏捷开发框架,企业信息化自主化解决方案

    什么是力软.NET CORE敏捷开发框架 力软.NET CORE敏捷开发框架是一个高效率.高颜值.易上手的跨平台全开源快速开发平台. 高效率 框架内置企业信息化系统中常用的基础功能组件和高效的可视化开 ...

  • 名企实践:你设计的审批流程表单好用吗?

    总是听到很多用户抱怨,"请假怎么就这么难呢,要填这么多东西","费用报销申请单有些专业术语不知道什么意思,非得打电话找人问,要不然填错了被驳回重提,很浪费时间" ...

  • 老板要我开发一个简单的工作流引擎

    极客挖掘机 今天 第1关 一天,老板找到我,说要做个简单的工作流引擎. 我查了一天啥是工作流,然后做出了如下版本: 按顺序添加任意个审批人组成一个链表,最后加一个结束节点 记录当前审批人,当审批完后, ...

  • 第三方系统向泛微OA系统推送消息

    以下操作案例中关于第三方系统向泛微OA系统的移动端和电脑端版本推送消息说明: ·  移动端使用的是泛微系统登录账号(工号)来最终实现消息的推送 ·  电脑端使用的是泛微系统用户表中的id字段来最终实现 ...

  • 使用工作流引擎的好处

    所谓工作流引擎是指workflow作为应用系统的一部分,并为之提供对各应用系统有决定作用的根据角色.分工和条件的不同决定信息传递路由.内容等级等核心解决方案.工作流引擎包括流程的节点管理.流向管理.流 ...

  • 基于python的django框架的workflow工作流引擎学习

    工作流就是"业务过程的部分或整体在计算机应用环境下的自动化".将一组任务组织起来以完成某个特定的过程:定义了任务的触发顺序和触发条件,每个任务可以由一个或多个软件系统完成,也可以由 ...

  • .NET 开源工作流: Slickflow流程引擎高级开发(五) -- 引擎和外部事件的交互

    前言:引擎组件的基本职责是负责流程流转,但是在流转过程中,除了对内部控制逻辑进行实现外,也不可避免的要去调用或者响应外部事件.本文主要描述外部事件的类型,以及调用方法过程. 1. 外部事件的类型 外部 ...

  • 评估工作流程引擎的30个关键技术点

    1.1:支持国际化 1.如果使用工具包的模式开发,支持国际化的工作由自己完成的. 2.如果使用Ccbpm 的前端,主要的功能页面已经支持, 3.后台的设置的页面全部中文,没有做支持国际化. 1.2:能 ...

  • 搭建入职流程中的第一道防线

    作者/彦忱 设计/彦忱 本文字数/1334字 阅读时长/4分钟 小案例 2011年10月25日,小张到某汽车销售公司求职,由该公司的法定代表人面试合格后,担任公司出纳一职:销售公司未与小张签订劳动合同 ...

  • 预算管理:采用系统方法论分析和搭建预算管理系统

    企业组织以及企业的预算管理都是以系统的方式存在.运转,并发挥作用. 在<关于思考和解决问题的方法论的一些总结>中,我们思考了系统的几个基本要素:输入/输出.正反馈回路和负反馈回路.那么这些 ...

  • springboot2.5.2 整合 flowable6.6.0 流程引擎

    springboot2.5.2 整合 flowable6.6.0 流程引擎

  • flowable流程引擎通过模型ID部署流程

    /**部署流程定义 */ @RequestMapping(value="/deployment") @RequiresPermissions("fhmodel:edit& ...

  • springboot 集成 activiti 流程引擎

    springboot 集成 activiti 流程引擎

  • springboot 整合 flowable 流程引擎

    springboot 整合 flowable 流程引擎

  • 认识工作流程引擎

    相关概念 BPM:Business Process Modeling,业务管理流程,是对实现生活工作中的流程问题进行抽象建模来推导解决方案. BPMN:Business Process Model a ...