Activiti流程操作


以下内容均为黑马课程的学习笔记
视频链接: https://www.bilibili.com/video/BV1H54y167gf?p=106&spm_id_from=333.337.top_right_bar_window_history.content.click

一、流程操作

1 流程定义

1.2 概述

流程定义是线下按照bpmn2.0标准去描述 业务流程,通常使用idea中的插件对业务流程进行建模。

使用idea下的designer设计器绘制流程,并会生成两个文件:.bpmn和.png

1.3 bpmn文件

使用activiti-desinger设计业务流程,会生成.bpmn文件,上面我们已经创建好了bpmn文件

BPMN 2.0根节点是definitions节点。 这个元素中,可以定义多个流程定义(不过我们建议每个文件只包含一个流程定义, 可以简化开发过程中的维护难度)。 注意,definitions元素 最少也要包含xmlns 和 targetNamespace的声明。 targetNamespace可以是任意值,它用来对流程实例进行分类。

流程定义部分:定义了流程每个结点的描述及结点之间的流程流转。

流程布局定义:定义流程每个结点在流程图上的位置坐标等信息。

1.4 生成.png图片文件

IDEA工具中的操作方式

1.4.1 修改文件后缀为xml

首先将evection.bpmn文件改名为evection.xml,如下图:

在这里插入图片描述

evection.xml修改前的bpmn文件,效果如下:

在这里插入图片描述

1.4.2 使用designer设计器打开.xml文件

在evection.xml文件上面,点右键并选择Diagrams菜单,再选择Show BPMN2.0 Designer…
在这里插入图片描述

1.4.3 查看打开的文件

打开后,却出现乱码,如图:

在这里插入图片描述

1.4.4 解决中文乱码

1、打开Settings,找到File Encodings,把encoding的选项都选择UTF-8

在这里插入图片描述

2、打开IDEA安装路径,找到如下的安装目录
在这里插入图片描述

根据自己所安装的版本来决定,我使用的是64位的idea,所以在idea64.exe.vmoptions文件的最后一行追加一条命令: -Dfile.encoding=UTF-8

如下所示:

在这里插入图片描述

一定注意,不要有空格,否则重启IDEA时会打不开,然后 重启IDEA。

如果以上方法已经做完,还出现乱码,就再修改一个文件,并在文件的末尾添加: -Dfile.encoding=UTF-8,然后重启idea,如图:
在这里插入图片描述

最后重新在evection.xml文件上面,点右键并选择Diagrams菜单,再选择Show BPMN2.0 Designer…,看到生成图片,如图:

在这里插入图片描述

到此,解决乱码问题

1.4.5 导出为图片文件

点击Export To File的小图标,打开如下窗口,注意填写文件名及扩展名,选择好保存图片的位置:

在这里插入图片描述

然后,我们把png文件拷贝到resources下的bpmn目录,并且把evection.xml改名为evection.bpmn。

2 流程定义部署

2.1 概述

将上面在设计器中定义的流程部署到activiti数据库中,就是流程定义部署。

通过调用activiti的api将流程定义的bpmn和png两个文件一个一个添加部署到activiti中,也可以将两个文件打成zip包进行部署。

2.2 单个文件部署方式

分别将bpmn文件和png图片文件部署。

package com.itheima.test;

import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.repository.Deployment;
import org.junit.Test;

public class ActivitiDemo {
   
    /**
     * 部署流程定义
     */
    @Test
    public void testDeployment(){
   
//        1、创建ProcessEngine
        ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
//        2、得到RepositoryService实例
        RepositoryService repositoryService = processEngine.getRepositoryService();
//        3、使用RepositoryService进行部署
        Deployment deployment = repositoryService.createDeployment()
                .addClasspathResource("bpmn/evection.bpmn") // 添加bpmn资源
                .addClasspathResource("bpmn/evection.png")  // 添加png资源
                .name("出差申请流程")
                .deploy();
//        4、输出部署信息
        System.out.println("流程部署id:" + deployment.getId());
        System.out.println("流程部署名称:" + deployment.getName());
    }
}

执行此操作后activiti会将上边代码中指定的bpm文件和图片文件保存在activiti数据库。

2.3 压缩包部署方式

将evection.bpmn和evection.png压缩成zip包。

@Test
	public void deployProcessByZip() {
   
		// 定义zip输入流
		InputStream inputStream = this
				.getClass()
				.getClassLoader()
				.getResourceAsStream(
						"bpmn/evection.zip");
		ZipInputStream zipInputStream = 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值