activiti-流程引擎(2)

第一部分续集

看了上一篇的朋友,如果按照上面的弄,肯定是能跑起来的。下面的内容是我对第一部分的补充说明

第一点

请注意这个, 这个id在之后运行实例的时候很重要,他代表的是一个实例的流程图
在这里插入图片描述

第二点

将这个流程图的这个文件的后缀名改为 xml 就能看见流程图的本来的面目了。
在这里插入图片描述
点击designer 就能看到这个流程图的图片了,可以选择导出来,也可以选择不用管,这个都不影响啥,但是如果之后考虑到流程许的展示,还是把图片需要导出来。这里我是导出来图片的,和 流程图放在同一个位置。
在这里插入图片描述
需要注意:最好不要直接导在项目的下面,idea这个好像会报错,我是导在桌面,自己复制进来的。,之后又把xml后缀给改回去,改为bpmn,
如果是 eclipse,就不需要转为图片了,eclipse里面的插件会自动干这个事。
在这里插入图片描述
好了。下面就是一个完整的结构图了。
在这里插入图片描述

第三点

还记得activiti第一次运行的时候,会创建好多表吗?
在这里插入图片描述
关于这些表的介绍,官网上也详细介绍了这些表的用途。
在这里插入图片描述
谷歌浏览器真香,尤其这种翻译。真的好用,下面是对照的翻译
在这里插入图片描述
我在站内看到这位朋友的博客写的挺详细的。各位可以参考参考感谢感谢
我这里为了方便直接就截图了
在这里插入图片描述
在这里插入图片描述

第二部分 启动一个流程。

启动一个流程
还是按照之前的作风,先看官网

package com.liuchen.navite;

import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngineConfiguration;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.repository.ProcessDefinition;

/**
 * @program: che300WorkStudy
 * @description:
 * @author: lc
 * @date: 2020/6/16
 **/
public class MainTest1 {
    public static void main(String[] args) {
//      读取配置文件,获取 ProcessEngine对象。
        String resource = "activiti.cfg.xml";
        ProcessEngineConfiguration processEngineConfiguration = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource(resource);
        ProcessEngine processEngine = processEngineConfiguration.buildProcessEngine();
        String pName = processEngine.getName();
        String ver = ProcessEngine.VERSION;
        System.out.println("ProcessEngine [" + pName + "] Version: [" + ver + "]");

        //管理流程定义
        RepositoryService repositoryService = processEngine.getRepositoryService();

        Deployment deployment = repositoryService.createDeployment()
                                .addClasspathResource("bpmn/hoilday.bpmn")
                                .addClasspathResource("bpmn/hoilday.png")
                                //禁止检查格式。bpmn本质就是个xml文件。这里就是禁止检查xml标签。
                                .disableSchemaValidation()
                                .deploy();
        //流程定义。他的底层还是去查那些相关的表的。这就是得到一个service,查数据库。
        ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery()
                .deploymentId(deployment.getId()).singleResult();
        System.out.println(
                "Found process definition ["
                        + processDefinition.getName() + "] with id ["
                        + processDefinition.getId() + "]");

    }
}

在这里插入图片描述
数据库肯定是要改变的。看看相关的数据库的改变
在 act_ge_bytearry 里面存放的刚才流程图的bpmn文件和png文件。
在 act_ge_propetry 存放的是全局共用的数据。一般这个和我们没什么关系。
在 act_re_deployment 存放的部署信息,一个流程图就会有一条记录
在 act_re_procedf 存放的是一个流程的定义。上面程序输出的hoilday:1:5 就是这个从这个表中拿的。是这个表的 id
在这里插入图片描述
这些表之间的关系看的懂,只要静下心来看。绝对看的懂。这些关系都是挺简单的。如果看不懂,留言吧。

做到这里。才部署了一个流程。下面就是启动一个流程,还记得我们之前说的那个很重要的 id 吗?
如果不知道说啥,请找找 activiti 1
这里也会有数据库表的变化,猜猜,是那些表会变化的。肯定是 以 ru 开头的表会变化的。
关于activiti运行中数据库的变化在之后还是会在说的.

package com.liuchen.navite;

import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngineConfiguration;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.runtime.ProcessInstance;

/**
 * @program: che300WorkStudy
 * @description:
 * @author: lc
 * @date: 2020/6/16
 **/
public class MainTest1 {
    public static void main(String[] args) {
//      读取配置文件,获取 ProcessEngine对象。
        String resource = "activiti.cfg.xml";
        ProcessEngineConfiguration processEngineConfiguration = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource(resource);
        ProcessEngine processEngine = processEngineConfiguration.buildProcessEngine();
        String pName = processEngine.getName();
        String ver = ProcessEngine.VERSION;
        System.out.println("ProcessEngine [" + pName + "] Version: [" + ver + "]");

//        因为之前部署过流程图,这里就注销了.

//        //管理流程定义
//        RepositoryService repositoryService = processEngine.getRepositoryService();
//
//        Deployment deployment = repositoryService.createDeployment()
//                                .addClasspathResource("bpmn/hoilday.bpmn")
//                                .addClasspathResource("bpmn/hoilday.png")
//                                //禁止检查格式。bpmn本质就是个xml文件。这里就是禁止检查xml标签。
//                                .disableSchemaValidation()
//                                .deploy();
//        //流程定义。他的底层还是去查那些相关的表的。这就是得到一个service,查数据库。
//        ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery()
//                .deploymentId(deployment.getId()).singleResult();
//        System.out.println(
//                "Found process definition ["
//                        + processDefinition.getName() + "] with id ["
//                        + processDefinition.getId() + "]");

        RuntimeService runtimeService = processEngine.getRuntimeService();
        ProcessInstance processInstance = runtimeService
                .startProcessInstanceByKey("hoilday");

        System.out.println("Onboarding process started with process instance id ["
                + processInstance.getProcessInstanceId()
                + "] key [" + processInstance.getProcessDefinitionKey() + "]");
    }
}

在这里插入图片描述
如果能看到这里,就说明ok啦。现在去看看数据库里面的变化吧
在这里插入图片描述
这个也很好理解
act_ru_execution 对应的就是一个流程运行的实例。
act_ru_task 对应的就是一个流程实例当前运行的节点。

别急别急,关于现在代码中看不懂的那些API会在之后写的
睡了睡了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值