專利名稱:流程建模方法
技術(shù)領(lǐng)域:
本發(fā)明涉及軟件建模領(lǐng)域,特別涉及一種流程建模方法。
背景技術(shù):
隨著計算機網(wǎng)絡(luò)技術(shù)的發(fā)展,計算機的處理模式從集中式處理向分布 協(xié)作式處理發(fā)展。在這種新的處理模式下,人們不再滿足于獨立、零散的 辦公自動化和計算機應(yīng)用,而是需要綜合的、集成化的解決方案,這種需 求推動了工作流管理的迅速發(fā)展。工作流管理具有將業(yè)務(wù)邏輯和具體實現(xiàn) 相分離,資源統(tǒng)一編排以及橫跨業(yè)務(wù)領(lǐng)域和軟件系統(tǒng)的特點,上述特點使 得其在分布資源的協(xié)同使用中具有獨特優(yōu)勢。流程建模工具作為工作流管
理系統(tǒng)的一部分,已經(jīng)有越來越多的公司開發(fā)與其相關(guān)的產(chǎn)品,如IBM的 面向業(yè)務(wù)建模人員的WebSphere Business Modeler和面向開發(fā)人員的 Integration Developer, Oracle (甲骨文)公司的BPEL Designer, Active的 Active Designer等。此外,流程建模工具的開源產(chǎn)品有Eclipse開源社區(qū)的 Eclipse BPEL Designer等支持BPEL規(guī)范的建模工具,以及OFBiz、 OBE、 Shark等支持XPDL規(guī)范的建模工具等。這些建模工具提供了可視化的流 程建模環(huán)境,流程建模人員通過手工拖拽、連線和一步步嚴格且復(fù)雜的配 置操作來完成流程建模。
在現(xiàn)有技術(shù)中雖然已經(jīng)提供了上述多種流程建模工具,但這些流程建 模工具對已部署流程進行修改的效率很低。若要提高效率,就要求IT專 業(yè)人員在一開始就按照完善的需求來構(gòu)建流程,但這明顯不符合用戶需求 多變的實際情況。現(xiàn)有流程建模工具很難簡單、快捷地修改已部署流程, 導(dǎo)致難以滿足用戶多變、即時的需求。鑒于傳統(tǒng)的流程建模工具所具有的 上述缺陷,新開發(fā)的流程建模工具越來越多地朝著以用戶為中心、輕量級、 操作簡單靈活的方向發(fā)展。在面向業(yè)務(wù)用戶的流程建模工具中,多采用了 屏蔽技術(shù)細節(jié),輔助用戶建模等手段。例如,Boomi、 RunMyProcess等流程 建模工具提供了封裝企業(yè)應(yīng)用的Connector,屏蔽了底層的服務(wù)調(diào)用細節(jié), 而RunMyProcess還能在活動上拖拽出下一個活動,當用戶將下一個活動拖拽到指定位置時,下一個活動與起始活動間還能夠?qū)崿F(xiàn)自動連線。但在這些 面向業(yè)務(wù)用戶的流程建模工具中,用戶仍然需要手工拖拽活動,并且如果需 要在連線中間插入活動時,用戶需要先刪除連線的結(jié)束活動,然后再拖拽新 的活動,最后還要重新拖拽連線的結(jié)束活動。此外,對流程的修改還涉及到修改后流程的自動化布局,雖然在現(xiàn)有的某些流程建模工具產(chǎn)品(如IBM 的WebSphere Business Modeler)中支持流程的自動化布局,使得流程才莫型更 加美觀。但是每次自動化布局都需要重新處理所有活動,很多活動即使位置 沒有變化也要處理。這也降低了流程建模過程的效率。綜上所述,現(xiàn)有的流程建模工具在以下方面存在不足1、 操作復(fù)雜。用戶需要手工對活動進行連線和布局,即使有些產(chǎn)品支 持自動連線和布局,也存在諸如自動連線操作不完全、布局計算量過大等缺 陷。用戶還需要手工設(shè)置流程邏輯結(jié)點,包括流程邏輯結(jié)點的位置和類型。2、 容易出錯。用戶需要通過繁雜的拖拽、連線等操作來顯式構(gòu)建流 程邏輯,這一過程容易出錯。3、 效率低。用戶需要大量的手工操作,花費時間多,導(dǎo)致流程建模 效率低。發(fā)明內(nèi)容本發(fā)明的目的是克服現(xiàn)有流程建模方法操作復(fù)雜、易出錯、效率低的 缺陷,從而提供一種高效、操作簡單的流程建模方法。本發(fā)明提供了一種流程建模方法,在具有布局編輯器、事件監(jiān)聽器以 及流程數(shù)據(jù)庫的流程視圖顯示區(qū)上實現(xiàn)對拖拽操作的自動處理;所述事件 監(jiān)聽器用于監(jiān)聽用戶所發(fā)出的操作行為;所述布局編輯器用于識別操作行 為的類型;所述流程數(shù)據(jù)庫用于存取已構(gòu)建的流程圖;該方法包4舌步驟1 )、監(jiān)聽到用戶發(fā)出的拖拽操作后,對拖拽操作所涉及的新增活 動的位置進行計算;步驟2)、所述新增活動在位置上與已有活動重疊,在所述已有活動所 在分支上添加包含有新增活動的新的分支;步驟3)、在縱坐標方向上對流程圖的布局進行調(diào)整,在調(diào)整過程中以 新增分支所對應(yīng)的并行控制流程的開始節(jié)點為中心,計算該并行控制流程 中所有分支的縱坐標,使得所有分支關(guān)于該中心對稱;其中,所述縱坐標方向為所述新增分支的法線方向。上述技術(shù)方案中,在步驟l)之后還包括步驟4)、所述新增活動在位置上與已有的顯式連線相交,判斷相交連 線的類型,對直線型連線執(zhí)行下一步,對I型四點折形連線執(zhí)行步驟6), 對II型四點折形連線執(zhí)行步驟7 );步驟5)、在相交的直線型連線上插入所述新增活動,并對后續(xù)活動和 連線的位置加以調(diào)整;步驟6 )、若所述新增活動與所述I型四點折形連線的相交點在后段連 線上,則移動I型四點折形連線的后繼活動和后繼連線,在所述后段連線 上插入所述新增活動,并對同一并行控制流程的其它分支做適應(yīng)性調(diào)整; 否則,取消操作;步驟7)、若所述新增活動與所述II型四點折形連線的相交點在前段連 線上,則移動所述n型四點折形連線及其后繼活動與后繼連線,然后插入 所述新增活動,并對同一并行控制流程的其它分支做適應(yīng)性調(diào)整;否則, 取消操作。上述技術(shù)方案中,在所述的步驟l)之后,還包括 步驟8)、找到流程中的第一個隱藏連線,以所述隱藏連線的結(jié)束活動 為起點,移動后繼活動和連線,然后將所述新增活動移動到所述隱藏連線 原有結(jié)束活動的位置,將該隱藏連線的起始活動和所述新增活動之間用直 線型連線連接,所述新增活動與所述隱藏連線的終止活動之間仍然用隱藏 連線連接。上述技術(shù)方案中,在所述步驟2)中,在所述已有活動所在分支上添 加包括新增活動的新的分支包括步驟2-l)、判斷已有活動是否為所在分支上的唯一活動,如果是唯一 活動,則執(zhí)行下一步,否則,執(zhí)行步驟2-3);步驟2-2)、在已有活動所在分支的并行控制流程的開始節(jié)點和結(jié)束節(jié) 點間添加 一 條包括新增活動的新的分支;步驟2-3 )、在已有活動的前后兩端分別增加并行控制流程的開始節(jié)點 和結(jié)束節(jié)點,并在所述開始節(jié)點和結(jié)束節(jié)點間添加兩條分支, 一條分支包 括所述新增活動,另一條分支包括與新增活動重疊的已有活動。上述技術(shù)方案中,在所述步驟3)中,計算該并行控制流程中所有分 支的縱坐標包括制流程中 的分支數(shù)目,t為相鄰分支間的縱坐標距離。上述技術(shù)方案中,在所述步驟3)中,還包括對于存在嵌套關(guān)系的 并行控制流程,判斷父級并行控制流程中各個分支的縱坐標是否需要調(diào) 整,按照嵌套關(guān)系依次調(diào)整需要調(diào)整的父級并行控制流程中各個分支的縱 坐標,直到完成對整個流程圖在縱坐標方向上的調(diào)整或嵌套關(guān)系中的某一 級并行控制流程的各個分支的縱坐標無需調(diào)整為止。上述技術(shù)方案中,所述的判斷父級并行控制流程中各個分支的縱坐標 是否需要調(diào)整包括步驟3-1 )、由當前所在并行控制流程找到父級并行控制流程的開始節(jié)點;步驟3-2)、將父級并行控制節(jié)點下相鄰兩分支的縱坐標距離與子級并 行控制流程中第 一個分支與最后 一個分支的縱坐標距離的 一半與 一 闊值 的和進行比較,只有當父級并行控制節(jié)點下相鄰兩分支的縱坐標距離小于 子級并行控制流程中第一個分支與最后一個分支的縱坐標距離的一半與 一閾值的和時,才對父級并行控制節(jié)點下的分支的縱坐標進行調(diào)整;所述 閾值的大小為一個活動在顯示時的寬度的一半。上述技術(shù)方案中,所述的步驟5)包括步驟5-l)、以相交的直線型連線的結(jié)束活動為起點,移動相交的直線 型連線的后繼活動和連線;步驟5-2)、在相交的直線型連線的結(jié)束活動的原有位置插入所述新增連線。 —一 、、 _ H 、,,上述技術(shù)方案中,所述的步驟6)包括步驟6-l )、當所述新增活動與所述I型四點折形連線的相交點在后段 連線上時,以所述I型四點折形連線的結(jié)束活動為起點,移動后繼的活動 和連線;步驟6-2 )、在所述I型四點折形連線的結(jié)束活動的原有位置插入所述 新增活動,在所述新增活動與所述I型四點折形連線原有的結(jié)束活動間增加新的直線型連線;
步驟6-3 )、對同 一并行控制流程中的其他分支中的連線的長度進行調(diào)整。
上述技術(shù)方案中,所述的步驟7)包括
步驟7-1 )、當所述新增活動與所述II型四點折形連線的相交點在后段 連線上時,以所述II型四點折形連線為起點,移動后繼的活動和連線;
步驟7-2)、將所述新增活動移動到所述II型四點折形連線的開始節(jié)點 的位置,在所述新增活動與所述II型四點折形連線之前所連接的開始節(jié)點 間增加直線型連線;
步驟7-3 )、對同 一并行控制流程中的其他分支中的連線的長度進行調(diào)整。
本發(fā)明又提供了一種流程建模方法,在具有布局編輯器、事件監(jiān)聽器 以及流程數(shù)據(jù)庫的流程視圖顯示區(qū)上實現(xiàn)對刪除操作的自動處理;所述事 件監(jiān)聽器用于監(jiān)聽用戶所發(fā)出的操作行為;所述布局編輯器用于識別操作 行為的類型;所述流程數(shù)據(jù)庫用于存取已構(gòu)建的流程圖;該方法包括
步驟l)、刪除所選定的活動及其連線;
步驟2)、當已刪除活動為包含該活動的分支上的唯一活動時,刪除該 分支,并對本級并行控制流程中剩余分支的位置進行調(diào)整;
步驟3)、當本級并行控制流程中剩余分支的數(shù)目變?yōu)?時,刪除本級 并行控制的開始節(jié)點、結(jié)束節(jié)點以及相關(guān)的連線。
上述技術(shù)方案中,在所述的步驟l)之后,還包括
步驟4)、當已刪除活動不是包含該活動的分支上的唯一活動時,以被 刪除活動的后繼活動為起點,向前移動后繼活動和連線,直到所在分支的 最后一個活動;
步驟5 )、當本級并行控制流程中的其它分支在被刪除活動的位置上不 存在活動時,調(diào)整其它分支以及后繼活動和連線的位置,直到整個流程的 結(jié)束節(jié)點。
上述技術(shù)方案中,所述的步驟3)包括
步驟3-l)、以剩余分支中的第一個活動為起點,將該分支中的后繼活 動和連線向前移動一定的距離;
步驟3-2)、以所述剩余分支的最后一個活動的后繼活動為起點,向后 遍歷后繼的活動和連線,將這些活動和連線前移一定的距離;步驟3-3)、連接所述剩余分支的第一個活動和它的前繼活動,連接所 述剩余分支的最后一個活動和它的后繼活動。
向右遍歷活動和連線,將這些活動和連線左移一定的距離,然后以分 支最后一個活動的后繼活動為起點,
本發(fā)明還提供了一種流程建模方法,在具有布局編輯器、事件監(jiān)聽器 以及流程數(shù)據(jù)庫的流程視圖顯示區(qū)上實現(xiàn)對轉(zhuǎn)換操作的自動處理;所述事 件監(jiān)聽器用于監(jiān)聽用戶所發(fā)出的操作行為;所述布局編輯器用于識別操作 行為的類型;所述流程數(shù)據(jù)庫用于存取已構(gòu)建的流程圖;該方法包括
步驟1 )、判斷轉(zhuǎn)換操作的類型,對并行控制邏輯的轉(zhuǎn)換操作執(zhí)行下一 步,對選擇控制邏輯的轉(zhuǎn)換操作執(zhí)行步驟3);
步驟2 )、將并行控制的開始結(jié)點和結(jié)束結(jié)點轉(zhuǎn)換為選擇控制的開始結(jié) 點和結(jié)束結(jié)點,結(jié)束操作;
步驟3 )、將選擇控制的開始結(jié)點和結(jié)束結(jié)點轉(zhuǎn)換為并行控制的開始結(jié) 點和結(jié)束結(jié)點。
本發(fā)明的優(yōu)點在于
1、 流程建模過程簡單、方便。
2、 流程建模過程出錯少。
3、 流程建模效率高。
圖1為一個包含有并行分支的流程的流程示意圖2為一個包含有選擇分支的流程的流程示意圖3 (a)為I型四點折形連線的示意圖3 (b)為II型四點折形連線的示意圖3 (c)為流程的開始節(jié)點的示意圖3 (d)為流程的結(jié)束節(jié)點的示意圖4為一個包含有子級并行分支的流程的流程示意圖5 (a)為一個包含有兩個串行的活動A、 B的流程的流程圖5 (b)為將活動C添加到圖5 (a)所示流程圖中的活動A與活動 B之間后所得到流程的流程圖5 (c)為將活動C作為圖5 (a)所示流程圖中的活動A的并行分 支后所得到的流程的流程圖;圖5 (d)為在圖5(c)的流程圖上將活動D拖拽到活動C上后所生 成的流程圖5 (e)為在圖5 (c)的流程圖上將活動D拖拽到I型四點折形連 線上所生成的流程圖5 (f)為在圖5 (c)的流程圖上將活動D拖拽到II型四點折形連 線上所生成的流程圖5 (g)為對分支的縱坐標進行調(diào)整的范例的示意圖5 (h)為包含有隱藏連線的流程的流程圖5 (i)為在圖5 (h)所示流程圖的隱藏連線中插入活動C后的流 程圖6 (a)為一個包含有并行分支的流程的流程圖6 (b)為從圖6(a)所示流程圖中刪除活動D后的流程的流程圖6 (c)為從圖6(b)所示流程圖中刪除活動C后的流程的流程圖6 (d)為一個包含有兩個并行分支,且其中一個并行分支上有兩個 活動的流程的流程圖6 (e)為在圖6(d)所示的流程圖中在包含有兩個活動的并行分 支上刪除其中 一個活動后所得到的流程的流程圖7為對拖拽操作自動處理方法的流程圖8為對刪除操作自動處理方法的流程圖9為對轉(zhuǎn)換操作自動處理方法的流程圖。
具體實施例方式
下面結(jié)合附圖和具體實施方式
對本發(fā)明進行說明。
在對本發(fā)明進行詳細說明之前,首先對本發(fā)明中所涉及的相關(guān)概念進 行統(tǒng)一說明,以方便理解。
活動業(yè)務(wù)過程中的執(zhí)行單元,在本發(fā)明中,所述的活動包括人工活 動和自動執(zhí)行的活動,自動執(zhí)行的活動包括Java類和Web服務(wù)
并行控制節(jié)點業(yè)務(wù)過程中用于表示并行分支的結(jié)構(gòu)性單元,所述并 行分支上的活動要平行處理。如圖1所示,Parallel—Fork是并行控制的開 始節(jié)點,Pamlleljoin是并行控制的結(jié)束節(jié)點。
選擇控制節(jié)點業(yè)務(wù)過程中用于表示選擇分支的結(jié)構(gòu)性單元,不同選 擇分支上的活動按照不同條件加以處理。如圖2所示,Choose_Fork是選擇控制的開始節(jié)點,Choose—Join是選擇控制的結(jié)束節(jié)點。
四點折形連線四點折形連線是流程圖中用于連接活動的一種連線, 四點折形連線通常應(yīng)用于并行流程邏輯或選擇流程邏輯中,它包括有起 點、第一折點、第二折點、終點。四點折形連線的典型形狀如圖3 (a)與 圖3 (b)所示。圖3 (a)中的四點折形連線的起點通常是流程邏輯的開 始結(jié)點,此類連線被稱為I型四點折形連線。圖3 (b)中的四點折形連線 的終點通常是流程邏輯的結(jié)束結(jié)點,此類連線被稱為II型四點折形連線。 流程開始/結(jié)束節(jié)點初始化流程時自動生成的節(jié)點,用S標識流程的 開始節(jié)點,如圖3(c);用E標識流程的結(jié)束節(jié)點。如圖3(d)。
同級分支屬于成對的并行/選擇控制的開始節(jié)點和結(jié)束節(jié)點之間的分 支。如圖1,成對的并行控制的開始節(jié)點和結(jié)束節(jié)點之間的包含活動A的 分支和包含活動B的分支屬于同級分支。而在圖2中,成對的選擇控制的 開始節(jié)點和結(jié)束節(jié)點之間的包含活動A的分支和包含活動B的分支也屬于 同級分支。
父級/子級控制節(jié)點如果在一分支上嵌套分支,則嵌套分支的控制節(jié) 點是該分支的控制節(jié)點的子級控制節(jié)點,該分支的控制節(jié)點是嵌套分支的 控制節(jié)點的父級控制節(jié)點。如圖4所示,包含活動A的分支和包含活動B 的分支的并行控制節(jié)點是包含活動C分支的并行控制節(jié)點的子級控制節(jié) 點,包含活動C的分支的并行控制節(jié)點是包含活動A的分支和包含活動B 的分支的并行控制節(jié)點的父級控制節(jié)點。
以上是對本發(fā)明中所涉及的一些常用概念的說明,下面在這些概念的 基礎(chǔ)上對建模過程進行說明。
用戶要完成建模過程,實際上是要將相互間具有邏輯關(guān)系的活動組合 在一起,以形成流程圖。用戶在建模過程中會執(zhí)行一系列的操作,考察這 些操作,可以分為三個類型, 一類是拖拽操作, 一類是刪除操作, 一類是 轉(zhuǎn)換操作。其中的拖拽操作的本質(zhì)是要將一個新的活動添加到已知流程 中。而刪除操作則是從已知流程中刪除某一活動。轉(zhuǎn)換操作則是要實現(xiàn)并 行流程與選擇流程之間的轉(zhuǎn)換。上述三種類型的操作可設(shè)置不同的命令類 型,使得用戶在輸入相應(yīng)操作時,計算機根據(jù)命令類型自動識別相應(yīng)操作, 從而完成對相應(yīng)操作的自動處理。由于上述三種類型操作的自動處理過程 有很大的差異,因此在下文中將分別加以說明。
在對上述三種類型操作的自動處理進行詳細說明前,首先對各種類型操作的自動處理共同要完成的預(yù)處理操作進行說明。在預(yù)處理操作中需要 完成包括劃分顯示窗口、創(chuàng)建事件監(jiān)聽器、創(chuàng)建布局編輯器、設(shè)定資源數(shù) 據(jù)庫、設(shè)定流程數(shù)據(jù)庫在內(nèi)的多個操作。
在劃分顯示窗口時,所述顯示窗口應(yīng)當包括兩個^L圖顯示區(qū), 一為流
程視圖顯示區(qū),二為資源視圖顯示區(qū)。其中的流程視圖顯示區(qū)用來顯示建 模時所要創(chuàng)建的流程圖。其中的資源視圖顯示區(qū)則用來顯示建模時所要用
到的資源,如人工活動和自動活動,自動活動包括Web服務(wù)、Mashup服 務(wù)、java類等。流程視圖顯示區(qū)中還包括流程活動信息的顯示欄和連線信 息的顯示欄,前者包括流程活動的坐標、名稱、顏色、id,后者包括連線 所關(guān)聯(lián)的活動id,連線顏色,連線的開始坐標、連線的結(jié)束坐標。資源視 圖顯示區(qū)包括資源的更新控件,資源的創(chuàng)建控件。劃分顯示窗口的具體實 現(xiàn)可通過現(xiàn)有技術(shù)實現(xiàn),因此不在此處重復(fù)說明。
所創(chuàng)建的事件監(jiān)聽器用于監(jiān)聽用戶所發(fā)出的操作行為,并將監(jiān)聽到的 操作行為轉(zhuǎn)交給相應(yīng)的控制器進行處理。事件監(jiān)聽器的創(chuàng)建可通過Flex 開發(fā)框架pureMVC的自帶功能實現(xiàn)。
布局編輯器能識別出事件監(jiān)聽器所識別出的用戶操作行為是前述拖 拽操作、刪除操作或轉(zhuǎn)換操作中的哪一種,并根據(jù)不同用戶操作行為的布 局策略對流程圖進行布局,所述的布局策略將在下文中詳細說明。
用戶所設(shè)定的資源數(shù)據(jù)庫用于存取流程中的資源,而流程數(shù)據(jù)庫則用 于存取用戶構(gòu)建的流程。
在完成上述的預(yù)處理操作后,事件監(jiān)聽器隨時監(jiān)聽用戶所作出的操作 行為,并將監(jiān)聽到的操作行為轉(zhuǎn)發(fā)給布局編輯器。布局編輯器對用戶所發(fā) 出的操作行為的類型進行判斷,根據(jù)不同類型的操作行為做出不同的處 理,下面對三種類型的用戶操作行為的處理分別予以說明。 拖拽操作的自動處理
拖拽操作通常發(fā)生在將 一 個活動新增加到 一 個已有流程中時。拖拽操 作決定了新增加活動在已有流程中的位置以及與已有流程中其他活動間 的邏輯關(guān)系。假設(shè)在已有流程中存在兩個串行的活動,如圖5 (a)所示, 分別用A、 B表示,新增加的活動用C表示。在將活動C增加到流程中時, 可能如圖5(b)所示,需要將該活動添加到活動A、 B之間,也可能如圖 5(c)所示,分別生成包含該活動和活動A的兩條分支。活動C與已有活 動A、 B間究竟是何種關(guān)系,與活動C被拖拽到哪個位置有關(guān)。如果活動C^皮拖^拽到活動A、 B間的連線上,則活動C與A、 B間的邏輯關(guān)系應(yīng)如 圖5 (b)的情況。如果活動C被拖拽到與活動A重疊的位置,則活動C 與A、 B間的邏輯關(guān)系應(yīng)如圖5 (c)的情況。雖然實際情況較圖5 (b)、 圖5 (c)所示的情況更為復(fù)雜,但一般都不脫離圖5 (b)、圖5 (c)中所 示出的這兩種基本情況。
鑒于新增活動與流程中已有活動間的邏輯關(guān)系與新增活動在拖拽操 作中的最終位置有關(guān),參考圖7,首先要計算新增活動的最終位置。這一 計算的實現(xiàn)屬于本領(lǐng)域的公知常識,因此不在此處重復(fù)說明。 a、新增活動與已有活動重疊
在得到新增加活動的位置后,判斷該活動的位置是否與流程中的已有 活動重疊。由于在常見的流程圖中,都用四邊形代表活動,因此在判斷過 程中,首先計算新增加活動所代表四邊形的邊上的四個交點的橫、縱坐標
與此同時,還要判斷該活動的縱坐標值(Y值)是否在已有活動的縱坐標 值之間。只有新增活動的橫、縱坐標值都在已有活動的橫、縱坐標值之間, 才認為新增活動與已有活動重疊。需要說明的是,本發(fā)明中所涉及的重疊 不僅僅包括兩個代表活動的四邊形相交的情況,還包括一個四邊形包含在 另一個四邊形內(nèi)的情況。當然,如果在流程圖中,用其他形狀的圖形來代 表活動,則對活動是否存在重疊的判斷過程會發(fā)生相應(yīng)變化,但本領(lǐng)域技 術(shù)人員結(jié)合現(xiàn)有技術(shù)都可以得到變化后的判斷方法。
在前面的說明中已經(jīng)提到,新增活動與已有活動發(fā)生重疊代表了新增 活動與已有活動間具有并行邏輯關(guān)系,因此需要在已有活動的基礎(chǔ)上添加 分支。在添加分支的過程中,需要進一步判斷發(fā)生重疊的已有活動是否是 分支上的唯一活動。如圖5(d)的情況,活動D與活動C重疊,并且活 動C是分支上的唯一活動,則在并行控制的開始節(jié)點和結(jié)束節(jié)點之間添加 一條包含活動D的分支;如果不是分支上的唯一活動,如圖5 (c)的情 況,當活動C與活動A重疊時,由于活動A所在分支上還有活動B,因 此新增并行控制的開始節(jié)點Parallel—Fork和結(jié)束節(jié)點Parallel—Join以及兩 條分支, 一條是包含活動A的分支,另一條是包含活動C的分支。
新增分支后,需要對流程圖的布局進行自動調(diào)整,以使得流程圖更為 協(xié)調(diào)、美觀。首先,在縱坐標方向上對流程圖進行調(diào)整。在調(diào)整過程中, 以新增分支對應(yīng)的并行控制的開始節(jié)點Parallel—Fork為中心,計算該并行控制流程中所有分支的縱坐標,使得所有分支關(guān)于該中心對稱。對并行控
制流程中所有分支的縱坐標的計算可以遵循以下計算公式
設(shè)并行控制的開始節(jié)點Parallel—Fork的縱坐標為y,該并行控制流程 中的分支數(shù)目為n,相鄰分支間的縱坐標距離為t, t應(yīng)為一常數(shù),則第i 個分支的縱坐標應(yīng)當滿足下面的計算公式(1):
如果流程圖中的并行控制流程存在嵌套關(guān)系,則除了要調(diào)整新增分支 所在并行控制流程中各個分支的縱坐標外,還可能要對父級并行控制節(jié)點 下的各個分支進行調(diào)整。與現(xiàn)有技術(shù)中的流程建模工具在自動化布局時需 要對所有活動都進行處理(即使某些活動的位置并沒有發(fā)生變化)不同的 是,本發(fā)明需要先判斷父級并行控制節(jié)點下的分支是否需要調(diào)整,只有當 判斷結(jié)果顯示需要做調(diào)整時,才會做相應(yīng)的調(diào)整。在判斷過程中,先由新 增分支所在并行控制流程向左遍歷到其父級并行控制的開始節(jié)點,然后將 父級并行控制節(jié)點下相鄰兩分支的縱坐標距離與子級并行控制流程中第
一個分支與最后一個分支的縱坐標距離的一半與一閾值的和進行比較,只 有當父級并行控制節(jié)點下相鄰兩分支的縱坐標距離小于子級并行控制流 程中第一個分支與最后一個分支的縱坐標距離的一半與一闊值的和時,才 對父級并行控制節(jié)點下的分支的縱坐標進行調(diào)整,否則就終止布局調(diào)整過 程。在上述判斷過程中,所述的閾值的大小為Ay/2,其中的Ay表示一個活 動在顯示時的寬度。在對父級并行控制節(jié)點下的分支的縱坐標進行調(diào)整的 計算公式與前面的計算公式(1 )相同,只是要將其中的t值轉(zhuǎn)換成子級控 制流程中第一個分支和最后一個分支縱坐標距離與Ay之和。在對父級并行 控制節(jié)點下的分支的縱坐標進行調(diào)整后,在該并行控制流程上還可能存在 更高級別的并行控制流程,對這些更高級別的并行控制流程是否需要調(diào)整 以及如何進行調(diào)整的方法與前面的說明相類似,因此不再做重復(fù)說明。在 圖5 (g)中給出了對分支的縱坐標進行調(diào)整的范例,活動A和活動C的 分支的縱坐標按照前面的計算公式(1)計算進而調(diào)整縱坐標位置后,由 于存在嵌套結(jié)構(gòu),需要遍歷父級的并行控制的開始節(jié)點?;顒覤的分支屬 于父級并行控制節(jié)點下的分支,由于父級并行控制節(jié)點下的相鄰兩分支距 離等于子級第一個分支和最終一個分支即包含活動A的分支和包含活動C 的分支縱坐標距離的一半,因此父級并行控制節(jié)點下相鄰兩分支的縱坐標距離設(shè)置為包含活動A的分支和包含活動C的分支縱坐標距離加上Ay, 從而對包含活動B的分支進行縱坐標距離的調(diào)整。 b、新增活動與已有連線相交
若新增活動的位置與流程中的已有活動不發(fā)生重疊時,還需要對新增 活動是否與流程中的已有連線相交進行判斷。此處所提到的連線是指在流 程圖中顯式示出的連線。流程中的連線包括有多個類型,最為常見的是連 接兩點的直線型連線,此外還包括有前文所提到的四點折形連線。在判斷 新增活動是否與流程中的已有連線相交時,可首先計算活動的中心點與連 線間的距離。對于直線型連線,可直接計算活動的中心點與直線型連線間 的距離。對于四點折形連線,則分別計算活動的中心點到四點折形連線的 前段連線和后段連線間的距離,其中,所述的前段連線是指四點折形連線 中所述起點與所述第 一折點間的連線,而所述的后段連線是指四點折形連 線中所述第二折點與所述終點間的連線。在得到活動的中心點與連線間的 距離后,就可以將該距離與活動在距離所在方向上的一半邊長進行比較, 若所述距離小于所述一半邊長,就認為新增的活動與連線相交,反之,就 不相交。
在新增活動與流程中的連線相交的前提下,需要對相交連線的類型做 進一步判斷,以決定如何對新增活動進行處理。
當相交的連線為直線型連線時,則可以直接在直線型連線中插入活 動。在插入的過程中,首先以相交的直線型連線的結(jié)束活動為起點,向右 遍歷并右移位于所述相交連線右側(cè)的活動和連線,所要移動距離為常數(shù)。 然后在相交連線原來的結(jié)束活動的原有位置插入新增活動,將所述新增活 動作為相交連線的新的結(jié)束活動。最后在新增活動與所述相交連線原來的 結(jié)束活動間增加新的直線型連線。以圖5 (b)為例,當插入活動C時, 首先以活動B為起點,向右遍歷并右移相關(guān)的活動和連線。然后將活動C 移動到原活動B的位置,最后新增活動C和活動B的直線型連線。
當相交的連線為四點折形連線中的I型時,需要判斷新增活動與連線 的相交點是否位于四點折形連線的后段連線上,只有當相交點在后段連線 上時,才能在該四點折形連線上插入活動,否則該操作自動取消。例如, 在圖5 ( c )所示的流程圖中要添加活動D,且所述的活動D與連接并行控 制的開始節(jié)點和活動C的I型四點折形連線相交,且相交點在后段連線上。 將活動D添加到流程圖中的結(jié)果如圖5(e)所示,首先以活動C為起點,向右遍歷并且右移活動和連線,然后將活動D移動到原活動C的位置,新 增活動D和活動C的直線型連線。對其他分支,將增加連接該分支最后活 動和并行控制結(jié)束節(jié)點的四點折形連線的前端連線的長度,所要增加的距 離為常數(shù)。如對于圖5 (e)中的活動A所在的分支,增加連接活動A和 并行控制的結(jié)束節(jié)點的四點折形連線的前端連線的長度,所要增加的距離 為常數(shù)。
當相交的連線為四點折形連線中的II型時,需要判斷新增活動與連線 的相交點是否位于四點折形連線的前段連線上,只有當相交點在前段連線 上時,才能在該四點折形連線上插入活動,否則該操作自動取消。仍然以 圖5 (c)所示的流程圖為例,要在該流程中添加活動D,且活動D與連接 活動C和并行控制的結(jié)束節(jié)點的n型四點折形連線相交,且相交點在前段 連線上。將活動D添加到流程圖中的結(jié)果如圖5 (f)所示,首先以II型四 點折形連線為起點,向右遍歷并且右移活動和連線,然后將活動D移動到 II型四點折形連線的開始節(jié)點的位置,新增活動C和活動D的直線型連線, 對其他分支,增加連接該分支最后活動和并行控制結(jié)束節(jié)點的四點折形連 線的前端連線的長度,所要增加的距離為常數(shù),如對于圖5(f)中的活動 A所在的分支,增加連接活動A和并行控制的結(jié)束節(jié)點的四點折形連線的 前端連線的長度,所要增加的距離為常數(shù)。 c、新增活動與隱藏連線相交
在流程中還存在一種被稱為隱藏連線的特殊類型的連線。設(shè)置隱藏連 線能夠幫助拖拽活動自動定位,提高流程建模效率。隱藏連線初始設(shè)置在 流程開始和結(jié)束節(jié)點之間,也可以在流程的片斷之間。當新增活動與流程 中活動不重疊,與流程中的連線不相交時,則從左向右遍歷連線,找到流 程中的第一個隱藏連線,以隱藏連線的結(jié)束活動為起點,向右遍歷活動和 連線,右移常數(shù)距離,新增活動移動到隱藏連線原來結(jié)束活動的位置,然 后將該隱藏連線的起始活動和新增活動之間 用直線型連線連接,新增活動 與隱藏連線的終止活動之間仍然用隱藏連線連接。如圖5(h),活動B和 流程結(jié)束節(jié)點之間存在一條隱藏連線,當用戶任意拖拽活動C進入流程區(qū) 域時,如果活動C即不和連線相交,也不和其他活動重疊,那么/人左向右 遍歷連線,找到這個隱藏連線,右移流程結(jié)束節(jié)點,活動C移動到原來流 程結(jié)束節(jié)點的位置,活動B和活動C用一條直線型連線連接,活動C和 流程結(jié)束節(jié)點仍然用隱藏連線連接,所得到的最終結(jié)果如圖5 (i)所示。如果用戶完成流程建模,則點擊活動C, 一直拖到流程結(jié)束節(jié)點,隱藏連
線會顯示出來,流程建模完畢;如果用戶不滿意已經(jīng)構(gòu)造好的流程,則可 以通過設(shè)置隱藏連線的方式,將流程分解為若干個流程片段,對每個流程 判斷繼續(xù)建模。具體方法是右鍵連線,將顯示連線設(shè)置為隱藏連線(這里 只能應(yīng)用于直線型連線)。
以上是對拖拽操作的相關(guān)內(nèi)容的說明。從上述說明可以看出,通過拖 拽操作可將新增的活動添加到流程中,實現(xiàn)對已有流程的快速、自動的修 改。
刪除操作的自動處理
刪除操作用于從已有流程中刪除已有的活動。對活動的刪除本身較為 簡單,只要將用戶選定的活動及其關(guān)聯(lián)連線刪除即可。但在刪除所選定的 活動及其連線后,需要對原流程的整個流程圖重新進行布局調(diào)整。如圖8 所示,在調(diào)整過程中,首先判斷已刪除的活動是否是包含該活動的分支上 的唯一活動。當已被刪除的活動是包含該活動的分支上的唯一活動時,需 要同時刪除該分支,然后通過前述的計算公式(1 ),計算本級并行控制流 程中剩余分支的縱坐標,根據(jù)計算結(jié)果對這些分支的位置加以調(diào)整。由于 刪除操作不會對父級并行控制節(jié)點下的各個分支是否關(guān)于并行控制流程 的開始節(jié)點中心對稱產(chǎn)生影響,最多會造成父級并行控制節(jié)點下的相鄰分
支的縱坐標距離變大,因此不需要調(diào)整父級并行控制節(jié)點下的分支的縱坐 標。以圖6(a)為例,要從圖6 (a)所示的流程圖中刪除活動D。由于包 含活動D所在的分支上只有唯一的一個活動D,因此在刪除活動D后, 其所在分支也要刪除,使得并行控制節(jié)點下的分支數(shù)從3變?yōu)?。參照前 面的計算公式(l),在刪除包含活動D的分支后,需要對本級并行控制節(jié) 點下的剩余分支的縱坐標進行調(diào)整。調(diào)整后的流程圖如圖6(b)所示。
在完成前述的刪除分支操作后,還可能會使得本級并行控制節(jié)點下的 分支數(shù)變?yōu)?,此時,并行控制節(jié)點已經(jīng)不再有存在的意義了。因此,需 要進一步刪除并行控制的開始節(jié)點、結(jié)束節(jié)點以及相關(guān)的連線。在刪除時, 以剩余分支中的第一個活動為起點,向右遍歷活動和連線,將這些活動和 連線左移一定的距離,然后以分支最后一個活動的后繼活動為起點,向右 遍歷活動和連線,同樣將這些活動和連線左移一定的距離。最后,連接分 支的第一個活動和它的前繼活動,連接分支的最后一個活動和它的后繼活動。以圖6 (b)所示的流程為例,當需要將活動C從流程中刪除時,由 于包含活動C的分支上只有唯一的一個活動C,刪除該分支,剩余分支數(shù) 變?yōu)?。此時需要刪除Parallel—Fork和Parallel—Join節(jié)點及其關(guān)聯(lián)連線, 然后左移活動A和活動B,保證相鄰活動之間的橫坐標距離是常數(shù),最后 連接流程開始節(jié)點和活動A、連接活動A和活動B、連接活動B與流程結(jié) 束節(jié)點,所得到的最終結(jié)果如圖6 (c)所示。
在前面的對被刪除活動是否是所在分支上的唯一活動的判斷過程中, 還有一個判斷結(jié)果是被刪除活動并非所在分支上的唯一活動。此時需要刪
除該活動及其關(guān)聯(lián)連線,然后以;陂刪除活動的后繼活動為起點,向右遍歷 活動和連線,將這些活動和連線左移常數(shù)距離,直到該分支的最后一個活 動。由于在某一分支上刪除一活動后,同級其他分支上與被刪除活動相對 應(yīng)的位置可能并不存在其他活動。對于這一情況,該級上的所有分支都可 以左移。如果要做左移,則以該級并行控制的結(jié)束節(jié)點為起點,重復(fù)上述 操作,直到整個流程的結(jié)束節(jié)點。如果不能左移,則結(jié)束流程的重新布局 過程。以圖6 (d)為例,在圖6 (d)所示的流程中,刪除活動D。由于 活動D的分支上還有活動C,因此刪除活動D及其關(guān)聯(lián)連線后,左移活動 C。然后判斷該級分支是否都可以左移,顯然活動A所在分支可以左移, 因此以Parallel—Join為起點,向右遍歷活動和連線,左移常數(shù)距離。調(diào)整 后的流程如圖6(e)所示。
以上是對刪除操作的相關(guān)內(nèi)容的說明。從上述說明可以看出,本發(fā)明 的方法除了可以刪除活動外,還可以自動調(diào)整被刪除活動后的流程,不再 需要用戶人工加以調(diào)整。
轉(zhuǎn)換操作的自動處理
轉(zhuǎn)換操作用于實現(xiàn)并行控制邏輯與選擇控制邏輯之間的轉(zhuǎn)換。在前面
的說明中已經(jīng)提到,并行控制邏輯與選擇控制邏輯在流程圖上的表示沒有 太大的差別,只是并行控制的開始結(jié)點和結(jié)束結(jié)點與選擇控制的開始結(jié)點 和結(jié)束結(jié)點存在不同。因此,在實現(xiàn)轉(zhuǎn)換操作時,如圖9所示,如果是對 并行控制邏輯進行轉(zhuǎn)換,則將并行控制的開始結(jié)點和結(jié)束結(jié)點轉(zhuǎn)換為選擇 控制的開始結(jié)點和結(jié)束結(jié)點,并且在選擇控制的開始節(jié)點上編輯選擇條 件。類似的,如果是對選擇控制進行轉(zhuǎn)換,則將選擇控制的開始結(jié)點和結(jié) 束結(jié)點轉(zhuǎn)換為并行控制的開始結(jié)點和結(jié)束結(jié)點。在上面的說明中,對流程建模過程中所涉及的相關(guān)操作的自動處理過 程做了具體的說明。在上述說明所舉的實例中,出于界面布局的考慮,所 涉及流程圖都是按照從左到右的順序進行布局。在實際應(yīng)用中,也存在按 照從上到下的邏輯順序進行布局的流程圖,對于此類流程圖中相關(guān)操作的 自動處理過程與前述說明類似,只是在某些具體的細節(jié)上會存在差別。本 領(lǐng)域技術(shù)人員根據(jù)上述說明中的相關(guān)思想,無需創(chuàng)造性的勞動即可實現(xiàn)此 類流程圖中相關(guān)操作的自動處理。
與現(xiàn)有的流程建模方法相比,在本發(fā)明的流程建模方法中,用戶只要 通過拖拽和點擊兩種操作進行流程建模,減少且簡化了手工操作,降低了 流程建模對用戶的操作要求,從而使得整個流程建模過程簡單、方便。
本發(fā)明的流程建模方法能夠根據(jù)用戶操作活動的行為,自動進行連線 和布局,并且能夠自動設(shè)置流程邏輯,減少了用戶建模的出錯次數(shù)。
本發(fā)明的流程建模方法能夠根據(jù)用戶操作活動的行為,自動進行連線 和布局,并且通過自動設(shè)置隱藏連線,幫助拖拽活動自動定位,從而提高 了流程建模效率。
最后所應(yīng)說明的是,以上實施例僅用以說明本發(fā)明的技術(shù)方案而非限制。 盡管參照實施例對本發(fā)明進行了詳細說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當理 解,對本發(fā)明的技術(shù)方案進行修改或者等同替換,都不脫離本發(fā) 技術(shù)方案 的精神和范圍,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當中。
權(quán)利要求
1、一種流程建模方法,在具有布局編輯器、事件監(jiān)聽器以及流程數(shù)據(jù)庫的流程視圖顯示區(qū)上實現(xiàn)對拖拽操作的自動處理;所述事件監(jiān)聽器用于監(jiān)聽用戶所發(fā)出的操作行為;所述布局編輯器用于識別操作行為的類型;所述流程數(shù)據(jù)庫用于存取已構(gòu)建的流程圖;該方法包括步驟1)、監(jiān)聽到用戶發(fā)出的拖拽操作后,對拖拽操作所涉及的新增活動的位置進行計算;步驟2)、所述新增活動在位置上與已有活動重疊,在所述已有活動所在分支上添加包含有新增活動的新的分支;步驟3)、在縱坐標方向上對流程圖的布局進行調(diào)整,在調(diào)整過程中以新增分支所對應(yīng)的并行控制流程的開始節(jié)點為中心,計算該并行控制流程中所有分支的縱坐標,使得所有分支關(guān)于該中心對稱;其中,所述縱坐標方向為所述新增分支的法線方向。
2、 根據(jù)權(quán)利要求1所述的流程建模方法,其特征在于,在步驟1 )之 后還包括步驟4)、所述新增活動在位置上與已有的顯式連線相交,判斷相交連 線的類型,對直線型連線執(zhí)行下一步,對I型四點折形連線執(zhí)行步驟6), 對II型四點折形連線執(zhí)行步驟7 );步驟5)、在相交的直線型連線上插入所述新增活動,并對后續(xù)活動和 連線的位置加以調(diào)整;步驟6 )、若所述新增活動與所述I型四點折形連線的相交點在后段連 線上,則移動I型四點折形連線的后繼活動和后繼連線,在所述后,殳連線 上插入所述新增活動,并對同 一并行控制流程的其它分支做適應(yīng)性調(diào)整; 否則,取消操作;步驟7)、若所述新增活動與所述II型四點折形連線的相交點在前段連 線上,則移動所述II型四點折形連線及其后繼活動與后繼連線,然后插入 所述新增活動,并對同一并行控制流程的其它分支做適應(yīng)性調(diào)整;否則, 取消操作。
3、 根據(jù)權(quán)利要求1或2所述的流程建模方法,其特征在于,在所述 的步驟1 )之后,還包括步驟8)、找到流程中的第一個隱藏連線,以所述隱藏連線的結(jié)束活動 為起點,移動后繼活動和連線,然后將所述新增活動移動到所述隱藏連線 原有結(jié)束活動的位置,將該隱藏連線的起始活動和所述新增活動之間用直 線型連線連接,所述新增活動與所述隱藏連線的終止活動之間仍然用隱藏 連線連接。
4、 根據(jù)權(quán)利要求1或2或3所述的流程建模方法,其特征在于,在 所述步驟2)中,在所述已有活動所在分支上添加包括新增活動的新的分 支包括步驟2-l)、判斷已有活動是否為所在分支上的唯一活動,如果是唯一 活動,則執(zhí)行下一步,否則,執(zhí)行步驟2-3);步驟2-2 )、在已有活動所在分支的并行控制流程的開始節(jié)點和結(jié)束節(jié) 點間添加 一 條包括新增活動的新的分支;步驟2-3 )、在已有活動的前后兩端分別增加并行控制流程的開始節(jié)點 和結(jié)束節(jié)點,并在所述開始節(jié)點和結(jié)束節(jié)點間添加兩條分支, 一條分支包 括所述新增活動,另一條分支包括與新增活動重疊的已有活動。
5、 根據(jù)權(quán)利要求1或2或3所述的流程建模方法,其特征在于,在 所述步驟3)中,計算該并行控制流程中所有分支的縱坐標包括采用如下第i個分支的縱坐標計算公式0- 2) + (卜l)"其中,y為并行控制流程的開始節(jié)點的縱坐標,n為并行控制流程中 的分支數(shù)目,t為相鄰分支間的縱坐標距離。
6、 根據(jù)權(quán)利要求1或2或3所述的流程建模方法,其特征在于,在 所述步驟3)中,還包括對于存在嵌套關(guān)系的并行控制流程,判斷父級 并行控制流程中各個分支的縱坐標是否需要調(diào)整,按照嵌套關(guān)系依次調(diào)整 需要調(diào)整的父級并行控制流程中各個分支的縱坐標,直到完成對整個流程 圖在縱坐標方向上的調(diào)整或嵌套關(guān)系中的某一級并行控制流程的各個分 支的縱坐標無需調(diào)整為止。
7、 根據(jù)權(quán)利要求6所述的流程建模方法,其特征在于,所述的判斷 父級并行控制流程中各個分支的縱坐標是否需要調(diào)整包括步驟3-l )、由當前所在并行控制流程找到父級并行控制流程的開始節(jié)點.步驟3-2)、將父級并行控制節(jié)點下相鄰兩分支的縱坐標距離與子級并 行控制流程中第 一個分支與最后一個分支的縱坐標距離的 一半與 一閾值 的和進行比較,只有當父級并行控制節(jié)點下相鄰兩分支的縱坐標距離小于 子級并行控制流程中第一個分支與最后一個分支的縱坐標距離的一半與 一閾值的和時,才對父級并行控制節(jié)點下的分支的縱坐標進行調(diào)整;所述 閾值的大小為一個活動在顯示時的寬度的一半。
8、 根據(jù)權(quán)利要求2或3所述的流程建模方法,其特征在于,所述的 步驟5 )包括步驟5-l)、以相交的直線型連線的結(jié)束活動為起點,移動相交的直線 型連線的后繼活動和連線;步驟5-2)、在相交的直線型連線的結(jié)束活動的原有位置插入所述新增連線。 一 一 、.、、 _ B 、,,
9、 根據(jù)權(quán)利要求2或3所述的流程建模方法,其特征在于,所述的 步驟6)包括步驟6-l )、當所述新增活動與所述I型四點折形連線的相交點在后段 連線上時,以所述I型四點折形連線的結(jié)束活動為起點,移動后繼的活動 和連線;步驟6-2 )、在所述I型四點折形連線的結(jié)束活動的原有位置插入所述 新增活動,在所述新增活動與所述I型四點折形連線原有的結(jié)束活動間增 加新的直線型連線;步驟6-3 )、對同 一并行控制流程中的其他分支中的連線的長度進行調(diào)整。
10、 根據(jù)權(quán)利要求2或3所述的流程建模方法,其特征在于,所述的 步驟7)包括步驟7-l )、當所述新增活動與所述II型四點折形連線的相交點在后段 連線上時,以所述II型四點折形連線為起點,移動后繼的活動和連線;步驟7-2)、將所述新增活動移動到所述II型四點折形連線的開始節(jié)點 的位置,在所述新增活動與所述II型四點折形連線之前所連接的開始節(jié)點 間增加直線型連線;步驟7-3 )、對同 一并行控制流程中的其他分支中的連線的長度進行調(diào)整。
11、 一種流程建模方法,在具有布局編輯器、事件監(jiān)聽器以及流程數(shù)據(jù)庫的流程視圖顯示區(qū)上實現(xiàn)對刪除操作的自動處理;所述事件監(jiān)聽器用 于監(jiān)聽用戶所發(fā)出的操作行為;所述布局編輯器用于識別操作行為的類 型;所述流程數(shù)據(jù)庫用于存取已構(gòu)建的流程圖;該方法包括 步驟l)、刪除所選定的活動及其連線;步驟2)、當已刪除活動為包含該活動的分支上的唯一活動時,刪除該 分支,并對本級并行控制流程中剩余分支的位置進行調(diào)整;步驟3)、當本級并行控制流程中剩余分支的數(shù)目變?yōu)?時,刪除本級 并行控制的開始節(jié)點、結(jié)束節(jié)點以及相關(guān)的連線。
12、 根據(jù)權(quán)利要求11所述的流程建模方法,其特征在于,在所述的 步驟1)之后,還包括步驟4)、當已刪除活動不是包含該活動的分支上的唯一活動時,以被 刪除活動的后繼活動為起點,向前移動后繼活動和連線,直到所在分支的 最后一個活動;步驟5)、當本級并行控制流程中的其它分支在被刪除活動的位置上不 存在活動時,調(diào)整其它分支以及后繼活動和連線的位置,直到整個流程的 結(jié)束節(jié)點。
13、 根據(jù)權(quán)利要求11或12所述的流程建模方法,其特征在于,所述 的步驟3)包括步驟3-l)、以剩余分支中的第一個活動為起點,將該分支中的后繼活 動和連線向前移動一定的距離;步驟3-2)、以所述剩余分支的最后一個活動的后繼活動為起點,向后 遍歷后繼的活動和連線,將這些活動和連線前移一定的距離;步驟3-3)、連接所述剩余分支的第一個活動和它的前繼活動,連接所 述剩余分支的最后一個活動和它的后繼活動。向右遍歷活動和連線,將這些活動和連線左移一定的距離,然后以分 支最后一個活動的后繼活動為起點。
14、 一種流程建模方法,在具有布局編輯器、事件監(jiān)聽器以及流程數(shù) 據(jù)庫的流程視圖顯示區(qū)上實現(xiàn)對轉(zhuǎn)換操作的自動處理;所述事件監(jiān)聽器用 于監(jiān)聽用戶所發(fā)出的操作行為;所述布局編輯器用于識別操作行為的類 型;所述流程數(shù)據(jù)庫用于存取已構(gòu)建的流程圖;該方法包括步驟l)、判斷轉(zhuǎn)換操作的類型,對并行控制邏輯的轉(zhuǎn)換操作執(zhí)行下一步,對選擇控制邏輯的轉(zhuǎn)換操作執(zhí)行步驟3);步驟2 )、將并行控制的開始結(jié)點和結(jié)束結(jié)點轉(zhuǎn)換為選擇控制的開始結(jié) 點和結(jié)束結(jié)點,結(jié)束操作;步驟3 )、將選擇控制的開始結(jié)點和結(jié)束結(jié)點轉(zhuǎn)換為并行控制的開始結(jié) 點和結(jié)束結(jié)點。
全文摘要
本發(fā)明提供一種流程建模方法,在具有布局編輯器、事件監(jiān)聽器以及流程數(shù)據(jù)庫的流程視圖顯示區(qū)上實現(xiàn)對拖拽操作的自動處理;該方法包括監(jiān)聽到用戶發(fā)出的拖拽操作后,對拖拽操作所涉及的新增活動的位置進行計算;所述新增活動在位置上與已有活動重疊,在所述已有活動所在分支上添加包含有新增活動的新的分支;在縱坐標方向上對流程圖的布局進行調(diào)整,在調(diào)整過程中以新增分支所對應(yīng)的并行控制流程的開始節(jié)點為中心,計算該并行控制流程中所有分支的縱坐標,使得所有分支關(guān)于該中心對稱;其中,所述縱坐標方向為所述新增分支的法線方向。本發(fā)明的優(yōu)點在于流程建模過程簡單、方便;流程建模過程出錯少;流程建模效率高。
文檔編號G06Q10/00GK101650798SQ200910092640
公開日2010年2月17日 申請日期2009年9月14日 優(yōu)先權(quán)日2009年9月14日
發(fā)明者晨 劉, 鵬 張, 菁 王, 王桂玲, 韓燕波 申請人:中國科學(xué)院計算技術(shù)研究所