概述
工作流引擎是用来解决流程性业务的任务划分、流程编制、任务分配和时间管理的业务引擎。它包括以下几个核心工作:
- 业务的任务划分,将业务划分为独立的多个步骤,这些任务在时序上可能有依存关系,但是在操作时是互不相干的,所以可以由不同的人来操作,甚至在不同的业务系统中操作。
- 通过图形化的工具绘制流程,将上面的业务连接起来。流程应该支持分支、循环、多实例等等方式,所以每个业务步骤不是一定要执行,也不一定只执行一次。
- 将流程上的业务根据组织机构、角色、项目组(办件角色)等等权限信息分配给指定的人。
- 对流程中的业务进行时间约束,对流程中的事件进行处理。
基本概念
工作流引擎作为业务的状态管理和任务分配机制的管理者,一般独立于业务系统单独运行。先腾的工作流引擎也是作为服务单独运行的,它和业务系统之间通过http+json接口方式通讯,工作流引擎开发了一个客户端工具屏蔽了接口的细节,可以作为本地服务一样直接使用。在介绍工作流引擎的细节之前我们先了解一下南大先腾工作流引擎涉及的一些最基本概念。
流程节点
流程中的节点分为三类:
- 业务节点。即业务操作节点,它又分为两类:交互节点和自动处理节点。通常我们说的节点都是指交互操作节点。这个节点一般会绑定到一个业务系统界面或者一个自定义表单。
- 路由节点。这类节点是用来决定路由走向的节点,通常有:分支路由、并行路由、多实例路由、汇聚路由、游离路由等等。
- 辅助节点。作为一个标志的节点,目前只有开始节点和结束节点。
节点阶段
一个比较复制的流程需要对节点进行分组,比如:分为前期调研阶段、执行阶段和验收阶段。阶段没有特别的意义。在流程中主要有两个作用:
- 便于按阶段统计分析。
- 每个阶段可以有不同的时间限制。
组织机构
工作流引擎中的任务分配是基于一套组织机构树来执行的。先腾研发框架提供了一套组织机构结构和用户机构关系计算引擎,工作流引擎沿用了这套结构,但是并不表示只有基于先腾框架的业务才能使用工作流引擎。因为框架的这套组织机构也没有指定其实现方式,只是一套接口,要求用户和机构之间是多对多的关系,所以使用工作流引擎只要实现这套接口就可以。工作流引擎内置了多种实现这套接口的方案,可以方便的和业务系统对接。如果多个业务系统使用同一个工作流引擎或者一个流程需要跨越多个业务系统,那么这些业务系统必须使用同一套用户机构体系。
流程组织
除了使用业务组织机构,一个流程也有自己的组织,比如流程中的申请人、经办人等等。另外如果同一个项目中发起多个不同的流程,但是他们需要共同的项目经理。这些都需要建立一个和流程相关的组织机构。具体内容后面流程任务分配和权限体系会详细的介绍。
流程变量
业务系统和流程引擎的数据交换主要是通过流程变量来进行。比如:一个请假流程中的分支路由需要根据请假的类别或者请假的天数来判断走不同的分支,就需要关于请假类别和请假天数的流程变量。
详细介绍
后续分五个页面来介绍南大先腾工作流引擎: