
猿创征文|Camunda工作流
官方活动地址: https://bbs.youkuaiyun.com/topics/607843912.
Camunda Website: https://camunda.com/.
1.Introduction
1.1 Implemented Standards
Website: https://docs.camunda.org/manual/latest/introduction/implemented-standards/.
2.BPMN2.0
BPMN2.0(Business Process Model and Notation)是一套业务流程模型与符号建模标准
- 文档介绍
BPMN Introduction1: https://docs.camunda.io/docs/components/modeler/bpmn/.
BPMN Introduction2: https://camunda.com/bpmn/reference/#activities-task.- 基本形状
- Camunda操作界面
2.1 Elements
- 参与者
泳池 Pool
:描述的是整个组织,它可以划分成多个泳道,泳道具有分层结构
泳道 Lane
:描述的是流程的参与者,也就是执行一系列特定任务的角色
- 任务
服务任务 Service Task
:是任务的一种,它的工作一般由软件自动完成
发送任务 Send Task
:是一种比较简单的任务,将消息发送给外部的参与者,当消息发送完,这个任务也就结束了。
用户任务 User Task
:主要用于需要由人工参与者完成的建模
业务规则任务 Business Rule Task
:主要用于对接业务规则引擎(Business Rules Engine)
脚本任务 Script Task
:当流程执行到脚本任务时,执行相应脚本
接收任务 Recive Task
:是一个简单的任务,它等待特定消息的到来。当流程执行到接受消息时,流程状态将提交给持久性存储。
手工任务 Manual Task
:定义流程引擎外部的任务,它用于对流程引擎不需要知道,没有已知系统或用户接口的人所做的工作进行建模。
- 标记
任务标记
:除了各种类型的任务之外,还可以将任务标记为循环,多实例或者补偿,标记可以和任务类型组合
- 网关
在流程中,通常要做出选择,在BPMN中就是网关,也叫逻辑门,用来控制流程的分叉(Fork)和连接(Join)
排他网关 XOR
:当流程执行到此网关时,将依次评估所有传出序列流,并选择第一个条件评估结果为true的序列流来继续这个流程
要么走A,要么走B,如果没有满足条件的序列流,可以设置Default Flow,走C
并行网关 AND
:网关还可以用于为流程中的并发性建模。
Fork:所有传出序列流都是并行执行的
Join:达到并行网关的所有并发执行都在网关等待,直到所有传入序列流的执行都到达,然后这个流程继续运行。
包含网关 OR
:可以看做是排他网关和并网网关的结合。 Camunda8.0不支持
Fork:对所有传出的序列流进行条件评估
Join:到达包含网关的所有并发执行都要当代,直到拥有执行令牌的所有执行都到达为止,
事件网关 EVENT
:专门设计用来捕获中间事件的,它不是通过条件评估来选择路径,而是通过捕获到的事件来选择
2.2 Events
Type | Start | Intermediate | End | |||||
---|---|---|---|---|---|---|---|---|
Normal | Event Subprocess | Event Subprocess non-interrupting | Catch | Boundary | Boundary non-interrupting | Throw | ||
None | ||||||||
Message | ||||||||
Timer | ||||||||
Error | ||||||||
Signal | ||||||||
Conditional | ||||||||
Escalation | ||||||||
Compensation | ||||||||
Cancel | ||||||||
Termination | ||||||||
Link | ||||||||
Multiple | ||||||||
Multiple Parallel |
- 消息事件
消息用于承载参与者双方通信的内容,消息事件是指引用指定消息的事件
- 消息开始事件
消息开始事件通过已命名消息来启动流程实例,这样可以通过消息名称从一组备选的开始事件中选择正确的开始事件
- 消息中间捕获事件和中间抛出事件
1.当令牌到达消息捕获事件时,它将在那里等待,直到收到拥有正确名称的消息为止。消息必须通过适当的api调用以传递到流程引擎
2.消息抛出事件可以向外部服务发送消息
- 定时器事件
3.Camnuda Install
3.1 Necessary software
- 必须要有 JAVA1.8以上的JRE或JDK用
- 安装 Camunda BPM平台和Camunda Modeler
3.2 Install
- 下载Camunda BPM
Download Community Website: https://camunda.com/download/.
Download Enterprise Website: https://docs.camunda.org/enterprise/download/.
Camunda Platform Documment 8.0: https://docs.camunda.io/docs/guides/.
Camunda Platform Documment 7.x: https://docs.camunda.org/manual/latest/user-guide/camunda-bpm-run/.
- 启动
执行start.bat
http://localhost:8080/camunda-welcome/index.html
- 下载Camunda Modeler
- 启动Camunda Modeler
执行camunda-modeler.exe
4.Java Integration
4.1 Install
- 安装插件
FIle =>Settings =>Plugins =>archetype => Maven Archetype Catalogs
- 添加archetype catalogs
https://app.camunda.com/nexus/content/repositories/camunda-bpm/archetype-catalog.xml
- 创建项目
通过maven创建项目,找到对应的版本
4.2 xxxx
有时间补充
5.Waken
在一秒钟内看到本质的人和花半辈子也看不清一件事本质的人,自然是不一样的命运。