已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
內(nèi)部資料 注意保密HY-UEP應(yīng)用開(kāi)發(fā)平臺(tái)開(kāi)發(fā)指南工作流開(kāi)發(fā)分冊(cè)煙臺(tái)海頤軟件股份有限公司2013年1月文 檔 說(shuō) 明文檔名稱HY-UEP應(yīng)用開(kāi)發(fā)平臺(tái)開(kāi)發(fā)指南 工作流開(kāi)發(fā)分冊(cè)文檔編號(hào) 文檔版本0.1文檔密級(jí) 內(nèi)部版本0.1.0.2文檔類型初稿 征集意見(jiàn)稿 最終稿文檔編制 編制時(shí)間2013-01-05文檔審核 審核時(shí)間 文檔審核 審核時(shí)間 所屬項(xiàng)目 項(xiàng)目編號(hào) 文檔備注 修 訂 記 錄修訂人修訂內(nèi)容摘要產(chǎn)生版本修訂日期審核人批準(zhǔn)人批準(zhǔn)時(shí)間 目 錄1 前言11.1 編寫目的11.2 適用范圍11.3 相關(guān)說(shuō)明12 綜述12.1 系統(tǒng)架構(gòu)12.2 開(kāi)發(fā)流程23 開(kāi)發(fā)指南33.1 開(kāi)發(fā)環(huán)境配置33.2 任務(wù)相關(guān)數(shù)據(jù)說(shuō)明33.2.1 模板相關(guān)數(shù)據(jù)33.2.2 實(shí)例及任務(wù)列表43.2.3 任務(wù)執(zhí)行情況53.2.4 待辦任務(wù)63.3 啟動(dòng)流程實(shí)例63.4 流程傳遞指南73.4.1 正常傳遞73.4.2 選擇傳遞83.4.3 派工提交83.4.4 回退93.4.5 任務(wù)抽回93.5 人員分配103.6 流程和辦理進(jìn)度的網(wǎng)頁(yè)監(jiān)控113.7 重要常量說(shuō)明113.8 系統(tǒng)配置說(shuō)明134 開(kāi)發(fā)示例144.1 自由流的實(shí)現(xiàn)144.2 會(huì)簽的實(shí)現(xiàn)154.3 并行子流程的實(shí)現(xiàn)154.4 自動(dòng)活動(dòng)的實(shí)現(xiàn)154.5 流程初始化參數(shù)的實(shí)現(xiàn)155 常見(jiàn)問(wèn)題解答151 前言1.1 編寫目的工作流平臺(tái)依托海頤企業(yè)級(jí)應(yīng)用開(kāi)發(fā)平臺(tái)開(kāi)發(fā)實(shí)現(xiàn),為方便進(jìn)行二次開(kāi)發(fā)和流程調(diào)度,單獨(dú)封裝了一套進(jìn)行流程調(diào)度的API接口。這些接口表現(xiàn)為一個(gè)JAVA類的方法,并通過(guò)參數(shù)和返回值進(jìn)行流程調(diào)度和信息交互。通過(guò)這些API的調(diào)用,可以協(xié)助開(kāi)發(fā)者實(shí)現(xiàn)任務(wù)的提交,激發(fā)工作流進(jìn)行相應(yīng)的調(diào)度等。使用HY-UEP平臺(tái)的工作流模塊進(jìn)行二次開(kāi)發(fā),需要了解系統(tǒng)提供的這些API接口,需要掌握這些接口的含義、使用場(chǎng)合、參數(shù)的含義以及遵循一些約定等,本文檔詳細(xì)闡述了這些API編程細(xì)節(jié),并對(duì)調(diào)度引擎中的重要常量、重要參數(shù)、常見(jiàn)示例等做了說(shuō)明;從開(kāi)發(fā)指南到開(kāi)發(fā)示例,一步步指導(dǎo)開(kāi)發(fā)人員完成工作流的二次開(kāi)發(fā)工作。1.2 適用范圍工作流模塊是HY-UEP的選配模塊,因此只有在UEP STUDIO集成開(kāi)發(fā)環(huán)境中創(chuàng)建UEP項(xiàng)目時(shí)選擇了支持工作流模塊的特性,項(xiàng)目中才能進(jìn)行工作流的相關(guān)開(kāi)發(fā)工作。本文檔面向的讀者主要是使用HY-UEP平臺(tái)的工作流模塊進(jìn)行二次開(kāi)發(fā)的開(kāi)發(fā)人員。1.3 相關(guān)說(shuō)明在工作流調(diào)度接口中,使用最多的是各類任務(wù)的提交接口,本文檔主要詳細(xì)介紹了任務(wù)正常提交、選擇傳遞、派工提交、任務(wù)激活、默認(rèn)回退以及任務(wù)抽回等接口。本文檔還介紹了幾種常用業(yè)務(wù)需求的解決方案:自由流的實(shí)現(xiàn)、會(huì)簽的實(shí)現(xiàn)、并行子流程的實(shí)現(xiàn)、自動(dòng)活動(dòng)的實(shí)現(xiàn)以及流程初始化參數(shù)的實(shí)現(xiàn)等。要求預(yù)期讀者需要具備一定的工作流基礎(chǔ)知識(shí),并且在開(kāi)發(fā)過(guò)程中可能會(huì)涉及到眾多的平臺(tái)知識(shí),請(qǐng)參閱HY-UEP相關(guān)文檔。2 綜述2.1 系統(tǒng)架構(gòu)HY-UEP的工作流平臺(tái)作為海頤企業(yè)應(yīng)用平臺(tái)的一個(gè)系統(tǒng)模塊,以業(yè)務(wù)服務(wù)的形式為企業(yè)應(yīng)用提供服務(wù)。工作流平臺(tái)是基于WfMC的工作流模型,結(jié)合多年的開(kāi)發(fā)經(jīng)驗(yàn)開(kāi)發(fā)出的遵循xpdl模型標(biāo)準(zhǔn),滿足分布式、異構(gòu)環(huán)境要求的工作流系統(tǒng)。體系結(jié)構(gòu)如下圖所示:工作流平臺(tái)包括流程建模工具和工作流引擎兩部分,流程建模工具用于流程定義,集成到了UEP Studio開(kāi)發(fā)環(huán)境中。流程引擎負(fù)責(zé)流程的調(diào)度和運(yùn)行,包括三部分:工作流接口、調(diào)度內(nèi)核和引擎服務(wù)。工作流接口對(duì)外提供流程定義、監(jiān)控和調(diào)度接口。調(diào)度內(nèi)核負(fù)責(zé)流程調(diào)度,產(chǎn)生流程實(shí)例、活動(dòng)實(shí)例和任務(wù)項(xiàng)并處理,處理過(guò)程中調(diào)用引擎服務(wù)的事件服務(wù)、時(shí)限服務(wù)、應(yīng)用代理和日志服務(wù)。2.2 開(kāi)發(fā)流程UEP項(xiàng)目如果使用流程模塊,首先要在項(xiàng)目上增加流程模塊的支持,有了流程模塊的支持后,就可以繪制業(yè)務(wù)流程模板,進(jìn)行基于流程的業(yè)務(wù)流程開(kāi)發(fā)了。具體開(kāi)發(fā)過(guò)程如下:1. 分析業(yè)務(wù)需求,找出需要繪制的業(yè)務(wù)流程模板。2. 歸納業(yè)務(wù)辦理步驟,創(chuàng)建標(biāo)準(zhǔn)環(huán)節(jié),為流程繪制做準(zhǔn)備。3. 繪制流程模板,請(qǐng)參考流程建模的操作手冊(cè)。校驗(yàn)成功后加載流程模板。4. 在業(yè)務(wù)應(yīng)用中建立業(yè)務(wù)功能和流程模板的對(duì)應(yīng)方式,并確定業(yè)務(wù)工作單和流程實(shí)例的關(guān)聯(lián)方法,以便運(yùn)行業(yè)務(wù)功能時(shí)能夠啟動(dòng)對(duì)應(yīng)模板的流程實(shí)例,并把流程實(shí)例關(guān)聯(lián)到業(yè)務(wù)工作單上。5. 顯示待辦任務(wù)。6. 在業(yè)務(wù)辦理界面中增加流程傳遞的功能。下面的章節(jié)對(duì)后面幾個(gè)過(guò)程進(jìn)行說(shuō)明。3 開(kāi)發(fā)指南3.1 開(kāi)發(fā)環(huán)境配置工作流模塊只能依托UEP項(xiàng)目進(jìn)行開(kāi)發(fā),所以得首先安裝集成開(kāi)發(fā)環(huán)境UEP-SUTDIO,然后在新建UEP項(xiàng)目時(shí)要勾選“工作流模塊”,也可以在已有的UEP項(xiàng)目中再增加“工作流模塊”的支持。詳細(xì)操作參考UEP Studio平臺(tái)操作指南.doc。3.2 任務(wù)相關(guān)數(shù)據(jù)說(shuō)明3.2.1 模板相關(guān)數(shù)據(jù)3.2.1.1 模板類別EP_WF_ TEMPLATE_CLASS:模板類別表,存儲(chǔ)工作流系統(tǒng)中定義的模板分類信息。字段說(shuō)明:列名代碼類型說(shuō)明模板類別號(hào)TEMPLATE_CLASS_NOnumber(8)上級(jí)模板類別號(hào)UP_CLASS_NOnumber(8)模板類別名TEMPLATE_CLASS_NAMEvarchar2(64)使用系統(tǒng)標(biāo)志MODULE_IDvarchar2(32)排序序號(hào)ORDER_CODEvarchar2(32)備注REMARKvarchar2(255)3.2.1.2 模板庫(kù)主信息EP_WF_ TEMPLATE:存儲(chǔ)工作流系統(tǒng)中已經(jīng)定義的模板信息。字段說(shuō)明:列名代碼說(shuō)明類型模板號(hào)TEMPLATE_NO模板的編號(hào),與版本號(hào)一起唯一標(biāo)識(shí)一模板number(8)版本號(hào)VERSION_NO標(biāo)識(shí)一模板的具體版本,與模板號(hào)一起唯一標(biāo)識(shí)一模板varchar2(8)模板名TEMPLATE_NAME模板的名稱varchar2(64)模板類別號(hào)TEMPLATE_CLASS_NO模板所屬的模板類別號(hào)number(8)是否運(yùn)行版RUN_FLAG是否是當(dāng)前執(zhí)行版,Y,Nvarchar2(1)模板對(duì)應(yīng)程序窗口TAG一個(gè)流程模板對(duì)應(yīng)的程序主窗口或主類varchar2(128)子流程標(biāo)識(shí)AS_SUBFLOW標(biāo)識(shí)一模板是否只能作為子流程使用,不能獨(dú)立啟動(dòng)實(shí)例varchar2 (1)流程模板類型MODEL_TYPE流程模板類型,1:模型1;2:模型2varchar2(1)所屬部門DEPARTMENTnumber(10)創(chuàng)建時(shí)間CREATE_TIMEdate創(chuàng)建者CREATORvarchar2(16)合格標(biāo)志VALID_FLAGY:合格;N不合格varchar2(1)啟用時(shí)間START_DATEdate停止時(shí)間END_DATEdate動(dòng)態(tài)修改標(biāo)志MODIFY_FLAGY:動(dòng)態(tài)修改;N:沒(méi)有動(dòng)態(tài)修改varchar2(1)前身版本PRE_VERSION_NOvarchar2(8)排序序號(hào)ORDER_CODEvarchar2(32)描述信息DESCRIPTION_INFOvarchar2(255)模板日歷CALENDAR_TYPE1:默認(rèn)日歷;2:7*24小時(shí)日歷varchar2(1)3.2.2 實(shí)例及任務(wù)列表3.2.2.1 實(shí)例列表EP_WF_INSTANCE_LIST:存放工作流系統(tǒng)中的實(shí)例信息。字段說(shuō)明:列名代碼說(shuō)明類型實(shí)例號(hào)INSTANCE_IDnumber(10)模板號(hào)TEMPLATE_NOnumber(8)版本號(hào)VERSION_NOvarchar2(8)調(diào)度狀態(tài)STATE0 掛起 1 運(yùn)行 2 正常結(jié)束 3 異常結(jié)束varchar2(1)實(shí)例開(kāi)始時(shí)間START_TIME啟動(dòng)時(shí)間date實(shí)例結(jié)束時(shí)間END_TIME結(jié)束時(shí)間date實(shí)例啟動(dòng)人START_OPERATORvarchar2(32)所屬部門DEPARTMENT實(shí)例的默認(rèn)部門number(10)鎖定標(biāo)志LOCK_FLAGvarchar2(1)頂級(jí)部門TOP_DEPARTMENTnumber(10)備注REMARKvarchar2(255)3.2.2.2 當(dāng)前任務(wù)清單EP_WF_TASK_LIST:存放實(shí)例對(duì)應(yīng)的當(dāng)前任務(wù)列表信息。字段說(shuō)明:列名代碼說(shuō)明類型實(shí)例號(hào)INSTANCE_ID當(dāng)前任務(wù)的實(shí)例號(hào),與任務(wù)號(hào)一起標(biāo)識(shí)一當(dāng)前任務(wù)number(10)活動(dòng)實(shí)例ACTIVITY_INSTANCE_NO活動(dòng)實(shí)例號(hào)number(4)任務(wù)號(hào)TASK_ID當(dāng)前任務(wù)的任務(wù)號(hào),與實(shí)例號(hào)一起標(biāo)識(shí)一當(dāng)前任務(wù)number(4)活動(dòng)號(hào)ACTIVITY_NO當(dāng)前任務(wù)的環(huán)節(jié)號(hào)number(4)標(biāo)準(zhǔn)環(huán)節(jié)號(hào)STD_TACHE_NO當(dāng)前任務(wù)對(duì)應(yīng)的標(biāo)準(zhǔn)環(huán)節(jié)number(10)活動(dòng)名稱ACTIVITY_NAME活動(dòng)名稱Varchar2(128)處理實(shí)體號(hào)ENTI_ID當(dāng)前活動(dòng)的處理實(shí)體varchar2(255)處理實(shí)體類型ENTI_TYPE當(dāng)前活動(dòng)處理實(shí)體的類型,1:角色;2:人員;3:軟模塊;4:子流程varchar2(8)版本號(hào)VERSION_NO實(shí)例使用模板的版本號(hào)char(8)模板號(hào)TEMPLATE_NO實(shí)例使用模板的模板號(hào)number(8)任務(wù)狀態(tài)TASK_STATE0 等待前驅(qū)計(jì)數(shù)完成; 7 待領(lǐng)取;8待處理;9正在處理 ;A 已提交 ;char(1)日歷類型CALENDAR_TYPE1:默認(rèn)日歷2:724小時(shí)3: 組織日歷4: 流程日歷varchar(1)計(jì)時(shí)要求標(biāo)志TIME_FLAG任務(wù)是否要求計(jì)時(shí)varchar2 (1)任務(wù)傳來(lái)人員LAST_COMMITOR當(dāng)存在并行流程時(shí)可以有多個(gè)varchar2(255)超時(shí)標(biāo)志OVERTIME_FLAG任務(wù)是否超時(shí)(Y/N)varchar2 (1)超時(shí)大小OVER_NUM超時(shí)的時(shí)間(單位分鐘)number(18)段時(shí)限超時(shí)標(biāo)志SEG_OVERTIME_FLAGvarchar2 (1)任務(wù)到達(dá)時(shí)間TASK_REACH_TIMEdate實(shí)例啟動(dòng)人START_OPERATORvarchar2(32)角色ROLE_CODEvarchar2(16)父活動(dòng)實(shí)例號(hào)PRT_ACTINS_NO為子流程時(shí),保存父活動(dòng)實(shí)例號(hào)number(4)調(diào)度狀態(tài)STATE是運(yùn)行,掛起,結(jié)束,異常結(jié)束 分別是 1, 0 ,2,3varchar2 (1)任務(wù)應(yīng)完成時(shí)間TASK_LIMIT_TIME設(shè)置時(shí)限時(shí)的到期時(shí)間date所屬部門DEPARTMENTNumber(10)層次標(biāo)志LEVEL_DESCvarchar2(64)任務(wù)開(kāi)始處理時(shí)間START_TREATE_TIMEDate傳來(lái)方式COMMIT_TYPE正常傳遞 1,選擇傳遞 2 派工提交 3 默認(rèn)回退 4 任務(wù)抽回 5varchar2(1)3.2.3 任務(wù)執(zhí)行情況3.2.3.1 任務(wù)執(zhí)行情況EP_WF_ TASK_EXEC_INFO:存儲(chǔ)實(shí)例的詳細(xì)辦理進(jìn)度信息。字段說(shuō)明:列名代碼說(shuō)明類型實(shí)例號(hào)INSTANCE_IDnumber(10)任務(wù)號(hào)TASK_IDnumber(4)活動(dòng)實(shí)例號(hào)ACTIVITY_INSTANCE_NO活動(dòng)號(hào)ACTIVITY_NOnumber(4)標(biāo)準(zhǔn)環(huán)節(jié)號(hào)STD_TACHE_NOnumber(10)活動(dòng)名稱ACTIVITY_NAMEVarchar2(128)日歷類型CALENDAR_TYPE1:默認(rèn)日歷2:724小時(shí)3: 組織日歷4: 流程日歷Varchar2(1)任務(wù)狀態(tài)TASK_STATE0 等待前驅(qū)計(jì)數(shù)完成; 7 待領(lǐng)取;8待處理;9正在處理 ;A 已提交 ;varchar2 (1)模板號(hào)TEMPLATE_NOnumber(8)版本號(hào)VERSION_NOvarchar2 (8)計(jì)時(shí)要求標(biāo)志TIME_FLAGvarchar2 (1)超時(shí)標(biāo)志OVERTIME_FLAGvarchar2 (1)超時(shí)大小OVER_NUM超時(shí)數(shù)以秒記number(18)段時(shí)限超時(shí)標(biāo)志SEG_OVERTIME_FLAGvarchar2(1)任務(wù)傳來(lái)人員LAST_COMMITOR當(dāng)存在并行流程時(shí)可以有多個(gè)varchar2(255)任務(wù)到達(dá)時(shí)間TASK_REACH_TIMEdate任務(wù)提交時(shí)間TASK_COMMIT_TIMEdate任務(wù)提交人TASK_COMMITOR一個(gè)環(huán)節(jié)的任務(wù)提交人只能有一個(gè),但是執(zhí)行實(shí)體可以有多個(gè)varchar2(255)調(diào)度狀態(tài)STATE是運(yùn)行,掛起,結(jié)束,異常結(jié)束 分別是 1, 0 ,2,3varchar2 (1)任務(wù)應(yīng)完成時(shí)間TASK_LIMIT_TIMEdate父活動(dòng)實(shí)例號(hào)PRT_ACTINC_NONumber(4)所屬部門DEPARTMENTNumber(10)層次標(biāo)志LEVEL_DESCvarchar2(64)任務(wù)開(kāi)始處理時(shí)間START_TREATE_TIMEDate傳來(lái)方式COMMIT_TYPE正常傳遞 1,選擇傳遞 2 派工提交 3 默認(rèn)回退 4 任務(wù)抽回 5varchar2(1)3.2.4 待辦任務(wù)流程引擎根據(jù)活動(dòng)的處理實(shí)體設(shè)置進(jìn)行人員分配,分配結(jié)果體現(xiàn)在EP_WF_TASK_LIST表里,和待辦任務(wù)有關(guān)的字段見(jiàn)下表:字段名稱說(shuō)明ENTI_ID處理人員任務(wù)的處理人帳號(hào)ROLE_CODE角色代碼任務(wù)的處理角色DEPARTMENT部門代碼任務(wù)的處理部門TASK_STATE任務(wù)狀態(tài)0 等待前驅(qū)計(jì)數(shù)完成; 7 待領(lǐng)?。?待處理;9正在處理 ;A 已提交 ;檢索待辦任務(wù)時(shí)要綜合考慮上述表中字段的值,由于部門是樹(shù)型的,涉及到上下級(jí)等多個(gè)層次,一般不會(huì)根據(jù)部門過(guò)濾待辦任務(wù)。如果不考慮部門,每個(gè)操作員能看到的任務(wù)為下面幾種情況的并集: 任務(wù)狀態(tài)是待處理,操作員的角色符合任務(wù)處理角色的值 任務(wù)狀態(tài)是待處理和正在處理,操作員帳號(hào)符合處理人員的值3.3 啟動(dòng)流程實(shí)例流程模板定義完畢后,需要加載模板使模板生效,成為當(dāng)前運(yùn)行版,只有當(dāng)前運(yùn)行版的模板版本才能啟動(dòng)流程實(shí)例。調(diào)用createProcessInstance接口啟動(dòng)流程實(shí)例,接口參數(shù)說(shuō)明如下:參數(shù)名稱類型說(shuō)明templateNolong要啟動(dòng)實(shí)例的模板的模板號(hào)versionNoString要啟動(dòng)實(shí)例的模板的版本號(hào)userIdlong流程實(shí)例啟動(dòng)人autoCommitboolean流程的第一個(gè)人工活動(dòng)的處理人的處理方式,false是流程啟動(dòng)人,true表示根據(jù)活動(dòng)的處理實(shí)體設(shè)置由流程引擎分配的,不一定是實(shí)例啟動(dòng)人rightboolean是否檢查流程啟動(dòng)人具有該模板的啟動(dòng)權(quán)限orgIdlong指明流程實(shí)例的實(shí)例部門,-1表示啟動(dòng)人所在的部門formalParamsMap流程的形參值,分輸入和輸出參數(shù),輸入?yún)?shù)需要調(diào)用者提供參數(shù)值;輸出參數(shù)是流程引擎設(shè)置值,流程調(diào)度過(guò)程中調(diào)用getProcessFormalParamValue得到。調(diào)用getProcessFormalParams接口得到流程的形參3.4 流程傳遞指南任務(wù)辦理完畢提交時(shí),平臺(tái)流程模塊提供了幾種傳遞方式,以滿足不同的傳遞要求,下面詳細(xì)說(shuō)明。3.4.1 正常傳遞最基本的使用方法,調(diào)用normalCommitTask接口實(shí)現(xiàn),引擎按照模板中定義的格式將任務(wù)向下傳遞。這里有幾點(diǎn)需要注意:1) 如果當(dāng)前活動(dòng)是多任務(wù)項(xiàng),多任務(wù)項(xiàng)是指同一個(gè)活動(dòng)實(shí)例產(chǎn)生了多個(gè)任務(wù),這些任務(wù)可以并行執(zhí)行,也可以串行執(zhí)行;如果是并行執(zhí)行,當(dāng)前任務(wù)正常提交后,要查看當(dāng)前活動(dòng)實(shí)例下有沒(méi)有其他的未完成的任務(wù),直到所有的任務(wù)都完成了,流程才能流轉(zhuǎn)到下一個(gè)活動(dòng)節(jié)點(diǎn);如果是串行執(zhí)行,當(dāng)前任務(wù)正常提交后,才會(huì)根據(jù)需要產(chǎn)生下一個(gè)任務(wù),直到所有的任務(wù)都產(chǎn)生并完成,流程才能流轉(zhuǎn)到下一個(gè)活動(dòng)節(jié)點(diǎn);2) 如果流程傳遞到的活動(dòng)是自動(dòng)活動(dòng),自動(dòng)活動(dòng)是指不需要人工參與的活動(dòng),所以不會(huì)產(chǎn)生任務(wù)項(xiàng),自動(dòng)活動(dòng)在執(zhí)行完相應(yīng)的代碼或服務(wù)后,流程會(huì)自動(dòng)繼續(xù)向下流轉(zhuǎn);3.4.2 選擇傳遞接口中提供了兩種選擇傳遞的方法,一種是同一流程內(nèi)的選擇傳遞,另一種是跨流程的選擇傳遞。實(shí)現(xiàn)選擇傳遞的過(guò)程如下:1) 首先通過(guò)調(diào)用getOptionalTransions方法獲得可以選擇傳遞的活動(dòng)列表List,這個(gè)列表中包含了通過(guò)跳轉(zhuǎn)邊或是自由流所能到達(dá)的活動(dòng);NextActivityInfo中詳細(xì)記錄了可到達(dá)的活動(dòng)的模板號(hào) 、版本號(hào)、活動(dòng)號(hào)、跳轉(zhuǎn)途徑以及跳轉(zhuǎn)控制策略等信息,應(yīng)用程序可以利用它構(gòu)造出可選擇傳遞的活動(dòng)列表,供客戶選擇。2) 選擇好要跳轉(zhuǎn)的活動(dòng)后 ,如果是同一流程內(nèi)跳轉(zhuǎn),可以調(diào)用簡(jiǎn)單格式的selectCommitTask即可,如果是跨流程跳轉(zhuǎn),則需要調(diào)用復(fù)雜格式的selectCommitTask方法,其中最后一個(gè)參數(shù)nextActivityInfo就可以直接從NextActivityInfo中得到。當(dāng)然,為了通用,統(tǒng)一使用復(fù)雜格式的選擇傳遞方法即可。3.4.3 派工提交派工提交一般用于指定下一個(gè)活動(dòng)執(zhí)行人員的情況,如班長(zhǎng)派工,計(jì)量外勤派工等,引擎并沒(méi)有限定只有流程中的派工活動(dòng)才能調(diào)用派工接口,任一個(gè)活動(dòng)都可以使用派工提交接口。派工提交可用于在單一節(jié)點(diǎn)產(chǎn)生不固定數(shù)目的任務(wù),在派工的參數(shù)中指定任務(wù)處理人或處理部門,一個(gè)節(jié)點(diǎn)指定了幾個(gè)處理人或處理部門就產(chǎn)生幾個(gè)任務(wù),這些任務(wù)以多任務(wù)項(xiàng)的形式存在。還可對(duì)子流程派工實(shí)現(xiàn)并行子流程,對(duì)子流程派工只能派工到部門,并且這個(gè)部門就作為該子流程的實(shí)例部門,并且各子流程內(nèi)的任務(wù)是相互不影響的。進(jìn)行派工提交的控制步驟:1) 首先調(diào)用getDispatchActivities接口得到當(dāng)前活動(dòng)可達(dá)的活動(dòng)列表List,這些活動(dòng)列表中包含當(dāng)前活動(dòng)能到達(dá)的人工活動(dòng)、子流程活動(dòng)以及子流程的首活動(dòng)。可以根據(jù)實(shí)際情況,構(gòu)造一個(gè)或多個(gè)派工提交對(duì)象DispatchInfo,在DispatchInfo中可以指定派工的部門或人員,指定幾個(gè)部門或幾個(gè)人員就產(chǎn)生幾個(gè)任務(wù),這些任務(wù)以多任務(wù)項(xiàng)的形式存在,并且可以通過(guò)DispatchInfo指定這些任務(wù)是并行執(zhí)行還是串行執(zhí)行。其中需要注意的是對(duì)子流程派工只能按照部門派工。2) 調(diào)用dispatchCommitTask接口實(shí)現(xiàn)派工提交。需要注意幾種派工失效的情形:1) 當(dāng)派工后繼環(huán)節(jié)跨越分支環(huán)節(jié)時(shí),由于傳遞時(shí)可能存在條件邊不滿足而造成派工失效。2) 當(dāng)前活動(dòng)是多任務(wù)項(xiàng),如果不是最后一個(gè)任務(wù)進(jìn)行派工,由于該活動(dòng)還沒(méi)有結(jié)束而造成派工失效3.4.4 回退回退是指活動(dòng)的默認(rèn)回退,按照模板定義的環(huán)節(jié)順序回退,不一定是回退到傳來(lái)的活動(dòng)?;赝苏{(diào)用的接口是returnTask,接口的詳細(xì)說(shuō)明請(qǐng)參照API文檔。關(guān)于回退的一些約定:1) 以流程定義的順序回退,而不是回退到傳來(lái)活動(dòng)2) 當(dāng)某個(gè)活動(dòng)是選擇傳遞而來(lái),前驅(qū)活動(dòng)沒(méi)有走過(guò),這種情況下,回退到跳轉(zhuǎn)來(lái)的活動(dòng)。3) 如果當(dāng)前活動(dòng)是個(gè)并行多任務(wù)項(xiàng),一個(gè)任務(wù)還都沒(méi)有處理,則可以回退,否則不能回退;如果當(dāng)前活動(dòng)是個(gè)串行多任務(wù)項(xiàng),會(huì)回退到當(dāng)前任務(wù)的前一個(gè)任務(wù),如果是第一個(gè)任務(wù),就回退到前一個(gè)活動(dòng)。4) 如果回退到的活動(dòng)是個(gè)并行多任務(wù)項(xiàng),則會(huì)退后產(chǎn)生所有的任務(wù),如果回退到的活動(dòng)是個(gè)串行多任務(wù)項(xiàng),則回退后產(chǎn)生串行多任務(wù)項(xiàng)的最后一個(gè)任務(wù)。5) 當(dāng)回退到子流程時(shí),調(diào)度到子流程執(zhí)行過(guò)的最后一個(gè)人工活動(dòng)。6) 對(duì)于模型1來(lái)說(shuō),如果回退中包含分支活動(dòng),則根據(jù)配置決定是否需要?dú)⑺老嚓P(guān)任務(wù)。3.4.5 任務(wù)抽回當(dāng)某個(gè)任務(wù)傳遞后的所有后繼環(huán)節(jié)沒(méi)有處理時(shí),可以進(jìn)行抽回,抽單前,應(yīng)該調(diào)用canTaskRedraw 接口判斷某個(gè)任務(wù)是否可以抽回,然后調(diào)用taskRedraw 接口實(shí)現(xiàn)任務(wù)的抽回。任務(wù)抽回有以下約定:1) 如果要抽回的活動(dòng)是個(gè)多任務(wù)項(xiàng),則只要有一個(gè)任務(wù)完成了,就不能抽回。2) 如果當(dāng)前活動(dòng)是個(gè)并行多任務(wù)項(xiàng),且后續(xù)活動(dòng)任務(wù)還沒(méi)有開(kāi)始,則只抽回當(dāng)前一個(gè)任務(wù);如果當(dāng)前活動(dòng)是個(gè)串行多任務(wù)項(xiàng),則只抽回當(dāng)前任務(wù)。3.5 人員分配現(xiàn)有的人員分配支持活動(dòng)分配到人員或崗位,即在流程中可以指定哪些活動(dòng)分到人,哪些活動(dòng)分到角色。在實(shí)際工作中,人員,部門,角色這些東西一般是相互關(guān)聯(lián)的,引擎的調(diào)度規(guī)則可以大致作如下的描述:1) 如果重復(fù)執(zhí)行保持不變,則首先查看該活動(dòng)是否已經(jīng)執(zhí)行過(guò),如果執(zhí)行過(guò),找出ENTI_ID直接置入,ENTI_TYPE則是指定到人,DEPARTMENT為人員所在部門;如果沒(méi)有執(zhí)行過(guò),則按照活動(dòng)的設(shè)置進(jìn)行人員分配;2) 若活動(dòng)直接指定到部門(直接指定或動(dòng)態(tài)部門),不分配到人,則按照流程的設(shè)置, 直接將部門寫入DEPARTMENT,ENTI_TYPE為按照部門分配,處理人員為空;3) 若活動(dòng)指定到角色(直接指定或動(dòng)態(tài)角色),不分配到人,則按照流程中的設(shè)置,將角色代碼寫入任務(wù)表中的ROLE_CODE字段,處理人員為空,ENTI_TYPE 為按照角色分配,處理部門則根據(jù)調(diào)度時(shí)的實(shí)際情況指定:首先若在流程中指定部門,則直接置入;若流程中指定動(dòng)態(tài)部門,則首先計(jì)算部門表達(dá)式,然后置入;如果屬于派工指定部門提交,則將派工的部門置入;如果最后部門仍然是-1,則將實(shí)例的默認(rèn)部門置入。4) 若活動(dòng)指定到個(gè)人(直接指定或動(dòng)態(tài)指定),人員分配后ENTI_ID為指定的處理人員,ENTI_TYPE 為執(zhí)行類型,DEPARTMENT為人員所在的部門5) 若活動(dòng)的處理實(shí)體是相關(guān)活動(dòng)(流程內(nèi)部相關(guān)或跨流程相關(guān)),如果相關(guān)活動(dòng)已經(jīng)執(zhí)行過(guò),則直接得到處理人員置入ENTI_ID,由于已經(jīng)指定到人,ENTI_TYPE 為指定到人,DEPARTMENT為人員所在的部門;如果相關(guān)活動(dòng)沒(méi)有執(zhí)行,則按照相關(guān)活動(dòng)的設(shè)置進(jìn)行重新分配;6) 分配到人的策略:若是全局分配,則檢查有沒(méi)有默認(rèn)部門,若有,從默認(rèn)部門開(kāi)始找起,搜索順序?yàn)椋耗J(rèn)部門,默認(rèn)部門下面的部門,逐次向上搜索;若沒(méi)有指定默認(rèn)部門,則只按照角色在全局分配;若派工指定部門或模板中指定部門,則只檢索指定部門,若沒(méi)有則將處理人員設(shè)為-1;若按照傳來(lái)部門優(yōu)先,則只搜索傳來(lái)人員所在部門,若沒(méi)有,則將處理人員置為-1!。注意:在任務(wù)列表中,ENTI_ID 存放的是處理人員的賬號(hào)id,LAST_COMMITOR中存放的是傳來(lái)人員的姓名;辦理進(jìn)度中LAST_COMMITOR中存放的是傳來(lái)人員的姓名,TASK_COMMITOR中存放的是編號(hào)3.6 流程和辦理進(jìn)度的網(wǎng)頁(yè)監(jiān)控我們主要借助SVG技術(shù),實(shí)現(xiàn)工作流以及辦理進(jìn)度在網(wǎng)頁(yè)中的圖形展示。具體步驟如下所示:1) 在需要顯示圖形的地方調(diào)用標(biāo)簽workflow:flowsvg2) 調(diào)用js函數(shù)showSvg進(jìn)行圖表展示,showSvg方法有四個(gè)參數(shù)templateNo模板號(hào)、versionNo版本號(hào)、instanceId實(shí)例號(hào)、prtActivityInstanceNo父活動(dòng)實(shí)例號(hào)flowSvg.showSvg(templateNo, versionNo, instanceId, prtActivityInstanceNo);其中flowSvg是標(biāo)簽workflow:flowsvg的id。3) 調(diào)用說(shuō)明:只需要顯示流程時(shí),對(duì)應(yīng)的實(shí)例號(hào)指定為-1;如果要顯示子流程的流程圖,要指定prtActivityInstanceNo;在發(fā)布的目錄中,需要加入一個(gè)icons的子目錄,用于存放svg中使用的各種圖標(biāo).3.7 重要常量說(shuō)明分類名稱、代碼值說(shuō)明流程類型MODEL_TYPE字符型1模型12模型2活動(dòng)類型 ACTIVITY_TYPE字符型1開(kāi)始活動(dòng)2人工活動(dòng)3自動(dòng)活動(dòng)4子流程活動(dòng)5結(jié)束活動(dòng)6分支活動(dòng)7匯聚活動(dòng)8路由活動(dòng)標(biāo)準(zhǔn)環(huán)節(jié)號(hào) STD_TACHE_NO數(shù)字型-1開(kāi)始活動(dòng)-5結(jié)束活動(dòng)-3自動(dòng)活動(dòng)-4子流程活動(dòng)-6分支活動(dòng)-7匯聚活動(dòng)-8路由活動(dòng)內(nèi)置活動(dòng)號(hào) ACTIVITY_NO數(shù)字型1開(kāi)始活動(dòng)2結(jié)束活動(dòng)活動(dòng)啟動(dòng)策略START_POLICY字符型0待激活1直接運(yùn)行2動(dòng)態(tài)指定跳轉(zhuǎn)回退控制策略 JUMP_POLICY 字符型K殺死相關(guān)任務(wù)R保留相關(guān)任務(wù)處理實(shí)體類型 ENTI_TYPE字符型1指定角色+部門2指定人員3相關(guān)活動(dòng)4子流程5自動(dòng)活動(dòng)6動(dòng)態(tài)角色7動(dòng)態(tài)指定人員邊的類型 TRANSITION_TYPE字符型1正常邊2條件邊3跳轉(zhuǎn)邊4默認(rèn)邊5自動(dòng)邊6自由流邊任務(wù)調(diào)度狀態(tài) STATE字符型1運(yùn)行0掛起2結(jié)束3異常結(jié)束任務(wù)狀態(tài) TASK_STATE字符型0等待前驅(qū)庫(kù)所計(jì)算完畢7待領(lǐng)取8待處理9正在處理A完成事件類型EVENT_TYPE 字符型0流程實(shí)例啟動(dòng)前1流程實(shí)例啟動(dòng)后2活動(dòng)實(shí)例啟動(dòng)前3活動(dòng)實(shí)例啟動(dòng)后4活動(dòng)實(shí)例完成前5活動(dòng)實(shí)例完成后6任務(wù)項(xiàng)執(zhí)行前7任務(wù)項(xiàng)執(zhí)行后8任務(wù)項(xiàng)完成前9任務(wù)項(xiàng)完成后3.8 系統(tǒng)配置說(shuō)明為實(shí)現(xiàn)通用和靈活性,調(diào)度引擎中設(shè)置了許多參數(shù)和開(kāi)關(guān)量,這些重要參數(shù)可能影響到調(diào)度細(xì)節(jié),在現(xiàn)場(chǎng)中根據(jù)各自的需要進(jìn)行設(shè)置或刪除這些參數(shù)。參數(shù)名稱參數(shù)說(shuō)明值說(shuō)明CAL_VAR_AT_GET_DISPTACHETACHE獲取派工后繼環(huán)節(jié)時(shí)是否進(jìn)行變量計(jì)算Y:計(jì)算;N:不計(jì)算KILLED_SUBFLOW_DEAL_METHOD子流程殺死后父任務(wù)的處理方式K:殺死,T:向下傳遞DELETED_TASK_STATUS因跳轉(zhuǎn),回退原因刪除的任務(wù)狀態(tài)A 完成GENERATE_SAME_TASK是否重復(fù)產(chǎn)生處理就緒狀態(tài)的任務(wù)Y:產(chǎn)生,N:不產(chǎn)生MULTI_GEN_BRANC
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 我與書的約定講述我的閱讀故事10篇范文
- 項(xiàng)目進(jìn)度管理與資源協(xié)調(diào)活動(dòng)方案
- 城市基礎(chǔ)設(shè)施建設(shè)品質(zhì)保障承諾書7篇范文
- 行業(yè)動(dòng)態(tài)分享與市場(chǎng)洞察互動(dòng)方案
- 銷售團(tuán)隊(duì)激勵(lì)分配方案績(jī)效與回報(bào)掛鉤模板
- 《物理實(shí)驗(yàn)設(shè)計(jì):中學(xué)物理實(shí)驗(yàn)基礎(chǔ)教程》
- 生產(chǎn)計(jì)劃與調(diào)度優(yōu)化模板版
- 智能穿戴設(shè)備銷售協(xié)議(2025年)
- 2025年酒泉教育系統(tǒng)筆試及答案
- 2025年安徽省考銅陵筆試及答案
- 2026年標(biāo)準(zhǔn)版離婚協(xié)議書(有財(cái)產(chǎn))
- 養(yǎng)老院電氣火災(zāi)培訓(xùn)課件
- 中國(guó)工商銀行2025年度春季校園招聘筆試歷年典型考題及考點(diǎn)剖析附帶答案詳解
- 2026年類器官芯片技術(shù)項(xiàng)目商業(yè)計(jì)劃書
- 2026北京西城初二上學(xué)期期末數(shù)學(xué)試卷和答案
- 中國(guó)家庭財(cái)富與消費(fèi)報(bào)告2025年第三季度
- 馬年猜猜樂(lè)(馬的成語(yǔ))打印版
- 杭州物業(yè)外賣管理辦法
- 紅外線治療的操作流程講課件
- 過(guò)去進(jìn)行時(shí)(總結(jié))
- 物業(yè)節(jié)前安全教育培訓(xùn)
評(píng)論
0/150
提交評(píng)論