宜搭的流程之道

什么是工作流

什么是工作流,工作流是一系列相互连接、自动进行的业务按照一定的规则有序运行的活动或任务。在工作流尚未普及之前,公司大多以纸质方式通过人工流转实现业务审批,效率比较低下,随着科技的进步,工作流逐渐代替了线下的手工劳动,通过既定的规则就可以实现业务表单的提交、审批、修改、跟踪、通知、管理、查询、统计及打印等多种多样的高级功能,极大的提高了工作效率。

宜搭的流程设计

客户的需求是多样的,宜搭在发展的过程中承接了由简单到复杂的多样化流程诉求,对流程的能力有较高的要求和挑战,下面从几个方面介绍宜搭在实现流程功能上的一些设计和思考。

遵循规范

宜搭使用的工作流底层技术来自阿里巴巴集团工作流引擎,在设计上遵循BPMN2.0规范,规范中提到一个工作流的基本架构需要一般包括:宜搭的流程之道

图1-1 BPMN2.0基础元素

阿里工作流引擎在设计时对规范进行了吸收和整理,为用户抽象了更加方便、容易理解的流程模型,整体包括如下几个模型抽象:宜搭的流程之道

图1-2 阿里巴巴工作流引擎基础元素

开始节点: 对应规范中的开始事件,用于启动一个流程

人工节点: 对应规范中的人工任务,需要流程参与人操作的节点

自动节点: 它是对自动任务的汇总,包括了规范中的服务调用、脚本执行等概念,表示不用人工干预的流程环节,流程本身会根据配置自动执行

分支节点: 对应规范中的网关,用于实现任务的并行

聚合节点: 一般和分支节点配合使用,用于实现并行任务完成后流程的运行逻辑

结束节点: 对应规范中的结束事件,指整个流程的完成

线: 对应规范中的顺序流,用来控制流程的走向

宜搭从用户需求出发,有选择性的对接工作流引擎的能力,避免因过度复杂的流程设计给用户带来较高的学习成本。对于未来复杂审批的场景,宜搭也可以依靠强大的工作流引擎及其扩展点快速的支持。

降低门槛

宜搭的用户定位是无编码基础的普通用户,希望能够赋能非开发人员实现自己的业务流程,帮助业务人员快速地将业务诉求向数据模型的转化,宜搭实现降低门槛的主要途径有两个方面:一是以可视化的方式搭建页面和流程;二是简化领域模型,通过较少的配置进一步简化用户操作,宜搭在流程功能的在设计上就有这样的考虑,如下图所示:
宜搭的流程之道

图2-1 宜搭简单流程示意图 宜搭的流程之道

图2-2 宜搭流程节点添加界面

对于简单流程的场景,用户通过点选的方式就可以快速设计流程,在节点形式上,宜搭屏蔽了许多用户不需要感知的类型,如开始节点、结束节点,减少对用户的干扰;在一些概念的透出上也进行了一定的包装,尽量贴近业务人员的认知,如审批人,执行人;在审批人的设置上宜搭提供了指定人员、角色、接口人、环节、变量和服务等6种设置审批人的方式,满足大多数场景下审批人设置的需求;在每个节点上还提供了满足个性化需要的节点配置,例如节点按钮的展示,每个节点显示内容的配置等,所有这些都是为了让用户能低成本的构建一个简单流程。

功能进阶

业务是多变的,不同的业务复杂度对流程能力的要求不同,例如按条件配置不同的流程分支、支持子流程功能、通过服务对接外部系统获取审批人以及流程流转过程中的系统扩展点,针对这类需求宜搭有自己的一套功能闭环予以支持。

首先是对工作流引擎的扩展,宜搭通过「审批条件」的设置自动帮助用户枚举出可能的流程分支,用户在不同的分支中配置流程,流程分支之间可以通过「复制」功能提高配置效率,所有分支在宜搭处理后将会适配工作流引擎标准的流程图,将不同分支以线规则的方式映射到流程图中,实现流程调度时的按条件流转。

其次是环节,环节是一个类似子流程功能的配置,通过环节可以将具有一定业务关联性的审批节点纳入一个环节节点运行,环节内部所有节点运行完成流程才会运行到下一个节点,如图3-1所示,环节内是多个审批节点在运行。
宜搭的流程之道

图3-1 环节节点示意图

服务节点是宜搭流程和外部系统对接的一种途径,当流程运行到服务节点时,宜搭将会调用服务节点的配置从外部服务获取当前节点的审批人,调用过程如下:
宜搭的流程之道

图3-2 服务节点调用逻辑

宜搭在流程上的扩展借助的是宜搭的函数功能,通过宜搭提供的「公式」可以方便在流程发起、结束、审批同意、审批拒绝等阶段内置自己的业务逻辑,例如在流程发起时进行流程表单的数据校验,在流程结束时发送审批结果的通知,或者在审批时通过服务调用实现外部系统的接口对接。为流程提供扩展能力的宜搭架构如图所示:

图3-3 宜搭扩展能力架构

整体上分为三个模块:生命周期,事件驱动,业务单元。下面以宜搭流程为例简单说明这三个模块的作用。

生命周期
生命周期是宜搭对单据表单和流程表单可扩展点的切分,分为发起、审批前、审批后、结束四个阶段,每个阶段可以进行业务扩展

事件驱动
事件驱动是从系统角度考虑的,如何在满足业务需求多变的情况下提高系统的可扩展性,以事件的方式进行衔接可以很好的做到系统功能的解耦,每个生命周期的阶段会抛出多种业务事件,经过事件层的处理,交由具体的业务层处理。

业务单元
业务单元是宜搭对常见业务的抽象,以「公式」的方式进行展现,用户通过对公式的组合实现自己特有的流程配置,每个业务单元可以通过宜搭的公式服务执行。

通过宜搭的扩展能力,可以深度支持用户在流程上的特殊需求,减少二次开发带来的成本。

高级流程

宜搭为不同需求的用户设计了两个版本的设计器:简单流程设计器和高级流程设计器。前文的介绍是围绕简单流程设计器进行的,因为它已经可以满足大多数用户的流程诉求,但是对于业务非常复杂的流程而言,简单设计器的流程搭建和呈现方式就显得有些不足,此时可以通过高级流程设计器来承载。

高级流程设计器也是可视化设计器,不同的是开放给用户的概念和选择性更多,需要一定的理解和上手成本,如下图所示是一个用高级流程设计器搭建的简单流程:
宜搭的流程之道

图4-1 高级流程设计器示意图

高级设计器主要由三部分组成:左侧节点栏,中间设计区,右侧属性区。

节点类型
高级设计器比简单设计器多出了分支和聚合节点,可用于多分支并行场景的业务流程,增加了自动节点可以在业务流转过程中由流程自身调用完成一些业务逻辑,如参数计算、服务调用。

流程设计
高级设计器要求用户知晓不同节点、线的属性,尤其是「线」上的规则需要自行配置,线上的规则会直接影响流程的走向,这和简单设计器有很大的区别,在配置流程时需要格外注意,以免流程运行错误。

属性设置
在简单设计器的节点属性基础上开放了更多新的特性,例如节点的静态/动态设置、自动完成规则、允许执行人为空等,配置人员可以按需取用。

高级设计器采用了配置化的方式进行实现,对于宜搭特有的功能,例如公式,都是以配置项的方式开放在设计器中,未来可以实现按照企业、应用等粒度的差异化配置,做到千企千面。

结语

宜搭的流程能力源于阿里巴巴集团工作流,经过了阿里复杂业务的打磨和历练,有能力应对各种复杂的业务诉求,宜搭将其核心的能力进行了包装,实现业务人员的流程自交付,随着未来业务场景的不断丰富,宜搭的流程能力也会不断增强,敬请期待!

上一篇:14 - XML、JSON、PLIST对比和APP生命周期


下一篇:p46 方法的定义和调用