activiti筆記

    這段時間在作流程引擎activiti,遇到了一些問題,感受在不少帖子大可能是講解演示api,可是有不少細節並無指出,我在本身學習的過程當中開始記錄須要注意的地方;數據庫

網上比較多的我就不講了,講講我遇到的以爲有問題的地方吧;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_字段的更新;app

@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,先記錄問題,以後更新帖子會附上代碼;學習

 

 

 

以上總結,歡迎各位看客批評指正,不勝感激!!!測試

相關文章
相關標籤/搜索