一種基于指令鏈的可靠性與性能一體化柔性工作流實現方法
【專利摘要】一種基于指令鏈的可靠性與性能一體化柔性工作流實現方法,它有四大步驟:一:定義指令集;包括定義業(yè)務項與執(zhí)行方式,指定業(yè)務項執(zhí)行者及其工作方式,定義工作時間,編輯工具、附件和說明,定義業(yè)務項ID以及業(yè)務項輸入項ID,生成業(yè)務項初始狀態(tài),以及簽發(fā)者信息;二:自動生成基于指令鏈的柔性工作流;通過解析任務執(zhí)行方式以及關聯的業(yè)務項構建工作流邏輯,解析執(zhí)行者信息形成初始個人工作列表;三:指令運行與監(jiān)控;驅動指令運行,并根據指令的簽收與完成情況,即時調整業(yè)務項狀態(tài)及個人工作列表并進行監(jiān)控;四:指令動態(tài)調整;在基于指令的工作流執(zhí)行過程中,根據執(zhí)行情況動態(tài)的調整指令。本發(fā)明在計算機【技術領域】里有廣闊地應用前景。
【專利說明】一種基于指令鏈的可靠性與性能一體化柔性工作流實現方法
【技術領域】
[0001]本發(fā)明提供一種基于指令鏈的可靠性與性能一體化柔性工作流實現方法,尤其涉及一種基于指令鏈方式,用于企業(yè)可靠性與性能一體化研發(fā)過程管控的柔性工作流實現方法,屬于計算機【技術領域】。
【背景技術】
[0002]工作流(Workflow)技術本質是“使業(yè)務過程的部分或整體在計算機應用環(huán)境下的自動化”,它可以支持多個參與者之間按照某種預定義的規(guī)則在計算機協(xié)同工作模式(Computer Supported Cooperative work, CSCff)下,自動化的傳遞文檔、信息或任務的過程從而實現某個預期的目標,目前已廣泛應用于現代化企業(yè)的日常研發(fā)工作中。
[0003]傳統(tǒng)工作流技術主要用于相對固化的業(yè)務過程,近年來,為有效處理企業(yè)的各類非確定型業(yè)務及意外情況,近年來研究者開始進行工作流柔性化的相關工作,如提出“選擇-調整”、“異常處理”等柔性化策略。但相較于一般的業(yè)務過程,企業(yè)的可靠性工作具有項目多,耦合多、反復權衡迭代多、反饋分支不確定等特點,此外部分可靠性工作項具有可選性,且開展時機,開展程度受研發(fā)過程進展、費用、進度等多因素影響,不宜固化。因此,當將可靠性工作納入產品研發(fā)過程,形成可靠性與性能一體化研發(fā)過程時,簡單的工作流柔化技術難以取得理想效果,有必要從需求出發(fā),直接給出一種支持可靠性與性能一體化研發(fā)過程的柔性工作流。
【發(fā)明內容】
[0004]本發(fā)明的目的為企業(yè)的研發(fā)過程提供一種柔性工作流,旨在解決可靠性工作融入企業(yè)可研發(fā)過程后,傳統(tǒng)工作流技術無法有效處理可靠性工作項多且不確定、耦合項多、迭代多、分支不確定等問題。
[0005]本發(fā)明的目的是提供了一種基于指令鏈的可靠性與性能一體化柔性工作流的實現方法,它主要包含以下步驟:
[0006]步驟一:定義指令集。
[0007]包括定義業(yè)務項與執(zhí)行方式,指定業(yè)務項執(zhí)行者及其工作方式,定義工作時間,編輯工具、附件和說明,定義業(yè)務項ID以及業(yè)務項輸入項ID,生成業(yè)務項初始狀態(tài),以及簽發(fā)
者信息。
[0008](I)定義業(yè)務項,可以填入多個業(yè)務項。其執(zhí)行方式為N/K (N中取K模式),N為業(yè)務項數量,根據輸入的業(yè)務項數量自動生成。K取值范圍是[1-N],且默認值為N。即默認執(zhí)行方式是并發(fā)業(yè)務,也可把K值調整為I…N-1,此時表示各分支完成K項業(yè)務,即可以認為該指令集完成。
[0009](2)指定業(yè)務執(zhí)行者,可以針對同一業(yè)務項指定多個執(zhí)行者。其執(zhí)行方式為N/K(N中取K模式),N為業(yè)務執(zhí)行者數量,根據輸入的執(zhí)行者名單自動生成。K取值范圍是[1-N],且默認值為1。即默認工作方式是有一名執(zhí)行者完成業(yè)務即可。也可把K值調整為2…N,此時表示至少K個人簽收業(yè)務才可以。
[0010](3)業(yè)務項工作時間指定,必須指定該業(yè)務項的三個時間,即開始時間,結束時間以及告警時間(即接近完成給予警示的時間),要求開始時間早于告警時間,告警時間早于結束時間。同時當前業(yè)務項的開始時間不能早于其輸入業(yè)務項的開始時間。
[0011](4)基于ID編號的業(yè)務項邏輯定義,首先定義當前業(yè)務項的ID編號,采用自動編號方式,然后編輯輸入業(yè)務項的ID編號,默認為空,即沒有輸入業(yè)務項。
[0012](5)編輯業(yè)務項輔助信息,包括編輯工具,可以為業(yè)務項指定軟件工具(含激活方式);編輯附件,可以為業(yè)務項添加文檔、文件作為參考;此外可以編輯業(yè)務項說明,通過文本方式對業(yè)務項進行進一步說明。
[0013](6)簽發(fā)指令,當指令的所有信息編輯完并確認后,可以簽發(fā)指令。在這一過程中,“業(yè)務項狀態(tài)”默認填入“未簽收”,“指令簽發(fā)人”默認填入指令編輯者的信息。
[0014]步驟二:自動生成基于指令鏈的柔性工作流。
[0015]通過解析任務執(zhí)行方式以及關聯的業(yè)務項構建工作流邏輯,解析執(zhí)行者信息形成初始個人工作列表。
[0016](1)解析指令集的任務執(zhí)行方式,N=1時,為單項工作,N>1,且K=N,則為并發(fā)業(yè)務。當N>1,且1≤K〈N時,為K/N業(yè)務,對指令集中的業(yè)務項添加K/N監(jiān)控標記。
[0017](2)解析關聯業(yè)務項,構建工作流邏輯。根據當前業(yè)務項的輸入項ID建立業(yè)務項的輸入輸出關系矩陣A。在A中,如果業(yè)務項i對業(yè)務項j有輸入,則A的元素au=l,否則為0,此外規(guī)定an=0。如果業(yè)務項i對業(yè)務項j有輸入,且i有并發(fā)或K/N業(yè)務項k,則默認k對j有輸入,即aw=l。根據矩陣與圖的轉換關系,即可生成流程圖。
[0018]在生成流程圖的過程中,如果某業(yè)務項沒有任何輸入和輸出,則判定為單項獨立業(yè)務,如果某業(yè)務項只有輸出,則為工作流的起點,如果某業(yè)務項只有輸入,則為工作流的匯點,如果某個業(yè)務項既有輸入也有輸出,則是工作流的中間環(huán)節(jié)。
[0019](3)解析執(zhí)行者信息,配置初始個人工作列表。根據執(zhí)行者名單,將該業(yè)務項推送至所有執(zhí)行者的當前工作列表中,主要信息包括業(yè)務項的工作時間、工具、附件、業(yè)務項說明以及簽發(fā)者等,同時賦予指令初始狀態(tài)為“未簽收”。如果N>1,且1≤K<N時,還需要為相關執(zhí)行者添加K/N監(jiān)控標記。
[0020]步驟三:指令運行與監(jiān)控
[0021]驅動指令運行,并根據指令的簽收與完成情況,即時調整業(yè)務項狀態(tài)及個人工作列表。并進行監(jiān)控。
[0022](1)簽收狀態(tài)變更。當執(zhí)行者簽收任務后,則該工作列表中該業(yè)務項狀態(tài)從“未簽收”變更為“已簽收”。同時對于添加K/N監(jiān)控標簽的執(zhí)行者,只要有K個執(zhí)行者進行簽收,則其余N-K個人的工作列表中自動刪除該業(yè)務項。
[0023](2)完成狀態(tài)變更。在任務截止時間內完成任務,并進行了提交,則該業(yè)務項狀態(tài)變更為“已完成”,同時移至歷史工作列表中。如果輸入任務項狀態(tài)未變更為已完成,則不允許提交任務。如果業(yè)務項添加K/N標簽(即在同一指令集內存在N>1,且1 ≤ K〈N時的情況),當有K項任務被提交,則其余N-K個業(yè)務項的狀態(tài)更為“已完成”,并移至歷史工作列表中。[0024](3)告警狀態(tài)變更。無論執(zhí)行者是否簽收業(yè)務項,只要超出告警時間,仍未提交,則該業(yè)務項狀態(tài)變更為“告警”。
[0025](4)超時狀態(tài)變更。無論執(zhí)行者是否簽收業(yè)務項,只要超出完成時間,仍未提交,則該業(yè)務項狀態(tài)變更為“超時”。
[0026](5)委托狀態(tài)變更。如果業(yè)務項發(fā)生了委托,則業(yè)務項狀態(tài)變更為“委托”,該業(yè)務項一方面轉移到當前執(zhí)行者的歷史工作列表,另一方面同時推送至新執(zhí)行者的個人工作列表中。
[0027](6)異常狀態(tài)變更。如果業(yè)務項被指令簽發(fā)者掛起,則變更“掛起”狀態(tài),無法操作,等待進一步指示,如果業(yè)務項最終被指令簽發(fā)者中止,則業(yè)務項狀態(tài)變更為“中止”,并移至歷史工作列表。
[0028](7)指令運行情況監(jiān)控。記錄各指令完成情況,推送至初始簽發(fā)者。當出現委托、告警和超時情況時,需提醒簽發(fā)者。同時指令簽發(fā)者可以查看自己發(fā)出的所有指令(包括指令委托)的運行情況,查看方式是依據業(yè)務項關聯關系解析出的工作流邏輯。按照顏色對指令的完成情況進行標識,包括未簽收“白色”,已簽收“黃色”,已完成“綠色”,告警“紅色”,超時“黑色”,委托“紫色”。
[0029]步驟四:指令動態(tài)調整
[0030]在基于指令的工作流執(zhí)行過程中,根據執(zhí)行情況動態(tài)的調整指令。包括工作完成后的新指令定義、無法完成工作后的委托、流程出現異常時進行掛起及再定義。
[0031](I)工作完成后,有后續(xù)工作需求,按情況自行定義后續(xù)工作指令集,操作同步驟一,但在輸入業(yè)務項內自動填入已完成業(yè)務項,建立業(yè)務項關聯關系。
[0032](2)無法完成工作后的委托,業(yè)務項處于未簽收或已簽收狀態(tài),出于不預知的原因(如出差,工作調動,請假)無法完成工作時,經判斷時間充足,可以進行業(yè)務項委托,并指定新的業(yè)務執(zhí)行者。由引擎將該任務轉發(fā)至新的執(zhí)行者,并更新指令運行狀態(tài),支持監(jiān)控。
[0033](3)無法完成工作后報告簽發(fā)者,業(yè)務項處于未簽收或已簽收狀態(tài),出于不預知的原因(如出差,工作調動,請假)無法完成工作時,經判斷時間不充足,向簽發(fā)者進行報告。
[0034](4)流程出現異常時掛起,指令簽發(fā)者收到無法完成任務的請求或監(jiān)控反饋回異常信息(如告警或超時)情況下,可以對流程進行掛起,異常業(yè)務項及其后續(xù)的相關業(yè)務項將被置于掛起狀態(tài),無法被操作。
[0035]( 5 )流程再定義。當流程掛起后,對異常業(yè)務項進行中止,并再定義新的業(yè)務項,包括更改業(yè)務項內容、執(zhí)行時間和執(zhí)行者,如果更改涉及到關聯事項也需要同步進行處理。
[0036]本發(fā)明通過以上步驟給出一種基于指令鏈的可靠性與性能一體化柔性工作流實現方法,可以有效支持企業(yè)復雜多變的可靠性與性能一體化研發(fā)過程。其優(yōu)點在于:①可以快速定制多個并發(fā)流程分支②可以靈活指定多人完成任務的方式③可以根據工作完成情況實現流程的邊執(zhí)行邊定義④可以對流程運行情況進行全面監(jiān)控并按需進行調整。
【專利附圖】
【附圖說明】
[0037]圖1為本發(fā)明中所述方法的整體架構框圖
[0038]圖2為本發(fā)明中指令集定義的業(yè)務過程圖
[0039]圖3為本發(fā)明中自動生成柔性工作流的業(yè)務過程圖[0040]圖4為本發(fā)明中解析工作流邏輯時,輸入輸出關系矩陣到流程圖的轉換過程
[0041]圖5為本發(fā)明中指令運行與監(jiān)控的業(yè)務過程圖
[0042]圖6為本發(fā)明中指令動態(tài)調整的業(yè)務過程圖
【具體實施方式】
[0043]為使本發(fā)明的技術方案、特征及優(yōu)點得到更清楚的了解,以下結合附圖,作詳細說明。本發(fā)明給出了一種基于指令鏈的可靠性與性能一體化柔性工作流程實現方法,可用于支持企業(yè)可靠性與性能一體化研發(fā)過程。本發(fā)明可用于通用計算機網絡環(huán)境中,如由服務器與個人計算機組成的網絡,特別適用于Web化的B/S結構。本發(fā)明可以由計算機程序模塊進行描述,通用的計算機程序模塊應包括執(zhí)行特定任務的對象、組件、算法、變量等。本發(fā)明的整體架構,見圖1所示。其具體實施步驟是:
[0044]步驟一:定義指令集,如圖2所示。
[0045]主要工作內容包括定義業(yè)務項與執(zhí)行方式,指定業(yè)務項執(zhí)行者及其工作方式,定義工作時間,編輯工具、附件和說明,定義業(yè)務項ID以及業(yè)務項輸入項ID,生成業(yè)務項初始狀態(tài),以及簽發(fā)者信息。
[0046](I)定義業(yè)務項,可以填入多個業(yè)務項。其執(zhí)行方式為N/K (N中取K模式),N為業(yè)務項數量,根據輸入的業(yè)務項數量自動生成。K取值范圍是[1-N],且默認值為N。即默認執(zhí)行方式是并發(fā)業(yè)務,也可把K值調整為I…N-1,此時表示各分支完成K項業(yè)務,即可以認為該指令集完成。
[0047]舉例如下:
[0048]例I在同一指令集 下發(fā)布3個并發(fā)業(yè)務項,任意兩個完成即可完成該指令集。
[0049]填入3個并發(fā)業(yè)務項的名稱,N=3,同時將K從3調整為2。然后定義相關業(yè)務項
信息即可。
[0050](2)指定業(yè)務執(zhí)行者,可以針對同一業(yè)務項指定多個執(zhí)行者。其執(zhí)行方式為N/K(N中取K模式),N為業(yè)務執(zhí)行者數量,根據輸入的執(zhí)行者名單自動生成。K取值范圍是[1-N],且默認值為I。即默認工作方式是有一名執(zhí)行者完成業(yè)務即可。也可把K值調整為2…N,此時表示至少K個人簽收業(yè)務才可以。
[0051]舉例如下:
[0052]例2某一個任務,職員A、職員B、職員C任何兩個完成即可。
[0053]在執(zhí)行人一欄填入職員A、職員B、職員C,N=3,再將K從默認值I調整為2即可。
[0054](3)業(yè)務項工作時間指定,必須指定該業(yè)務項的三個時間,即開始時間,結束時間以及告警時間(即接近完成給予警示的時間),要求開始時間早于告警時間,告警時間早于結束時間。同時當前業(yè)務項的開始時間不能早于其輸入業(yè)務項的開始時間。
[0055](4)基于ID編號的業(yè)務項邏輯定義,首先定義當前業(yè)務項的ID編號,采用自動編號方式,然后編輯輸入業(yè)務項的ID編號,默認為空,即沒有輸入業(yè)務項。
[0056](5)編輯業(yè)務項輔助信息,包括編輯工具,可以為業(yè)務項指定軟件工具(含激活方式);編輯附件,可以為業(yè)務項添加文檔、文件作為參考;此外可以編輯業(yè)務項說明,通過文本方式對業(yè)務項進行進一步說明。
[0057](6)簽發(fā)指令,當指令的所有信息編輯完并確認后,可以簽發(fā)指令。在這一過程中,“業(yè)務項狀態(tài)”默認填入“未簽收”,“指令簽發(fā)人”默認填入指令編輯者的信息。
[0058]步驟二:自動生成基于指令鏈的柔性工作流,如圖3所示。
[0059]通過解析任務執(zhí)行方式以及關聯的業(yè)務項構建工作流邏輯,解析執(zhí)行者信息形成初始個人工作列表。
[0060](1)解析指令集的任務執(zhí)行方式,N=I時,為單項工作,N>1,且K=N,則為并發(fā)業(yè)務。當N>1,且1≤K〈N時,為K/N業(yè)務,對指令集中的業(yè)務項添加K/N監(jiān)控標記。
[0061](2)解析關聯業(yè)務項,構建工作流邏輯。根據當前業(yè)務項的輸入項ID建立業(yè)務項的輸入輸出關系矩陣A。在A中,如果業(yè)務項i對業(yè)務項j有輸入,則A的元素au=l,否則為0,此外規(guī)定an=0。如果業(yè)務項i對業(yè)務項j有輸入,且i有并發(fā)或K/N業(yè)務項k,則默認k對j有輸入,即aw=l。根據矩陣與圖的轉換關系,即可生成流程圖。
[0062]在生成流程圖的過程中,如果某業(yè)務項沒有任何輸入和輸出,則判定為單項獨立業(yè)務,如果某業(yè)務項只有輸出,則為工作流的起點,如果某業(yè)務項只有輸入,則為工作流的匯點,如果某個業(yè)務項既有輸入也有輸出,則是工作流的中間環(huán)節(jié)。
[0063]舉例如下:
[0064]例3,假設有5項業(yè)務項,編號分別為A01,A02,A03,A04,A05。已知A02的輸入項是A01,A03的輸入項為AOI,A04的輸入項為A02和A03,A05的輸入項為A04,試解析工作
流邏輯。
[0065]如圖4所示,首先根據輸入項關系建立輸入輸出關系矩陣。按已知條件,可得a12=l, a13=l, a24=l, a34=l, a45=l,其他元素為0。然后根據矩陣與圖具有唯一的轉換關系,即可繪制出流程圖。在繪圖過程中,可以按照第I列“只有輸出”,判定AOl為起點??梢园凑盏?行“只有輸入”判定A05為匯點。其余節(jié)點為中間業(yè)務項。
[0066](3)解析執(zhí)行者信息,配置初始個人工作列表。根據執(zhí)行者名單,將該業(yè)務項推送至所有執(zhí)行者的當前工作列表中,主要信息包括業(yè)務項的工作時間、工具、附件、業(yè)務項說明以及簽發(fā)者等,同時賦予指令初始狀態(tài)為“未簽收”。如果N>1,且1≤K<N時,還需要為相關執(zhí)行者添加K/N監(jiān)控標記。
[0067]步驟三:指令運行與監(jiān)控,如圖5所示。
[0068]驅動指令運行,并根據指令的簽收與完成情況,即時調整業(yè)務項狀態(tài)及個人工作列表。并進行監(jiān)控。
[0069](1)簽收狀態(tài)變更。當執(zhí)行者簽收任務后,則該工作列表中該業(yè)務項狀態(tài)從“未簽收”變更為“已簽收”。同時對于添加K/N監(jiān)控標簽的執(zhí)行者,只要有K個執(zhí)行者進行簽收,則其余N-K個人的工作列表中自動刪除該業(yè)務項。
[0070]舉例如下:
[0071]例4假設業(yè)務項S在指定任務執(zhí)行人時,相關職員為職員A、職員B、職員C,已知N=3, K=2,根據任務完成情況調整個人工作列表中業(yè)務項。
[0072]首先,職員Α、B、C均可登陸后,在個人當前工作列表中查看到業(yè)務項S,默認狀態(tài)為“未簽收”。假設職員Α、Β簽收了任務,則Α、Β個人工作列表中仍然保留業(yè)務項S,狀態(tài)變?yōu)椤耙押炇铡?,C再次登陸后則在個人工作列表中無法再看到業(yè)務項S。
[0073](2)完成狀態(tài)變更。如果在任務截止時間內完成任務,并進行了提交,則該業(yè)務項狀態(tài)變更為“已完成”,同時移至歷史工作列表中。如果輸入任務項狀態(tài)未變更為已完成,則不允許提交任務。如果業(yè)務項添加K/N標簽(即在同一指令集內存在N>1,且I ( K〈N時的情況),當有K項任務被提交,則其余N-K個業(yè)務項的狀態(tài)更為“已完成”,并移至歷史工作列表中。
[0074]舉例如下:
[0075]例5假設某一指令集包含3個業(yè)務項i,j, k,其執(zhí)行者分別為職員A、職員B、職員C。業(yè)務項執(zhí)行方式為N/K,N=3, K=2,根據任務完成情況調整個人工作列表中業(yè)務項。
[0076]首先,各并發(fā)業(yè)務項被簽收后,狀態(tài)變更為“已簽收”,如果職員A和B都已經完成工作并提交,則職員Α、B、C的個人工作別表中的業(yè)務項均變更為“已完成”,并轉移到歷史工作列表中。
[0077](3)告警狀態(tài)變更。無論執(zhí)行者是否簽收業(yè)務項,只要超出告警時間,仍未提交,則該業(yè)務項狀態(tài)變更為“告警”。
[0078](4)超時狀態(tài)變更。無論執(zhí)行者是否簽收業(yè)務項,只要超出完成時間,仍未提交,則該業(yè)務項狀態(tài)變更為“超時”。
[0079](5)委托狀態(tài)變更。如果業(yè)務項發(fā)生了委托,則業(yè)務項狀態(tài)變更為“委托”,該業(yè)務項一方面轉移到當前執(zhí)行者的歷史工作列表,另一方面同時推送至新執(zhí)行者的個人工作列表中。
[0080](6)異常狀態(tài)變更。如果業(yè)務項被指令簽發(fā)者掛起,則變更“掛起”狀態(tài),無法操作,等待進一步指示,如果業(yè)務項最終被指令簽發(fā)者中止,則業(yè)務項狀態(tài)變更為“中止”,并移至歷史工作列表。
[0081](7)指令運行情況監(jiān)控。記錄各指令完成情況,推送至初始簽發(fā)者。當出現委托、告警和超時情況時,需提醒簽發(fā)者。同時指令簽發(fā)者可以查看自己發(fā)出的所有指令(包括指令委托)的運行情況,查看方式是依據業(yè)務項關聯關系解析出的工作流邏輯。按照顏色對指令的完成情況進行標識,包括未簽收“白色”,已簽收“黃色”,已完成“綠色”,告警“紅色”,超時“黑色”,委托“紫色”。
[0082]步驟四:指令動態(tài)調整,如圖6所示。
[0083]在基于指令的工作流執(zhí)行過程中,根據執(zhí)行情況動態(tài)的調整指令。包括工作完成后的新指令定義、無法完成工作后的委托、流程出現異常時進行掛起及再定義。
[0084]( I)工作完成后,有后續(xù)工作需求,按情況自行定義后續(xù)工作指令集,操作同步驟一,但在輸入業(yè)務項內自動填入已完成業(yè)務項,建立業(yè)務項關聯關系。
[0085](2)無法完成工作后的委托,業(yè)務項處于未簽收或已簽收狀態(tài),出于不預知的原因(如出差,工作調動,請假)無法完成工作時,經判斷時間充足,可以進行業(yè)務項委托,并指定新的業(yè)務執(zhí)行者。由引擎將該任務轉發(fā)至新的執(zhí)行者,并更新指令運行狀態(tài),支持監(jiān)控。
[0086](3)無法完成工作后報告簽發(fā)者,業(yè)務項處于未簽收或已簽收狀態(tài),出于不預知的原因(如出差,工作調動,請假)無法完成工作時,經判斷時間不充足,向簽發(fā)者進行報告。
[0087](4)流程出現異常時掛起,指令簽發(fā)者收到無法完成任務的請求或監(jiān)控反饋回異常信息(如告警或超時)情況下,可以對流程進行掛起,異常業(yè)務項及其后續(xù)的相關業(yè)務項將被置于掛起狀態(tài),無法被操作。
[0088]舉例如下:
[0089]例6已知5個業(yè)務項AOl到Α05,執(zhí)行人分別是職員Α_Ε。假設職員C在執(zhí)行Α03中已進入告警狀態(tài),但發(fā)現無法按時完成。同時指令初始簽發(fā)者未及時查看監(jiān)控流程運行情況。此外,A03是A04、A05的輸入項,試問如何處理。
[0090]A03的執(zhí)行者職員C發(fā)現無法完成后,應向指令初始簽發(fā)者匯報,初始簽發(fā)者接到通知后掛起A03、A04、A05。相關業(yè)務項執(zhí)行者職員C-E的個人工作列表中相關業(yè)務項狀態(tài)顯示掛起,無法執(zhí)行相關操作。
[0091](5)流程再定義。當流程掛起后,對異常業(yè)務項進行中止,并再定義新的指令集,包括更改業(yè)務項內容、執(zhí)行時間和執(zhí)行者,如果更改涉及到關聯事項也需要同步進行處理。
[0092]舉例如下:
[0093]例7,接例6。初始簽發(fā)者認為A03應該仍由職員C完成,同時延時后影響到業(yè)務A04,不影響A05,如何處理。
[0094]初始簽發(fā)者,通過修改業(yè)務項A03的完成時間后,同步修改A04的相應工作時間,然后重新啟動流程。業(yè)務A04不受任何影響。職員C-E個人工作列表中相關業(yè)務項狀態(tài)變更為“掛起”前狀態(tài)。如原來為“未簽收”,則仍為“未簽收”。
【權利要求】
1.一種基于指令鏈的可靠性與性能一體化柔性工作流實現方法,其特征在于:它包含以下步驟: 步驟一:定義指令集 包括定義業(yè)務項與執(zhí)行方式,指定業(yè)務項執(zhí)行者及其工作方式,定義工作時間,編輯工具、附件和說明,定義業(yè)務項ID以及業(yè)務項輸入項ID,生成業(yè)務項初始狀態(tài),以及簽發(fā)者信息; (1)定義業(yè)務項,可填入多個業(yè)務項,其執(zhí)行方式為N/K,N中取K模式,N為業(yè)務項數量,根據輸入的業(yè)務項數量自動生成;K取值范圍是[1-Ν],且默認值為N,即默認執(zhí)行方式是并發(fā)業(yè)務,也可把K值調整為I…Ν-1,此時表示各分支完成K項業(yè)務,即認為該指令集完成; (2)指定業(yè)務執(zhí)行者,針對同一業(yè)務項指定多個執(zhí)行者,其執(zhí)行方式為Ν/Κ,Ν中取K模式,N為業(yè)務執(zhí)行者數量,根據輸入的執(zhí)行者名單自動生成;Κ取值范圍是[1-Ν],且默認值為I ;即默認工作方式是有一名執(zhí)行者完成業(yè)務即可;也可把K值調整為2…N,此時表示至少K個人簽收業(yè)務才可以; (3)業(yè)務項工作時間指定,必須指定該業(yè)務項的三個時間,即開始時間,結束時間以及告警時間即接近完成給予警示的時間,要求開始時間早于告警時間,告警時間早于結束時間,同時當前業(yè)務項的開始時間不能早于其輸入業(yè)務項的開始時間; (4)基于ID編號的業(yè)務項邏輯定義,首先定義當前業(yè)務項的ID編號,采用自動編號方式,然后編輯輸入業(yè)務項的ID編號,默認為空,即沒有輸入業(yè)務項; (5)編輯業(yè)務項輔助信息,包括編輯工具,為業(yè)務項指定軟件工具;編輯附件,為業(yè)務項添加文檔、文件作為參考;此外編輯業(yè)務項說明,通過文本方式對業(yè)務項進行進一步說明; (6)簽發(fā)指令,當指令的所有信息編輯完并確認后,簽發(fā)指;在這一過程中,“業(yè)務項狀態(tài)”默認填入“未簽收”,“指令簽發(fā)人”默認填入指令編輯者的信息; 步驟二:自動生成基于指令鏈的柔性工作流 通過解析任務執(zhí)行方式以及關聯的業(yè)務項構建工作流邏輯,解析執(zhí)行者信息形成初始個人工作列表; (1)解析指令集的任務執(zhí)行方式,N=I時,為單項工作,Ν>1,且Κ=Ν,則為并發(fā)業(yè)務;當Ν>1,且1 ≤Κ〈Ν時,為Κ/Ν業(yè)務,對指令集中的業(yè)務項添加Κ/Ν監(jiān)控標記; (2)解析關聯業(yè)務項,構建工作流邏輯;根據當前業(yè)務項的輸入項ID建立業(yè)務項的輸入輸出關系矩陣A ;在A中,如果業(yè)務項i對業(yè)務項j有輸入,則A的元素aij=l,否則為O,此外規(guī)定an=0 ;如果業(yè)務項i對業(yè)務項j有輸入,且i有并發(fā)或K/N業(yè)務項k,則默認k對j有輸入,即aw=l ;根據矩陣與圖的轉換關系,即可生成流程圖; 在生成流程圖的過程中,如果某業(yè)務項沒有任何輸入和輸出,則判定為單項獨立業(yè)務,如果某業(yè)務項只有輸出,則為工作流的起點,如果某業(yè)務項只有輸入,則為工作流的匯點,如果某個業(yè)務項既有輸入也有輸出,則是工作流的中間環(huán)節(jié); (3)解析執(zhí)行者信息,配置初始個人工作列表,根據執(zhí)行者名單,將該業(yè)務項推送至所有執(zhí)行者的當前工作列表中,主要信息包括業(yè)務項的工作時間、工具、附件、業(yè)務項說明以及簽發(fā)者,同時賦予指令初始狀態(tài)為“未簽收”;如果N>1,且I ( K〈N時,還需要為相關執(zhí)行者添加K/N監(jiān)控標記;步驟三:指令運行與監(jiān)控 驅動指令運行,并根據指令的簽收與完成情況,即時調整業(yè)務項狀態(tài)及個人工作列表并進行監(jiān)控; (1)簽收狀態(tài)變更;當執(zhí)行者簽收任務后,則該工作列表中該業(yè)務項狀態(tài)從“未簽收”變更為“已簽收”,同時對于添加K/N監(jiān)控標簽的執(zhí)行者,只要有K個執(zhí)行者進行簽收,則其余N-K個人的工作列表中自動刪除該業(yè)務項; (2)完成狀態(tài)變更;在任務截止時間內完成任務,并進行了提交,則該業(yè)務項狀態(tài)變更為“已完成”,同時移至歷史工作列表中;如果輸入任務項狀態(tài)未變更為已完成,則不允許提交任務;如果業(yè)務項添加K/N標簽,即在同一指令集內存在N>1,且I < K〈N時的情況,當有K項任務被提交,則其余N-K個業(yè)務項的狀態(tài)更為“已完成”,并移至歷史工作列表中; (3)告警狀態(tài)變更;無論執(zhí)行者是否簽收業(yè)務項,只要超出告警時間,仍未提交,則該業(yè)務項狀態(tài)變更為“告警”; (4)超時狀態(tài)變更;無論執(zhí)行者是否簽收業(yè)務項,只要超出完成時間,仍未提交,則該業(yè)務項狀態(tài)變更為“超時”; (5)委托狀態(tài)變更;如果業(yè)務項發(fā)生了委托,則業(yè)務項狀態(tài)變更為“委托”,該業(yè)務項一方面轉移到當前執(zhí)行者的歷史工作列表,另一方面同時推送至新執(zhí)行者的個人工作列表中; (6)異常狀態(tài)變更;如果業(yè)務項被指令簽發(fā)者掛起,則變更“掛起”狀態(tài),無法操作,等待進一步指示,如果業(yè)務項最終被指令簽發(fā)者中止,則業(yè)務項狀態(tài)變更為“中止”,并移至歷史工作列表;· (7)指令運行情況監(jiān)控;記錄各指令完成情況,推送至初始簽發(fā)者;當出現委托、告警和超時情況時,需提醒簽發(fā)者,同時指令簽發(fā)者查看自己發(fā)出的所有指令及指令委托的運行情況,查看方式是依據業(yè)務項關聯關系解析出的工作流邏輯;按照顏色對指令的完成情況進行標識,包括未簽收“白色”,已簽收“黃色”,已完成“綠色”,告警“紅色”,超時“黑色”,委托“紫色”; 步驟四:指令動態(tài)調整 在基于指令的工作流執(zhí)打過程中,根據執(zhí)彳丁情況動態(tài)的調整指令;包括工作完成后的新指令定義、無法完成工作后的委托、流程出現異常時進行掛起及再定義; (1)工作完成后,有后續(xù)工作需求,按情況自行定義后續(xù)工作指令集,操作同步驟一,但在輸入業(yè)務項內自動填入已完成業(yè)務項,建立業(yè)務項關聯關系; (2)無法完成工作后的委托,業(yè)務項處于未簽收或已簽收狀態(tài),出于不預知的原因如出差,工作調動,請假無法完成工作時,經判斷時間充足,進行業(yè)務項委托,并指定新的業(yè)務執(zhí)行者;由引擎將該任務轉發(fā)至新的執(zhí)行者,并更新指令運行狀態(tài),支持監(jiān)控; (3 )無法完成工作后報告簽發(fā)者,業(yè)務項處于未簽收或已簽收狀態(tài),出于不預知的原因如出差,工作調動,請假無法完成工作時,經判斷時間不充足,向簽發(fā)者進行報告; (4)流程出現異常時掛起,指令簽發(fā)者收到無法完成任務的請求或監(jiān)控反饋回異常信息如告警或超時情況下,可對流程進行掛起,異常業(yè)務項及其后續(xù)的相關業(yè)務項將被置于掛起狀態(tài),無法被操作; (5 )流程再定義;當流程掛起后,對異常業(yè)務項進行中止,并再定義新的業(yè)務項,包括更改業(yè)務項 內容、執(zhí)行時間和執(zhí)行者,如果更改涉及到關聯事項也需要同步進行處理。
【文檔編號】G06Q10/06GK103824162SQ201410072431
【公開日】2014年5月28日 申請日期:2014年2月28日 優(yōu)先權日:2014年2月28日
【發(fā)明者】馮強, 任羿, 孫博, 楊德真 申請人:北京航空航天大學