一種erp領(lǐng)域的業(yè)務(wù)流實(shí)現(xiàn)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種電子商務(wù)技術(shù)領(lǐng)域,具體地說(shuō)是一種ERP領(lǐng)域的業(yè)務(wù)流實(shí)現(xiàn)方法。
【背景技術(shù)】
[0002]業(yè)務(wù)流是指一個(gè)ERP系統(tǒng)中多張不同的業(yè)務(wù)單據(jù)串接起來(lái)的流程,即每個(gè)流程環(huán)節(jié)涉及到不同的單據(jù)類型,前后處理的單據(jù)對(duì)象不是同一個(gè),上下游單據(jù)處理還有合并、分單和數(shù)據(jù)回寫(xiě)規(guī)則。
[0003]比如銷售會(huì)考慮如何在銷售成本一定的情況下銷售更多的商品給客戶,物流完全不關(guān)心是誰(shuí)買的這個(gè)產(chǎn)品,而更關(guān)心運(yùn)輸?shù)男剩赡馨讯鄠€(gè)客戶的訂單根據(jù)交貨地合并作為處理的一個(gè)單元節(jié)省貨運(yùn)成本。采購(gòu)部門(mén)不關(guān)心采購(gòu)單位或者個(gè)人,他們會(huì)把所有的采購(gòu)請(qǐng)求合并一個(gè)采購(gòu)訂單提高議價(jià)能力和運(yùn)輸?shù)男省?br>[0004]ERP系統(tǒng)內(nèi)部的流程集成場(chǎng)景比較復(fù)雜,不同的關(guān)鍵應(yīng)用為了適應(yīng)運(yùn)行效率的需要,進(jìn)行了不同層次和不同角度的合并分拆處理,導(dǎo)致一個(gè)始發(fā)的業(yè)務(wù)在流程中進(jìn)行不斷的合并或者分拆,靈活性要求很高。
[0005]現(xiàn)代的ERP系統(tǒng)要求我們從管理高效,資源優(yōu)化,業(yè)務(wù)協(xié)同的角度來(lái)設(shè)計(jì)系統(tǒng),系統(tǒng)的上下游業(yè)務(wù)之間需要頻繁的協(xié)作來(lái)實(shí)現(xiàn)企業(yè)經(jīng)營(yíng)效益的最大化。
[0006]如何提供低成本,靈活的,自適應(yīng),可擴(kuò)展的業(yè)務(wù)流程,是現(xiàn)在商業(yè)軟件的一個(gè)新挑戰(zhàn),系統(tǒng)通過(guò)業(yè)務(wù)流模塊來(lái)解決這個(gè)問(wèn)題,支持同步和異步通訊,支持異常處理,并提供業(yè)務(wù)順序性的保證。
[0007]基于上述的背景,要求我們的系統(tǒng)設(shè)計(jì)在考慮好業(yè)務(wù)單據(jù)如何協(xié)同,而且這種協(xié)同是靈活的,可配置的。我們希望設(shè)計(jì)一種業(yè)務(wù)流驅(qū)動(dòng)的模式來(lái)指導(dǎo)ERP領(lǐng)域業(yè)務(wù)間的應(yīng)用交互和協(xié)作,業(yè)務(wù)流程驅(qū)動(dòng)業(yè)務(wù)的流轉(zhuǎn),實(shí)現(xiàn)流程的自動(dòng)化,提高ERP軟件的易用性和效率。
[0008]對(duì)于模塊內(nèi)的這類業(yè)務(wù)流程,提供公共的流程集成組件,通過(guò)業(yè)務(wù)對(duì)象的動(dòng)作驅(qū)動(dòng)配置。對(duì)于模塊間這一類的流程主要是要考慮服務(wù)之間點(diǎn)對(duì)點(diǎn)的集成,通過(guò)業(yè)務(wù)服務(wù)的合理分拆,服務(wù)之間兩兩連接最終形成一個(gè)完整的可配置的靈活的業(yè)務(wù)流程圖。
[0009]基于此,現(xiàn)提供一種ERP領(lǐng)域的業(yè)務(wù)流實(shí)現(xiàn)方法。
【發(fā)明內(nèi)容】
[0010]本發(fā)明的技術(shù)任務(wù)是針對(duì)以上不足之處,提供一種ERP領(lǐng)域的業(yè)務(wù)流實(shí)現(xiàn)方法。 本發(fā)明解決其技術(shù)問(wèn)題所采用的技術(shù)方案是:
一種ERP領(lǐng)域的業(yè)務(wù)流實(shí)現(xiàn)方法,其實(shí)現(xiàn)過(guò)程為:
服務(wù)調(diào)用者在服務(wù)調(diào)用端的業(yè)務(wù)對(duì)象框架通過(guò)觸發(fā)或顯示調(diào)用的方式調(diào)用業(yè)務(wù)流框架,業(yè)務(wù)流框架調(diào)度輸出類的流程服務(wù)代理處理消息后,把消息傳遞給企業(yè)服務(wù)總線ESB,該流程服務(wù)代理實(shí)現(xiàn)了應(yīng)用集成服務(wù)接口的實(shí)現(xiàn)類,其具體分為輸出類流程服務(wù)代理和輸入類流程服務(wù)代理;
ESB進(jìn)行消息的路由和映射,調(diào)用業(yè)務(wù)流框架的服務(wù)提供者:業(yè)務(wù)流框架調(diào)度服務(wù)提供者的輸入類流程服務(wù)代理來(lái)處理消息的檢驗(yàn)和轉(zhuǎn)換,然后調(diào)用業(yè)務(wù)對(duì)象框架接口讀/寫(xiě)業(yè)務(wù)對(duì)象數(shù)據(jù),流程集成框架在修改完業(yè)務(wù)對(duì)象數(shù)據(jù)后,組織響應(yīng)消息,通過(guò)ESB響應(yīng)服務(wù)調(diào)用者;
服務(wù)調(diào)用端的流程服務(wù)代理根據(jù)響應(yīng)消息修改BO系統(tǒng),同時(shí)業(yè)務(wù)流框架還提供包括流程跟蹤管理、錯(cuò)誤與沖突處理的功能。
[0011 ] 所述業(yè)務(wù)對(duì)象,是指企業(yè)應(yīng)用中的業(yè)務(wù)實(shí)體的技術(shù)抽象和封裝,該業(yè)務(wù)對(duì)象包含了數(shù)據(jù)模型和業(yè)務(wù)操作邏輯的封裝,是從業(yè)務(wù)邏輯的角度不可細(xì)分的最小實(shí)體單位。
[0012]所述業(yè)務(wù)流框架,包括以下的服務(wù):
查找注冊(cè)的服務(wù)代理,即根據(jù)業(yè)務(wù)對(duì)象編號(hào)去代理注冊(cè)表查詢對(duì)應(yīng)服務(wù)代理;
控制順序執(zhí)行服務(wù)代理的任務(wù),根據(jù)不同的類型有條件的控制服務(wù)代理的執(zhí)行,這里的不同類型包括異步、同步、輸入、輸出;
更新流程集成歷史信息,對(duì)框架流轉(zhuǎn)過(guò)程數(shù)據(jù)的變化歷史進(jìn)行記錄;
異常處理和沖突機(jī)制,對(duì)流轉(zhuǎn)過(guò)程異常和沖突進(jìn)行實(shí)時(shí)處理,提供錯(cuò)誤和沖突恢復(fù)機(jī)制;
根據(jù)消息結(jié)構(gòu)和擴(kuò)展結(jié)構(gòu)初始消息結(jié)構(gòu),服務(wù)代理中組織數(shù)據(jù)時(shí)填充消息數(shù)據(jù);
初始錯(cuò)誤消息結(jié)構(gòu),并控制消息傳遞,根據(jù)消息內(nèi)容進(jìn)行錯(cuò)誤或沖突策略處理;
控制流程轉(zhuǎn)換過(guò)程消息頭信息,根據(jù)消息頭信息記錄流程集成歷史;
控制流程代理步驟和消息代理順序執(zhí)行。
[0013]所述流程服務(wù)代理實(shí)現(xiàn)了應(yīng)用集成服務(wù)接口的實(shí)現(xiàn)類,該流程服務(wù)代理中包括流程進(jìn)程的邏輯,該邏輯分為輸出類流程服務(wù)代理和輸入類流程服務(wù)代理;輸出類流程服務(wù)代理根據(jù)業(yè)務(wù)對(duì)象的數(shù)據(jù)變化或者顯示的調(diào)用來(lái)觸發(fā),功能是進(jìn)行相關(guān)性檢查、組裝消息、承擔(dān)服務(wù)消費(fèi)者或事件通知者的角色;輸入類流程服務(wù)代理是服務(wù)的提供者,根據(jù)收到的消息進(jìn)行相應(yīng)的邏輯處理。
[0014]所述輸出類流程服務(wù)代理,一旦服務(wù)調(diào)用者代理被業(yè)務(wù)流框架調(diào)用,需要順序執(zhí)行以下任務(wù)去組裝發(fā)送消息:
首先將輸出類流程服務(wù)代理初始化,確定所有相關(guān)的業(yè)務(wù)對(duì)象實(shí)例;
判斷與后續(xù)流程的相關(guān)性,判斷哪個(gè)節(jié)點(diǎn)與后續(xù)流程相關(guān),如果沒(méi)有,則返回;
條件判斷,判斷業(yè)務(wù)數(shù)據(jù)變化的類型,業(yè)務(wù)流框架檢查所有流程相關(guān)的條件類型;
組裝消息的內(nèi)容;
檢查返回消息的內(nèi)容、消息結(jié)構(gòu)和值的完整性和一致性,收到錯(cuò)誤消息時(shí)進(jìn)行異常處理;
通過(guò)業(yè)務(wù)對(duì)象框架接口修改業(yè)務(wù)數(shù)據(jù)。
[0015]收到錯(cuò)誤消息時(shí)進(jìn)行異常處理的具體過(guò)程為:如果不能成功執(zhí)行的流程步驟,代理設(shè)置錯(cuò)誤標(biāo)志,添加至消息處理程序中;如果服務(wù)調(diào)用者返回的消息到消息處理程序中,業(yè)務(wù)對(duì)象框架需要去處理消息。
[0016]所述輸入類流程服務(wù)代理由服務(wù)提供者定義,該服務(wù)提供者的任務(wù)是檢查接收的消息內(nèi)容并更新一個(gè)或多個(gè)業(yè)務(wù)對(duì)象,該輸入類流程服務(wù)代理包含以下順序步驟:
首先將輸入類流程服務(wù)代理初始化,確定所有相關(guān)的業(yè)務(wù)對(duì)象實(shí)例;
鎖定業(yè)務(wù)對(duì)象; 檢查輸入的消息內(nèi)容;
通過(guò)業(yè)務(wù)對(duì)象框架接口修改業(yè)務(wù)數(shù)據(jù);
檢索服務(wù)提供者受影響的業(yè)務(wù)數(shù)據(jù);
組裝響應(yīng)消息。
[0017]所述的流程集成歷史,用來(lái)存儲(chǔ)業(yè)務(wù)流框架運(yùn)行時(shí)處理過(guò)程的信息;它是由一組數(shù)據(jù)庫(kù)表連同API來(lái)進(jìn)行訪問(wèn)的;流程集成歷史包含控制過(guò)程邏輯的必要信息,存儲(chǔ)了發(fā)送和接收信息、操作代碼、相關(guān)業(yè)務(wù)對(duì)象節(jié)點(diǎn)的引用關(guān)系,來(lái)記錄業(yè)務(wù)流的執(zhí)行過(guò)程;流程集成歷史既是調(diào)用端流程的一部分,也是服務(wù)提供端流程的一部分。
[0018]所述的流程跟蹤管理,是追蹤業(yè)務(wù)對(duì)象之間伴隨業(yè)務(wù)流轉(zhuǎn)過(guò)程中的引用和參照關(guān)系,通過(guò)一個(gè)業(yè)務(wù)對(duì)象,追溯到后續(xù)業(yè)務(wù)流程中哪些業(yè)務(wù)對(duì)象被創(chuàng)建,并能夠聯(lián)查到后續(xù)業(yè)務(wù)對(duì)象的詳細(xì)信息。
[0019]本發(fā)明的一種ERP領(lǐng)域的業(yè)務(wù)流實(shí)現(xiàn)方法和現(xiàn)有技術(shù)相比,具有以下有益效果: 本發(fā)明通過(guò)將業(yè)務(wù)服務(wù)的合理分拆、服務(wù)之間兩兩連接最終形成一個(gè)完整的可配置的靈活的業(yè)務(wù)流程圖,使業(yè)務(wù)流程靈活可配置、自適應(yīng)、可擴(kuò)展、可管理,滿足系統(tǒng)的上下游業(yè)務(wù)之間需要頻繁的協(xié)作需求,實(shí)現(xiàn)企業(yè)經(jīng)營(yíng)效益的最大化,提高ERP軟件的易用性和效率。
【附圖說(shuō)明】
[0020]圖1是本發(fā)明的ERP領(lǐng)域的業(yè)務(wù)流系統(tǒng)架構(gòu)圖。
[0021]圖2是本發(fā)明的服務(wù)調(diào)用者輸出類流程代理操作步驟圖。
[0022]圖3是本發(fā)明的服務(wù)提供者輸入類流程代理操作步驟圖。
[0023]圖4是本發(fā)明的具體實(shí)施例的銷售訂單生成銷售發(fā)票的業(yè)務(wù)流程圖。
[0024]圖5是本發(fā)明的具體實(shí)施例的銷售訂單生成銷售發(fā)票的業(yè)務(wù)流原理圖。
[0025]圖6是本發(fā)明的具體實(shí)施例的銷售訂單的服務(wù)接口定義示意圖。
[0026]圖7是本發(fā)明的具體實(shí)施例的銷售訂單的服務(wù)代理定義示意圖。
[0027]圖8是本發(fā)明的具體實(shí)施例的銷售訂單的服務(wù)消息定義示意圖。
【具體實(shí)施方式】
[0028]下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步說(shuō)明。
[0029]如附圖1-圖3所示,本發(fā)明的一種ERP領(lǐng)域的業(yè)務(wù)流實(shí)現(xiàn)方法,包括其實(shí)現(xiàn)過(guò)程為: 服務(wù)調(diào)用者在服務(wù)調(diào)用端的業(yè)務(wù)對(duì)象框架通過(guò)觸發(fā)或顯示調(diào)用的方式調(diào)用業(yè)務(wù)流框架,業(yè)務(wù)流框架調(diào)度輸出類的流程服務(wù)代理處理消息后,把消息傳遞給企業(yè)服務(wù)總線ESB,該流程服務(wù)代理實(shí)現(xiàn)了應(yīng)用集成服務(wù)接口的實(shí)現(xiàn)類,其具體分為輸出類流程服務(wù)代理和輸入類流程服務(wù)代理;ESB,主要用于進(jìn)行消息的路由和映射,系統(tǒng)內(nèi)也可以提供一個(gè)獨(dú)立的功能組件來(lái)處理消息的路由和映射,不局限于使用ESB。同時(shí)對(duì)于同一個(gè)業(yè)務(wù)系統(tǒng)的服務(wù)調(diào)用,可以提供內(nèi)部簡(jiǎn)化處理,減少消息轉(zhuǎn)換的額外消耗。
[0030]ESB進(jìn)行消息的路由和映射,調(diào)用業(yè)務(wù)流框架的服務(wù)提供者:業(yè)務(wù)流框架調(diào)度服務(wù)提供者的輸入類流程服務(wù)代理來(lái)處理消息的檢驗(yàn)和轉(zhuǎn)換,然后調(diào)用業(yè)務(wù)對(duì)象框架接口讀/寫(xiě)業(yè)務(wù)對(duì)象數(shù)據(jù),流程集成框架在修改完業(yè)務(wù)對(duì)象數(shù)據(jù)后,組織響應(yīng)消息,通過(guò)ESB響應(yīng)服務(wù)調(diào)用者; 服務(wù)調(diào)用端的流程服務(wù)代理根據(jù)響應(yīng)消息修改BO系統(tǒng),該BO系統(tǒng)為BusinessIntelligence的縮寫(xiě),即商業(yè)智能,值將企業(yè)中現(xiàn)有數(shù)據(jù)轉(zhuǎn)化為知識(shí),幫助企業(yè)做出明智的業(yè)務(wù)經(jīng)營(yíng)決策的工具;同時(shí)業(yè)務(wù)流框架還提供包括流程跟蹤管理、錯(cuò)誤與沖突處理的功能。[0031 ] 所述業(yè)務(wù)對(duì)象,是指企業(yè)應(yīng)用中的業(yè)務(wù)實(shí)體的技術(shù)抽象和封裝,該業(yè)務(wù)對(duì)象包含了數(shù)據(jù)模型和業(yè)務(wù)操作邏輯的封裝,是從業(yè)務(wù)邏輯的角度不可細(xì)分的最小實(shí)體單位。
[0032]所述業(yè)務(wù)流框架,包括以下的服務(wù):
查找注冊(cè)的服務(wù)代理,即根據(jù)業(yè)務(wù)對(duì)象編號(hào)去代理注冊(cè)表查詢對(duì)應(yīng)服務(wù)代理;
控制順序執(zhí)行服務(wù)代理的任務(wù),根據(jù)不同的類型有條件的控制服務(wù)代理的執(zhí)行,這里的不同類型包括異步、同步、輸入、輸出;
更新流程集成歷史信息,對(duì)框架流轉(zhuǎn)過(guò)程數(shù)據(jù)的變化歷史進(jìn)行記錄;
異常處理和沖突機(jī)制,對(duì)流轉(zhuǎn)過(guò)程異常和沖突進(jìn)行實(shí)時(shí)處理,提供錯(cuò)誤和沖突恢復(fù)機(jī)制;
根據(jù)消息結(jié)構(gòu)和擴(kuò)展結(jié)構(gòu)初始消息結(jié)構(gòu)(可以是Dataset結(jié)構(gòu),但不局限于DataSet結(jié)構(gòu)),服務(wù)代理中組織數(shù)據(jù)時(shí)填充消息數(shù)據(jù);
初始錯(cuò)誤消息結(jié)構(gòu),并控制消息傳遞,根據(jù)消息內(nèi)容進(jìn)行錯(cuò)誤或沖突策略處理;
控制流程轉(zhuǎn)換過(guò)程消息頭信息,根