1.activiti部署xml時發現process的id屬性實際部署到數據庫中對應process的key字段。數據庫
2.主流程中使用service task,調用JavaDelegate實現類拋出BPMN異常來調用子流程中的錯誤開始事件報錯。要求subprocess必須爲event subprocess。eclipse
解決:選中subprocess構件,勾選triggered by event異步
如圖ide
3.由於在actiBPM中沒有找到事務子流程、取消結束事件、補償事件等元素。所以從新下載了eclipse並安裝了activiti插件。由於部門使用idea開發環境,所以我使用eclipse畫完流程圖以後,嘗試把bpmn拷貝回idea運行。idea
使用idea打開bpmn文件,選擇圖上的取消結束事件,能夠觀察到actiBPM並不識別 EventType,從而顯示Error getting value。而且以前一條鏈接補償邊界事件和補償 service task之間的虛線也消失了。插件
此時運行程序提示以下code
Compensation activity could not be found (or it is missing 'isForCompensation="true"'
即找不到對應的補償事件或者沒有在補償事件上設置isForconsation屬性,查看xml文件,屬性已經設置,找不到補償事件天然時虛線消失的問題,至於爲何消失還有待研究。//todoxml
4.在子流程設置了消息啓動時間,啓動不成功的問題,解決方案。blog
ProcessEngine engine= ProcessEngines.getDefaultProcessEngine(); RuntimeService runtimeService=engine.getRuntimeService(); //不能使用以下命令啓動,由於如下命令是啓動一個新的流程實例 而非子流程 // runtimeService.startProcessInstanceByMessage("myMsg"); //應該先獲取消息name設置爲myMsg的全部execution,在根據executionID來向他發送消息 Execution execution=runtimeService.createExecutionQuery().messageEventSubscriptionName("myMsg").singleResult(); System.out.println(execution.toString()); runtimeService.messageEventReceived("myMsg",execution.getId());
5.service task啓動其餘事件後,主流程不能繼續往下跑。可是若是使用中間拋出事件,而且設置爲異步,那麼主流程能夠繼續往下跑。事件
6.actiBPM存在變動bpmn圖像後xml不跟隨改變,即變動bpmn圖像無效的狀況。
7.actiBPM打開流程圖,以前設置的屬性存在所有不現實(可是有效)的狀況。
7.actiBPM缺乏的補償邊界事件,可使用子流程中再包含一個子流程的方式來實現;
錯誤邊界事件和取消邊界事件能夠起到相似的功能。