Activiti7

文章目录

  • 概述
  • 入门案例
    • 1.创建springboot项目
      • pom.xml
    • 2.获取ProcessEngine
      • 2.1 默认的方式
      • 2.2 编程方式获取
      • 2.3 表结构介绍
    • 3.在线流程设计器


概述

官网地址:https://www.activiti.org/

Activiti由Alfresco软件开发,目前最高版本Activiti 7。是BPMN的一个基于java的软件实现,不过
Activiti 不仅仅包括BPMN,还有DMN决策表和CMMN Case管理引擎,并且有自己的用户管理、微服务API等一系列功能,是一个服务平台。

入门案例

官方手册:http://jeecg.com/activiti5.21/

1.创建springboot项目

现在开发中或者我们自己学习写案例都是通过SpringBoot脚手架工具来快速构建项目的。那么我们也
就直接通过创建SpringBoot项目来给大家讲解相关的案例。创建一个普通的SpringBoot项目。指定版本为2.4.2即可。JDK版本得是11

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.4.2</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>demo01</artifactId><version>0.0.1-SNAPSHOT</version><name>demo01</name><description>Demo project for Spring Boot</description><properties><java.version>11</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.23</version></dependency><dependency><groupId>org.activiti</groupId><artifactId>activiti-spring-boot-starter</artifactId><version>7.0.0.GA</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

2.获取ProcessEngine

2.1 默认的方式

在工作流引擎框架中, ProcessEngine 是一个非常核心的对象,我们需要首先解决这个对象的获
取。获取方式很多。先来看最简单的一个基于 activiti.cfg.xml 的XML文件的配置方式。

/*** 获取ProcessEngine对象的第一种方式*/@Testpublic void test1(){//通过 getDefaultProcessEngine()方法获取流程引擎对象  会加载resources下的activiti.cfg.xmlProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();System.out.println(processEngine);}

通过 getDefaultProcessEngine 方法加载会默认的从classpath路径下加载 activiti.cfg.xml
置文件。我们添加该文件。内容如下:

<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd"><!-- id必须是 processEngineConfiguration  --><bean id="processEngineConfiguration"class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration"><property name="jdbcUrl" value="jdbc:mysql://localhost:3306/activiti7" /><property name="jdbcDriver" value="com.mysql.cj.jdbc.Driver" /><property name="jdbcUsername" value="root" /><property name="jdbcPassword" value="root" /><property name="databaseSchemaUpdate" value="true" /><property name="asyncExecutorActivate" value="false" /><property name="mailServerHost" value="mail.my-corp.com" /><property name="mailServerPort" value="5025" /></bean>
</beans>

在这里插入图片描述
在这里插入图片描述

2.2 编程方式获取

上面的配置文件的方式中的配置文件其实是一个Spring的配置文件,但是这并不意味着Activiti只能用
于Spring环境。我们也可以通过编程的方式来使用配置文件,从而来构建ProcessEngineConfiguration对象,具体的实现如下:

    /*** 基于Java代码获取ProcessEngine对象*/@Testpublic void test2(){ProcessEngine engine = ProcessEngineConfiguration.createStandaloneInMemProcessEngineConfiguration().setJdbcUrl("jdbc:mysql://localhost:3306/activiti7").setJdbcDriver("com.mysql.cj.jdbc.Driver").setJdbcPassword("root").setJdbcUsername("root").setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE).buildProcessEngine();System.out.println(engine);}

上面讲解中的相关属性说明:
databaseSchemaUpdate:用于设置流程引擎启动关闭时使用的数据库表结构控制策略

  • false (默认): 当引擎启动时,检查数据库表结构的版本是否匹配库文件版本。版本不匹配时抛出异常。
  • true : 构建引擎时,检查并在需要时更新表结构。表结构不存在则会创建。
  • create-drop : 引擎创建时创建表结构,并在引擎关闭时删除表结构。

2.3 表结构介绍

在Activiti7中。我们启动服务会自动维护Activiti7需要使用到的相关的表结构。在这块我们需要有个大
概的了解。首先是支持的数据库有:

Activiti数据库类型示例JDBC URL备注
h2jdbc:h2:tcp://localhost/activiti默认配置的数据库

Activiti的所有数据库表都以ACT_开头。第二部分是说明表用途的两字符标示符。服务API的命名也大
略符合这个规则。

  • ACT_RE_*: RE 代表 repository 。带有这个前缀的表包含“静态”信息,例如流程定义与流程资源(图片、规则等)。
  • ACT_RU_*: RU 代表 runtime 。这些表存储运行时信息,例如流程实例(process instance)、用户任务(user task)、变量(variable)、作业(job)等。Activiti只在流程实例运行中保存运行时数据,并在流程实例结束时删除记录。这样保证运行时表小和快。
  • ACT_ID_*: ID 代表 identity 。这些表包含身份信息,例如用户、组等。
  • ACT_HI_*: HI 代表 history 。这些表存储历史数据,例如已完成的流程实例、变量、任务等。
  • ACT_GE_*: 通用数据。用于不同场景下

注意:MySQL数据库最好使用5.7及以上的版本

3.在线流程设计器

接下来我们通过官方提供的流程设计器来实现一个简单流程的设计。然后完成相关的部署和流程整
体操作。

官网下载地址:https://www.activiti.org/get-started 下载下来后解压缩

在这里插入图片描述

在这里插入图片描述
进入到wars中。提供的有Activiti-app.war

在这里插入图片描述

把这war包拷贝到Tomcat服务器中即可。注意Tomcat的版本不要高于8.5,然后Tomcat服务。访问 http://localhost:8080/activiti-app 即可。登录的账号密码是 admin test

在这里插入图片描述

然后启动tomcat
在这里插入图片描述

访问http://localhost:8080/activiti-app,输入用户名admin和密码test,即可登录成功进入
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
点击“Create Process ”,弹出窗口。录入相关的流程定义信息

在这里插入图片描述
录入流程图的名称和key和描述

在这里插入图片描述

在这里插入图片描述
点击“人事审批”的节点,然后下面会有相关属性出现,这里我们点击“Assignments”,然后弹出Assignment的框出现
在这里插入图片描述
在这里插入图片描述
表示该节点由zhangsan来进行审批。

配置好各自节点的审批人后,进行保存
在这里插入图片描述
在这里插入图片描述

进行下载xml文件

在这里插入图片描述
在这里插入图片描述

<?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:activiti="http://activiti.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.activiti.org/processdef"><process id="test" name="test" isExecutable="true"><documentation>test</documentation><startEvent id="startEvent1"></startEvent><userTask id="sid-69E77A57-E14F-4C79-AD4F-9AD1929406A9" name="人事审批" activiti:assignee="zhangsan"><extensionElements><modeler:initiator-can-complete xmlns:modeler="http://activiti.com/modeler"><![CDATA[false]]></modeler:initiator-can-complete></extensionElements></userTask><sequenceFlow id="sid-776DF814-E68F-49CB-90D8-6B98A1801508" sourceRef="startEvent1" targetRef="sid-69E77A57-E14F-4C79-AD4F-9AD1929406A9"></sequenceFlow><userTask id="sid-732A12A2-AD4D-4406-8B23-A34BB1F60D1C" name="经理审批" activiti:assignee="lisi"><extensionElements><modeler:initiator-can-complete xmlns:modeler="http://activiti.com/modeler"><![CDATA[false]]></modeler:initiator-can-complete></extensionElements></userTask><sequenceFlow id="sid-DE9336AD-7E6D-45F8-B589-6AA3A210E8C0" sourceRef="sid-69E77A57-E14F-4C79-AD4F-9AD1929406A9" targetRef="sid-732A12A2-AD4D-4406-8B23-A34BB1F60D1C"></sequenceFlow><endEvent id="sid-6CA4C975-410D-4C1B-B6A6-58894E492622"></endEvent><sequenceFlow id="sid-DE19D371-8E2C-4E55-A507-68EF07CAC0B3" sourceRef="sid-732A12A2-AD4D-4406-8B23-A34BB1F60D1C" targetRef="sid-6CA4C975-410D-4C1B-B6A6-58894E492622"></sequenceFlow></process><bpmndi:BPMNDiagram id="BPMNDiagram_test"><bpmndi:BPMNPlane bpmnElement="test" id="BPMNPlane_test"><bpmndi:BPMNShape bpmnElement="startEvent1" id="BPMNShape_startEvent1"><omgdc:Bounds height="30.0" width="30.0" x="100.0" y="163.0"></omgdc:Bounds></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="sid-69E77A57-E14F-4C79-AD4F-9AD1929406A9" id="BPMNShape_sid-69E77A57-E14F-4C79-AD4F-9AD1929406A9"><omgdc:Bounds height="80.0" width="100.0" x="175.0" y="138.0"></omgdc:Bounds></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="sid-732A12A2-AD4D-4406-8B23-A34BB1F60D1C" id="BPMNShape_sid-732A12A2-AD4D-4406-8B23-A34BB1F60D1C"><omgdc:Bounds height="80.0" width="100.0" x="320.0" y="138.0"></omgdc:Bounds></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="sid-6CA4C975-410D-4C1B-B6A6-58894E492622" id="BPMNShape_sid-6CA4C975-410D-4C1B-B6A6-58894E492622"><omgdc:Bounds height="28.0" width="28.0" x="465.0" y="164.0"></omgdc:Bounds></bpmndi:BPMNShape><bpmndi:BPMNEdge bpmnElement="sid-776DF814-E68F-49CB-90D8-6B98A1801508" id="BPMNEdge_sid-776DF814-E68F-49CB-90D8-6B98A1801508"><omgdi:waypoint x="130.0" y="178.0"></omgdi:waypoint><omgdi:waypoint x="175.0" y="178.0"></omgdi:waypoint></bpmndi:BPMNEdge><bpmndi:BPMNEdge bpmnElement="sid-DE9336AD-7E6D-45F8-B589-6AA3A210E8C0" id="BPMNEdge_sid-DE9336AD-7E6D-45F8-B589-6AA3A210E8C0"><omgdi:waypoint x="275.0" y="178.0"></omgdi:waypoint><omgdi:waypoint x="320.0" y="178.0"></omgdi:waypoint></bpmndi:BPMNEdge><bpmndi:BPMNEdge bpmnElement="sid-DE19D371-8E2C-4E55-A507-68EF07CAC0B3" id="BPMNEdge_sid-DE19D371-8E2C-4E55-A507-68EF07CAC0B3"><omgdi:waypoint x="420.0" y="178.0"></omgdi:waypoint><omgdi:waypoint x="465.0" y="178.0"></omgdi:waypoint></bpmndi:BPMNEdge></bpmndi:BPMNPlane></bpmndi:BPMNDiagram>
</definitions>

然后我们就可以做流程的部署操作了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/27397.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Flutter iOS 集成使用 flutter boost

在 Flutter项目中集成完 flutter boost&#xff0c;并且已经使用了 flutter boost进行了路由管理&#xff0c;这时如果需要和iOS混合开发&#xff0c;这时就要到 原生端进行集成。 注意&#xff1a;之前建的项目必须是 Flutter module项目&#xff0c;并且原生项目和flutter m…

bigemap如何添加高清在线地图?

说明&#xff1a;批量添加可以同时添加多个在线地图&#xff0c;一次性添加完成&#xff08;批量添加无法验证地址是否可以访问&#xff09; 添加后如下图&#xff1a; 第一步 &#xff1a; 制作地图配置文件&#xff1a;选择添加在线地图&#xff08;查看帮助&#xff09;。 …

Chatgpt AI newbing作画,文字生成图 BingImageCreator 二次开发,对接wxbot

开源项目 https://github.com/acheong08/BingImageCreator 获取cookie信息 cookieStore.get("_U").then(result > console.log(result.value)) pip3 install --upgrade BingImageCreator import os import BingImageCreatoros.environ["http_proxy"]…

基于 yolov8 的人体姿态评估

写在前面 工作中遇到&#xff0c;简单整理博文内容为使用预训练模型的一个预测 Demo测试图片来源与网络,如有侵权请告知理解不足小伙伴帮忙指正 对每个人而言&#xff0c;真正的职责只有一个&#xff1a;找到自我。然后在心中坚守其一生&#xff0c;全心全意&#xff0c;永不停…

华为认证 | 云计算HCIE3.0改版后有什么变化?

随着技术的不断进步和行业的发展&#xff0c;云计算的HCIE作为华为公司的顶级认证&#xff0c;也进行了版本的更新。 那改版后有哪些变化呢&#xff0c;今天给大家讲讲。 01 HCIE认证简介 HCIE认证是华为公司旗下的顶级专业认证&#xff0c;面向IT领域的高级专业人士。 它涵…

收集到大量的名片怎么转为excel?

来百度APP畅享高清图片 参加完展会或集体会议&#xff0c;是不是收了一大堆名片&#xff0c;保管起来超级麻烦&#xff0c;还容易丢三落四&#xff1f;别急&#xff0c;我们有办法&#xff01;把名片转成电子版保存到电脑上就完美啦&#xff01;但要是名片数量有点多&#xff0…

ChatGPT应用在AIGC内容生产【赠书活动|第一期《硅基物语》】

文章目录 爆火的AI工具ChatGPT走入大众视野的AIGCAIGC领域的发展AIGC价值引领『赠书活动 &#xff5c; 第一期』 爆火的AI工具ChatGPT 2023年伊始&#xff0c;ChatGPT就火遍全网&#xff0c;成为了全球最快拥有1亿月活用户的产品。在地铁上、电梯中、咖啡厅到处都充满着讨论AI…

五、PC远程控制ESP32 LED灯

1. 整体思路 2. 代码 # 整体流程 # 1. 链接wifi # 2. 启动网络功能(UDP) # 3. 接收网络数据 # 4. 处理接收的数据import socket import time import network import machinedef do_connect():wlan = network.WLAN(network.STA_IF)wlan.active(True)if not wlan.isconnected(…

【BI系统】选型常见问题解答二

本文主要总结BI系统选型过程中遇见的常见问题&#xff0c;并针对性做出回答&#xff0c;希望能为即将选型&#xff0c;或正在选型BI系统的企业用户们提供一个快速了解通道。 有针对金蝶云星空的BI方案吗&#xff1f;能起到怎样的作用&#xff1f; 答&#xff1a;奥威BI系统拥…

Nevron Vision for .NET Crack

Nevron Vision for .NET Crack NET Vision是一个用于创建具有数据可视化功能的强大数据表示应用程序的套件。该套件具有用于.NET的Nevron Chart、用于.NET的Nevron Diagram和用于.NET的Nevron User Interface。精心设计的对象模型、众多功能和高质量的演示使复杂数据的可视化变…

【MySQL】

这里写目录标题 MySQL架构一条sql执行流程MySQL数据存放电脑位置ibd文件结构行溢出是什么MySQL行记录存储格式 MySQL架构 MySQL 的架构共分为两层&#xff1a;Server 层和存储引擎层 Server层 Server 层主要负责建立连接、分析和执行 SQL。MySQL 里大多数的核心功能模块都在这实…

python机器学习(七)决策树(下) 特征工程、字典特征、文本特征、决策树算法API、可视化、解决回归问题

决策树算法 特征工程-特征提取 特征提取就是将任意数据转换为可用于机器学习的数字特征。计算机无法直接识别字符串&#xff0c;将字符串转换为机器可以读懂的数字特征&#xff0c;才能让计算机理解该字符串(特征)表达的意义。 主要分为&#xff1a;字典特征提取(特征离散化)…

Grafana V10 告警推送 邮件

最近项目建设完成&#xff0c;一个城域网项目&#xff0c;相关zabbix和grafana展示已经完&#xff0c;想了想&#xff0c;不想天天看平台去盯网络监控平台&#xff0c;索性对告警进行分类调整&#xff0c;增加告警的推送&#xff0c;和相关部门的提醒&#xff0c;其他部门看不懂…

Qt应用开发(基础篇)——时间微调输入框QDateTimeEdit、QDateEdit、QTimeEdit

一、前言 QAbstractSpinBox是全部微调输入框的父类&#xff0c;这是一种允许用户通过点击上下箭头按钮或输入数字来调整数值的图形用户界面控件&#xff0c;父类提供了当前值text、对齐方式align、只读readOnly等通用属性和方法。在上一篇数值微调输入框中有详细介绍。 QDateTi…

嘉楠勘智k230开发板上手记录(三)--K230_GPU应用实战

按照K230_GPU应用实战.md 一、开发环境的准备 在src下创建文件夹&#xff0c;并在文件夹中创建Makefile mkdir my_vglite_code cd my_vglite_codeMakefile # SDK地址 K230SDK ? /root/k230/k230_sdk-main # 生成的可执行文件名字 BIN : test-vglite# 指定交叉编译器 CC : …

python-爬虫作业

# -*- coding:utf-8 -*-Author: 董咚咚 contact: 2648633809qq.com Time: 2023/7/31 17:02 version: 1.0import requests import reimport xlwt from bs4 import BeautifulSoupurl "https://www.dygod.net/html/gndy/dyzz/" hd {user-Agent:Mozilla/4.0 (Windows N…

Linux文件属性与权限管理(可读、可写、可执行)

Linux把所有文件和设备都当作文件来管理&#xff0c;这些文件都在根目录下&#xff0c;同时Linux中的文件名区分大小写。 一、文件属性 使用ls -l命令查看文件详情&#xff1a; 1、每行代表一个文件&#xff0c;每行的第一个字符代表文件类型&#xff0c;linux文件类型包括&am…

springboot高级

springboot 进阶 SpringBoot 整合 Mybatis【重点】 SpringBoot单元测试【掌握】 SpringBoot整合SpringMVC【掌握】 SpringBoot异常处理【掌握】 SpringBoot定时任务【掌握】 SpringBoot打包【掌握】 一、SpringBoot 整合 Mybatis 1、SpringBoot 整合 Mybatis MyBatis …

简单易懂的Transformer学习笔记

1. 整体概述 2. Encoder 2.1 Embedding 2.2 位置编码 2.2.1 为什么需要位置编码 2.2.2 位置编码公式 2.2.3 为什么位置编码可行 2.3 注意力机制 2.3.1 基本注意力机制 2.3.2 在Trm中是如何操作的 2.3.3 多头注意力机制 2.4 残差网络 2.5 Batch Normal & Layer Narmal 2.…

摄影入门基础笔记

1.认识相机&#xff0c;传感器和镜头 微单相机和单反相机 运动相机、卡片机 微单和单反的区别&#xff1f; 微单的光学结构少了反光板的结构以及棱镜的结构 DSLR [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PCSYr2Ob-1691407493645)(https:/…