资讯专栏INFORMATION COLUMN

Activiti6之表结构分析-引擎配置及流程部署

xorpay / 1062人阅读

摘要:如图流程引擎创建完成后,只会对进行操作,属性数据表存储整个流程引擎级别的数据初始化表结构时,会默认插入四条记录,流程部署测试流程部署,先把上面的流程引擎配置的注解改为。如图资源流程定义数据表这里面存放的就是我们部署的资源元数据信息。

关于activiti是什么,我这里就不多说了,我们直接上路,O(∩_∩)O哈哈~

引擎配置

配置方式有好几种:
1):

/**
 * 获取默认的流程引擎实例 会自动读取activiti.cfg.xml文件,驱动包,url,数据库用户名,密码写在xml中
 */
private ProcessEngine processEngine=ProcessEngines.getDefaultProcessEngine();

2):通过java配置,我们这里讲使用 JUnit单元测试,为了更清晰,我们使用Java配置,

    //流程引擎
    private ProcessEngine processEngine;
    
    /**    
     * @Description: 数据库初始化
     * @param:       
     * @return: void        
     */
    @Test
    public void testProcessEngineConfiguration() {
        
        ProcessEngineConfiguration config = ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration ();
        config.setJdbcDriver ("com.mysql.jdbc.Driver");
        config.setJdbcUrl("jdbc:mysql://localhost:3306/tx-activiti?characterEncoding=UTF-8&serverTimezone=UTC&nullCatalogMeansCurrent=true");
        config.setJdbcUsername("root");
        config.setJdbcPassword("root");
        
        //在构建过程引擎时,执行检查并在必要时执行模式的更新. 如果没有表则创建,
        config.setDatabaseSchemaUpdate (ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);

        processEngine = config.buildProcessEngine ();
    }
    

我们只需要新建好数据库,然后执行上面的 单元测试方法, 然后就会自动在表中新建 28 张表。

如图:

流程引擎创建完成后,只会对 act_ge_property 进行操作,

act_ge_property 属性数据表存储整个流程引擎级别的数据,初始化表结构时,会默认插入四条记录,

流程部署

测试流程部署,先把上面的流程引擎配置的注解改为@Before。

    @Before
    //@Test
    public void testProcessEngineConfiguration() {
      //...
    }

部署流程:

/**    
     * @Description: 部署
     * @param:       
     * @return: void        
     */
    @Test
    public void testCreateDeployment() {
        
        Deployment deployment =  processEngine.getRepositoryService () // 仓库服务
               .createDeployment () //创建部署对象
               .addClasspathResource ("diagrams/helloword.bpmn") // 加载资源文件
               .addClasspathResource ("diagrams/helloword.png")
               .name ("HelloWorld") //流程名称
               .key ("helloword_key") // 部署key
               .category ("test") //类别
               .tenantId ("hz") //租户id,用于区分多个项目共用一个流程服务
               .deploy ();
        
        System.out.println ("流程部署ID:"+ deployment.getId ());
        System.out.println ("流程部署Key:"+ deployment.getKey ());
        System.out.println ("流程部署Name:"+ deployment.getName ());
        System.out.println ("流程部署TenantId:"+ deployment.getTenantId ());
        System.out.println ("流程部署Time:"+ deployment.getDeploymentTime ());
        System.out.println ("流程部署Category类别:"+ deployment.getCategory ());
    }

返回结果:

流程部署ID:2501
流程部署Key:helloword_key
流程部署Name:HelloWorld
流程部署TenantId:hz
流程部署Time:Sun Apr 28 16:52:32 CST 2019
流程部署Category类别:test

流程部署成功,我们接下来看看他们对表结构做了什么动作。根据时间排序,我们发现有4个表发生了变更。

act_ge_property:通用_属性表

next.dbid : 由原来的 1 变成了 2501, 下一个主键发送了变动(感觉类似oracle的游标)。其他的没有变动。 如图:

act_re_procdef:资源_流程定义数据表

这里面存放的就是我们部署的资源元数据信息。如图:

这里关注ID, 流程定义ID: helloworld:1:4 -> key:部署id:随机数
这里有一个 TENANT_ID, 其他信息存哪里了呢? 比如: Key 什么的, 我们接着看

感觉这存的就是我们的这一块元数据信息:

act_re_deployment:资源_部署信息表

感觉这存的就是我们的这一块元数据信息:

act_ge_bytearray:通用_二进制数据表

这存的就是我们的流程图片和XML的二进制数据:

总结

一共涉及的表:
1:通用数据表
1) act_ge_bytearray 二进制数据表
2) act_ge_property 属性数据表存储整个流程引擎级别的数据,初始化表结构时,会默认插入四条记录,
2:资源库流程规则表
1) act_re_deployment 部署信息表
2) act_re_procdef 流程定义数据表

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/74338.html

相关文章

  • Activiti6实现自由跳转

    摘要:跳转方法当前任务获取流程定义获取目标节点定义删除当前运行任务流程执行到来源节点删除当前运行时任务命令,并返回当前任务的执行对象这里继承了,主要时很多跳转业务场景下,要求不能时挂起任务。 前言 工作快2年的小白,如有错误,恳请大家批评指点,这也是开始写博客的一个初衷,能够在分享互动、知识梳理中进步。之前工作的项目使用activiti5进行企业流程系统开发,现在这份工作也开始需要流程开发,...

    tianhang 评论0 收藏0
  • Activiti6通过监听修改实体id、springboot集成配置

    摘要:当一个根级的结束时,就会进行上述的缓存对象统一的持久化。解决的办法也很简单,改为监听,判断是否时需要修改的任务实体即可。这样后面要进行驳回时,只要通过这样关系表,马上就可以定位到要驳回到的任务了。 1.前言 本文内容主要为以下两点,因为内容有交叉,所以会放在一起介绍。 1.以自由跳转为基础实现不改变原先任务id的驳回关于Activiti6动态跳转可以查看我的另一篇文章Activiti...

    Taste 评论0 收藏0
  • Docker企业级管理平台开放下载,免费使用

    摘要:云帮能解决什么问题新一代企业平台让开发人员轻松地开发部署和运维应用,让架构师和运营人员利用熟知和可靠技术打造一个受控的运行环境。有助于加速企业级应用服务于市场,实现内部资源的有效利用。 云帮是什么? 云帮 是一款基于容器技术的应用管理平台。社区版针对个人、企业完全免费,您可以自由的下载与传播,但需要遵循我们的社区版协议。 云帮从哪里来? 云帮是 北京好雨科技有限公司 结合容器技术整合的...

    sumory 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<