文档章节

activiti笔记

kumu
 kumu
发布于 2018/01/27 15:33
字数 519
阅读 34
收藏 0

    这段时间在做流程引擎activiti,遇到了一些问题,感觉在很多帖子大多是讲解演示api,但是有很多细节并没有指出,我在自己学习的过程中开始记录需要注意的地方;

网上比较多的我就不讲了,讲讲我遇到的觉得有问题的地方吧;

首先是部署流程的时候,网上的样例基本上是这样写的,有三种,我使用的是BpmnModel形式:

Model modelData = repositoryService.getModel(moduleId);
ObjectNode modelNode = (ObjectNode) new ObjectMapper().readTree(repositoryService.getModelEditorSource(modelData.getId()));
byte[] bpmnBytes = null;
BpmnModel model = new BpmnJsonConverter().convertToBpmnModel(modelNode);
bpmnBytes = new BpmnXMLConverter().convertToXML(model);
String processName = modelData.getName() + ".bpmn20.xml";
Deployment deployment = repositoryService.createDeployment()
        .name(modelData.getName()).addString(processName, new String(bpmnBytes, "utf-8"))
        .deploy();

但是这样部署之后,存在一个问题,在ACT_RE_MODEL表中DEPLOYMENT_ID_字段没有更新,也就是该条记录的关联关系没有体现出来,所以我在之后添加了DEPLOYMENT_ID_字段的更新;

@RequestMapping(value = "/{id}/deploy.do")
@ResponseBody
public InvokeResult deploy(@PathVariable("id") String moduleId) {
    try {
        Model modelData = repositoryService.getModel(moduleId);
        ObjectNode modelNode = (ObjectNode) new ObjectMapper().readTree(repositoryService.getModelEditorSource(modelData.getId()));
        byte[] bpmnBytes = null;
        BpmnModel model = new BpmnJsonConverter().convertToBpmnModel(modelNode);
        bpmnBytes = new BpmnXMLConverter().convertToXML(model);
        String processName = modelData.getName() + ".bpmn20.xml";
        Deployment deployment = repositoryService.createDeployment()
                .name(modelData.getName()).addString(processName, new String(bpmnBytes, "utf-8"))
                .deploy();
        modelData.setDeploymentId(deployment.getId());
        repositoryService.saveModel(modelData);
        return InvokeResult.success(modelData);
    } catch (Exception e) {
        e.printStackTrace();
        return InvokeResult.failure(e.getMessage());
    }
}

 还有一个问题,由于我每次测试都会把数据库表删干净,重新创建,这种情况就要重新创建流程图,本地数据库测试转到测试服务器还要画一遍,这无形中浪费了很多时间,所以我下了一个上传bpmn文件的部署方法,但是这种部署方法中也出现了一个问题,ACT_RE_MODEL表中没有插入记录,所以执行该逻辑的时候是否也要考虑到在ACT_RE_MODEL表中同步生成数据呢,我还在找API,先记录问题,之后更新帖子会附上代码;

 

 

 

以上总结,欢迎各位看客批评指正,不胜感激!!!

© 著作权归作者所有

kumu
粉丝 1
博文 10
码字总数 2600
作品 0
苏州
私信 提问
activiti学习笔记2-构建流程引擎

一,本节概要 由学习笔记1中的最简单入门实例可以知道,activiti实际上就是提供了一系列服务组件,来完成对流程的管理与控制,如图,在之后的学习中,基本上就是围绕这个图来学习的: 二,构...

安世博
2014/06/14
1K
0
tapestry activiti开发笔记

开发环境的准备: eclipse: kapler plugin: http://activiti.org/designer/update/ tapestry-activiti-0.0.1 tapestry-core: 5.4-beta-6 database:mysql5.5.29 activiti : 5.15.1 <dependen......

zhouyc
2014/05/28
905
0
activiti学习笔记1-最简单入门实例

activiti是JBPM4的后续产品,因为没有用过JBPM4,所以开始对这个产品摸不着头脑,不知道怎么用。后来看了很多案列,说的是快速入门(比如xx兔,某水果OA的),其实有一定难度,关键在于不好理...

安世博
2014/06/12
2.3K
4
activiti学习笔记6-相关设置

一,修改默认设计图颜色 activiti-explorer.war(版本:5.16.4)中,ACTIVITI提供图像查看模块diagram-viewer,这个模块可以以REST的方式获取数据,然后显示流程进行状况,但是默认的TASK是米...

安世博
2014/10/22
1K
1
activiti开发笔记

actgebytearray 多个对1个 actredeployment 数据库说明: ACTRE* RE 表示 repository . 这个前缀表包含了流程定义 和流程静态资源(图片,规则等等) ACTRU* RU表示 runtime 这些运行时的表,...

之渊
2016/09/21
79
0

没有更多内容

加载失败,请刷新页面

加载更多

JIT编程与方法内联

JIT的比较冷门,首先你要读一下这两篇 帖子: 《面向JIT编程-方法内联》 https://blog.csdn.net/u012834750/article/details/79488572 《浅谈对JIT编译器的理解》 https://www.cnblogs.com/...

爱吃窝窝头
22分钟前
4
0
基于TCP的RPC实现

RPC即远程服务调用 出现原因:随着项目越来越大,访问量越来越大,为了突破性能瓶颈,需要将项目拆分成多个部分,这样比起传统的项目都是本地内存调用,分布式的项目之间需要在网络间进行通信...

少年已不再年少
32分钟前
6
0
OSChina 周二乱弹 —— 他只能用这个办法劝你注意身体了

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @-冰冰棒- :#今日歌曲推荐# Kodaline《High Hopes》 《High Hopes》- Kodaline 手机党少年们想听歌,请使劲儿戳(这里) @xiaoshiyue :仙女...

小小编辑
53分钟前
1K
21
Spring Boot Actuator 整合 Prometheus

简介 Spring Boot 自带监控功能 Actuator,可以帮助实现对程序内部运行情况监控,比如监控状况、Bean加载情况、环境变量、日志信息、线程信息等。这一节结合 Prometheus 、Grafana 来更加直观...

程序员果果
今天
11
0
Linux文件查找命令详解

对于文件查找,我们最好用的还是属于find命令了,在说find命令之前,先把另外几个查找命令介绍一下。 目录 0x01 查询命令介绍 0x02 find命令介绍 0x01 查询命令介绍 在介绍之前,首先先了解一...

无心的梦呓
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部