flowable流程資源部署方式


一. 用flowable Modeler設計好流程圖后,有多種資源部署方式

  1. 導出xml,然后部署到flowable數據庫中
    public Deployment deployFlow(String filePath) {
            try {
                DeploymentBuilder deploymentBuilder = repositoryService.createDeployment()
                        .addClasspathResource(filePath);
                Deployment deployment = deploymentBuilder.deploy();
                logger.info("成功:部署工作流成:" + filePath);
                return deployment;
            } catch (Exception e) {
                logger.error("失敗:部署工作流:" + e);
                return null;
            }
        }
  2. 多個流程模型定義文件,即xml打包成zip/bar,多個資源文件一起部署
    InputStream in = this.getClass().getClassLoader().getResourceAsStream("diagrams/approve.zip"); 
    ZipInputStream zipInputStream = new ZipInputStream(in);
    Deployment deployment = processEngine.getRepositoryService()//獲取流程定義和部署對象相關的Service  
                    .createDeployment()//創建部署對象 
                    .addZipInputStream(zipInputStream)//使用zip方式部署,將approve.bpmn和approve.png壓縮成zip格式的文件  
                    .deploy();//完成部署
    System.out.println("部署ID:"+deployment.getId());
    System.out.println("部署時間:"+deployment.getDeploymentTime());
  3. Model方式部署,設計器中的發布就是用的此方法
    Model modelData =modelService.getModel(modelId);
    byte[] bytes = modelService.getBpmnXML(modelData);
    if(bytes==null){
        res.put("error","模型數據為空,請先設計流程並成功保存,再進行發布。");
        return res;
    }
    
    BpmnModel model = modelService.getBpmnModel(modelData);
    if(model.getProcesses().size()==0){
        res.put("error","數據模型不符要求,請至少設計一條主線流程。");
        return res;
    }
    byte[] bpmnBytes = new BpmnXMLConverter().convertToXML(model);
    String processName = modelData.getName()+".bpmn20.xml";
    Deployment deployment = repositoryService.createDeployment()
            .name(modelData.getName())
            .addBytes(processName,bpmnBytes)
            .deploy();
  4. 你也可以用代碼創建bpmnModel模型,然后用以下代碼進行部署
    repositoryService.createDeployment().addBpmnModel("bpmnModel", bpmnModel).deploy();  
  5. 其他部署方式詳細參考flowable源碼

       

 

二. 部署相關的表

  1. act_re_deployment:流程模型部署對象表。
     每部署一次生成一條記錄,首先生成這條數據,它的id主鍵將會被act_re_procdef和act_ge_bytearray作為外鍵。
  2. act_re_procdef:流程定義表。
    一次部署可能采用zip/bar進行部署,里面是有多份流程定義文件xml的,這時候act_re_deployment只有一條部署信息,但act_re_procdef有多個記錄(一個流程定義對應一條)
    ,這個表有DEPLOYMENT_ID_外鍵字段,用它關聯act_re_deployment。
  3. act_ge_bytearray:資源文件表。
    流程模型資源文件的真正存放地方,它每部署一次就會產生2條記錄,一條是關於bpmn規范的文件內容存放在BYTES字段中,另一條是圖片信息,采用二進制格式存儲。
    提示:可以部署后解析bpmn文件的內容自動生成流程圖,實現流程圖的跟蹤線路。
  4. act_re_model:這張表,在xml進行部署時,它沒有內容(flowable放棄了此表改用act_de_model保存流程模型信息)

參考文章:https://blog.csdn.net/zhongzk69/article/details/90737302


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM