国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      用以與不同目標(biāo)工作流系統(tǒng)進(jìn)行匹配的方法

      文檔序號(hào):6472199閱讀:226來(lái)源:國(guó)知局
      專利名稱:用以與不同目標(biāo)工作流系統(tǒng)進(jìn)行匹配的方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及的是一種工作流匹配方法,特別涉及的是用以與不同類型的現(xiàn)有目標(biāo)
      工作流系統(tǒng)進(jìn)行匹配的方法,用于屏蔽因工作流系統(tǒng)差異對(duì)于工作流客戶端應(yīng)用的影響。
      背景技術(shù)
      工作流管理是一個(gè)被業(yè)界廣泛應(yīng)用并迅速發(fā)展的技術(shù),它的主要特點(diǎn)是使計(jì)算機(jī) 上的業(yè)務(wù)處理流程自動(dòng)化,使相應(yīng)的人以及各種應(yīng)用工具相互之間協(xié)調(diào),以完成某項(xiàng)工作。 工作流管理可以在各種辦公環(huán)境(如行政管理、保險(xiǎn)業(yè)、銀行業(yè)以及司法等)以及工業(yè)和制 造等領(lǐng)域得到廣泛應(yīng)用,其目的是為了讓合適的人或軟件在恰當(dāng)?shù)臅r(shí)間執(zhí)行正確的工作, 它被譽(yù)為信息系統(tǒng)的后勤。 工作流技術(shù)經(jīng)常和業(yè)務(wù)過(guò)程重組(Business Process Re-engineering,BPR)緊密 相連。BPR所關(guān)心的是對(duì)組織機(jī)構(gòu)內(nèi)部的核心業(yè)務(wù)過(guò)程進(jìn)行評(píng)價(jià)、分析、建模、定義以及操作 上的實(shí)現(xiàn)。工作流技術(shù)提供了把業(yè)務(wù)過(guò)程邏輯從具體的IT工具的操作中分離出來(lái)的方法, 并且還可以在以后把改變的過(guò)程邏輯規(guī)則添加進(jìn)去。 工作流管理將計(jì)算機(jī)科學(xué)的各種技術(shù)、原則和方法集成在一起,他是一個(gè)非常有 活力的研究領(lǐng)域。目前,世界上已有許多研究工作流管理的公司和組織,并且已推出許多商 品化的產(chǎn)品(目標(biāo)工作流系統(tǒng)),如ActionWorkflow System (Action Technologies公司 出品),F(xiàn)lowMark(IBM公司),WorkFlo BusinessSystem(FileNet公司),0mniDesk(Sigma Imaging System公 司),Staffware (Staffware公 司),Regatla (Fujitsu公 司), FlowPath (Bull' s Image Works), TeamFlow (ICL) , ViewStar (ViewStar公司),Quality at Work (Quality DecisionManegement)等。 但目前工作流管理發(fā)展的狀況非常類似于七十年代初,關(guān)系數(shù)據(jù)模型和E-R模型 出現(xiàn)以前的數(shù)據(jù)庫(kù)管理系統(tǒng),大家各持己見,沒(méi)有一個(gè)統(tǒng)一的標(biāo)準(zhǔn),所開發(fā)的產(chǎn)品互相之間 大部分也不兼容,使得很多用戶不愿使用商品化的工作流管理產(chǎn)品。 為了使工作流的概念和接口標(biāo)準(zhǔn)化,工作流管理組織W預(yù)C制定了工作流管理系 統(tǒng)組織結(jié)構(gòu)的參考模型,請(qǐng)參閱圖l所示,并陸續(xù)給出了大部分接口標(biāo)準(zhǔn)。但是這些標(biāo)準(zhǔn)僅 僅是停留在技術(shù)層次,而且重點(diǎn)放在語(yǔ)法而不是語(yǔ)義上,而在概念層次上,則至今仍沒(méi)有統(tǒng) 一的意見。例如,在接口 1的規(guī)范中,就沒(méi)有關(guān)于狀態(tài)及基本構(gòu)造塊(如AND/OR)的正式描 述,這樣就給使用帶來(lái)了極大的不便。 鑒于上述缺陷,本發(fā)明創(chuàng)作者經(jīng)過(guò)長(zhǎng)期的研究和實(shí)踐終于獲得了本創(chuàng)作。

      發(fā)明內(nèi)容
      本發(fā)明的目的在于,提供一種用以與不同目標(biāo)工作流系統(tǒng)進(jìn)行匹配的方法,用以 克服上述缺陷。 為實(shí)現(xiàn)上述目的本發(fā)明采用的技術(shù)方案在于,提供一種用以與不同目標(biāo)工作流系 統(tǒng)進(jìn)行匹配的方法,其包括
      將目標(biāo)工作流系統(tǒng)的調(diào)用接口分別與相應(yīng)的實(shí)現(xiàn)類相對(duì)應(yīng); 設(shè)置接口類,其與外部的調(diào)用命令相對(duì)應(yīng); 將外界的調(diào)用命令通過(guò)對(duì)應(yīng)的接口類傳遞對(duì)應(yīng)的實(shí)現(xiàn)類; 所述的接口類保存實(shí)現(xiàn)類的引用,通過(guò)所述的實(shí)現(xiàn)類引用對(duì)應(yīng)的目標(biāo)工作流系統(tǒng)
      的調(diào)用接口實(shí)現(xiàn)匹配和控制。 其中,所述的接口類包括工作流引擎類、工作流模版類和工作流實(shí)例類。 較佳的,所述的工作流引擎類對(duì)工作流總體控制,用以定義、查詢工作流的模版信
      息,創(chuàng)建新的工作流實(shí)例、執(zhí)行各項(xiàng)查詢。 較佳的,所述的工作流模版類代表一個(gè)定義好的工作流程,用以查詢模版定義中 的每一環(huán)節(jié)信息,流程順序,分支條件信息和時(shí)限信息。 對(duì)于工作流模版類而言,針對(duì)每個(gè)模版的環(huán)節(jié)信息還設(shè)置有工作流模版環(huán)節(jié)子 類,其作為工作流模版的類成員,所述的工作流模版環(huán)節(jié)子類通過(guò)系列g(shù)et/set方法取存
      環(huán)節(jié)屬性信息,具體的實(shí)現(xiàn)則交給后臺(tái)的實(shí)現(xiàn)類去完成。 其中,所述的工作流實(shí)例類代表已經(jīng)創(chuàng)建的工作單,用以查詢,當(dāng)前任務(wù)任何環(huán)節(jié) 的信息,流程順序、分支條件信息,辦理人員、實(shí)際時(shí)間、時(shí)限信息;從而對(duì)工作流實(shí)現(xiàn)控制。
      對(duì)于工作流實(shí)例類而言,針對(duì)每個(gè)工作流實(shí)例中的每一環(huán)節(jié)的信息還設(shè)置有工作 流活動(dòng)子類,其作為工作流實(shí)例類的類成員,所述的工作流活動(dòng)子類具有g(shù)et/set方法取 存環(huán)節(jié)屬性信息,以及提供大量方法對(duì)當(dāng)前活動(dòng)、當(dāng)前任務(wù)進(jìn)行控制。 與現(xiàn)有技術(shù)比較本發(fā)明的有益效果在于,克服了由于底層目標(biāo)工作流系統(tǒng)的變更 導(dǎo)致的業(yè)務(wù)層改動(dòng),保證在目標(biāo)工作流系統(tǒng)被替換的情況下,客戶端可以在不作任何修改 的情況下正常運(yùn)行,從而增加了人機(jī)界面的通用性。


      圖1為工作流管理組織W預(yù)C制定了工作流管理系統(tǒng)組織結(jié)構(gòu)的參考模型; 圖2為本發(fā)明用以與不同目標(biāo)工作流系統(tǒng)進(jìn)行匹配的方法的流程圖; 圖3為本發(fā)明用以與不同目標(biāo)工作流系統(tǒng)進(jìn)行匹配的方法對(duì)應(yīng)的物理結(jié)構(gòu)框具體實(shí)施例方式
      以下結(jié)合附圖,對(duì)本發(fā)明上述的和另外的技術(shù)特征和優(yōu)點(diǎn)作更詳細(xì)的說(shuō)明。
      本實(shí)施例是以應(yīng)用于電力、自來(lái)水行業(yè)營(yíng)銷系統(tǒng)為例,我們根據(jù)W預(yù)C參考模型標(biāo) 準(zhǔn),使用面向?qū)ο蠹夹g(shù),定義一組相互聯(lián)系的接口類,應(yīng)用系統(tǒng)客戶端利用這組標(biāo)準(zhǔn)的接口 類圖對(duì)目標(biāo)工作流系統(tǒng)功能進(jìn)行調(diào)用完成工作流程控制相關(guān)的服務(wù)。 當(dāng)作為系統(tǒng)支持平臺(tái)的目標(biāo)工作流系統(tǒng)被替換時(shí),應(yīng)用系統(tǒng)客戶端仍通過(guò)相同的
      接口類進(jìn)行工作流服務(wù)調(diào)用。這樣"標(biāo)準(zhǔn)接口接口類"就好比一個(gè)通用的"電腦主板",更換
      目標(biāo)工作流系統(tǒng)就好比更換CPU,只要"一插即用"。這就是本發(fā)明的基本思路。 關(guān)于這些接口類是針對(duì)具體標(biāo)準(zhǔn)工作流系統(tǒng)的實(shí)現(xiàn),我們采用Bridge "橋"模式
      封裝到一系列獨(dú)立的實(shí)現(xiàn)類中,這些實(shí)現(xiàn)類根據(jù)實(shí)際"目標(biāo)工作流系統(tǒng)"的不同情況,通過(guò)
      接口變換、嫁接等方式完成目標(biāo)"工作流接口類"要求的功能。 請(qǐng)參閱圖2所示,其為本發(fā)明用以與不同目標(biāo)工作流系統(tǒng)進(jìn)行匹配的方法的流程圖;所述的本發(fā)明用以與不同目標(biāo)工作流系統(tǒng)進(jìn)行匹配的方法包括的步驟為 步驟a :將目標(biāo)工作流系統(tǒng)的調(diào)用接口分別與相應(yīng)的實(shí)現(xiàn)類相對(duì)應(yīng); 步驟b :設(shè)置接口類,其與外部的調(diào)用命令相對(duì)應(yīng); 步驟C :將外界的調(diào)用命令通過(guò)對(duì)應(yīng)的接口類傳遞對(duì)應(yīng)的實(shí)現(xiàn)類; 步驟d:所述的接口類保存實(shí)現(xiàn)類的引用,通過(guò)所述的實(shí)現(xiàn)類引用對(duì)應(yīng)的目標(biāo)工
      作流系統(tǒng)的調(diào)用接口實(shí)現(xiàn)匹配和控制。 所述的接口類我們可以采用JAVA語(yǔ)言進(jìn)行編寫,其包括工作流引擎類 WfEngine、工作流模版類WfTemplate和工作流實(shí)例類WfTask。 其中,所述的工作流引擎類WfEngine是對(duì)工作流系統(tǒng)的總體控制,其可以定義、 查詢工作流模版信息,創(chuàng)建新的工作流實(shí)例,執(zhí)行各類查詢(過(guò)程是創(chuàng)建condition類,然 后指定查詢條件,接著調(diào)用引擎類的不同查詢方法最后對(duì)查詢結(jié)果(工作流實(shí)例的對(duì)象序 列)進(jìn)行處理。 所述的工作流模版類WfTemplate代表一個(gè)已經(jīng)定義好的工作流程(模版),時(shí)限 信息,還可以直接發(fā)起新流程(其是通過(guò)后臺(tái)實(shí)現(xiàn)的,調(diào)用工作流引擎類WfEngine,并將此 類作為參數(shù)傳入);為了描述工作流模版類WfTemplate中的每個(gè)環(huán)節(jié)的信息,還引入工作 流模版環(huán)節(jié)子類WfTache,其作為工作流模版類WfTemplate的類成員(實(shí)例變量)。工作 流模版環(huán)節(jié)子類WfTache主要通過(guò)系列g(shù)et/set方法取存環(huán)節(jié)屬性信息,如環(huán)節(jié)代碼、經(jīng)辦 崗位、時(shí)限等信息,具體的實(shí)現(xiàn)則交給后臺(tái)的實(shí)現(xiàn)類去完成。 所述的工作流實(shí)例類WfTask代表已經(jīng)創(chuàng)建一個(gè)的工作單,也就是工作流模版的 實(shí)例化。其可以查詢當(dāng)前任務(wù)任何環(huán)節(jié)(活動(dòng))的信息、流程順序、分支條件信息、辦理 人員、實(shí)際時(shí)間以及時(shí)限信息,同時(shí)通過(guò)所述的工作流實(shí)例類WfTask可對(duì)工作流實(shí)現(xiàn)如 下控制廢除一個(gè)工作流killTask()、領(lǐng)取工作單acc印tTask()、直接跳轉(zhuǎn)(向下傳遞) goNext ()、選擇跳轉(zhuǎn)jumpTo ()以及歸檔goNext ()等等。 為了工作流實(shí)例類WfTask(任務(wù))中的每個(gè)環(huán)節(jié)(活動(dòng))的信息,引入工作流實(shí) 例環(huán)節(jié)子類WfActivity,其作為工作流實(shí)例類WfTask的類成員(實(shí)例變量)。所述的工作 流實(shí)例環(huán)節(jié)子類Wf Activity主要不但有g(shù)et/set方法取存環(huán)節(jié)屬性信息,如環(huán)節(jié)代碼、經(jīng) 辦崗位以及時(shí)限等信息,而且提供大量方法對(duì)當(dāng)前活動(dòng)、當(dāng)前任務(wù)進(jìn)行控制(具體的實(shí)現(xiàn) 還是由后臺(tái)的實(shí)現(xiàn)類完成的)。 為了屏蔽不同目標(biāo)工作流系統(tǒng)的差異,還引入了實(shí)例狀態(tài)類WfTaskState、環(huán)節(jié)狀 態(tài)類WfActivityState、工作流變量類WfVar等定義類。 為實(shí)現(xiàn)通用化的基于工作流系統(tǒng)的查詢,本發(fā)明還設(shè)計(jì)了查詢條件類 WfQueryCond、查詢條件項(xiàng)類WfQueryCondltem、查詢主題類WfQueryCondSub ject等類。
      請(qǐng)參閱圖3所示,其為本發(fā)明用以與不同目標(biāo)工作流系統(tǒng)進(jìn)行匹配的方法對(duì)應(yīng)的 軟件結(jié)構(gòu)框圖;其包括人機(jī)接口程序3,其用于和相應(yīng)的界面程序相對(duì)應(yīng);目標(biāo)工作流系 統(tǒng)l,其通常其可以是現(xiàn)有的成熟產(chǎn)品,并符合工作流管理聯(lián)盟給出的工作流定義,具有工 作流調(diào)用接口 11 ;還包括最重要的結(jié)構(gòu)是用以與不同目標(biāo)工作流系統(tǒng)進(jìn)行匹配結(jié)構(gòu)2,其 包括接口類21和實(shí)現(xiàn)類22,其中所述的接口類21和所述的實(shí)現(xiàn)類22之間相聯(lián)系,所述 的實(shí)現(xiàn)類22和所述的工作流調(diào)度接口 11相結(jié)合,對(duì)于不同的目標(biāo)工作流系統(tǒng)1而言僅僅 是對(duì)所述的實(shí)現(xiàn)類22做相應(yīng)的改變,并不影響接口類21和人機(jī)接口程序3,從而客戶端代
      5碼調(diào)用目標(biāo)工作流系統(tǒng)1服務(wù)時(shí)具有統(tǒng)一性。保證在客戶端不作改變的情況下服務(wù)端的目 標(biāo)工作流系統(tǒng)1可以進(jìn)行改變。 正如上面所描述的,對(duì)于本發(fā)明的用以與不同目標(biāo)工作流系統(tǒng)進(jìn)行匹配的方法中 接口類和實(shí)現(xiàn)類是非常重要的,對(duì)于此我們?nèi)砸訨AVA語(yǔ)言為例來(lái)描述上述相應(yīng)類和子類 的實(shí)現(xiàn),但是其僅是解釋,并不是限定作用。 所述標(biāo)準(zhǔn)接口中的工作流引擎類WfEngine具體定義如下
      public class WfEngine {public static WfEngine getlnstance ();〃得到工作流引擎的唯一實(shí)例,
      這是 創(chuàng)建這個(gè)類的實(shí)例的唯一辦法 public WfTemplate getTemplate (String operatorld, String
      templateld); 〃讀取某個(gè)工作流模版 public WfTask newTask(String operatorld, String templateld)//根據(jù)
      模板初始 化一個(gè)全新的工作流任務(wù) public WfTask loadTask(String operatorld, String templateld, String
      teskld) // 加載一個(gè)已經(jīng)存在的工作流 public int killTask(String operatorld, String templateld, String
      taskld) public int killTask(String operatorld,WfTask task);〃工作流任務(wù)作
      廢 public int deleteTask(String operatorld, String templateld, String
      taskld) public int deleteTask(String operatorld, WfTask tesk)〃從數(shù)據(jù)庫(kù)徹
      底刪除一 個(gè)工作流任務(wù)(只在業(yè)務(wù)層后臺(tái)調(diào)用) public List getOperatorsForPost (String post) 〃某個(gè)崗位的操作員列表 public List getOperatorsForD印t (String d印t)〃某個(gè)部門的操作員列表 public List getToDoList (String operatorld,WfQueryCond condition)//
      獲得當(dāng) 前操作員待辦活動(dòng)列表,就是說(shuō)當(dāng)前任務(wù)的當(dāng)前環(huán)節(jié)所要求的崗位、部門或指定
      人員,與當(dāng)前操作員匹配。 public List getT0D0ListAl 1 (String operatorld, WfQueryCond
      condition)//獲 得滿足特定條件的所有活動(dòng)列表,指定操作員必須有查詢權(quán)限。 public List getSpecialToDoList (String operatorld, String
      specialTacheld)
      6
      public List getSpecialToDoList (String operatorld, String
      specialTacheId, WfQfuery Cond condition) 〃返回 〃 位于特定環(huán)節(jié)的活動(dòng)"的集合,用于批量處 理, 比如"派工" public List getTasks (WfQueryCond condition) 〃工作任務(wù)信息查詢 public List getLateActivities (WfQueryCond condition) 〃查詢存在超時(shí) 的活動(dòng) 的工作任務(wù),用于查詢和考核 public List getLateActivitiesDoing(WfQueryCond condition)//查詢辦 理中的 環(huán)節(jié)超時(shí)的活動(dòng)清單,用于任務(wù)督辦 public List getLateActivitiesNotify(WfQueryCond condition)〃查詢艮卩 將超時(shí) 的活動(dòng)清單,用于超時(shí)警示 所述標(biāo)準(zhǔn)接口類中的工作流模版類WfTemplate具體定義如下 public class WfTemplate { public List getTaches()〃得到本模板的環(huán)節(jié)對(duì)象(列表) public WfTache loadTache (String tacheld) 〃加載指定的環(huán)節(jié),得到環(huán)
      節(jié)對(duì)象 public List getSysVars()〃本模板的工作流變量(系統(tǒng)級(jí))列表 public List getlnstanceVars()〃本模板的工作流變量(實(shí)例級(jí))列表 public Date getCreateDate () 〃創(chuàng)建時(shí)間 public String getCreate0perator()〃倉(cāng)鍵人 public String getName () 〃模板名稱 public String getTemplateld() public String getVersion () 〃版本( 一個(gè)模板ID可對(duì)應(yīng)多個(gè)版本,對(duì) 某些工 作流系統(tǒng)可能無(wú)用) private WfTemplatelmp imp ; } 所述的工作流模版環(huán)節(jié)子類WfTache具體定義如下 public class WfTache {WfTache (String t卿lateID, String tacheID) public String getTemplateld()〃獲取所在流程模版的ID public void setTemplateld(String templateID) public List getNextTache()〃當(dāng)前環(huán)節(jié)的后續(xù)環(huán)節(jié)(對(duì)象)列表 public List getPrevTache () 〃當(dāng)前環(huán)節(jié)的前序環(huán)節(jié)(對(duì)象)列表 public List getJumpableDestTaches()〃當(dāng)前環(huán)節(jié)可以跳轉(zhuǎn)到的環(huán)節(jié)(對(duì)
      7象) 列表 public boolean isLast ()//是否最后環(huán)節(jié) public String getN謙()〃環(huán)節(jié)名 public void setName(String name) public String getRecvD印t ()//處理部門 public void setRecvD印t (String recvdept) public String getRecvPerson()//特定人員 public void setRecvPerson(String recvPerson) public String getRecvPost ()//處理崗位 public void setRecvPost(String recvPost) public String getTacheId() public void setTacheld(String tacheld) public long getTimeLimit () 〃處理時(shí)限 public void setTimeLimit (int timeLimit) private WfTachelmp imp; } 所述標(biāo)準(zhǔn)接口類中的工作流實(shí)例類WfTask具體定義如下 public class WfTask {public int acceptTask(String operatorld, WfActivity activity) public int acceptTask (String operatorld, String activityld)//令頁(yè)取工作
      流任務(wù)(防止 同崗位的其他人員再處理這個(gè)任務(wù)) public int goNext (String operatorld, String activityld)//直接向下傳 遞 public int jumpTo(String operatorld,String activityldsrc, String activitylddes) throws WfExc印tion〃選擇瑕鵬傳遞 public WfActivity loadActivity (String activityld) throws
      WfExc印tion//根據(jù) 給定的Activityld得到一個(gè)Activity實(shí)例 public List getAllActivities (WfActivityState state) 〃讀取用戶指定 的工作流 的所有節(jié)點(diǎn),只是為了呈現(xiàn)用,不考慮數(shù)據(jù)陳舊和緩沖. public List getCurrentActivities () 〃獲取當(dāng)前的活動(dòng)對(duì)象。由于可能存 在多個(gè) 當(dāng)前環(huán)節(jié),因此返回list public List getLateActivities(String operatorld, WfActivityState
      state) 〃任務(wù) 超時(shí)的活動(dòng)列表
      public WfActivity getAcc印tedActivity () 〃操作員已經(jīng)領(lǐng)取的活動(dòng)(必 定是 當(dāng)前活動(dòng)) public boolean isAcc印ted(String activitild)〃該任務(wù)的指定活云力是
      否已經(jīng)被 領(lǐng)取 public boolean isAcc印ted()〃該任務(wù)的當(dāng)前活動(dòng)是否已經(jīng)領(lǐng)取 public int setVar(Object varValue)〃設(shè)置工作流變量的值 public String getCreator () 〃當(dāng)前任務(wù)的創(chuàng)建者,注意不是當(dāng)前環(huán)節(jié)的
      處理 人員 public void setCreator(String operatorld) public Date getRegDate () 〃登記日期 public void setRegDate(Date regDate) public Date getFinishDate () 〃完成日期 public void setFinishDate(Date finishDate) public WfTaskState getState () 〃當(dāng)前狀態(tài)(任務(wù)總體的,不是當(dāng)前活動(dòng) 的) public void setState(WfTaskState state) public String getTaskId() public String getT卿lateld()〃此任務(wù)對(duì)應(yīng)的模板的Id int kill ()〃結(jié)束一個(gè)工作流或者說(shuō)工作單作廢 int delete ()〃刪除一條工作流。} 所述的工作流活動(dòng)(代表工作流實(shí)例的在各環(huán)節(jié)的辦理內(nèi)容)子類WfActivity
      各公有方法具體定義如下 public class WfActivity { public WfTache getTache()〃返回此節(jié)點(diǎn)對(duì)應(yīng)的的Tache對(duì)象 public WfTask getTask() 〃對(duì)應(yīng)的Task對(duì)象 public List getNextActvity ()〃本活動(dòng)的后繼活動(dòng)( public List getPrevActvity ()〃本活云力的前序活云力 public boolean isLast () 〃當(dāng)前活動(dòng)是否是流程的最后環(huán)節(jié) public boolean isCurrent()〃當(dāng)前活動(dòng)是否當(dāng)前環(huán)節(jié) public boolean isDone () 〃當(dāng)前活動(dòng)是否已經(jīng)完成 public boolean isLate () 〃當(dāng)前活動(dòng)是否已經(jīng)超時(shí) public boolean isAcc印ted ()//是當(dāng)前環(huán)節(jié),而且已纟5令頁(yè)用該工作單 public int assignWork(int nextTacheId, String operld)//派工特殊業(yè)
      務(wù)_指定下一 環(huán)節(jié)操作員Id public int getPassNo()〃辦理次數(shù),就是說(shuō),這個(gè)環(huán)節(jié)辦理過(guò)幾次了
      public boolean isPassbyAllowed()〃是否同意本環(huán)節(jié)完成 public WfActivityState getActivityState () 〃當(dāng)前活動(dòng)的狀態(tài) public String getFromPerson()〃上一環(huán)節(jié)的處理人員Id public Date getReachDate () 〃到達(dá)時(shí)間(可能沒(méi)有接受,也可能是接受
      時(shí)間, 和工作流實(shí)現(xiàn)相關(guān)) public void setReachDate(Date reachDate) public Date getAcc印tDate () 〃接受時(shí)間 public void setAcc印tDate (Date acc印tDate) public Date getCommitDate () 〃當(dāng)前活動(dòng)的提交時(shí)間(辦理完成后,向下 傳 遞的時(shí)間) public void setCommitDate(Date date) public String getRecvD印t () 〃模板規(guī)定的處理部門 public void setRecvD印t (String recvd印t) public String getRecvPerson () 〃模板規(guī)定的處理人員(此時(shí)會(huì)忽略指定 的部 門和崗位) public String getRecvPost () 〃模板規(guī)定的處理崗位 public String getTaskId() public String getActivityld() public void setActivityld(String activityld) public String getTacheld()〃環(huán)節(jié)Id( public void setTacheld(String tacheld) public String getTemplateld() public int getTimeLimit () 〃規(guī)定處理時(shí)限 public String getDealMsg()〃本環(huán)節(jié)辦理意見 public void setDealMsg(String msg)} 另外上述標(biāo)準(zhǔn)接口類中還包含有相應(yīng)的輔助類,如工作流狀態(tài)封裝類
      Wf TaskState 、活動(dòng)狀態(tài)類Wf Act i vi tyState 、工作流變量類Wf Var 、工作流查詢條件類 WfQueryCond和查詢條件單項(xiàng)封裝類WfQueryCondltem等,其中, 所述的工作流狀態(tài)封裝類Wf TaskState具體定義如下 public interface WfTaskState {public static finalint RUNNING = 1 ; public static final int STOPPED = 2 ; public static finalint KILLED = 3 ;〃兩個(gè)工作流狀態(tài)是否相等,相 等返回 true不相等,返回false。 boolean equals (WfTaskState state);〃工作流狀態(tài)是否等于規(guī)定的某
      100195:
      0196:
      0197:
      0198]
      0199:
      0200]
      0201: false。
      0202]
      個(gè)狀態(tài), 0203] 0204] 0205] 0206: 0207: 0208] 0209: 0210] 0211: 0212]
      0225] 0226] 0227] 0228]
      題信息
      態(tài),相等返回true不相等,返回false。 boolean equals(int state) WfActivityState各公有方法具體定義如下
      public interface WfActivityState { public static finalint DOING = 1 ; public static final int DONE = 2 ;
      int getState();〃兩個(gè)活動(dòng)狀態(tài)是否相等,相等返回true不相等,返回
      boolean equals (WfActivityState state);〃該狀態(tài)是否等于規(guī)定的某
      相等返回true不相等,返回false。 boolean equals(int state) 所述的工作流變量類WfVar具體定義如下 public class WfVar { public String getName()
      public void setName(String name) public String getValue() public void setValue(String value) public boolean isSys Var ()〃是否系統(tǒng)級(jí)別變量} 所述的工作流查詢條件封裝類WfQueryCondltem的具體定義如下publicclass WfQueryCondltem
      { publicstaticfinalint REL_EQ = 1 ;
      publicstaticfinalintREL—NE = 2 ;publicstaticfinalintREL—LT = 3 ;publicstaticfinalintREL—GT = 4 ;publicstaticfinalintREL—LE = 5 ;publicstaticfinalintREL—GE = 6 ;publicstaticfinalintREL_LIKE = 9 ;publicstaticfinalintLOGIC—AND = 1 ;publicstaticfinalintL0GIC_0R = 2 ;publicstaticfinalintL0GIC—X0R = 3 ;publicstaticfinalint LOGIC—NONE = 0
      public WfQueryCondltem(int logic,String lb,String subj,int rel, Object val, String rb)〃構(gòu)造函數(shù)
      public static String[] getAllSubjects () 〃得到所有查詢主題 public static WfQueryCondSub ject [] getAllSub j Info ()//獲取所有主
      的列表
      publicstatic boolean isSubject (String string)//判斷給定字符串
      是不是一-個(gè)查詢主題publicstatic int getSubjectDataType (String key)〃查詢給定主題
      的數(shù)據(jù)類型publicString getSubject()〃條件代碼可以是某些代碼標(biāo)識(shí)的信息,
      可以是狀態(tài)publicint getRelation()〃關(guān)系算符publicObject getValue () 〃運(yùn)算符右值publicString getLeftBracket () 〃左括號(hào)publicString getRightBracket () 〃右括號(hào)publicint getlxigical () //邏輯關(guān)系public void setValue(0bj ect value)
      public void setLeftBracket (String leftBracket)
      public void setLogical(int logical)
      public void setRelation(int relation)
      public void setRightBracket(String rightBracket)
      public void setSubject (String subject)
      public int getLogical()〃根據(jù)流程可以辦理的人員
      public static final String SUBJ_0PRTR_CAND0 = 〃 cur0perator〃 ;〃工作流狀態(tài)public static final String SUBJ—TASK—STATE = 〃 taskState〃 ;〃工作單public static final String SUBJ—TASK—ID =〃 taskld〃 ;〃登記日期
      public static final String SUBJ_DATE_REG =〃 regDate〃 ;〃結(jié)束日期public static final String SUBJ_DATE_FINISH =〃 finishDate〃 ;〃模板IDpublic static final String SUBJ_TEMPLATE_ID = 〃 t卿lateld〃 ;〃模板名稱public static final String SUBJ_TEMPLATE_NAME = 〃 t卿lateName〃 ;
      〃環(huán)節(jié)狀態(tài) ——〃 OP十pub 1ic static final String SUBJ_ACTIVITY_STATE
      — act
      ivitybtate ; 〃活動(dòng)ID號(hào) public static final String SUBJ—ACTIVITY—ID =〃 activityld" ;//
      12環(huán)節(jié)編號(hào)
      稱 理時(shí)


      員〃


      public static final String SUBJ_TACHE_ID public static final String SUBJ_TACHE_NAME
      public static final String SUBJ_TME_1JMIT
      tacheld";〃環(huán)節(jié)名 'tacheName" ;//辦
      'timeLimit" ;//崗
      public static final String SUBJ_P0ST = 〃 postCode〃 ;〃部門 public static final String SUBJ_DEPT = 〃 d印artment〃 ;〃指定的人
      這個(gè)暫時(shí)不支持,數(shù)據(jù)庫(kù)結(jié)構(gòu)中沒(méi)有
      protected staticfinal String SUBJ_0PRTR_SH0ULD =〃 shouldOperator" 〃/
      標(biāo)準(zhǔn)環(huán)節(jié)代碼
      public static final String SUBJ_STD_TACHE =〃 stdTacheCode〃

      public static final String SUBJ_0PRTR_DEAL = 〃 dealPerson" public static final String SUBJ_TME_REACH = 〃 timeReach" public static final String SUBJ_TME_DEAL = 〃 timeDeal〃 ; public static final String SUBJ_TME_C0MMIT = 〃 timeCommit'
      〃辦
      〃到 〃辦 提交
      理人

      達(dá)時(shí)間
      理時(shí)間
      時(shí)間
      前環(huán)



      } 所述的查詢條件類WfQueryCond代表查詢條件的組合(真正用于查詢的聯(lián)合條
      件),其具體定義如下 public class WfQueryCond {〃此條件對(duì)象,限定只訪問(wèn)當(dāng)前環(huán)節(jié)正在處理的工作環(huán)節(jié) public boolean isIncludeDoingOnly()〃設(shè)置"是否限定只訪問(wèn)當(dāng)前環(huán)節(jié)
      正在 處理的工作環(huán)節(jié)"tparam isIncludeDoingOnly public void setlncludeDoingOnly(boolean isIncludeDoingOnly)//條件列 表,返
      節(jié)辦理次數(shù)
      public static final String SUBJ—PASS—N0 = 〃 passNo〃 ;〃超時(shí)天數(shù) public static final String SUBJ_DELAY =〃 delayDays〃 ;
      13
      回引用(對(duì)此引用可讀可寫),類型必須是WfQueryCondltem *@return條件列表 public List getltems()) 在具體實(shí)現(xiàn)過(guò)程中可以使用橋模式來(lái)實(shí)現(xiàn),例如對(duì)WfTask類的goNext ()方法,是 這樣實(shí)現(xiàn)的 public class WfTask {〃1在構(gòu)造函數(shù)中,動(dòng)態(tài)生成實(shí)現(xiàn)類的實(shí)例(根據(jù)系統(tǒng)初始化配置) WfTask(String operatorld, String templateld, String taskld) { imp = Wf ImplFactory. getlnstance (). newTasklmp (this, operatorld, t卿lateld, taskld); this. setTemplateld(templateld); this. setTaskld(taskld) ;}〃2真正的調(diào)用傳遞給實(shí)現(xiàn)類 public int goNext(String operatorld, String activityld)throws
      WfExc印tion, WfExc印tion {return imp. goNext (operatorld, activityld) ;} 〃接口類保存實(shí)現(xiàn)類的弓l 用,由于實(shí)現(xiàn)類有標(biāo)準(zhǔn)接口,因此在更換實(shí)現(xiàn)類實(shí)例時(shí),由具體的實(shí)現(xiàn)類去完 成任務(wù) private WfTasklmp imp ;} 我們?cè)倏纯磳?shí)現(xiàn)類的情況,首先定義虛父類WfTasklmp標(biāo)準(zhǔn)接口 ,用于和和標(biāo)準(zhǔn) 的接口類相呼應(yīng),把實(shí)現(xiàn)的差異部分封裝在一系列方法中




      public abstract class WfTasklmp
      public abstract int acc印tTask (String operatorld, String
      public abstract int goNext(String operatorld,String activityld);
      針對(duì)具體的工作流系統(tǒng)我們?cè)O(shè)計(jì)的實(shí)現(xiàn)類來(lái)實(shí)現(xiàn)以上接口 public class FSWfTasklmp extends WfTasklmp
      {public FSWfTasklmp (WfTask taskObj, String operatorld, String templateld)
      ..... public int goNext(String operatorld,String activityld) { 〃真正的實(shí)現(xiàn)代碼在這里,對(duì)不同的目標(biāo)工作流系統(tǒng),這里當(dāng)然是不同的 WfActivity activity ; try { activity =........ 現(xiàn)在例如使用系統(tǒng)內(nèi)嵌式默認(rèn)工作流系統(tǒng),我們只要為這個(gè)目標(biāo)工作流系統(tǒng)制作 對(duì)應(yīng)的實(shí)現(xiàn)類即可(這個(gè)工作實(shí)際上對(duì)很多目標(biāo)工作流系統(tǒng)已經(jīng)完成。而且這個(gè)改動(dòng),只 是限制在用以與不同目標(biāo)工作流系統(tǒng)進(jìn)行匹配范圍編碼,不會(huì)影響調(diào)用接口類的任何程
      14序) } } } 現(xiàn)在,如果目標(biāo)工作流系統(tǒng)改為IBM的Message-Q工作流系統(tǒng),則對(duì)應(yīng)實(shí)現(xiàn)類 public class IB麗fTaskImp extends WfTasklmp {____ public int goNext(String operatorld,String activityld) { 〃同樣的接口 ,但要針對(duì)IBM這一 目標(biāo)工作流系統(tǒng)實(shí)現(xiàn)一遍。這里只要
      調(diào) 用IBM目標(biāo)工作流系統(tǒng)的API完成相應(yīng)控制就可以了 。 } } 以上所述僅為本發(fā)明的較佳實(shí)施例,對(duì)本發(fā)明而言僅僅是說(shuō)明性的,而非限制性 的。本專業(yè)技術(shù)人員理解,在本發(fā)明權(quán)利要求所限定的精神和范圍內(nèi)可對(duì)其進(jìn)行許多改變, 修改,甚至等效,但都將落入本發(fā)明的保護(hù)范圍內(nèi)。
      權(quán)利要求
      一種用以與不同目標(biāo)工作流系統(tǒng)進(jìn)行匹配的方法,其特征在于,其包括將目標(biāo)工作流系統(tǒng)的調(diào)用接口分別與相應(yīng)的實(shí)現(xiàn)類相對(duì)應(yīng);設(shè)置接口類,其與外部的調(diào)用命令相對(duì)應(yīng);將外界的調(diào)用命令通過(guò)對(duì)應(yīng)的接口類傳遞對(duì)應(yīng)的實(shí)現(xiàn)類;所述的接口類保存實(shí)現(xiàn)類的引用,通過(guò)所述的實(shí)現(xiàn)類引用對(duì)應(yīng)的目標(biāo)工作流系統(tǒng)的調(diào)用接口實(shí)現(xiàn)匹配和控制。
      2. 根據(jù)權(quán)利要求l所述的用以與不同目標(biāo)工作流系統(tǒng)進(jìn)行匹配的方法,其特征在于, 所述的接口類包括工作流引擎類、工作流模版類和工作流實(shí)例類。
      3. 根據(jù)權(quán)利要求2所述的用以與不同目標(biāo)工作流系統(tǒng)進(jìn)行匹配的方法,其特征在于, 所述的工作流引擎類對(duì)工作流總體控制,用以定義、查詢工作流的模版信息,創(chuàng)建新的工作 流實(shí)例、執(zhí)行各項(xiàng)查詢和控制。
      4. 根據(jù)權(quán)利要求2所述的用以與不同目標(biāo)工作流系統(tǒng)進(jìn)行匹配的方法,其特征在于, 所述的工作流模版類代表一個(gè)定義好的工作流程,用以查詢模版定義中的每一環(huán)節(jié)信息, 流程順序,分支條件信息和時(shí)限信息,具體的實(shí)現(xiàn)則交給后臺(tái)的實(shí)現(xiàn)類去完成。
      5. 根據(jù)權(quán)利要求4所述的用以與不同目標(biāo)工作流系統(tǒng)進(jìn)行匹配的方法,其特征在于, 針對(duì)每個(gè)模版的環(huán)節(jié)信息還設(shè)置有工作流模版環(huán)節(jié)子類,其作為工作流模版的類成員,所 述的工作流模版環(huán)節(jié)子類通過(guò)系列g(shù)et/set方法取存環(huán)節(jié)屬性信息,具體的實(shí)現(xiàn)則交給后 臺(tái)的實(shí)現(xiàn)類去完成。
      6. 根據(jù)權(quán)利要求2所述的用以與不同目標(biāo)工作流系統(tǒng)進(jìn)行匹配的方法,其特征在于, 所述的工作流實(shí)例類代表已經(jīng)創(chuàng)建的工作單,可以獲得當(dāng)前任務(wù)任何環(huán)節(jié)的信息,流程順 序、分支條件信息,辦理人員、實(shí)際時(shí)間、超時(shí)信息;從而實(shí)現(xiàn)對(duì)工作流的查詢與控制。
      7. 根據(jù)權(quán)利要求6所述的用以與不同目標(biāo)工作流系統(tǒng)進(jìn)行匹配的方法,其特征在于, 針對(duì)每個(gè)工作流實(shí)例中的每一環(huán)節(jié)的信息還設(shè)置有工作流實(shí)例活動(dòng)子類,其作為工作流實(shí) 例類的類成員,所述的工作流實(shí)例活動(dòng)子類具有g(shù)et/set方法取存環(huán)節(jié)屬性信息,以及提 供大量方法對(duì)當(dāng)前活動(dòng)、當(dāng)前任務(wù)進(jìn)行控制。
      全文摘要
      本發(fā)明為一種用以與不同目標(biāo)工作流系統(tǒng)進(jìn)行匹配的方法,其包括將目標(biāo)工作流系統(tǒng)的調(diào)用接口分別與相應(yīng)的實(shí)現(xiàn)類相對(duì)應(yīng);設(shè)置接口類,其與外部的調(diào)用命令相對(duì)應(yīng);將外界的調(diào)用命令通過(guò)對(duì)應(yīng)的接口類傳遞對(duì)應(yīng)的實(shí)現(xiàn)類;所述的接口類保存實(shí)現(xiàn)類的引用,通過(guò)所述的實(shí)現(xiàn)類引用對(duì)應(yīng)的目標(biāo)工作流系統(tǒng)的調(diào)用接口實(shí)現(xiàn)匹配和控制。
      文檔編號(hào)G06Q10/00GK101770610SQ200810247408
      公開日2010年7月7日 申請(qǐng)日期2008年12月31日 優(yōu)先權(quán)日2008年12月31日
      發(fā)明者丁金剛, 傅新奇, 姜維權(quán), 孟憲成, 左子凱, 張林先, 王春杰, 童偉進(jìn) 申請(qǐng)人:北京華電方勝軟件技術(shù)有限公司
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1