說起actviti,很多人都會說它支援bpmn標準,它的流轉都是基於bpmn檔案來執行!
但我們在設計流程時,流程定義真的只能是bpmn定義嗎?
其實不然,activti可以支援任意流程定義,只要你發布流程時,將你的流程定義轉成bpmn檔案即可!
分析如下:
表act_re_model是activiti用於儲存流程模板的表,其中欄位editor_source_value_id_,editor_source_extra_value_id_是用於提供給使用者儲存自己的私有定義.
editor_source_value_id一般存自己的定義,editor_source_extra_value_id_存流程定義的,如activti-explorer就是這麼儲存,真正使用可以只用其中乙個
表act_ge_bytearray是activti用於儲存流程定義,其中name值為source就是對應act_re_model表中editor_source_value_id定義儲存,值為source-extra為自己的editor_source_extra_value_id_定義儲存
現在**如下
儲存自己的私有流程定義
public class c***rocessdefintioncreatecommand implements command
//儲存流程定義
commandcontext.getmodelentitymanager().inserteditorsourceformodel(modelid, flowcontent.getbytes("utf-8"));
//return modelid;
} catch (exception e)
}public c***rocessdefintioncreatecommand(string modelid, string modelname,string flowcontent )
2.獲取自己的私有流程定義
/**
* 增加自定義流程定義
* * @param modelid
* @return
*/public string getprocessdefiniton(string modelid) throws exception
儲存並部署自己的流程定義
public class c***rocessdefintiondeploycommand implements command else
if (model == null) else
commandcontext.getdbsqlsession().flush();
commandcontext.getmodelentitymanager().inserteditorsourceformodel(modelid, flowcontent.getbytes("utf-8"));
commandcontext.getdbsqlsession().flush();
//名稱一定要是bpmn20.xml,否則發布不會成功
string bpmnname = modelkey + ".bpmn20.xml";
deployment deployment = repositoryservice.createdeployment().name(bpmnname)
.addbpmnmodel(bpmnname, bpmnmodel).deploy();
//發布完成後,更新表act_re_model的deployment_id_欄位,activti好像不會自動更新該欄位,不知道是不是bug
model.setdeploymentid(deployment.getid());
commandcontext.getmodelentitymanager().updatemodel((modelentity) model);
return deployment.getid();
} catch (exception e)
}public c***rocessdefintiondeploycommand(string modelid, string flowcontent, string modelkey,
final repositoryservice repositoryservice)
}
上述**中,new mxbpmnxmlconverter().converttobpmnmodel(flowcontent);需要自己構造轉換bpmn物件的方法.
至此,activti構造屬於自己流程定義已成功!
構造屬於自己的記憶體DC類
由於vc6沒有封裝記憶體dc,要想寫出漂亮的介面就會比較困難,也會導致螢幕的閃爍,封裝好這個類以後再去開發軟體就會簡單很多,今天我們就來構造乙個屬於我們自己的記憶體dc。載入點陣圖的方式有很多種,首先寫乙個從資源中載入點陣圖的函式。bool loadbitmap uint nbitmapid,cdc...
選擇屬於自己的ERP
太平洋三威公司 pacific sunwear 通過建立乙個特別的erp系統,成長為擁有1000家連鎖分店的零售商。早在1994年,擁有90家分店的加利福尼亞太平洋三威公司 以下簡稱太平洋三威 在美國西海岸就已頗具影響。隨後該公司進行了大規模的拓展,現在該公司計畫在未來3年裡再增加300家分店,到2...
寫屬於自己的部落格
以前一直想寫部落格,只是因為覺得太浪費時間,所以一直擱置,大學畢業一月半以後,我覺得應該寫寫部落格,一來可以整理一下大學四年來的學習經歷,二來也可以記錄以後的工作經歷。本人上學路程比較坎坷,以至於畢業以後年齡相對來說比較年長一些,所以我決定放棄考研,在以後的工作中鍛鍊自己,是金子在 都會發光。我經常...