首页 > 其他分享 >Flowable工作流简介

Flowable工作流简介

时间:2024-05-21 17:09:20浏览次数:14  
标签:XML 引擎 定义 Flowable 简介 流程 工作 实例

1. 简介

Flowable是一个使用Java编写的轻量级业务流程引擎。Flowable流程引擎可用于部署BPMN 2.0流程定义(用于定义流程的行业XML标准), 创建这些流程定义的流程实例,进行查询,访问运行中或历史的流程实例与相关数据等。Flowable可以十分灵活地加入你的应用/服务/构架。可以将JAR形式发布的Flowable库加入应用或服务,来嵌入引擎。 以JAR形式发布使Flowable可以轻易加入任何Java环境:Java SE;Tomcat、Jetty或Spring之类的servlet容器;JBoss或WebSphere之类的Java EE服务器,等等。

另外,也可以使用Flowable REST API进行HTTP调用。也有许多Flowable应用(Flowable Modeler, Flowable Admin, Flowable IDM 与 Flowable Task),提供了直接可用的UI示例,可以使用流程与任务。

 

2. 系统原理

2.1 创建流程引擎

初始化ProcessEngine流程引擎实例。这是一个线程安全的对象,因此通常只需要在一个应用中初始化一次。 ProcessEngine由ProcessEngineConfiguration实例创建。该实例可以配置与调整流程引擎的设置。

通常使用一个配置XML文件创建ProcessEngineConfiguration,但是(像在这里做的一样)也可以编程方式创建它。 ProcessEngineConfiguration所需的最小配置,是数据库JDBC连接.

 

2.1 部署流程定义

l 开始事件:图中用细线圆圈来表示,是流程实例的开始点

箭头:表示节点之间的流转指向。

l 用户任务: 在图中用左上角有人的圆角矩形表示,这些是需要用户来操作的节点。图中有两个,第一个表示需要经理进行审批来同意或拒绝,第二个表示用户来确认销假。

排它网关: 用叉形符号填充的菱形表示,从该图中出来的箭头往往有多个,但只有一个满足条件,流程会沿着满足条件的方向流转。

自动化任务 :左上角有齿轮形状的的圆角矩形,表示自动执行的节点。图中上面的表示请假被经理同意后自动注册通知到外部系统,下面的表示请假被经理拒绝后自动发邮件通知给申请人。

结束事件: 图中用粗线圆圈表示,表示流程的结束。图中上面的结束事件表示请假成功结束,下面的表示请假失败结束。

 

 一般来说,这样的流程定义使用可视化建模工具建立,如Flowable Designer(Eclipse)或Flowable Web Modeler(Web应用),保存后可得到bpmn20.xml格式文件

每一个步骤(在BPMN 2.0术语中称作活动(activity))都有一个id属性,为其提供一个在XML文件中唯一的标识符。所有的活动都可以设置一个名字,以提高流程图的可读性。

 活动之间通过顺序流(sequence flow)连接,在流程图中是一个有向箭头。在执行流程实例时,执行(execution)会从启动事件沿着顺序流流向下一个活动。

 离开排他网关(带有X的菱形)的顺序流很特别:都以表达式(expression)的形式定义了条件(condition) 。当流程实例的执行到达这个网关时,会计算条件,并使用第一个计算为true的顺序流。这就是排他的含义:只选择一个。当然如果需要不同的路由策略,可以使用其他类型的网关。

 这里用作条件的表达式为${approved},这是${approved == true}的简写。变量’approved’被称作流程变量(process variable)。流程变量是持久化的数据,与流程实例存储在一起,并可以在流程实例的生命周期中使用。

在这个例子里,我们需要在特定的地方(当用户任务提交时,或者以Flowable的术语来说,完成(complete)时)设置这个流程变量,因为这不是流程实例启动时就能获取的数据。

 有了流程BPMN 2.0 XML文件,下来需要将它部署(deploy)到引擎中。部署一个流程定义意味着:

 l 流程引擎会将XML文件存储在数据库中,这样可以在需要的时候获取它。

 l 流程定义转换为内部的、可执行的对象模型,这样使用它就可以启动流程实例。

 将流程定义部署至Flowable引擎,需要使用RepositoryService,其可以从ProcessEngine对象获取。使用RepositoryService,可以通过XML文件的路径创建一个新的部署(Deployment),并调用deploy()方法实际执行:

 可以通过API查询验证流程定义已经部署在引擎中。通过RepositoryService创建的ProcessDefinitionQuery对象实现。

 

 

标签:XML,引擎,定义,Flowable,简介,流程,工作,实例
From: https://www.cnblogs.com/heyi-77/p/18204524

相关文章

  • BOSHIDA 了解AC/DC电源模块的工作原理及性能
    BOSHIDA了解AC/DC电源模块的工作原理及性能AC/DC电源模块是将交流电转换为直流电的设备,广泛应用于各种电子设备中。它的工作原理及性能对于保证设备的正常运行至关重要。 首先,AC/DC电源模块的工作原理是基于电力电子的原理,利用半导体器件如整流器、滤波器和调整器等将交流电......
  • 工作流框架Flowable 简介
     Flowable基本操作1.创建ProcessEngine创建一个基本的maven工程,可以是Eclipse也可以是其他IDEA。然后添加两个依赖Flowable流程引擎。使我们可以创建一个ProcessEngine流程引擎对象,并访问FlowableAPI。一个是MySQL的数据库驱动在pom.xml文件中添加下列行:<dependency>......
  • 【日记】被零食有鸣的工作人员轰出来了……(544 字)
    正文今天全在睡觉。早上睡到十点起床,下午又从三点睡到五点,我愿称之为睡觉仙人……这就是上班的副作用吗……下午同事一个电话打过来,决定不接。周末同事来电话,准没好事。结果她微信发消息问,要不要出去走走,一个人有点闷。我都惊了,头一回。我还以为又要我做啥事儿呢。于是......
  • 消防二总线通信原理简介
    典型应用图 首先需要设计一种可编码寻址通用联动控制接口件。一方面它作为二总线上的挂接设备——能被区域控制器寻址,同时返回自身的状态信息;另一方面当区域控制器需要联动它所控制的消防设备时能提供控制触点。如图①,通用联动接口通过桥式输入电路与总线相联,桥式输入电......
  • OpenVX代码优化裁减简介
    OpenVX代码优化裁减简介 在OpenVX中,裁减(Reduction)是一种操作,它对数组或图像中的元素执行聚合操作。这里的“裁减”是指将大型数组或图像减少到单一数值的过程。OpenVX提供了几种不同的裁减操作,包括求和(Summation)、平均(Average)、最小值(Minimum)、最大值(Maximum)和累加器(Accumulat......
  • [20240515]vim bccalc_XXX.vim使用插件简介.txt
    [20240515]vimbccalc_XXX.vim使用插件简介.txt--//这是我改写vim.org网站的一个调用bc做计算的一个插件bccalc.vim,感觉自己越写越复杂.做一个介绍,便于自己查阅.--//另外注意如果选择多行,结尾要像C语言一样使用分号(;).--//我已经统一在selectvisualnormal模式都是<leader>作......
  • Android/iOS版本号机制简介
    Android和iOS有各自的版本号机制,但都根据版本号的用途,分为了2类:程序向的构建版本号:用户不可见影响APP的功能:覆盖安包(低版本覆盖高版本会提示异常或失败)影响APP商店提审:每个提审包都必须必上一次版本号高用户向的显示版本号:用户可见影响APP的版本号显示:系统设置里可......
  • Linux 文件系统(三) --- overlayfs简介
    PS:要转载请注明出处,本人版权所有。PS:这个只是基于《我自己》的理解,如果和你的原则及想法相冲突,请谅解,勿喷。环境说明  无前言  对于overlay文件系统来说,我以前只是听过,具体貌似docker里面使用了相关技术,但是也仅仅限于听过了。  最近,由于需要通过tar来备份一个系......
  • 提升工作效率工具
    FScapture(滚动截屏)➕Windows,长截图超好用我分享Lucy,图标整理软件,他能收纳软件启动项。并自定义功能分区。很好的提升了我的工作效率。讯飞星火+Windows或者手机。方案编写,问答。AI智能。FileZilla+Windows服务器上传下载文件很方便Notion+Mac:Notion集笔记、知识管理、项......
  • 云渲染为什么是独立设计师和工作室的首选?
    独立设计师和小型工作室常常寻求更高效的工具来完成创意项目,云渲染因此成为他们的首选。其关键优势在于显著提升工作效率,让用户无需担心电脑性能问题,也不必盯着渲染进度条干着急。通过简单的操作,便可利用强大的云计算快速完成渲染,极大地解放了创意工作者的时间和精力。如此一来,云......