【13】Camunda7-第一个BPMN流程

2024-06-06 08:44

本文主要是介绍【13】Camunda7-第一个BPMN流程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在前一篇博文里,我们介绍了Camunda Modeler,那么接下来,我们就使用这个设计器工具绘制我们的第一个BPMN流程。


1. 场景概述

关于第一个流程,这里计划以我们最常见的请假审批流程为例,它涉及到表单设计、人工审批任务等典型节点。下面将详述设计过程。

2.模型设计

2.1 建立模型工程

首先,新建一个Camunda7 BPMN的空白画布。

2.2 添加图元,构建完整流程

在创建空白画布后,可以看到,默认情况下只有一个默认图元存在,即开始事件。这里我们安装请假流程所需的各个环节,把相应的图元拖拽至设计区域,初步构建完整流程:

  • 开始事件:标志流程开始,申请人填写表单
  • 用户任务1:模拟一级审批,例如组长审批等
  • 用户任务2:模拟二级审批,例如经理审批等
  • 结束事件:标志流程结束

2.3 图元选择与属性配置

2.3.1 流程全局配置

填写流程名称:请假流程示例,并勾选Executable,其他使用默认配置即可。

2.3.2 创建表单

众所周知,一般请假的场景下,申请人是需要填写一个请假申请表的,基本涵盖申请人、申请天数等信息,这里我们就设计一个简单的请假申请表单。 我们使用Camunda开始事件的From属性来实现表单相关需求,具体如下。

选择Generated Task Forms并创建两个fields:name-申请人,day-请假天数,均不设置默认值。

2.3.3 配置人工审批任务

在案例场景中,我们有2个用户任务,分别模拟组长、经理审批。因此,修改Task图元为具体的UserTask用户任务图元。

完成图元类型修改后,我们进一步对2个用户任务进行配置,这里我们假定组长是张三,经理是李四,进而配置用户任务指定的处理人分别为zhangsan, lisi。

2.3.4 完成流程建模

在第一个流程案例中,结束事件无需其他位置。至此,第一个流程案例的建模已经完成,具体流程如下。

2.4 保存流程定义/模型

点击file-save file保存已完成建模的流程定义;同时也可以导出流程定义的xml形式。

<?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:modeler="http://camunda.org/schema/modeler/1.0" id="Definitions_0vpu411" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="5.19.0" modeler:executionPlatform="Camunda Platform" modeler:executionPlatformVersion="7.20.0"><bpmn:process id="Process_1p8hbtn" name="请假流程示例" isExecutable="true" camunda:historyTimeToLive="180"><bpmn:startEvent id="StartEvent_1" name="开始"><bpmn:extensionElements><camunda:formData><camunda:formField id="name" label="申请人" type="string" /><camunda:formField id="day" label="请假天数" type="long" /></camunda:formData></bpmn:extensionElements><bpmn:outgoing>Flow_1xnw69x</bpmn:outgoing></bpmn:startEvent><bpmn:sequenceFlow id="Flow_1xnw69x" sourceRef="StartEvent_1" targetRef="Activity_1i9x3bn" /><bpmn:sequenceFlow id="Flow_1pxf9yp" sourceRef="Activity_1i9x3bn" targetRef="Activity_080lqdu" /><bpmn:endEvent id="Event_0ea6i5r"><bpmn:incoming>Flow_006sco1</bpmn:incoming></bpmn:endEvent><bpmn:sequenceFlow id="Flow_006sco1" sourceRef="Activity_080lqdu" targetRef="Event_0ea6i5r" /><bpmn:userTask id="Activity_1i9x3bn" name="组长审批" camunda:assignee="zhangsan"><bpmn:incoming>Flow_1xnw69x</bpmn:incoming><bpmn:outgoing>Flow_1pxf9yp</bpmn:outgoing></bpmn:userTask><bpmn:userTask id="Activity_080lqdu" name="经理审批" camunda:assignee="lisi"><bpmn:incoming>Flow_1pxf9yp</bpmn:incoming><bpmn:outgoing>Flow_006sco1</bpmn:outgoing></bpmn:userTask></bpmn:process><bpmndi:BPMNDiagram id="BPMNDiagram_1"><bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_1p8hbtn"><bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1"><dc:Bounds x="179" y="99" width="36" height="36" /><bpmndi:BPMNLabel><dc:Bounds x="186" y="142" width="23" height="14" /></bpmndi:BPMNLabel></bpmndi:BPMNShape><bpmndi:BPMNShape id="Event_0ea6i5r_di" bpmnElement="Event_0ea6i5r"><dc:Bounds x="592" y="99" width="36" height="36" /></bpmndi:BPMNShape><bpmndi:BPMNShape id="Activity_1dc59bl_di" bpmnElement="Activity_1i9x3bn"><dc:Bounds x="270" y="77" width="100" height="80" /><bpmndi:BPMNLabel /></bpmndi:BPMNShape><bpmndi:BPMNShape id="Activity_1b471g9_di" bpmnElement="Activity_080lqdu"><dc:Bounds x="430" y="77" width="100" height="80" /><bpmndi:BPMNLabel /></bpmndi:BPMNShape><bpmndi:BPMNEdge id="Flow_1xnw69x_di" bpmnElement="Flow_1xnw69x"><di:waypoint x="215" y="117" /><di:waypoint x="270" y="117" /></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="Flow_006sco1_di" bpmnElement="Flow_006sco1"><di:waypoint x="530" y="117" /><di:waypoint x="592" y="117" /></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="Flow_1pxf9yp_di" bpmnElement="Flow_1pxf9yp"><di:waypoint x="370" y="117" /><di:waypoint x="430" y="117" /></bpmndi:BPMNEdge></bpmndi:BPMNPlane></bpmndi:BPMNDiagram>
</bpmn:definitions>

这篇关于【13】Camunda7-第一个BPMN流程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1035624

相关文章

Security OAuth2 单点登录流程

单点登录(英语:Single sign-on,缩写为 SSO),又译为单一签入,一种对于许多相互关连,但是又是各自独立的软件系统,提供访问控制的属性。当拥有这项属性时,当用户登录时,就可以获取所有系统的访问权限,不用对每个单一系统都逐一登录。这项功能通常是以轻型目录访问协议(LDAP)来实现,在服务器上会将用户信息存储到LDAP数据库中。相同的,单一注销(single sign-off)就是指

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

Java进阶13讲__第12讲_1/2

多线程、线程池 1.  线程概念 1.1  什么是线程 1.2  线程的好处 2.   创建线程的三种方式 注意事项 2.1  继承Thread类 2.1.1 认识  2.1.2  编码实现  package cn.hdc.oop10.Thread;import org.slf4j.Logger;import org.slf4j.LoggerFactory

好题——hdu2522(小数问题:求1/n的第一个循环节)

好喜欢这题,第一次做小数问题,一开始真心没思路,然后参考了网上的一些资料。 知识点***********************************无限不循环小数即无理数,不能写作两整数之比*****************************(一开始没想到,小学没学好) 此题1/n肯定是一个有限循环小数,了解这些后就能做此题了。 按照除法的机制,用一个函数表示出来就可以了,代码如下

kubelet组件的启动流程源码分析

概述 摘要: 本文将总结kubelet的作用以及原理,在有一定基础认识的前提下,通过阅读kubelet源码,对kubelet组件的启动流程进行分析。 正文 kubelet的作用 这里对kubelet的作用做一个简单总结。 节点管理 节点的注册 节点状态更新 容器管理(pod生命周期管理) 监听apiserver的容器事件 容器的创建、删除(CRI) 容器的网络的创建与删除

火语言RPA流程组件介绍--浏览网页

🚩【组件功能】:浏览器打开指定网址或本地html文件 配置预览 配置说明 网址URL 支持T或# 默认FLOW输入项 输入需要打开的网址URL 超时时间 支持T或# 打开网页超时时间 执行后后等待时间(ms) 支持T或# 当前组件执行完成后继续等待的时间 UserAgent 支持T或# User Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器

Spring Roo 实站( 一 )部署安装 第一个示例程序

转自:http://blog.csdn.net/jun55xiu/article/details/9380213 一:安装 注:可以参与官网spring-roo: static.springsource.org/spring-roo/reference/html/intro.html#intro-exploring-sampleROO_OPTS http://stati

UMI复现代码运行逻辑全流程(一)——eval_real.py(尚在更新)

一、文件夹功能解析 全文件夹如下 其中,核心文件作用为: diffusion_policy:扩散策略核心文件夹,包含了众多模型及基础库 example:标定及配置文件 scripts/scripts_real:测试脚本文件,区别在于前者倾向于单体运行,后者为整体运行 scripts_slam_pipeline:orb_slam3运行全部文件 umi:核心交互文件夹,作用在于构建真

使用gradle做第一个java项目

涉及到的任务如下: assemble任务会编译程序中的源代码,并打包生成Jar文件,这个任务不执行单元测试。 Total time: 5.581 secs E:\workspace\Test>gradle assemble :compileJava :processResources UP-TO-DATE :classes :findMainClass :jar :b

13 transition数组的动画使用

划重点 动画:transitiontransition-group :数组动画数组的 添加 / 删除 豆腐粉丝汤 清淡又健康 <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><me