專利名稱:單據(jù)數(shù)據(jù)獲取裝置和單據(jù)數(shù)據(jù)獲取方法
技術(shù)領(lǐng)域:
本發(fā)明涉及流程技術(shù)領(lǐng)域,具體而言,涉及一種單據(jù)數(shù)據(jù)獲取裝置和單據(jù)數(shù)據(jù)獲取方法。
背景技術(shù):
工作流作為一種促進企業(yè)管理和信息化的重要方法,在當(dāng)今社會得到了廣泛的應(yīng)用。它不僅可以給企業(yè)帶來提高企業(yè)運營效率、改善企業(yè)資源利用、提高企業(yè)運作的靈活性和適應(yīng)性、提高工作效率的好處。還可以達到縮短企業(yè)運營周期、改善企業(yè)內(nèi)(外)部流程、優(yōu)化并合理利用資源、減少人為差錯和延誤等目的。單據(jù)的流程審批作為工作流應(yīng)用范圍的重要組成部分,在企業(yè)應(yīng)用中扮演著越來越重的角色。單據(jù)在審批過程中,通過與工作流的掛接,用戶可以通過瀏覽器和數(shù)據(jù)庫把各種信息方便地展現(xiàn)給用戶,讓內(nèi)部信息的流動及傳遞更加迅速準(zhǔn)確。所有單據(jù)流程運作會按照既定的規(guī)則運轉(zhuǎn)到相關(guān)部門執(zhí)行或?qū)徍恕M瑫r工作流可以根據(jù)單據(jù)設(shè)置不同的業(yè)務(wù)規(guī)貝U,提高了任務(wù)的執(zhí)行速度,降低了人力成本以及由人參與所帶來的低效和不公。然而在流程審批過程中,流程和單據(jù)本身的數(shù)據(jù)交換是不可避免的。如何實現(xiàn)流程和單據(jù)數(shù)據(jù)之間的動態(tài)交互,是尤為重要的。目前大部分的方案往往是在流程中直接指定了流程中可能需要的單據(jù)信息。一旦業(yè)務(wù)發(fā)生改變,需要其它的單據(jù)信息時,只能修改原有程序來增加對應(yīng)的流程處理,很難快速適應(yīng)業(yè)務(wù)變化。如圖1所示,該方案在流程中直接指定了具體業(yè)務(wù)含義的單據(jù)信息字段,所以在流程審批過程中不能實現(xiàn)動態(tài)獲取單據(jù)的信息。比如業(yè)務(wù)為以下場景時,就很難適應(yīng)業(yè)務(wù)變化?,F(xiàn)在要求在流程審批過程中把目前展現(xiàn)的單據(jù)金額改為單據(jù)編號,這時由于流程中原來通過硬編碼方式直接寫入的單據(jù)金額字段的值,當(dāng)流程審批過程中切換為單據(jù)編號顯示后,要么在流程中增加一個字段,專門來保存現(xiàn)有的單據(jù)編號。要么把原來寫入金額的字段改寫為寫入流程編號,無論哪種解決方案,都需要修改代碼甚至還需要修改表結(jié)構(gòu),所以無論其擴展性還是靈活性都是及其不好的。因此,需要一種新的單據(jù)數(shù)據(jù)獲取技術(shù),可以在流程中動態(tài)獲取單據(jù)信息,增強流程和單據(jù)之間數(shù)據(jù)交互性。
發(fā)明內(nèi)容
本發(fā)明正是基于上述問題,提出了一種新的單據(jù)數(shù)據(jù)獲取技術(shù),可以在流程中動態(tài)獲取單據(jù)信息,增強流程和單據(jù)之間數(shù)據(jù)交互性。有鑒于此,本發(fā)明提出了一種單據(jù)數(shù)據(jù)獲取裝置,包括:擴展字段設(shè)置單元,根據(jù)接收到的設(shè)置指令,在流程任務(wù)中設(shè)置一個或多個擴展字段;信息獲取單元,獲取單據(jù)中的所有單據(jù)字段信息;字段獲取單元,當(dāng)檢測到所述一個或多個擴展字段中的任意擴展字段有具體查詢字段輸入時,根據(jù)存儲的所述一個或多個擴展字段和所述單據(jù)字段信息的對應(yīng)關(guān)系,從所述信息獲取單元中獲取到與所述具體查詢字段對應(yīng)的單據(jù)字段信息。在該技術(shù)方案中,在流程任務(wù)中預(yù)置一些擴展字段,在預(yù)置時,并不直接指定其具體的業(yè)務(wù)含義,而是通過擴展字段和單據(jù)字段的對應(yīng)關(guān)系,即映射關(guān)系,動態(tài)的獲取單據(jù)數(shù)據(jù),從而在不修改代碼的前提下,快速的適應(yīng)業(yè)務(wù)變化。在上述技術(shù)方案中,優(yōu)選地,所述信息獲取單元包括:流程上下文構(gòu)造子單元,控制流程引擎外圍將所述單據(jù)中的所有單據(jù)信息暫存至流程上下文;以及所述字段獲取單元包括:字段查找子單元,控制流程引擎內(nèi)核根據(jù)存儲的所述一個或多個擴展字段和所述單據(jù)字段信息的對應(yīng)關(guān)系,查找到與所述具體查詢字段對應(yīng)的單據(jù)字段,在所述流程上下文中取得對應(yīng)的單據(jù)信息,并通過反射調(diào)用獲取具體的單據(jù)字段的值。在該技術(shù)方案中,通過擴展字段和單據(jù)字段的映射關(guān)系和流程引擎的處理,就可以獲得單據(jù)中指定字段的值,從而實現(xiàn)了流程審批中單據(jù)數(shù)據(jù)的動態(tài)抓取。 在上述技術(shù)方案中,優(yōu)選地,還包括:字段配置單元,檢測所述單據(jù)的類型,根據(jù)所述單據(jù)的類型確定所述流程任務(wù)的類型,并為所述一個或多個擴展字段配置對應(yīng)的單據(jù)字段信息;以及關(guān)系存儲單元,存儲所述一個或多個擴展字段和所述單據(jù)字段信息的對應(yīng)關(guān)系O在該技術(shù)方案中,由于業(yè)務(wù)上的單據(jù)必定對應(yīng)一種流程類型,所以對應(yīng)關(guān)系的配置是在流程類型上配置的,在單據(jù)對應(yīng)的流程類型中,通過維護對應(yīng)關(guān)系,動態(tài)指定流程任務(wù)的擴展字段和單據(jù)字段的對應(yīng)關(guān)系,增加可流程和單據(jù)之間交互的靈活性。在上述技術(shù)方案中,優(yōu)選地,所述信息獲取單元獲取單據(jù)字段信息的方式包括:通過查詢元數(shù)據(jù)獲取所有單據(jù)字段信息和/或通過查詢單據(jù)所對應(yīng)的數(shù)據(jù)庫表的元數(shù)據(jù)獲取所有單據(jù)字段信息。在上述技術(shù)方案中,優(yōu)選地,當(dāng)所述單據(jù)本身有對應(yīng)的元數(shù)據(jù)時,通過查詢元數(shù)據(jù)獲取所有單據(jù)字段信息,當(dāng)所述單據(jù)本身沒有對應(yīng)的元數(shù)據(jù)時,通過查詢單據(jù)所對應(yīng)的數(shù)據(jù)庫表的元數(shù)據(jù)獲取所有單據(jù)字段信息。在該技術(shù)方案中,單據(jù)本身有對應(yīng)的元數(shù)據(jù)時,這時元數(shù)據(jù)中已經(jīng)保存了單據(jù)中所有字段的信息,可以通過查詢元數(shù)據(jù)方式獲取單據(jù)所有的字段。單據(jù)本身沒有對應(yīng)的元數(shù)據(jù)時,這時單據(jù)中含有一些動態(tài)字段,即單據(jù)本身不確定有哪些具體的單據(jù)字段,可以通過查詢單據(jù)所對應(yīng)的數(shù)據(jù)庫表的元數(shù)據(jù)的方式獲取單據(jù)所有的字段。根據(jù)本發(fā)明的又一方面,還提供了一種單據(jù)數(shù)據(jù)獲取方法,包括:步驟302,根據(jù)接收到的設(shè)置指令,在流程任務(wù)中設(shè)置一個或多個擴展字段;步驟304,獲取單據(jù)中的所有單據(jù)字段信息;步驟306,當(dāng)檢測到所述一個或多個擴展字段中的任意擴展字段有具體查詢字段輸入時,根據(jù)存儲的所述一個或多個擴展字段和所述單據(jù)字段信息的對應(yīng)關(guān)系,從所述信息獲取單元中獲取到與所述具體查詢字段對應(yīng)的單據(jù)字段信息。在該技術(shù)方案中,在流程任務(wù)中預(yù)置一些擴展字段,在預(yù)置時,并不直接指定其具體的業(yè)務(wù)含義,而是通過擴展字段和單據(jù)字段的對應(yīng)關(guān)系,即映射關(guān)系,動態(tài)的獲取單據(jù)數(shù)據(jù),從而在不修改代碼的前提下,快速的適應(yīng)業(yè)務(wù)變化。在上述技術(shù)方案中,優(yōu)選地,所述步驟304具體包括:控制流程引擎外圍將所述單據(jù)中的所有單據(jù)信息暫存至流程上下文;以及所述步驟306具體包括:控制流程引擎內(nèi)核根據(jù)存儲的所述一個或多個擴展字段和所述單據(jù)字段信息的對應(yīng)關(guān)系,查找到與所述具體查詢字段對應(yīng)的單據(jù)字段,在所述流程上下文中取得對應(yīng)的單據(jù)信息,并通過反射調(diào)用獲取具體的單據(jù)字段的值。
在該技術(shù)方案中,通過擴展字段和單據(jù)字段的映射關(guān)系和流程引擎的處理,就可以獲得單據(jù)中指定字段的值,從而實現(xiàn)了流程審批中單據(jù)數(shù)據(jù)的動態(tài)抓取。在上述技術(shù)方案中,優(yōu)選地,還包括:檢測所述單據(jù)的類型,根據(jù)所述單據(jù)的類型確定所述流程任務(wù)的類型,并為所述一個或多個擴展字段配置對應(yīng)的單據(jù)字段信息;以及存儲所述一個或多個擴展字段和所述單據(jù)字段信息的對應(yīng)關(guān)系。在該技術(shù)方案中,由于業(yè)務(wù)上的單據(jù)必定對應(yīng)一種流程類型,所以對應(yīng)關(guān)系的配置是在流程類型上配置的,在單據(jù)對應(yīng)的流程類型中,通過維護對應(yīng)關(guān)系,動態(tài)指定流程任務(wù)的擴展字段和單據(jù)字段的對應(yīng)關(guān)系,增加可流程和單據(jù)之間交互的靈活性。在上述技術(shù)方案中,優(yōu)選地,獲取單據(jù)字段信息的方式包括:通過查詢元數(shù)據(jù)獲取所有單據(jù)字段信息和/或通過查詢單據(jù)所對應(yīng)的數(shù)據(jù)庫表的元數(shù)據(jù)獲取所有單據(jù)字段信肩、O在上述技術(shù)方案中,優(yōu)選地,當(dāng)所述單據(jù)本身有對應(yīng)的元數(shù)據(jù)時,通過查詢元數(shù)據(jù)獲取所有單據(jù)字段信息,當(dāng)所述單據(jù)本身沒有對應(yīng)的元數(shù)據(jù)時,通過查詢單據(jù)所對應(yīng)的數(shù)據(jù)庫表的元數(shù)據(jù)獲取所有單據(jù)字段信息。在該技術(shù)方案中,單據(jù)本身有對應(yīng)的元數(shù)據(jù)時,這時元數(shù)據(jù)中已經(jīng)保存了單據(jù)中所有字段的信息,可以通過查詢元數(shù)據(jù)方式獲取單據(jù)所有的字段。單據(jù)本身沒有對應(yīng)的元數(shù)據(jù)時,這時單據(jù)中含有一些動態(tài)字段,即單據(jù)本身不確定有哪些具體的單據(jù)字段,可以通過查詢單據(jù)所對應(yīng)的數(shù)據(jù)庫表的元數(shù)據(jù)的方式獲取單據(jù)所有的字段。通過以上技術(shù)方案,可以實現(xiàn)流程審批中單據(jù)數(shù)據(jù)的動態(tài)抓取,可以在不修改代碼的前提下,通過簡單的配置即可適應(yīng)業(yè)務(wù)的變化,避免了程序員的二次開發(fā)工作,同時實施人員也可以快速方便使用。
圖1示出了傳統(tǒng)單據(jù)數(shù)據(jù)獲取方法的示意圖;圖2示出了根據(jù)本發(fā)明的實施例的單據(jù)數(shù)據(jù)獲取裝置的框圖;圖3示出了根據(jù)本發(fā)明的實施例的單據(jù)數(shù)據(jù)獲取方法的流程圖;圖4示出了根據(jù)本發(fā)明的實施例的單據(jù)數(shù)據(jù)獲取方法的具體流程圖。
具體實施例方式為了能夠更清楚地理解本發(fā)明的上述目的、特征和優(yōu)點,下面結(jié)合附圖和具體實施方式
對本發(fā)明進行進一步的詳細描述。需要說明的是,在不沖突的情況下,本申請的實施例及實施例中的特征可以相互組合。在下面的描述中闡述了很多具體細節(jié)以便于充分理解本發(fā)明,但是,本發(fā)明還可以采用其他不同于在此描述的其他方式來實施,因此,本發(fā)明的保護范圍并不受下面公開的具體實施例的限制。圖2示出了根據(jù)本發(fā)明的實施例的單據(jù)數(shù)據(jù)獲取裝置的框圖。如圖2所示,根據(jù)本發(fā)明的實施例的單據(jù)數(shù)據(jù)獲取裝置200包括:擴展字段設(shè)置單元202,根據(jù)接收到的設(shè)置指令,在流程任務(wù)中設(shè)置一個或多個擴展字段;信息獲取單元204,獲取單據(jù)中的所有單據(jù)字段信息;字段獲取單元206,當(dāng)檢測到所述一個或多個擴展字段中的任意擴展字段有具體查詢字段輸入時,根據(jù)存儲的所述一個或多個擴展字段和所述單據(jù)字段信息的對應(yīng)關(guān)系,從所述信息獲取單元中獲取到與所述具體查詢字段對應(yīng)的單據(jù)字段信息。在該技術(shù)方案中,在流程任務(wù)中預(yù)置一些擴展字段,在預(yù)置時,并不直接指定其具體的業(yè)務(wù)含義,而是通過擴展字段和單據(jù)字段的對應(yīng)關(guān)系,即映射關(guān)系,動態(tài)的獲取單據(jù)數(shù)據(jù),從而在不修改代碼的前提下,快速的適應(yīng)業(yè)務(wù)變化。在上述技術(shù)方案中,優(yōu)選地,所述信息獲取單元204包括:流程上下文構(gòu)造子單元2042,控制流程引擎外圍將所述單據(jù)中的所有單據(jù)信息暫存至流程上下文;以及所述字段獲取單元206包括:字段查找子單元2062,控制流程引擎內(nèi)核根據(jù)存儲的所述一個或多個擴展字段和所述單據(jù)字段信息的對應(yīng)關(guān)系,查找到與所述具體查詢字段對應(yīng)的單據(jù)字段,在所述流程上下文中取得對應(yīng)的單據(jù)信息,并通過反射調(diào)用獲取具體的單據(jù)字段的值。在該技術(shù)方案中,通過擴展字段和單據(jù)字段的映射關(guān)系和流程引擎的處理,就可以獲得單據(jù)中指定字段的值,從而實現(xiàn)了流程審批中單據(jù)數(shù)據(jù)的動態(tài)抓取。在上述技術(shù)方案中,優(yōu)選地,還包括:字段配置單元208,檢測所述單據(jù)的類型,根據(jù)所述單據(jù)的類型確定所述流程任務(wù)的類型,并為所述一個或多個擴展字段配置對應(yīng)的單據(jù)字段信息;以及關(guān)系存儲單元210,存儲所述一個或多個擴展字段和所述單據(jù)字段信息的對應(yīng)關(guān)系。在該技術(shù)方案中,由于業(yè)務(wù)上的單據(jù)必定對應(yīng)一種流程類型,所以對應(yīng)關(guān)系的配置是在流程類型上配置的,在單據(jù)對應(yīng)的流程類型中,通過維護對應(yīng)關(guān)系,動態(tài)指定流程任務(wù)的擴展字段和單據(jù)字段的對應(yīng)關(guān)系,增加可流程和單據(jù)之間交互的靈活性。在上述技術(shù)方案中,優(yōu)選地,所述信息獲取單元204獲取單據(jù)字段信息的方式包括:通過查詢元數(shù)據(jù)獲取所有單據(jù)字段信息和/或通過查詢單據(jù)所對應(yīng)的數(shù)據(jù)庫表的元數(shù)據(jù)獲取所有單據(jù)字段信息。在上述技術(shù)方案中,優(yōu)選地,當(dāng)所述單據(jù)本身有對應(yīng)的元數(shù)據(jù)時,通過查詢元數(shù)據(jù)獲取所有單據(jù)字段信息,當(dāng)所述單據(jù)本身沒有對應(yīng)的元數(shù)據(jù)時,通過查詢單據(jù)所對應(yīng)的數(shù)據(jù)庫表的元數(shù)據(jù)獲取所有單據(jù)字段信息。在該技術(shù)方案中,單據(jù)本身有對應(yīng)的元數(shù)據(jù)時,這時元數(shù)據(jù)中已經(jīng)保存了單據(jù)中所有字段的信息,可以通過查詢元數(shù)據(jù)方式獲取單據(jù)所有的字段。單據(jù)本身沒有對應(yīng)的元數(shù)據(jù)時,這時單據(jù)中含有一些動態(tài)字段,即單據(jù)本身不確定有哪些具體的單據(jù)字段,可以通過查詢單據(jù)所對應(yīng)的數(shù)據(jù)庫表的元數(shù)據(jù)的方式獲取單據(jù)所有的字段。圖3示出了根據(jù)本發(fā)明的實施例的單據(jù)數(shù)據(jù)獲取方法的流程圖。如圖3所示,根據(jù)本發(fā)明的實施例的單據(jù)數(shù)據(jù)獲取方法,包括:步驟302,根據(jù)接收到的設(shè)置指令,在流程任務(wù)中設(shè)置一個或多個擴展字段;步驟304,獲取單據(jù)中的所有單據(jù)字段信息;步驟306,當(dāng)檢測到所述一個或多個擴展字段中的任意擴展字段有具體查詢字段輸入時,根據(jù)存儲的所述一個或多個擴展字段和所述單據(jù)字段信息的對應(yīng)關(guān)系,從所述信息獲取單元中獲取到與所述具體查詢字段對應(yīng)的單據(jù)字段信息。在該技術(shù)方案中,在流程任務(wù)中預(yù)置一些擴展字段,在預(yù)置時,并不直接指定其具體的業(yè)務(wù)含義,而是通過擴展字段和單據(jù)字段的對應(yīng)關(guān)系,即映射關(guān)系,動態(tài)的獲取單據(jù)數(shù)據(jù),從而在不修改代碼的前提下,快速的適應(yīng)業(yè)務(wù)變化。
在上述技術(shù)方案中,優(yōu)選地,所述步驟304具體包括:控制流程引擎外圍將所述單據(jù)中的所有單據(jù)信息暫存至流程上下文;以及所述步驟306具體包括:控制流程引擎內(nèi)核根據(jù)存儲的所述一個或多個擴展字段和所述單據(jù)字段信息的對應(yīng)關(guān)系,查找到與所述具體查詢字段對應(yīng)的單據(jù)字段,在所述流程上下文中取得對應(yīng)的單據(jù)信息,并通過反射調(diào)用獲取具體的單據(jù)字段的值。在該技術(shù)方案中,通過擴展字段和單據(jù)字段的映射關(guān)系和流程引擎的處理,就可以獲得單據(jù)中指定字段的值,從而實現(xiàn)了流程審批中單據(jù)數(shù)據(jù)的動態(tài)抓取。在上述技術(shù)方案中,優(yōu)選地,還包括:檢測所述單據(jù)的類型,根據(jù)所述單據(jù)的類型確定所述流程任務(wù)的類型,并為所述一個或多個擴展字段配置對應(yīng)的單據(jù)字段信息;以及存儲所述一個或多個擴展字段和所述單據(jù)字段信息的對應(yīng)關(guān)系。在該技術(shù)方案中,由于業(yè)務(wù)上的單據(jù)必定對應(yīng)一種流程類型,所以對應(yīng)關(guān)系的配置是在流程類型上配置的,在單據(jù)對應(yīng)的流程類型中,通過維護對應(yīng)關(guān)系,動態(tài)指定流程任務(wù)的擴展字段和單據(jù)字段的對應(yīng)關(guān)系,增加可流程和單據(jù)之間交互的靈活性。在上述技術(shù)方案中,優(yōu)選地,獲取單據(jù)字段信息的方式包括:通過查詢元數(shù)據(jù)獲取所有單據(jù)字段信息和/或通過查詢單據(jù)所對應(yīng)的數(shù)據(jù)庫表的元數(shù)據(jù)獲取所有單據(jù)字段信肩、O在上述技術(shù)方案中,優(yōu)選地,當(dāng)所述單據(jù)本身有對應(yīng)的元數(shù)據(jù)時,通過查詢元數(shù)據(jù)獲取所有單據(jù)字段信息,當(dāng)所述單據(jù)本身沒有對應(yīng)的元數(shù)據(jù)時,通過查詢單據(jù)所對應(yīng)的數(shù)據(jù)庫表的元數(shù)據(jù)獲取所有單據(jù)字段信息。在該技術(shù)方案中,單據(jù)本身有對應(yīng)的元數(shù)據(jù)時,這時元數(shù)據(jù)中已經(jīng)保存了單據(jù)中所有字段的信息,可以通過查詢元數(shù)據(jù)方式獲取單據(jù)所有的字段。單據(jù)本身沒有對應(yīng)的元數(shù)據(jù)時,這時單據(jù)中含有一些動態(tài)字段,即單據(jù)本身不確定有哪些具體的單據(jù)字段,可以通過查詢單據(jù)所對應(yīng)的數(shù)據(jù)庫表的元數(shù)據(jù)的方式獲取單據(jù)所有的字段。圖4示出了根據(jù)本發(fā)明的實施例的單據(jù)數(shù)據(jù)獲取方法的具體流程圖。如圖4所示,根據(jù)本發(fā)明的實施例的單據(jù)數(shù)據(jù)獲取方法的具體流程如下:步驟402,增加擴展字段。在流程任務(wù)中增加一些擴展字段,這些擴展字段在定義時并不指定其具體的業(yè)務(wù)含義,其業(yè)務(wù)含義是通過配置具體的映射關(guān)系來動態(tài)指定的。步驟404,獲取單據(jù)字段。其中,當(dāng)單據(jù)本身有對應(yīng)的元數(shù)據(jù)時,這時元數(shù)據(jù)中已經(jīng)保存了單據(jù)中所有字段的信息,可以通過查詢元數(shù)據(jù)方式獲取單據(jù)所有的字段;當(dāng)單據(jù)本身沒有對應(yīng)的元數(shù)據(jù)時,這時單據(jù)中含有一些動態(tài)字段,即單據(jù)本身不確定有哪些具體的單據(jù)字段,可以通過查詢單據(jù)所對應(yīng)的數(shù)據(jù)庫表的元數(shù)據(jù)的方式獲取單據(jù)所有的字段。步驟406,配置映射關(guān)系。由于業(yè)務(wù)上的單據(jù)必定對應(yīng)一種流程類型,所以映射關(guān)系的配置是在流程類型上配置的。在單據(jù)對應(yīng)的流程類型中,通過維護映射關(guān)系,動態(tài)指定流程任務(wù)的擴展字段和具體單據(jù)字段的映射關(guān)系。此時擴展字段的業(yè)務(wù)含義是通過動態(tài)配置關(guān)聯(lián)的單據(jù)字段指定的,同時還可以任意關(guān)聯(lián)單據(jù)上的某個字段,從而大大增加了流程和單據(jù)之間交互的靈活性。如果業(yè)務(wù)發(fā)生變化,比如流程中需要其他單據(jù)信息時,可以通過維護該映射關(guān)系,動態(tài)調(diào)整流程和單據(jù)之間的交互數(shù)據(jù),快速適應(yīng)業(yè)務(wù)的變化。步驟408,動態(tài)抓取數(shù)據(jù)。通過字段映射的配置關(guān)系和流程引擎的處理獲得單據(jù)中指定字段的值,從而實現(xiàn)流程審批中單據(jù)數(shù)據(jù)的動態(tài)抓取。其中,包括:步驟4082,在單據(jù)提交時,需要調(diào)用流程引擎驅(qū)動流程流轉(zhuǎn)。此時流程引擎要求必須傳入單據(jù)信息和其它流程相關(guān)信息,以便后續(xù)調(diào)用。步驟4084,流程引擎外圍會組織流程數(shù)據(jù),構(gòu)造不同的流程上下文,同時根據(jù)不同的流程操作,調(diào)用引擎內(nèi)核繼續(xù)執(zhí)行,此時會把當(dāng)前單據(jù)信息放入流程上下文中,便于之后單據(jù)與流程隨時交互。步驟4086,在流程引擎內(nèi)核中,實現(xiàn)具體的單據(jù)數(shù)據(jù)的抓取。如果流程和單據(jù)信息需要交互,可以通過映射關(guān)系獲得流程中擴展字段所對應(yīng)的單據(jù)字段。然后在流程上下文中取得對應(yīng)的單據(jù)信息,接著調(diào)用該單據(jù)自身方法(getAttributeValue (field))獲得具體的單據(jù)字段的值,該方法中的參數(shù)為通過映射關(guān)系獲取的具體的單據(jù)字段,通過該方法反射調(diào)用單據(jù)自身方法中該字段對應(yīng)的get方法獲得指定字段的值。以上結(jié)合附圖詳細說明了本發(fā)明的技術(shù)方案,通過本發(fā)明的技術(shù)方案,可以實現(xiàn)流程審批中單據(jù)數(shù)據(jù)的動態(tài)抓取,可以在不修改代碼的前提下,通過簡單的配置即可適應(yīng)業(yè)務(wù)的變化,避免了程序員的二次開發(fā)工作,同時實施人員也可以快速方便使用。以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種單據(jù)數(shù)據(jù)獲取裝置,其特征在于,包括: 擴展字段設(shè)置單元,根據(jù)接收到的設(shè)置指令,在流程任務(wù)中設(shè)置一個或多個擴展字段; 信息獲取單元,獲取單據(jù)中的所有單據(jù)字段信息; 字段獲取單元,當(dāng)檢測到所述一個或多個擴展字段中的任意擴展字段有具體查詢字段輸入時,根據(jù)存儲的所述一個或多個擴展字段和所述單據(jù)字段信息的對應(yīng)關(guān)系,從所述信息獲取單元中獲取到與所述具體查詢字段對應(yīng)的單據(jù)字段信息。
2.根據(jù)權(quán)利要求1所述的單據(jù)數(shù)據(jù)獲取裝置,其特征在于,所述信息獲取單元包括: 流程上下文構(gòu)造子單元,控制流程引擎外圍將所述單據(jù)中的所有單據(jù)信息暫存至流程上下文;以及 所述字段獲取單元包括: 字段查找子單元,控制流程引擎內(nèi)核根據(jù)存儲的所述一個或多個擴展字段和所述單據(jù)字段信息的對應(yīng)關(guān)系,查找到與所述具體查詢字段對應(yīng)的單據(jù)字段,在所述流程上下文中取得對應(yīng)的單據(jù)信息,并通過反射調(diào)用獲取具體的單據(jù)字段的值。
3.根據(jù)權(quán)利要求1所述的單據(jù)數(shù)據(jù)獲取裝置,其特征在于,還包括: 字段配置單元,檢測所述單據(jù)的類型,根據(jù)所述單據(jù)的類型確定所述流程任務(wù)的類型,并為所述一個或多個擴展字 段配置對應(yīng)的單據(jù)字段信息;以及 關(guān)系存儲單元,存儲所述一個或多個擴展字段和所述單據(jù)字段信息的對應(yīng)關(guān)系。
4.根據(jù)權(quán)利要求1至3中任一項所述的單據(jù)數(shù)據(jù)獲取裝置,其特征在于,所述信息獲取單元獲取單據(jù)字段信息的方式包括:通過查詢元數(shù)據(jù)獲取所有單據(jù)字段信息和/或通過查詢單據(jù)所對應(yīng)的數(shù)據(jù)庫表的元數(shù)據(jù)獲取所有單據(jù)字段信息。
5.根據(jù)權(quán)利要求4所述的單據(jù)數(shù)據(jù)獲取裝置,其特征在于,當(dāng)所述單據(jù)本身有對應(yīng)的元數(shù)據(jù)時,通過查詢元數(shù)據(jù)獲取所有單據(jù)字段信息,當(dāng)所述單據(jù)本身沒有對應(yīng)的元數(shù)據(jù)時,通過查詢單據(jù)所對應(yīng)的數(shù)據(jù)庫表的元數(shù)據(jù)獲取所有單據(jù)字段信息。
6.一種單據(jù)數(shù)據(jù)獲取方法,其特征在于,包括: 步驟302,根據(jù)接收到的設(shè)置指令,在流程任務(wù)中設(shè)置一個或多個擴展字段; 步驟304,獲取單據(jù)中的所有單據(jù)字段信息; 步驟306,當(dāng)檢測到所述一個或多個擴展字段中的任意擴展字段有具體查詢字段輸入時,根據(jù)存儲的所述一個或多個擴展字段和所述單據(jù)字段信息的對應(yīng)關(guān)系,從所述信息獲取單元中獲取到與所述具體查詢字段對應(yīng)的單據(jù)字段信息。
7.根據(jù)權(quán)利要求6所述的單據(jù)數(shù)據(jù)獲取方法,其特征在于,所述步驟304具體包括: 控制流程引擎外圍將所述單據(jù)中的所有單據(jù)信息暫存至流程上下文;以及 所述步驟306具體包括: 控制流程引擎內(nèi)核根據(jù)存儲的所述一個或多個擴展字段和所述單據(jù)字段信息的對應(yīng)關(guān)系,查找到與所述具體查詢字段對應(yīng)的單據(jù)字段,在所述流程上下文中取得對應(yīng)的單據(jù)信息,并通過反射調(diào)用獲取具體的單據(jù)字段的值。
8.根據(jù)權(quán)利要求6所述的單據(jù)數(shù)據(jù)獲取方法,其特征在于,還包括: 檢測所述單據(jù)的類型,根據(jù)所述單據(jù)的類型確定所述流程任務(wù)的類型,并為所述一個或多個擴展字段配置對應(yīng)的單據(jù)字段信息;以及存儲所述一個或多個擴展字段和所述單據(jù)字段信息的對應(yīng)關(guān)系。
9.根據(jù)權(quán)利要求6至8中任一項所述的單據(jù)數(shù)據(jù)獲取方法,其特征在于,獲取單據(jù)字段信息的方式包括:通過查詢元數(shù)據(jù)獲取所有單據(jù)字段信息和/或通過查詢單據(jù)所對應(yīng)的數(shù)據(jù)庫表的元數(shù)據(jù)獲取所有單據(jù)字段信息。
10.根據(jù)權(quán)利要求9所述的單據(jù)數(shù)據(jù)獲取方法,其特征在于,當(dāng)所述單據(jù)本身有對應(yīng)的元數(shù)據(jù)時,通過 查詢元數(shù)據(jù)獲取所有單據(jù)字段信息,當(dāng)所述單據(jù)本身沒有對應(yīng)的元數(shù)據(jù)時,通過查詢單據(jù)所對應(yīng)的數(shù)據(jù)庫表的元數(shù)據(jù)獲取所有單據(jù)字段信息。
全文摘要
本發(fā)明提供了一種單據(jù)數(shù)據(jù)獲取裝置,包括擴展字段設(shè)置單元,根據(jù)接收到的設(shè)置指令,在流程任務(wù)中設(shè)置一個或多個擴展字段;信息獲取單元,獲取單據(jù)中的所有單據(jù)字段信息;字段獲取單元,當(dāng)檢測到所述一個或多個擴展字段中的任意擴展字段有具體查詢字段輸入時,根據(jù)存儲的所述一個或多個擴展字段和所述單據(jù)字段信息的對應(yīng)關(guān)系,從所述信息獲取單元中獲取到與所述具體查詢字段對應(yīng)的單據(jù)字段信息。相應(yīng)地,本發(fā)明還提供了一種單據(jù)數(shù)據(jù)獲取方法。通過本發(fā)明的技術(shù)方案,可以在流程中動態(tài)獲取單據(jù)信息,從而在不修改代碼的前提下,快速的適應(yīng)業(yè)務(wù)變化,增強流程和單據(jù)之間數(shù)據(jù)交互性。
文檔編號G06F17/30GK103092996SQ20131005573
公開日2013年5月8日 申請日期2013年2月21日 優(yōu)先權(quán)日2013年2月21日
發(fā)明者陳偉亮 申請人:用友軟件股份有限公司