flowable流的配置过程流程API

news/2024/10/18 8:28:46/

1、流程图绘制与绑定变量

使用Flowable提供的工具或第三方工具绘制流程图(BPMN 2.0标准)。
给流程图绑定流程变量,这些变量将在流程执行过程中被使用。

2、部署流程图

使用RepositoryService API部署流程图,生成流程定义。这通常涉及调用createDeployment()方法并添加BPMN文件。
部署后,Flowable会在数据库中创建相应的记录,如act_re_deployment和act_re_procdef。

3、开启流程实例

使用RuntimeService API开启流程实例。调用startProcessInstanceByKey()或类似方法,传入流程定义的键(Key)或ID。
开启流程实例后,Flowable会在数据库中生成流程实例ID,并将模型的各个节点信息插入到act_ru_actinst等运行时表中。
同时,Flowable还会将流程实例的参与人信息插入到act_ru_identitylink表中,并将运行中的变量ID插入到act_ru_variable表中。

4、执行任务

使用TaskService API查询和处理任务。例如,可以调用createTaskQuery()方法查询待办任务,并使用complete()方法完成任务。
在任务执行过程中,可以使用IdentityService API处理用户身份信息,如查询用户、组等。

5、表单服务

如果流程中涉及表单处理,可以使用FormService API。但请注意,Flowable本身并不直接提供表单渲染功能,通常需要与前端框架或自定义的表单处理逻辑结合使用。

6、历史服务

使用HistoryService API查询历史数据,如已完成的任务、流程实例等。这对于审计和报告非常有用。

7、管理服务

使用ManagementService API执行管理操作,如数据库表结构的更新、作业调度等。

8、动态BPMN服务(可选)

如果需要在运行时动态修改BPMN流程定义,可以使用DynamicBpmnService API。但请注意,这通常是一个高级功能,需要谨慎使用。

9、异常处理

在Flowable中,异常处理通常通过配置BPMN流程中的边界事件或调用服务任务的异常处理逻辑来实现。此外,还可以使用Flowable提供的异常策略来定义全局的异常处理规则。

10、查询API

Flowable提供了丰富的查询API,用于查询流程定义、实例、任务、变量等信息。这些API通常与RepositoryService、RuntimeService、TaskService等服务结合使用。

11、变量管理

使用Flowable的变量API可以在流程执行过程中创建、更新和查询变量。这些变量可以是简单的数据类型(如字符串、整数等),也可以是复杂的对象或JSON数据。

12、表达式

Flowable支持在BPMN流程定义中使用表达式(如UEL表达式)来动态计算值或引用变量。这允许在流程中实现更复杂的逻辑。

13、单元测试

在开发过程中,使用单元测试来验证Flowable流程的正确性是非常重要的。可以使用JUnit等测试框架编写测试用例,模拟流程执行并验证结果。

14、Web应用中的流程引擎

如果正在开发一个Web应用并希望在其中集成Flowable流程引擎,可能需要考虑如何将Flowable与您的Web框架(如Spring MVC、Struts等)结合使用。这通常涉及配置流程引擎的Bean并在控制器中调用相应的API。


http://www.ppmy.cn/news/1469070.html

相关文章

win11联想版,如何下载Visual Basic 6.0精简版

一、背景 Visual Basic 6.0精简版、Visual Basic Mini,等 Win11系统,网上找压缩包下载,无法成功。 二、解决 通过下载联想应用商店,在应用商店中下载 步骤一 hi,推荐你使用联想应用商店,商店提供上万款…

Oracle数据库查询常用语句

Oracle数据库查询常用语句 文章目录 Oracle数据库查询常用语句一、时间查询1、查询当天得数据 二、 一、时间查询 1、查询当天得数据 1、字段名为PLAN_DAY,字段类型为DATE 使用SYSDATE函数来获取当前日期,并且使用比较运算符来过滤出当天的记录。Oracle…

Linux 性能优化基础

文章目录 常见指标分类(USE法)常见性能工具CPU性能工具内存性能工具文件系统和磁盘I/O性能工具网络性能工具 根据指标找工具CPU性能内存性能文件系统和磁盘I/O网络性能 根据工具找指标CPU性能内存性能文件系统和磁盘I/O网络性能 CPU性能分析一般步骤内存…

C++类与对象(拷贝与类的内存管理)

感谢大佬的光临各位,希望和大家一起进步,望得到你的三连,互三支持,一起进步 个人主页:LaNzikinh-CSDN博客 文章目录 前言一.对象的动态建立和释放二.多个对象的构造和析构三.深拷贝与浅拷贝四.C类的内存管理总结 前言 …

Flink Sql-用户自定义 Sources Sinks

动态表是 Flink Table & SQL API的核心概念,用于统一有界和无界数据的处理。 动态表只是一个逻辑概念,因此 Flink 并不拥有数据。相应的,动态表的内容存储在外部系统( 如数据库、键值存储、消息队列 )或文件中。 …

【干货】视频文件抽帧(opencv和ffmpeg方式对比)

1 废话不多说,直接上代码 opencv方式 import time import subprocess import cv2, os from math import ceildef extract_frames_opencv(video_path, output_folder, frame_rate1):"""使用 OpenCV 从视频中抽取每秒指定帧数的帧,并保存到指定文件夹…

进来学习Dockerfile制作各式各样的镜像

Dockerfile制作镜像 文章目录 Dockerfile制作镜像资源列表基础环境一、Dockerfile的构成二、镜像介绍2.1、基于现有镜像创建2.2、基于模板创建镜像2.3、基于Dockerfile创建 三、使用Dockerfile制作镜像3.1、构建SSHD镜像3.1.1、下载基础镜像3.1.2、建立工作目录3.1.3、创建并编…

Redisson知识

使用Redission获取锁 RLock lock redisson.getLock("my-lock"); 一、Redisson使用不指定锁过期时间的方式加锁: lock.lock(); 特点: 1.使用Redisson加的锁,具有自动续期机制,如果业务运行时间较长,运行…