activiti笔记

本文探讨了使用Activiti流程引擎进行流程部署时遇到的问题,包括DEPLOYMENT_ID_字段未更新及ACT_RE_MODEL表中记录缺失的情况,并提出了相应的解决方案。

    这段时间在做流程引擎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,先记录问题,之后更新帖子会附上代码;

 

 

 

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

转载于:https://my.oschina.net/u/2294525/blog/1613918

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值