1 Flowable简介

  • 什么是BPMN
  • 什么是Flowable
  • Flowable官网、开源社区
  • Flowable流程示例
  • 版权

什么是BPMN

先来看下百度百科的定义:
由BPMI(The Business Process Management Initiative)开发了一套标准叫业务流程建模符号(BPMN - Business Process Modeling Notation)。在 BPMI Notation Working Group超过2年的努力,于2004年5月对外发布了BPMN 1.0 规范。后BPMI并入到OMG组织,OMG于2011年推出BPMN2.0标准,对BPMN进行了重新定义**(Business Process Model and Notation**)。BPMN的主要目标是提供一些被所有业务用户容易理解的符号,从创建流程轮廓的业务分析到这些流程的实现,直到最终用户的管理监控。BPMN也支持提供一个内部的模型可以生成可执行的BPEL4WS。因此BPMN的出现,弥补了从业务流程设计到流程开发的间隙。
BPMN定义了一个业务流程图(Business Process Diagram),该业务流程图基于一个流程图(flowcharting),该流程图被设计用于创建业务流程操作的图形化模型。而一个业务流程模型(Business Process Model),指一个由图形对象(graphical objects)组成的网状图,图形对象包括活动(activities)和用于定义这些活动执行顺序的流程控制器(flow controls)。
大白话理解:
BPMN是一套符号的标准,这些符号描述了如果做一个业务,并且这个业务在做的过程中被人监控和控制。业务人员和开发人员通过这套图形可以很好的完成协作。

什么是Flowable

官方描述如下:
Flowable提供了一个组高效的核心开源业务流程引擎,为开发人员,系统管理员和业务用户提供工作流和业务流程管理(BPM)平台。全部用Java编写,并且基于Apache 2.0许可的开源,代码在社区维护。其核心是一个快速,经过试验和测试的动态BPMN流程引擎,附带DMN决策表和CMMN Case管理引擎.
大白话理解:
Flowable是BPMN的一个基于java的软件实现,不过Flowable不仅仅包括BPMN,还有DMN决策表和CMMN Case管理引擎,并且有自己的用户管理、微服务API等一系列功能,是一个服务平台。

Flowable官网、开源社区

Flowable官方网站:
https://www.flowable.org/
Flowable开源代码仓库:
https://github.com/flowable/flowable-engine
Flowable 最新版本(V6.4.0)截止目前下载地址:
Tomcat 版本安装包:
https://download.csdn.net/download/houyj1986/10871025
https://github.com/flowable/flowable-engine/releases/download/flowable-6.4.0/tomcat-flowable-6.4.0.zip
EAR版本版本安装包:
https://download.csdn.net/download/houyj1986/10871018
https://github.com/flowable/flowable-engine/releases/download/flowable-6.4.0/flowable-6.4.0.zip
Flowable源代码(V6.4.0)下载地址:
https://download.csdn.net/download/houyj1986/10871014

Flowable流程示例

一个简单度假申请流程主要过程如下:
1、员工提交请假信息,如工号,请假天数
2、经理点击审批通过或者拒绝
3、如果拒绝直接进入系统发邮件服务通知员工
4、如果通过系统记录该员工的请假天数,减少可用天数
5、员工看到自己请假审批通过,点击完成请假。
Flowable的BPMN流程图:

流程图的BMPN文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:flowable="http://flowable.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.flowable.org/processdef"><process id="holidayRequest" name="Holiday Request" isExecutable="true"><startEvent id="startEvent"></startEvent><sequenceFlow id="sequenceFlow-3fa7af74-df9a-4d3a-b0eb-10b20e7dc202" sourceRef="startEvent" targetRef="approveTask"></sequenceFlow><userTask id="approveTask" name="经理通过或驳回申请"></userTask><sequenceFlow id="sequenceFlow-d9127dc0-158f-4169-b61b-99226ffe8494" sourceRef="approveTask" targetRef="decision"></sequenceFlow><exclusiveGateway id="decision"></exclusiveGateway><serviceTask id="externalSystemCall" name="系统记录申请天数" flowable:class="org.flowable.CallExternalSystemDelegate"></serviceTask><sequenceFlow id="sequenceFlow-6232f578-3975-4d7e-81f2-43b242d33ebd" sourceRef="externalSystemCall" targetRef="holidayApprovedTask"></sequenceFlow><userTask id="holidayApprovedTask" name="员工查看申请通过"></userTask><sequenceFlow id="sequenceFlow-29fd3375-9bcb-42f2-bb6f-63ae1f98813a" sourceRef="holidayApprovedTask" targetRef="approveEnd"></sequenceFlow><serviceTask id="sendRejectionMail" name="发送驳回邮件" flowable:class="org.flowable.SendRejectionMail"></serviceTask><sequenceFlow id="sequenceFlow-b390b442-2411-44a9-96eb-3c129d4c8408" sourceRef="sendRejectionMail" targetRef="rejectEnd"></sequenceFlow><endEvent id="approveEnd"></endEvent><endEvent id="rejectEnd"></endEvent><sequenceFlow id="sequenceFlow-6f21d3e2-2e49-4b00-9aae-0b71d861a177" name="驳回" sourceRef="decision" targetRef="sendRejectionMail"><conditionExpression xsi:type="tFormalExpression"><![CDATA[${!approved}]]></conditionExpression></sequenceFlow><sequenceFlow id="sequenceFlow-2470619b-fa36-440b-a231-b7bd226c23bb" name="通过" sourceRef="decision" targetRef="externalSystemCall"><conditionExpression xsi:type="tFormalExpression"><![CDATA[${approved}]]></conditionExpression></sequenceFlow></process><bpmndi:BPMNDiagram id="BPMNDiagram_holidayRequest"><bpmndi:BPMNPlane bpmnElement="holidayRequest" id="BPMNPlane_holidayRequest"><bpmndi:BPMNShape bpmnElement="startEvent" id="BPMNShape_startEvent"><omgdc:Bounds height="30.0" width="30.0" x="0.0" y="95.0"></omgdc:Bounds></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="approveTask" id="BPMNShape_approveTask"><omgdc:Bounds height="60.0" width="100.0" x="80.0" y="80.0"></omgdc:Bounds></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="decision" id="BPMNShape_decision"><omgdc:Bounds height="40.0" width="40.0" x="230.0" y="90.0"></omgdc:Bounds></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="externalSystemCall" id="BPMNShape_externalSystemCall"><omgdc:Bounds height="60.0" width="100.0" x="320.0" y="1.0"></omgdc:Bounds></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="holidayApprovedTask" id="BPMNShape_holidayApprovedTask"><omgdc:Bounds height="60.0" width="100.0" x="470.0" y="1.0"></omgdc:Bounds></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="sendRejectionMail" id="BPMNShape_sendRejectionMail"><omgdc:Bounds height="60.0" width="100.0" x="320.0" y="160.0"></omgdc:Bounds></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="approveEnd" id="BPMNShape_approveEnd"><omgdc:Bounds height="28.0" width="28.0" x="620.0" y="16.0"></omgdc:Bounds></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="rejectEnd" id="BPMNShape_rejectEnd"><omgdc:Bounds height="28.0" width="28.0" x="505.0" y="175.0"></omgdc:Bounds></bpmndi:BPMNShape><bpmndi:BPMNEdge bpmnElement="sequenceFlow-2470619b-fa36-440b-a231-b7bd226c23bb" id="BPMNEdge_sequenceFlow-2470619b-fa36-440b-a231-b7bd226c23bb"><omgdi:waypoint x="250.0" y="90.0"></omgdi:waypoint><omgdi:waypoint x="250.0" y="31.0"></omgdi:waypoint><omgdi:waypoint x="319.99999999999284" y="31.0"></omgdi:waypoint></bpmndi:BPMNEdge><bpmndi:BPMNEdge bpmnElement="sequenceFlow-3fa7af74-df9a-4d3a-b0eb-10b20e7dc202" id="BPMNEdge_sequenceFlow-3fa7af74-df9a-4d3a-b0eb-10b20e7dc202"><omgdi:waypoint x="29.949998618355412" y="110.0"></omgdi:waypoint><omgdi:waypoint x="80.0" y="110.0"></omgdi:waypoint></bpmndi:BPMNEdge><bpmndi:BPMNEdge bpmnElement="sequenceFlow-6232f578-3975-4d7e-81f2-43b242d33ebd" id="BPMNEdge_sequenceFlow-6232f578-3975-4d7e-81f2-43b242d33ebd"><omgdi:waypoint x="419.95000000000005" y="31.0"></omgdi:waypoint><omgdi:waypoint x="470.0" y="31.0"></omgdi:waypoint></bpmndi:BPMNEdge><bpmndi:BPMNEdge bpmnElement="sequenceFlow-b390b442-2411-44a9-96eb-3c129d4c8408" id="BPMNEdge_sequenceFlow-b390b442-2411-44a9-96eb-3c129d4c8408"><omgdi:waypoint x="419.949999999997" y="189.66442953020135"></omgdi:waypoint><omgdi:waypoint x="505.00030595247523" y="189.0936221647077"></omgdi:waypoint></bpmndi:BPMNEdge><bpmndi:BPMNEdge bpmnElement="sequenceFlow-d9127dc0-158f-4169-b61b-99226ffe8494" id="BPMNEdge_sequenceFlow-d9127dc0-158f-4169-b61b-99226ffe8494"><omgdi:waypoint x="179.9499999999898" y="110.0"></omgdi:waypoint><omgdi:waypoint x="230.0" y="110.0"></omgdi:waypoint></bpmndi:BPMNEdge><bpmndi:BPMNEdge bpmnElement="sequenceFlow-29fd3375-9bcb-42f2-bb6f-63ae1f98813a" id="BPMNEdge_sequenceFlow-29fd3375-9bcb-42f2-bb6f-63ae1f98813a"><omgdi:waypoint x="569.9499999999988" y="31.0"></omgdi:waypoint><omgdi:waypoint x="582.0" y="31.0"></omgdi:waypoint><omgdi:waypoint x="582.0" y="31.0"></omgdi:waypoint><omgdi:waypoint x="620.0025321198765" y="30.268220825690175"></omgdi:waypoint></bpmndi:BPMNEdge><bpmndi:BPMNEdge bpmnElement="sequenceFlow-6f21d3e2-2e49-4b00-9aae-0b71d861a177" id="BPMNEdge_sequenceFlow-6f21d3e2-2e49-4b00-9aae-0b71d861a177"><omgdi:waypoint x="250.0" y="129.9375468164794"></omgdi:waypoint><omgdi:waypoint x="250.0" y="190.0"></omgdi:waypoint><omgdi:waypoint x="319.99999999997794" y="190.0"></omgdi:waypoint></bpmndi:BPMNEdge></bpmndi:BPMNPlane></bpmndi:BPMNDiagram>
</definitions>

文件名为Holiday_Request.bpmn20.xml,flowable支持以BPMN和bpmn20.xml结尾的流程文件。上面的xml看起来非常恐怖,不用担心,后面我会介绍Flowable的专门的流程绘制软件。
以上主要让大家对Flowable有个简单的了解,下一节介绍如何启动Flowable,并且介绍Flowable的启动包的相关内容。

版权

转载请联系作者,谢谢。由书山登峰人创作。

Flowable深入浅出-1 Flowable简介相关推荐

  1. Flowable工作流之Flowable UI画工作流程图

    目录 1. `Flowable` 简介 2. 绘制工作流程图 2.1. `Flowable UI` 的安装部署 2.2. 启动服务 2.3. 用户管理 2.4. 工作流程效果图 2.5. 绘制工作流程 ...

  2. 《Flowable基础二 Flowable是什么》

    2.1. Flowable是什么? Flowable是一个使用Java编写的轻量级业务流程引擎.Flowable流程引擎让你可以部署BPMN 2.0流程定义(用于定义流程的行业XML标准).创建这些流 ...

  3. Flowable深入浅出-13 Flowable-BPMN操作流程之流程进展查看之流程图

    13 Flowable-BPMN操作流程之流程进展查看之流程图 背景 原理 实现方案 验证 代码下载 背景 流程启动后,为了方便我们查看流程的进展,Flowable提供了流程图可以直观的查看流程的进展 ...

  4. Flowable深入浅出-6 Flowable-Modeler详述之常见问题Table act_ge_property doesn‘t exist

    6 Flowable-Modeler详述之常见问题Table act_ge_property doesn't exist 问题描述 问题定位 解决方案一 解决方案二(推荐) 验证结果 问题描述 在配置 ...

  5. Flowable高级篇 - Flowable表结构

    Flowable中文手册 一.flowable表结构 数据库表命名规则: ACT_RE_*:其中"RE"表示repository(存储)的意思,是RepositoryService ...

  6. flowable+tomcat部署flowable项目,在线画流程图

    前置条件:jdk8,tomcat8(注意:jdk7可能会报错) flowable下载地址 https://github.com/flowable/flowable-engine/releases/do ...

  7. Flowable高级篇 - Flowable的图标

    flowable的中文手册 介绍: BPMN 2.0是业务流程建模符号2.0的缩写.它由Business Process Management Initiative这个非营利协会创建并不断发展.作为一 ...

  8. 流程引擎之Flowable简介

    背景 Flowable 是一个流行的轻量级的采用 Java 开发的业务流程引擎,通过 Flowable 流程引擎,我们可以部署遵循 BPMN2.0 协议的流程定义(一般为XML文件)文件,并能创建流程 ...

  9. flowable简介

    1 简介 1.1 Flowable是什么 Flowable是一个使用Java编写的轻量级业务流程引擎.Flowable流程引擎可用于部署BPMN 2.0流程定义(用于定义流程的行业XML标准), 创建 ...

最新文章

  1. 用Azure VM + Azure Database for MySQL搭建Web服务
  2. 马化腾:腾讯要帮助中国加快数字化,主要靠小程序(附演讲)
  3. 阿里云云服务器安装jdk、mysql
  4. 拼多多提交赴美上市招股书 陆奇担任独立董事兼薪酬委员会主席
  5. 袋鼠云大数据面试题回忆
  6. WCF学习(五)数据契约之已知类型
  7. (JAVA)超大小数运算
  8. 基片集成波导原理_第5讲基片集成波导.ppt
  9. python单链表实现荷兰国旗问题_快速排序深入之荷兰国旗问题
  10. as, idea 出现 Gradle's dependency cache may be corrupt 错误分析
  11. Linux安装Java8
  12. Mac好用的硬盘数据恢复软件推荐
  13. [Unity算法]斜抛运动
  14. 15本职场必读书,得挑几本看看!
  15. python 扫码签到_「扫码签到」30秒生成签到二维码,快捷签到、统计信息、防签到作弊就靠它了!...
  16. ChatGPT工作提效之初探路径独孤九剑遇强则强
  17. 哈达玛矩阵 matlab,哈达玛变换矩阵.ppt
  18. 2022危险化学品经营单位主要负责人考试试题及在线模拟考试
  19. 最新计算机毕业设计选题推荐 -计算机专业毕业设计题目参考
  20. Linux 打包可执行文件

热门文章

  1. 【飞腾平台安装windows arm 11系统】
  2. Flutter 倒计时功能
  3. org.opensaml.common.SAMLException: Response issue time is either too old or with date in the future
  4. 【H3C V7路由器实战视频课程系列-6】静态和RIP路由配置与管理-王达-专题视频课程...
  5. 【Java】《OnJava8》笔记——第20章泛型
  6. 开关电源基础01:电源变换器基础(3)
  7. 专利申请流程,专利类型怎么确定
  8. 6.算法之数学(数论)算法——更相减损术
  9. 解决谷歌下载自动删除 Chrome download automatically delete
  10. JAVA版服务器皮肤,给Java的Swing应用程序界面换漂亮的皮肤