專利名稱:基于任意擴展屬性規(guī)格的可配置流程調度和環(huán)節(jié)選取方法
技術領域:
本發(fā)明屬于電信業(yè)務管理技術領域,具體是一種基于任意擴展的屬性規(guī)格的、可配置的 流程調度和環(huán)節(jié)選取方法,它可以應用在電信行業(yè)業(yè)務支撐軟件系統(tǒng)中,對業(yè)務處理流程、 企業(yè)管理流程、服務保障流程等企業(yè)流程進行管理的應用軟件里,就流程調度規(guī)則包括流程 模板選擇、流程環(huán)節(jié)選取、流程運行條件判斷而需要應用某種規(guī)則算法的場合。
背景技術:
當前使得流程調度和環(huán)節(jié)選取的規(guī)則可配置的方法在實現(xiàn)方案上還不是十分明確和較具 有系統(tǒng)性,簡單的參數(shù)配置設計可以在一定程度上實現(xiàn)可配置性,引入第三方的規(guī)則引擎軟 件也是解決方案之一。但無疑前者未經(jīng)過理論指導且只能部分地解決問題,而后者解決問題 的能力就完全取決于引入的第三方軟件了。
正則表達式用一個"字符串"來描述一個特征,然后去驗證另一個"字符串"是否符 合這個特征。比如表達式"ab+"描述的特征是"一個V和任意個'b'",那么'ab','油b', 'abhhhhhbbbb'都符合這個特征。正則表達式可以用來(1)驗證字符串是否符合指定特征, 比如驗證是否是合法的郵件地址。(2)用來查找字符串,從一個長的文本中查找符合指定特 征的字符串,比查找固定字符串更加靈活方便。(3)用來替換,比普通的替換更強大。
發(fā)明內容
發(fā)明目的此發(fā)明是針對目前生產流程中,根據(jù)輸入的條件動態(tài)判斷流程的走向問題, 輸入的條件是靈活多變的,所以條件的變動會引起代碼的修改,代碼的修改和維護帶來每更 改一處就要更新軟件版木的問題。此發(fā)明把輸入的動態(tài)條件定義成有規(guī)則的組合表達式,減 少了版本的更新頻率,通過數(shù)據(jù)庫配置就可以達到之前修改代碼的3的。在發(fā)明應用后,效 果良好。
技術方案
一種基于任意擴展屬性規(guī)格的可配置流程調度和環(huán)節(jié)選取方法,把輸入的動態(tài)條件定義 成有規(guī)則的組合表達式,具體歩驟包括
1) 配置流程和環(huán)節(jié),指定這個流程需求經(jīng)過所有環(huán)節(jié);
2) 配置流程對應的動態(tài)規(guī)則,包括建立規(guī)則表達式,指明某種條件對應某個環(huán)節(jié);
3) 針對所選流程,結合流程配置的一組動態(tài)規(guī)則動態(tài)運算出流程應該經(jīng)過環(huán)節(jié)。 在屬性動態(tài)規(guī)格的基礎上配置規(guī)則,步驟包括1) 先根據(jù)一定的規(guī)則對表達式做遞歸處理分解出原子表達式,并記錄每步操作符;
2) 對原子表達式進行規(guī)則判斷,得到一組判斷結果。
3) 根據(jù)記錄下的操作符和這組判斷結果,得到最終結果。
4) 根據(jù)最終結果選取當前流程環(huán)節(jié)是否需要經(jīng)過。
所述規(guī)則如下-
1) 〃=〃用于判斷值相當,包括空值的判斷(即表示值為空),例如(10045=1)表示判斷 10045的新值是否為1;
2) ! (10045=1):用于判斷值為非,例如訂單類型不是l的情況;
3) "<>〃用于判斷不等的值,包括空值的判斷(即表示值不為空);
4) 〃M0D〃用于判斷值是否發(fā)生變化(即新舊值發(fā)生變化);
5) "ADD":用于判斷值是否是新增(即新值有,舊值沒有);
6) "DEL":用于判斷值是否是刪除(即新值沒有,舊值有);
7) 〃KIP〃:用于判斷值是否是不變(即新舊值相同);
8) (0@10002=2)表示舊的產品規(guī)格是2的情況,@前是大寫的字母0,沒有則默認判斷 新值;
9) 各個規(guī)則通過l |和&&來表示之間的關系,所以要盡量加括號,..如 (10002二2)&&.(10045=1) i I (10002=4)&&(10045=3);應改為 ((10002=2)&&(10045-1))I I ((10002=4)級(10015=3));
10) (10045=1) i I (10045=7):訂單類型是1或者訂單類型是7; (10002=2)&&(10045:1):產品規(guī)格為2,且訂單類型為1 。
有益效果本發(fā)明與現(xiàn)有技術相比,簡化代碼開發(fā)量,大量的判斷性邏輯代碼開發(fā)可以 直接通過表達式的組合配置達到效果。
圖l:數(shù)據(jù)模型示意圖
流程模板對丁某類相同流程抽象出的流程應用模板。 環(huán)節(jié)對于某一流程模板屮流程所涉及的環(huán)節(jié)配置。 流程規(guī)則配置某種產品的某種業(yè)務應用的流程模板及動態(tài)規(guī)則。 動態(tài)規(guī)則配置配置各種動態(tài)規(guī)則的自定義表達式及所涉及環(huán)節(jié)。
具體實施例方式
下面結合附圖和具體實施方式
對本發(fā)明作進一歩說明。
在電信行業(yè)業(yè)務支撐軟件系統(tǒng)中,在對業(yè)務處理流梓、企業(yè)管理流程、服務保障流程等 需要對流程進行管理的應用軟件里,某種產品的某種業(yè)務需要配置流程模板以確定流程,流 程模板上需要配置環(huán)節(jié),以確定流程模板的全部走向。而不同產品不同業(yè)務輸入屬性值各不
4相同,需要配置動態(tài)規(guī)則判斷在不同的屬性值輸入下,具體選取出所應用的流程模板中流程 所要經(jīng)過的不同環(huán)節(jié)。
本方法的核心思想是在使用數(shù)字編碼的屬性規(guī)格集上,屬性規(guī)格是對一個特定屬性做定 義,比如產品代碼10002等于2,通過自定義的表達式,以Java程序處理模塊為驅動引擎, 實現(xiàn)流程調度和環(huán)節(jié)選取策略的動態(tài)配置。自定義表達式是一組按一定規(guī)則,可自己定義的 邏輯表達式,如(10045=1)11(10045=7)。通過Java程序代碼,處理規(guī)則并運算出結果,程 序運行的基礎是該方法的專有數(shù)據(jù)模型。
本方法以正則表達式的理論基礎為理論指導,通過嚴密設計的一系列應用數(shù)據(jù)模型,輔 以Java編寫的一段解析語言,達到由用戶自定義有規(guī)則的組合表達式的目的,并可由用戶輸 入的條件過濾出一組或幾組表達式,在此基礎上進一步運用遞歸算法,解析出多組解析后的 表達式,最后計算出結果。表達式的基本元素即為屬性規(guī)格,這些屬性規(guī)格是采用數(shù)字編碼 的,從而可以任意擴展。
該方法被設計為一個較通用的引擎部分,從而可以運用于流程調度、環(huán)節(jié)選取等多個需 要可配置策略的場合。對于流程調度和環(huán)節(jié)選取的應用,配置人員事先配置好自定義表達式, 也就是正確設定有規(guī)則的邏輯表達式,當系統(tǒng)運行時有不同屬性值輸入時,由于屬性值可以 隨意輸入,為判斷是否滿足環(huán)節(jié)選取條件,java程序處理模塊會對事先配置好的自定義表達 式進行解析,再結合輸入的屬性值進行邏輯運算,得到正.確的環(huán)節(jié)以便選取出以供使用。)
本例中,歩驟是,對數(shù)據(jù)模型變更腳本迸行安裝;對流程環(huán)節(jié)規(guī)則配置數(shù)據(jù)進行導入;
對任意擴展性和可配置流程環(huán)節(jié)的程序進行同歩更新。
具體來說,通過應用的數(shù)據(jù)模型(參見圖1),根據(jù)輸入的控制串表達式如 ((10002=2)&&(10045=1)) i I ((10002=4)&&(10045=3)),通過可配置流程調度和環(huán)節(jié)模塊的邏 輯進行編譯和判定,歩驟如下
1、先根據(jù)一定的規(guī)則用同一方法對表達式做遞歸處理分解出原子表達式,并記錄每歩 操作符。表達式規(guī)則如下
1) 〃=〃用于判斷值相當,包括空值的判斷(即表示值為空),(10045=1)表示判斷10045 的新值是否為1;
2) ! (10045=1)訂單類型不是1的情況;
3) "〈〉"用于判斷不等的值,包括空值的判斷(即表示值不為空);
4) "MOD":用于判斷值是否發(fā)生變化(即新舊值發(fā)生變化);5) 〃ADD":用于判斷值是否是新增(即新值有,舊值沒有);
6) 〃DEL〃用于判斷值是否是刪除(即新值沒有,舊值有);
7) 〃KIP〃:用于判斷值是否是不變(即新舊值相同);
8) (0010002=2)表示舊的產品規(guī)格是2的情況,@前是大寫的字母0,沒有則默認判斷
新值;
9) 各個規(guī)則通過l 1和&&來表示之間的關系,所以要盡量加括號,如 (10002=2)&&(10045=1) I I (10002=4)&&(10045=3);應改為 ((10002=2)脅(10045=1)) I I ((10002=4)&&(10045=3));
10) (10045=1) I I (10045=7)訂單類型是1或者訂單類型是7;
11) (10002=2)&&(10045=1) 產品規(guī)格為2,且訂單類型為1;
2、 對原子表達式進行規(guī)則判斷,得到一組判斷結果。
3、 根據(jù)記錄下的操作符和這組判斷結果,得到最終結果。
4、 根據(jù)最終結果選取當前流程環(huán)節(jié)是否需要經(jīng)過。 對于現(xiàn)在的這樣一個配置,如.-
((10045=72) i I (10045=1165) | ! (10045=2) | | (10045=280104) | | (10045=7) | | (10045=117 1)I I(10045=1172) I I(10045=19)||(10045=20) i |(10045=41) i |(10045=48)|| (10045=66)||(1 0045=67) i i (10045=68) ||(10045=3))((10005=618)| i (10005=636))&&(11371=189)
在當10045等于72, 1165, 2, 280104, 7, 1171, 1172, 19, 20, 41, 48, 66, 67, 68, 4 這組數(shù)字其中之一的,并且10005等618或者636,并且11371等于189,這三組條件成立時, 得到一個結果,為達到判斷的目的,在同樣條件下,通過原先程序來這樣判斷的話,必須先 設計一組if
((10045=72) I I (10045=1165) | i (10045=2) 1 i (10045=280104) i ) (10045=7) | ! (10045=1171) i 1 (10045=1172) i I(10045=19)|1(10045=20)|1(10045=41)|!(10045=48)|1(10045=66)||(10045 =67) I I (10045=68) | | (10045=3))這樣的判斷,再交集一組(10005=618) | | (10005=636)這樣 的判斷之后,再交集一組(11371=189)這樣的條件判斷,才能達到最終想要的結果,如果需要 加一個條件值10045=333,則必需更新程序代碼,而此本方法可使這三組程序轉換為一組數(shù) 據(jù)配置表達式,通過更新表達式達到修改的目的,而不需要修改程序發(fā)布更新等,表達式可 作為數(shù)據(jù)配置,可動態(tài)更新,簡化了程序修改和添加更多程序判斷的復雜語句。
權利要求
1、一種基于任意擴展屬性規(guī)格的可配置流程調度和環(huán)節(jié)選取方法,其特征是把輸入的動態(tài)條件定義成有規(guī)則的組合表達式,具體步驟包括1)配置流程和環(huán)節(jié),指定這個流程需求經(jīng)過所有環(huán)節(jié);2)配置流程對應的動態(tài)規(guī)則,包括建立規(guī)則表達式,指明某種條件對應某個環(huán)節(jié);3)針對所選流程,結合流程配置的一組動態(tài)規(guī)則動態(tài)運算出流程應該經(jīng)過環(huán)節(jié)。
2、 根據(jù)權利要求1所述的基于任意擴展屬性規(guī)格的可配置流程調度和環(huán)節(jié)選取方法,其特征 是在屬性動態(tài)規(guī)格的基礎上配置規(guī)則,步驟包括1) 先根據(jù)一定的規(guī)則對表達式做遞歸處理分解出原子表達式,并記錄每步操作符;2) 對原子表達式進行規(guī)則判斷,得到一組判斷結果;3) 根據(jù)記錄下的操作符和這組判斷結果,得到最終結果;4) 根據(jù)最終結果選取當前流程環(huán)節(jié)是否需要經(jīng)過。
3、 根據(jù)權利要求2所述的基于任意擴展的屬性規(guī)格的、可配置的流程調度和環(huán)節(jié)選取方法,其特征是所述規(guī)則如下1) 〃=〃用于判斷值相當,包括空值的判斷,即表示值為空;2) !:用于判斷值為非;3) 〃<>〃用于判斷不等的值,包括空值的判斷,即表示值不為空;4) 〃M0D〃用于判斷值是否發(fā)生變化,即新舊值發(fā)生變化;5) 〃ADD〃用于判斷值是否是新增,即新值有,舊值沒有;6) "DEL":用于判斷值是否是刪除,即新值沒有,舊值有;7) "KIP":用于判斷值是否是不變,即新舊值相同;8) (0@XXXX)表示舊的產品xxxx的情況,@前是大寫的字母0,沒有則默認判斷新值;9) 各個規(guī)則通過l |和&&來表示之間的關系,所以要加括號;10) ||:用于表示"或";11) &&:用于表示"與"。
全文摘要
一種基于任意擴展屬性規(guī)格的可配置流程調度和環(huán)節(jié)選取方法,把輸入的動態(tài)條件定義成有規(guī)則的組合表達式,具體步驟包括1)配置流程和環(huán)節(jié),指定這個流程需求經(jīng)過所有環(huán)節(jié);2)配置流程對應的動態(tài)規(guī)則,包括建立規(guī)則表達式,指明某種條件對應某個環(huán)節(jié);3)針對所選流程,結合流程配置的一組動態(tài)規(guī)則動態(tài)運算出流程應該經(jīng)過環(huán)節(jié)。本發(fā)明與現(xiàn)有技術相比,簡化代碼開發(fā)量,大量的判斷性邏輯代碼開發(fā)可以直接通過表達式的組合配置達到效果。
文檔編號H04M3/22GK101500040SQ200910024979
公開日2009年8月5日 申請日期2009年3月2日 優(yōu)先權日2009年3月2日
發(fā)明者余志剛, 姚海虹, 朱志昊, 王驗兵, 陳赫赫 申請人:南京聯(lián)創(chuàng)科技股份有限公司