1.流程定義
流程定義描述的是系統中有哪些種類的流程、每種流程包括哪幾個步驟(即環節),每個步驟有哪些後續步驟。
流程定義的內容儲存在資料庫表中,需要使用資料庫sql指令碼完成流程定義的工作。資料庫表為wf_action_def(聯合主鍵為流程定義(process_def_id)+ 環節定義(action_def_id))
2.流程許可權選單
3.流程環節配置表:wf_action_def
4.流程環節表表:wf_work_item
5.er圖
6.開啟流程在流程的開始頁面中呼叫service開啟流程,返回業務流水號
//組裝引數
// mapparamsmap = dto.getdata();
startwfparams startwfparams = new startwfparams();
startwfparams.setwfdefname("單位新登記"); //流程名稱
startwfparams.setkeydata("新增單位登記記錄"); //業務關鍵資訊
startwfparams.setoperid(dto.getuserinfo().getoperid()); //操作員id
startwfparams.setbae006(dto.getuserinfo().getbae001()); //經辦機構
startwfparams.setdocusservice(true); //是否執行業務service
//開啟流程,並返回流水號
string ywlsh = cn.sinobest.framework.util.wfutil.startwf(startwfparams);
system.out.println("這是新建的業務流水號:"+ywlsh);
return ywlsh;
}7.生成環節開啟流程時框架會生成相應的環節,環節有對應的業務流水號,狀態等資訊
8.控制流程提交
/* 新增單位資訊提交後進入到審核環節;
* 審核環節審核通過則開始"結束審核環節";
* 審核環節審核不通過則回退到"單位資訊在環節";
* @param dto
* @return 成功或失敗
* @throws exception
*/public void commitwf(idto dto) throws exceptionelse
//提交當前的登記環節,進入審核環節
wfparams.setwid(work_id); //環節號(wf_work_item.work_item_id)
wfparams.setaccepter("998"); //接收人
wfparams.setjbr("998"); //經辦人
wfparams.setkeydata("提交單位資訊審核"); //關鍵資訊
wfparams.setbae006(dto.getuserinfo().getbae001()); //經辦機構
wfparams.setcomment("提交單位資訊進入審核環節"); //流程備註
dto.setvalue(iworkflow.submit_params, wfparams);
wfservice.submitwf(dto);
return ;
}
}
執行乙個流程時,當環節執行到結束環節,該流程的狀態會被置為「結束」,表明整個流程已經結束。
9.小結:
9.1.編碼之前弄清楚整個業務邏輯的流程到底是怎樣的,這樣編碼的時候會事半功倍。
9.2.其實流程也不是很複雜,不要在心理上就抗拒它。
9.3.多練習多思考,理解最重要。
簽核流程設計
在oa等一些系統中往往要簽核,其實簽核工作流分好幾種,下面的只是一種。下面是關於模擬簽核wf的表的設計以及實現簽核過程思路。一 指明狀態 1 新增 2 修改 3 核准 6 駁回 7 提交 二 簽核表結構設計 checkprogram 1 簽核程式表 乙個程式一般只有乙個簽核路線 簽核程式編號 簽核路...
讀核日記 三
讀核日記 三 在linux 中每乙個程序都由 task struct 資料結構來定義 task struct 就是我們通常所說的 pcb.她是對程序控制的唯一手段也是最有效的手段.當我們呼叫 fork 時,系統會為我們產生乙個 task struct結構.然後從父程序 那裡繼承一些資料 並把新的程序...
af 框架流程
原文出自 了解mfc程式的啟動過程,對於初學者來講,了學習mfc很有幫助 對於不常用vc的人來說,過一段時間就會忘記。還是來記下來,方便以後查閱。2 winmain登場 extern c int winapi twinmain hinstance hinstance,hinstance hprevi...