專利名稱:Erp參照wms入庫的接口方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種計算機應用技術(shù),可以完成ERP系統(tǒng)中引入WMS數(shù)據(jù),達到兩 個系統(tǒng)間的松藕合接口 ,良好的實現(xiàn)數(shù)據(jù)狀態(tài)調(diào)整與并發(fā)控制。
背景技術(shù):
目前在ERP系統(tǒng)同WMS系統(tǒng)進行集成時,均需要在兩個系統(tǒng)中做出較多的修改 以協(xié)調(diào)兩個系統(tǒng)的集成操作, 一方面對原有系統(tǒng)的修改將引起原有系統(tǒng)功能的可 能改變或出問題,另一方面將來影響將來ERP的軟件維護與升級。另外在ERP與 WMS的集成應用中,如何保證數(shù)據(jù)狀態(tài)的一致性、控制多用戶并發(fā)、數(shù)據(jù)細度口徑 方面的處理繁索,沒有形成清晰高效的處理方法。本技術(shù)的重點在于降低系統(tǒng)間 的藕合度,同時提高對數(shù)據(jù)處理的完整性,包括并發(fā)、狀態(tài)一致、數(shù)據(jù)細度口徑 差異化的處理方面。
發(fā)明內(nèi)容
本發(fā)明的目的是一種ERP參照WMS入庫的接口方法,該方法是建立一種程序 擴展機制,通過外部程序識別出當前ERP操作的界面內(nèi)容,并對界面進行合法判 斷,保證外部程序調(diào)用的合法性,然后在外部程序中通過中間表獲取WMS提供的 數(shù)據(jù),組合形成ERP需要的信息格式,并進一步調(diào)用ERP中的內(nèi)部的方法實現(xiàn)數(shù) 據(jù)信息的錄入,實現(xiàn)WMS數(shù)據(jù)導入至ERP系統(tǒng),由于ERP系統(tǒng)不與外部程序關(guān)聯(lián), 所以ERP系統(tǒng)實現(xiàn)同接口程序的無關(guān)性,外部程序的實現(xiàn)中因為采用了直接調(diào)用 ERP系統(tǒng)內(nèi)部標準事件的方法,規(guī)避了因為ERP軟件維護或升級而引起的接口程序 的修改,維持了接口的穩(wěn)定;具體包括以下內(nèi)容
1) 通過在當前ERP產(chǎn)品實現(xiàn)中建立外部程序調(diào)用的機制與方法,借用ERP中 的界面調(diào)整功能,增加對按鈕方法的支持,允許經(jīng)過界面設(shè)計出的ERP的單據(jù)界 面可以引用外部全局函數(shù)功能,通過功能的引用可以達到將外部程序引用進當前
軟件運行環(huán)境的目的;
2) 建立全局函數(shù),實現(xiàn)接口過程的處理。在函數(shù)屮,通過環(huán)境檢測,獲得當 前軟件運行環(huán)境的信息,判斷引用處是否為合法的程序源,合法則設(shè)置當前麗S 傳遞進中間表的數(shù)據(jù)狀態(tài)為已讀,合并顯示未被入庫引入的數(shù)據(jù)列表,取得用戶 多選返回的數(shù)據(jù)后,調(diào)用ERP中入庫界面數(shù)據(jù)錄入的規(guī)則,實現(xiàn)數(shù)據(jù)引入ERP入 庫界面;
3) 通過擴展的方式增加數(shù)據(jù)保存前檢查的內(nèi)容,檢查中判斷被引入的數(shù)據(jù)同 當前界面操作的數(shù)據(jù)是否為一致,同時實現(xiàn)數(shù)據(jù)表的短時間鎖定至數(shù)據(jù)處理完成;4)通過擴展的方法增加數(shù)據(jù)保存后、刪除后的處理,處理中首先清除原入庫
所關(guān)聯(lián)的數(shù)據(jù)信息,按照物料加批次的方式關(guān)聯(lián)更新數(shù)據(jù)狀態(tài)與數(shù)據(jù)的入庫編號;具體實現(xiàn)步驟如下
a) 在現(xiàn)有的ERP基礎(chǔ)上,建立一種標簽形式的外部程序調(diào)用方法,在外部程序
中,通過環(huán)境檢測,獲得當前軟件運行環(huán)境的信息,同時判斷引用處是否為合法
的程序源,合法,則在外部程序中繼續(xù)進行處理接口內(nèi)容;
b) 通過接口數(shù)據(jù)表,引用并鎖定引用范圍內(nèi)的WMS數(shù)據(jù),將最終的結(jié)果通過按物料與批次合并的形式導入至ERP入庫操作界面,并調(diào)用ERP界面數(shù)據(jù)處理規(guī)則,ERP最終完成數(shù)據(jù)在數(shù)據(jù)庫中的保存,保存時通過配置可擴展的數(shù)據(jù)校驗與處理內(nèi)容,實現(xiàn)接口表數(shù)據(jù)的狀態(tài)更新與并發(fā)訪問控制;
c) 通過動態(tài)解析界面中元素的附加信息所指不的外部函數(shù),然后進行反射調(diào)用,實現(xiàn)在固化的ERP軟件中以最小的代價進行外部代碼兼容的模式,通過外部代碼訪問ERP內(nèi)程序組件實現(xiàn)在原有的ERP基礎(chǔ)上調(diào)用麗S系統(tǒng)數(shù)據(jù);
d) 建立獨立于原ERP系統(tǒng)的接口代碼,在完成ERP系統(tǒng)與麗S系統(tǒng)的接口中,有效保證原有ERP系統(tǒng)的完整性與可維護升級性,同時又根據(jù)多種WMS系統(tǒng)做出快速的調(diào)整,降低接口導致的兩個系統(tǒng)的藕合度。
本發(fā)明的具有功能和有益效果如下
1. 本發(fā)明可以明顯降低有現(xiàn)有的ERP中集成麗S系統(tǒng)的難度,實現(xiàn)了系統(tǒng)間的松藕合,降低了系統(tǒng)集成后ERP系統(tǒng)升級的難度。
2. 本發(fā)明清晰的實現(xiàn)了 ERP中對入庫引用WMS操作的過程,充分的解決了系統(tǒng)集成時數(shù)據(jù)處理的完整性問題。
本發(fā)明解決了麗S中數(shù)據(jù)細度較ERP中細的問題,避免了系統(tǒng)集成后ERP中數(shù)
據(jù)量過大的問題,有助于提高企業(yè)的管理效率。
圖l是接口流程圖2是ERP參照WPS數(shù)據(jù)入庫表。
具體實施例方式
本發(fā)明的方法主要的內(nèi)容有
1) 通過在當前ERP產(chǎn)品實現(xiàn)中建立外部程序調(diào)用的機制與方法,借用ERP中的界面調(diào)整功能,增加對按鈕方法的支持,允許經(jīng)過界面設(shè)計出的ERP的單據(jù)界面可以引用外部全局函數(shù)功能。通過功能的引用可以達到將外部程序引用進當前軟件運行環(huán)境的目的。
2) 建立全局函數(shù),實現(xiàn)接口過程的處理。在函數(shù)中,通過環(huán)境檢測,獲得當前軟件運行環(huán)境的信息,判斷引用處是否為合法的程序源,如果為合法,設(shè)置當 5前WMS傳遞進中間表的數(shù)據(jù)狀態(tài)為已讀,合并顯示未被入庫引入的數(shù)據(jù)列表,取
得用戶多選返回的數(shù)據(jù)后,調(diào)用ERP中入庫界面數(shù)據(jù)錄入的規(guī)則,實現(xiàn)數(shù)據(jù)引入ERP入庫界面。
3) 通過擴展的方式增加數(shù)據(jù)保存前檢查的內(nèi)容,檢查中判斷被引入的數(shù)據(jù)同當前界面操作的數(shù)據(jù)是否為一致,同時實現(xiàn)數(shù)據(jù)表的短時間鎖定至數(shù)據(jù)處理完成。
4) 通過擴展的方法增加數(shù)據(jù)保存后、刪除后的處理,處理中首先清除原入庫所關(guān)聯(lián)的數(shù)據(jù)信息,按照物料加批次的方式關(guān)聯(lián)更新數(shù)據(jù)狀態(tài)與數(shù)據(jù)的入庫編號。
具體步驟如下
e) 在現(xiàn)有的ERP基礎(chǔ)上,建立一種標簽形式的外部程序調(diào)用方法,在外部程序中,通過環(huán)境檢測,獲得當前軟件運行環(huán)境的信息,同時判斷引用處是否為合法的程序源,合法,則在外部程序屮繼續(xù)進行處理接口內(nèi)容;
f) 通過接口數(shù)據(jù)表,引用并鎖定引用范圍內(nèi)的麗S數(shù)據(jù),將最終的結(jié)果通過按物料與批次合并的形式導入至ERP入庫操作界面,并調(diào)用ERP界面數(shù)據(jù)處理規(guī)則,ERP最終完成數(shù)據(jù)在數(shù)據(jù)庫中的保存,保存時通過配置可擴展的數(shù)據(jù)校驗與處理內(nèi)容,實現(xiàn)接口表數(shù)據(jù)的狀態(tài)更新與并發(fā)訪問控制;
g) 通過動態(tài)解析界面中元素的附加信息所指示的外部函數(shù),然后進行反射調(diào)用,實現(xiàn)在固化的ERP軟件中以最小的代價進行外部代碼兼容的模式,通過外部代碼訪問ERP內(nèi)程序組件實現(xiàn)在原有的ERP基礎(chǔ)上調(diào)用麗S系統(tǒng)數(shù)據(jù);
h) 建立獨立于原ERP系統(tǒng)的接口代碼,在完成ERP系統(tǒng)與麗S系統(tǒng)的接口中,有效保證原有ERP系統(tǒng)的完整性與可維護升級性,同吋又根據(jù)多種WMS系統(tǒng)做出快速的調(diào)整,降低接口導致的兩個系統(tǒng)的藕合度。
實施例
1. 建立軟件運行的數(shù)據(jù)庫環(huán)境。
2. 軟件使用人員通過ERP中原有的界面調(diào)整功能完成界面按鈕的調(diào)整,在按鈕中引用相應全局函數(shù)。
3. 入庫操作人員使用軟件引用WMS數(shù)據(jù)進行入庫管理。
主要程序組件-
1、 外部全局函數(shù)調(diào)用函數(shù)f_wd_do—dw_clicked>可以處理界面調(diào)整中的對按鈕定義的動作標簽。
>通過此函數(shù)完成對外部全局函數(shù)的引用,外部的全局函數(shù)為配置的字符串信息。
2、 WMS數(shù)據(jù)讀取與引用函數(shù)f_hrerp—wins—gen—rkd '>完成麗S中間表數(shù)據(jù)的讀取狀態(tài)設(shè)置。
>獲取本函數(shù)運行時軟件運行環(huán)境信息,判斷環(huán)境是否合法。
>按照物料與批次為統(tǒng)計依據(jù)顯示未入庫的數(shù)據(jù)信息,并將用戶選擇的數(shù)據(jù)內(nèi)容引入至ERP入庫操作界面。中間表服ERP—WMS—RK頂F0內(nèi)容(如圖2所示)
處理麗S數(shù)據(jù)接口的程序代碼段如下String ls_ckbh , ls_ret , ls一lsbhString Is—sql , ls_textString Is—wlbh , Is—ph , sDecimal ld_sl
Long ll_count = 0 , C , R , r2 , iwindow w
w—jxc—dj—scrkd aw
w = gwmdi. getactivesheet ()
if lower (w. classname 0 ) 二 , wjxc_d j—scrkd' thenaw = w
messagebox ('提示信息','本功能只支持生產(chǎn)入庫單下使用!')return —1end if
〃檢查參數(shù)的合法性
if aw. ib_protect thenmessagebox(,提不信息,return —1
end if
'本功能只有在數(shù)據(jù)修改狀態(tài)下可用!')
R = AW. Dw—master.getrow0if isnull( r ) or r < 1 then
messagebox (,提示信息',,請先增加單據(jù)!,)
return -lend if
Is—ckbh = aw. dw—master, getitemstring( r , ' kcrkdl_ckbh')if isnull( Is—ckbh ) or trim( ls_ckbh ) = ,, then
messagebox (,提示信息,,,請先錄入倉庫!,)
return -lend if
〃檢查是否為管理范圍內(nèi)的倉庫
IF GIF—EXISTS (,服ERP—麗S—CKZD, , 〃CK =, 〃 + LS—CKBH + "messagebox(,提示信息','本倉庫沒有進行WMS作業(yè)管理return —1
END IF
ls lsbh = aw. dw—master, getitemstring( r , ' kcrkdl—lsbh')
if isnull( Is—lsbh ) or trim( ls_lsbh ) = " then Is—lsbh = ' !!!
7
"〃 )〈1 THEN,不能使用此功能!')〃同步數(shù)據(jù),如果失敗則返回-1
if f—hrerp—wms—syn—data() 二 -1 then
return -lend if
〃更新原來為0的數(shù)據(jù)狀態(tài),以防觀s寫入時的操作的沖突問題update HRERP—WMS—RKINFO set F—STATE =' 1'冊ERE F—STATE = ' 0';commit;
〃選擇出相應的內(nèi)容
Is—sql = "select FJLBH + '…,+ F—PH as id , MAX( F一翻C ) AS WLMC , MAX(F—GGXH)as gg , SUM(F—SL) as si "
Is—sql += 〃 from HRERP—畫S—RKINFO where F—CKBH = '" + Is—ckbh + "' AND ( F—STATE ='1' or K—RKDID =' " +丄s—丄sbh + 〃' ) group by F—WLBH , F—PH "
Is—text ="產(chǎn)品..批號,產(chǎn)品名稱,規(guī)格,件數(shù)"
openwithparm( w—pub—select—more , Is—sql + ,%*%' + ls_text )
Is—ret — message, stringparm
IF Is—ret 〉 ' ' then
r2 二 aw. dw_detail. rowcoimt 0for i = r2 to 1 step -l
if trim(亂dw—chtall. getitcmsti:ing( i , , kcrkd2—wlbh'))〉… thenaw. dw—detail, scrolltorow( i )aw. event ue一.detai1—delete ()end ifnextend if
do while ls一ret 〉''11—count ++
S 二 get_token( Is—ret ,,,,)
Is—wlbh 二 get一token( s ,'…')Is ph二 s
select sum( F—SL) INTO :LD—SL from HRERPJMS—RKINFO where F—CKBIl = :LS_CKBH ANDF_WLBH 二 LS_WLBH AND F_PH = :LS—PH AND ( F—STATE = , 1, OR F_RKDID = :LS—LSBH );
〃在入庫單的分錄上進行處理。采用自定義項5來記錄入庫的號do while AW. DW一DETAIL. rowcount 0 < U—countaw. event ue—detail—append()loop
AW.DW—DETAIL. SCROLLTOROW( LL—COUNT )
AW.DW—DETAIL. SETCOLUMN( 〃kcrkd2一wlbh")
AW.DW—DETAIL. SETTEXT(LS_WLBH)
AW. DW—DETAIL SETCOLUMN ("kci'kd2—pch")
AW.DW一DETAIL. SETTEXT(LS—PH)
AW. DW一DETAIL. SETC0I扁(〃kcrkd2—fsssll")
AW. DW—DETAIL. SETTEXT(STRING(LD_SL))
AW. DW—DETAIL. ACCEPTTEXT ()
loop
return ll一count
本發(fā)明的方法已經(jīng)成功用于浪潮ERP-PS制藥版,并提供了對外部麗S接口的標準,已在制藥企業(yè)的立體倉庫管理中運用成功。
通過本技術(shù)的應用,可以在完全不修改ERP代碼的方式下實現(xiàn)ERP系統(tǒng)同WMS的接口,有效的保證了 ERP系統(tǒng)的后續(xù)升級,因為采用調(diào)用ERP界面數(shù)據(jù)錄入的方式,在ERP系統(tǒng)進行小版本的升級后相應的接口程序不需要進行修改。
該技術(shù)可以繼續(xù)用于解決ERP中各個廠家WMS接口的處理,并可以進一步應用于ERP同其他相關(guān)系統(tǒng)的接口處理。
通過本技術(shù)的應用有效的解決了多系統(tǒng)運行時,系統(tǒng)間相互影響大,無法順利進行軟件升級的難題。
本技術(shù)的運用可以在不修改ERP內(nèi)部程序的基礎(chǔ)之上實現(xiàn)同麗S系統(tǒng)的接口 ,并且可以實現(xiàn)在ERP小版本升級的情況下,接口內(nèi)容不需要進行修改,此技術(shù)可以有效的改變過去通過修改內(nèi)部軟件編碼實現(xiàn)ERP同外部麗S系統(tǒng)的接口方式,解決了因為ERP內(nèi)部程序修改帶來的相關(guān)聯(lián)的軟件升級、維護難題。
權(quán)利要求
1、ERP參照WMS入庫的接口方法,其特征在于,建立一種程序擴展機制,通過外部程序識別出當前ERP操作的界面內(nèi)容,并對界面進行合法判斷,保證外部程序調(diào)用的合法性,然后在外部程序中通過中間表獲取WMS提供的數(shù)據(jù),組合形成ERP需要的信息格式,并進一步調(diào)用ERP中的內(nèi)部的方法實現(xiàn)數(shù)據(jù)信息的錄入,實現(xiàn)WMS數(shù)據(jù)導入至ERP系統(tǒng),由于ERP系統(tǒng)不與外部程序關(guān)聯(lián),所以ERP系統(tǒng)實現(xiàn)同接口程序的無關(guān)性,外部程序的實現(xiàn)中因為采用了直接調(diào)用ERP系統(tǒng)內(nèi)部標準事件的方法,規(guī)避了因為ERP軟件維護或升級而引起的接口程序的修改,維持了接口的穩(wěn)定;具體包括以下內(nèi)容1)通過在當前ERP產(chǎn)品實現(xiàn)中建立外部程序調(diào)用的機制與方法,借用ERP中的界面調(diào)整功能,增加對按鈕方法的支持,允許經(jīng)過界面設(shè)計出的ERP的單據(jù)界面可以引用外部全局函數(shù)功能,通過功能的引用可以達到將外部程序引用進當前軟件運行環(huán)境的目的;2)建立全局函數(shù),實現(xiàn)接口過程的處理。在函數(shù)中,通過環(huán)境檢測,獲得當前軟件運行環(huán)境的信息,判斷引用處是否為合法的程序源,合法則設(shè)置當前WMS傳遞進中間表的數(shù)據(jù)狀態(tài)為已讀,合并顯示未被入庫引入的數(shù)據(jù)列表,取得用戶多選返回的數(shù)據(jù)后,調(diào)用ERP中入庫界面數(shù)據(jù)錄入的規(guī)則,實現(xiàn)數(shù)據(jù)引入ERP入庫界面;3)通過擴展的方式增加數(shù)據(jù)保存前檢查的內(nèi)容,檢查中判斷被引入的數(shù)據(jù)同當前界面操作的數(shù)據(jù)是否為一致,同時實現(xiàn)數(shù)據(jù)表的短時間鎖定至數(shù)據(jù)處理完成;4)通過擴展的方法增加數(shù)據(jù)保存后、刪除后的處理,處理中首先清除原入庫所關(guān)聯(lián)的數(shù)據(jù)信息,按照物料加批次的方式關(guān)聯(lián)更新數(shù)據(jù)狀態(tài)與數(shù)據(jù)的入庫編號;具體實現(xiàn)步驟如下a)在現(xiàn)有的ERP基礎(chǔ)上,建立一種標簽形式的外部程序調(diào)用方法,在外部程序中,通過環(huán)境檢測,獲得當前軟件運行環(huán)境的信息,同時判斷引用處是否為合法的程序源,合法,則在外部程序中繼續(xù)進行處理接口內(nèi)容;b)通過接口數(shù)據(jù)表,引用并鎖定引用范圍內(nèi)的WMS數(shù)據(jù),將最終的結(jié)果通過按物料與批次合并的形式導入至ERP入庫操作界面,并調(diào)用ERP界面數(shù)據(jù)處理規(guī)則,ERP最終完成數(shù)據(jù)在數(shù)據(jù)庫中的保存,保存時通過配置可擴展的數(shù)據(jù)校驗與處理內(nèi)容,實現(xiàn)接口表數(shù)據(jù)的狀態(tài)更新與并發(fā)訪問控制;c)通過動態(tài)解析界面中元素的附加信息所指示的外部函數(shù),然后進行反射調(diào)用,實現(xiàn)在固化的ERP軟件中以最小的代價進行外部代碼兼容的模式,通過外部代碼訪問ERP內(nèi)程序組件實現(xiàn)在原有的ERP基礎(chǔ)上調(diào)用WMS系統(tǒng)數(shù)據(jù);d)建立獨立于原ERP系統(tǒng)的接口代碼,在完成ERP系統(tǒng)與WMS系統(tǒng)的接口中,有效保證原有ERP系統(tǒng)的完整性與可維護升級性,同時又根據(jù)多種WMS系統(tǒng)做出快速的調(diào)整,降低接口導致的兩個系統(tǒng)的藕合度。
全文摘要
本發(fā)明公開了一種ERP參照WMS入庫的接口方法,該方法是建立一種程序擴展機制,通過外部程序識別出當前ERP操作的界面內(nèi)容,并對界面進行合法判斷,保證外部程序調(diào)用的合法性,然后在外部程序中通過中間表獲取WMS提供的數(shù)據(jù),組合形成ERP需要的信息格式,并進一步調(diào)用ERP中的內(nèi)部的方法實現(xiàn)數(shù)據(jù)信息的錄入,實現(xiàn)WMS數(shù)據(jù)導入至ERP系統(tǒng)。ERP系統(tǒng)不與外部程序關(guān)聯(lián),所以ERP系統(tǒng)可以實現(xiàn)同接口程序的無關(guān)性,外部程序的實現(xiàn)中因為采用了直接調(diào)用ERP系統(tǒng)內(nèi)部標準事件的方法,也可以巧妙的規(guī)避因為ERP軟件維護或升級而引起的接口程序修改的工作,維持實現(xiàn)的穩(wěn)定。
文檔編號G06F9/44GK101634944SQ20091001791
公開日2010年1月27日 申請日期2009年8月17日 優(yōu)先權(quán)日2009年8月17日
發(fā)明者劉清華 申請人:浪潮集團山東通用軟件有限公司