工作流引擎
2020-04-08 18:16:54 0 举报
AI智能生成
工作流引擎
作者其他创作
大纲/内容
概述
什么是工作流
工作流就是通过计算机对业务流程自动化执行管理。
它主要解决的是“使在多个参与者 之间按照某种预定
义的规则自动进行传递文档、信息或任务的过程,从而
实现某个预期的业务目标, 或者促使此目标的实现”
它主要解决的是“使在多个参与者 之间按照某种预定
义的规则自动进行传递文档、信息或任务的过程,从而
实现某个预期的业务目标, 或者促使此目标的实现”
为什么使用工作流引擎
工作流引擎能够统一管理系统使用的流程,并可以
根据绘制好的流程图,执行跳转流程节点,并且常
见的工作流引擎都自带数据持久化功能,还提供了
丰富的API能够去操作持久化的数据,实现业务上
的功能
根据绘制好的流程图,执行跳转流程节点,并且常
见的工作流引擎都自带数据持久化功能,还提供了
丰富的API能够去操作持久化的数据,实现业务上
的功能
工作流引擎最常见用于审批流程中,现在一线互联网公司也开始使用,
并有快速推广的趋势,复杂繁多的业务流程如果采用if else实现那将是崩溃的,
代码不可维护,业务流程在代码中可读性很差,所以高人设计了业务流程
模型图示BPMN2.0,我们要做到就是把业务场景抽象为标准流程图,
把流程图丢到流程引擎中按流程定义约定逐步流转,很显然扩展性和业务
可描述性会好很多,所以工作流引擎主要用于解决复杂的业务,目前经常
被提起的中台系统抽象业务为服务,也涉及大量智能的业务流程引擎做支撑。
并有快速推广的趋势,复杂繁多的业务流程如果采用if else实现那将是崩溃的,
代码不可维护,业务流程在代码中可读性很差,所以高人设计了业务流程
模型图示BPMN2.0,我们要做到就是把业务场景抽象为标准流程图,
把流程图丢到流程引擎中按流程定义约定逐步流转,很显然扩展性和业务
可描述性会好很多,所以工作流引擎主要用于解决复杂的业务,目前经常
被提起的中台系统抽象业务为服务,也涉及大量智能的业务流程引擎做支撑。
BPMN
业务流程模型和符号 是由 BPMI(Business Process Management Initiative)
开发的一套标准的业务流程建模符号,使用 BPMN 提供的符号可以 创建业务流程
,是目前被各 BPM 厂商广泛接受的 BPM 标准
开发的一套标准的业务流程建模符号,使用 BPMN 提供的符号可以 创建业务流程
,是目前被各 BPM 厂商广泛接受的 BPM 标准
BPMN提供了清晰而精准的执行语义来描述元素的操作。
它还确保设计为业务流程执行的XML语言(如WS-BPEL)
,能够用这套以业务为中心的符号所可视化表示
它还确保设计为业务流程执行的XML语言(如WS-BPEL)
,能够用这套以业务为中心的符号所可视化表示
常见的工作流开源框架
Flowable
基于Activiti5.0版本单独开发的一套流程引擎
Activiti
市面上比较常见的工作流引擎开源框架
相同点
数据库表名基本相同,核心API也基本相同,只是包名可能不同
,学习Acitivi时的demo可直接在Flowable环境下去运行
,学习Acitivi时的demo可直接在Flowable环境下去运行
Flowable已经修复了activiti6很多的bug,可以实现零成本从activiti迁移到flowable
对比不同
框架发展前景
Flowable
Flowable今后的版本可能跟多偏向商业化版本,开源版本可能会维护较少
Activiti
核心人员离职,新版本动态不明
用户参与
1.绘制流程图
2.发布流程
3.用户参与审批
基础入门
1.集成Spring Boot,启动项目,生成流程引擎相关的数据库表
2.根据流程需求绘制并生成BPMN标准格式的XML文件(可用引擎自带的流程设计器完成)
基本开始结束节点创建
用户节点创建
节点之间连线,可设置连线中的条件
设置节点变量,节点用户等等
排他网关,并行网关了解与使用
生成流程图BPMN20.XML文件(流程设计器自带下载功能)
3.调用核心API,部署发布创建好的流程(可根据XML创建),也可放到工程指定目录下,由流程引擎自己发现并发布
4.通过代码调用核心API,启动创建一个流程实例,完成一个用户任务节点,观察核心数据表数据变化
5.走完流程,再观察数据库表数据变化
工作流设计
流程设计
流程设计器
Flowable
Flowable-Modeler
Activiti
Activiti-Modeler
开源前端框架
bpmn.js
表单设计
核心API
ProcessEngine
RepositoryService
主要作用,部署流程定义文件,管理流程定义实例
常见功能
流程部署
查询流程定义列表,一个流程定义对应多个流程实例(一对多关系)
删除流程定义
获取流程图片
RuntimeService
主要作用,启动流程,管理流程实例,设置获取流程变量
常见功能
查询运行中的流程实例列表
启动流程实例
TaskService
主要作用,处理任务、设置任务候选人等
常见功能
查询个人代办业务
完成任务
FormService
主要作用,获取任务的表单数据、提交完成一个任务、启动流程。
HistoryService
主要作用,查询流程历史记录、事件记录、变量记录。
常见功能
查询已办事项
查询流程历史活动信息
IdentityService
主要作用,创建用户、创建组、查询用户(组)。
ManagementService
主要作用,执行自定义命令、查询底层实体、数据表、提供更多的扩展功能
数据库表
ACT_RE_*
'RE'表示repository。 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等)
核心表
act_re_deployment
部署信息表,流程部署发布成功时会在该表插入一条记录
act_re_procdef
流程定义数据表,流程部署发布成功时会在该表插入一条记录
ACT_RU_*
'RU'表示runtime。 这些运行时的表,包含流程实例,任务,变量,异步任务,等运行中的数据
核心表
act_ru_execution
运行时流程执行实例表,当用户发起流程时会在该表插入记录
act_ru_task
用户任务表,记录用户任务
act_ru_variable
运行时变量表,记录流程运行时传递使用的变量信息
ACT_ID_*
'ID'表示identity。 这些表包含身份信息,比如用户,组等等
ACT_HI_*
'HI'表示history。 这些表包含历史数据,比如历史流程实例, 变量,任务等等
核心表
ACT_HI_PROCINST
历史流程实例表,可查询运行过的流程实例信息
ACT_HI_TASKINST
历史任务表,可用于查询用户流程历史记录
ACT_GE_*
通用数据, 用于不同场景下,如存放资源文件
核心表
act_ge_property
通用属性表
act_ge_bytearray
通用信息表,存储流程发布的资源信息
启动流程到完成所有任务之间的数据库变化
网路博客
0 条评论
下一页