1 前言
企業(yè)資源計(jì)劃ERP(EntERPrise Resource Plan)已經(jīng)發(fā)展成為當(dāng)今企業(yè)管理軟件的主流,越來越多的系統(tǒng)開始考慮與ERP的集成,制造執(zhí)行系統(tǒng)MES(Manufacturing Execution System)就是其中之一。
MES是制造業(yè)中的一種車間層控制系統(tǒng),它定位于上層計(jì)劃管理與底層控制系統(tǒng)之間,所以為了實(shí)現(xiàn)企業(yè)的整體信息化,在實(shí)施了ERP和MES的制造業(yè)企業(yè)中,將這兩個(gè)系統(tǒng)實(shí)現(xiàn)集成是必要的。要實(shí)現(xiàn)這兩個(gè)系統(tǒng)的集成,ERP和MES的開放性是前提,1996年,SAP公司和微軟共同制訂的商業(yè)應(yīng)用編程接口BAPI(Business Application Programming Interface)是一個(gè)很好的開放性規(guī)范。當(dāng)前許多ERP廠商已經(jīng)在研究并已實(shí)現(xiàn)BAPI,提出了集成解決方案。其中SAP R/3就是一個(gè)很好的應(yīng)用產(chǎn)品,它實(shí)現(xiàn)了更大的靈活開放性,提高了產(chǎn)品的競爭力。
本文通過對BAPI概念、設(shè)計(jì)以及調(diào)用方法的研究,設(shè)計(jì)了一個(gè)ERP與MES的集成案例來實(shí)現(xiàn)對BAPI的應(yīng)用。
2 ERP中的業(yè)務(wù)框架
2.1 業(yè)務(wù)框架技術(shù)
框架的概念已經(jīng)廣泛應(yīng)用于編程中,它可以更好地集成各個(gè)獨(dú)立的應(yīng)用程序從而便于將來的程序標(biāo)準(zhǔn)化。SAP將這種思想應(yīng)用到了企業(yè)軟件中,形成了業(yè)務(wù)框架的思想。這種思想實(shí)質(zhì)上是面向?qū)ο蠹夹g(shù)在企業(yè)軟件中的應(yīng)用擴(kuò)展。業(yè)務(wù)框架的結(jié)構(gòu)如圖1。
業(yè)務(wù)組件可以看成是ERP中的模塊(例如人力資源模塊就是一個(gè)業(yè)務(wù)組件),它是由一些業(yè)務(wù)對象及其功能組成的。業(yè)務(wù)對象是面向?qū)ο蠹夹g(shù)的應(yīng)用,它封裝定義了一些業(yè)務(wù)數(shù)據(jù)、函數(shù)和接口。而且所有的業(yè)務(wù)對象都存放在ERP的業(yè)務(wù)對象倉庫BOR(Business Object Repository)中。同時(shí)每個(gè)業(yè)務(wù)對象都提供一些業(yè)務(wù)應(yīng)用程序接口。程序可以通過一些預(yù)定的通訊方式進(jìn)行接口訪問,通過面向?qū)ο蟮姆绞脚c業(yè)務(wù)對象進(jìn)行通訊。
2.2 業(yè)務(wù)對象體系結(jié)構(gòu)
在業(yè)務(wù)對象倉庫中包含許多業(yè)務(wù)對象,通過業(yè)務(wù)對象的方法來提供BAPI。它們提供了與ERP軟件的高級接口,使得ERP組件能夠進(jìn)行面向?qū)ο蟮耐ㄓ。業(yè)務(wù)對象封裝業(yè)務(wù)數(shù)據(jù)和業(yè)務(wù)過程,同時(shí)隱含最底層的數(shù)據(jù)結(jié)構(gòu)和實(shí)現(xiàn)方法。
2.3 業(yè)務(wù)框架中數(shù)據(jù)訪問的方式
通常ERP系統(tǒng)中數(shù)據(jù)的訪問是通過直接訪問底層數(shù)據(jù)庫的方式來實(shí)現(xiàn)的,要實(shí)現(xiàn)系統(tǒng)之間的集成,數(shù)據(jù)的傳輸和訪問是最基礎(chǔ)的。由各種語言開發(fā)的外部系統(tǒng)要訪問ERP系統(tǒng)的數(shù)據(jù),最基本的是利用JDBC/ODBC方式進(jìn)行數(shù)據(jù)的直接訪問。但是,有時(shí)ERP系統(tǒng)的數(shù)據(jù)庫并不是完全開放的。隨著業(yè)務(wù)框架技術(shù)的引入以及業(yè)務(wù)應(yīng)用程序接口(BAPI)的出現(xiàn),ERP的數(shù)據(jù)訪問就有了一個(gè)高效的接口。同時(shí)業(yè)務(wù)框架提供了一個(gè)數(shù)據(jù)庫的接口——數(shù)據(jù)字典,它是一種能夠定義和管理數(shù)據(jù)類型和結(jié)構(gòu),以及定義管理數(shù)據(jù)表及其視圖的工具。通過數(shù)據(jù)字典可以進(jìn)行底層數(shù)據(jù)庫的基本操作,這樣就為用戶對ERP的二次開發(fā)提供了很方便的工具。
3 BAPI實(shí)現(xiàn)
業(yè)務(wù)應(yīng)用程序接口(BAPI)被定義為業(yè)務(wù)對象的方法,內(nèi)部軟件組件的集成和外部客戶開發(fā)的應(yīng)用系統(tǒng)的集成都能使用BAPI。BAPI是在業(yè)務(wù)對象倉庫(BOR)中定義的業(yè)務(wù)對象的方法,通過能被遠(yuǎn)程調(diào)用的功能模塊(Function Module)來實(shí)現(xiàn)。功能模塊是在功能模塊庫中設(shè)計(jì)定義的,用于對可供訪問輸入輸出參數(shù)。BAPI實(shí)施的步驟如下:1) 在數(shù)據(jù)字典中定義BAPI中需要用到的數(shù)據(jù)結(jié)構(gòu);2) 實(shí)現(xiàn)BAPI的基于RFC協(xié)議的功能模塊設(shè)計(jì);3) 在業(yè)務(wù)對象倉庫中將BAPI定義為商業(yè)對象的方法。
4 ERP與MES集成信息分析
MES作為一個(gè)車間層的信息采集處理系統(tǒng),并沒有一個(gè)共同的標(biāo)準(zhǔn),也就是說不同行業(yè)的MES系統(tǒng)可能差別很大。因此先行的MES系統(tǒng)一般都是具體針對某個(gè)行業(yè)開發(fā)的,但是通過分析它與ERP系統(tǒng)的聯(lián)系,我們發(fā)現(xiàn)MES系統(tǒng)主要需要的是ERP的數(shù)據(jù),包括物料、生產(chǎn)數(shù)量、完工日期、標(biāo)準(zhǔn)物料、標(biāo)準(zhǔn)生產(chǎn)工藝等信息,這些信息主要包含在ERP中的物料主數(shù)據(jù)以及生產(chǎn)訂單中。MES系統(tǒng)收集到這些信息后可以用來指導(dǎo)底層控制系統(tǒng)從而控制車間的生產(chǎn)。
另一方面,為了便于信息的分析與處理,我們可以將MES采集的信息傳遞到ERP中,通過ERP比較強(qiáng)大的報(bào)表處理功能來進(jìn)行信息的統(tǒng)計(jì)與處理。
5 ERP與MES集成模型設(shè)計(jì)與實(shí)現(xiàn)
5.1 集成方案設(shè)計(jì)
根據(jù)某半導(dǎo)體企業(yè)的MES系統(tǒng)需求,通過分析系統(tǒng)數(shù)據(jù),我們需要將ERP中的信息傳遞到MES系統(tǒng)中,同時(shí)也需要傳遞一些MES系統(tǒng)的信息到ERP中以實(shí)現(xiàn)信息的交互;谶@樣的分析,設(shè)計(jì)了一個(gè)ERP與MES系統(tǒng)集成的模型。所采用的ERP系統(tǒng)是SAP R/3系統(tǒng),MES系統(tǒng)是基于C#語言開發(fā)的,底層數(shù)據(jù)庫采用Access數(shù)據(jù)庫。整個(gè)系統(tǒng)的集成方案設(shè)計(jì)步驟如下:
1) 在原有MES系統(tǒng)中附加數(shù)據(jù)庫表以收集從ERP中下載的數(shù)據(jù)。
2) 在ERP中開發(fā)BAPI接口,用于實(shí)現(xiàn)數(shù)據(jù)的傳遞。
3) 在MES系統(tǒng)中附加一個(gè)模塊,用于調(diào)用BAPI接口來實(shí)現(xiàn)到MES系統(tǒng)附加的數(shù)據(jù)庫表中的數(shù)據(jù)傳遞,并且從這個(gè)附加數(shù)據(jù)庫表中抽取數(shù)據(jù)以更新原有數(shù)據(jù)庫。這個(gè)模塊采用VB語言進(jìn)行開發(fā)。同時(shí),通過調(diào)用BAPI接口來實(shí)現(xiàn)原有MES系統(tǒng)的數(shù)據(jù)信息上傳到ERP中。集成模型如圖2。
通過對集成信息的分析,在集成功能上,根據(jù)從ERP下載還是上傳數(shù)據(jù),可以分為兩個(gè)方面。一方面,開發(fā)BAPI接口實(shí)現(xiàn)從ERP下載數(shù)據(jù)到MES系統(tǒng)中,設(shè)計(jì)了三個(gè)接口:1)下載物料組接口;2)下載物料主數(shù)據(jù)接口;3)下載工作訂單接口;另一方面,開發(fā)BAPI接口實(shí)現(xiàn)從MES上傳數(shù)據(jù)到ERP系統(tǒng)中,設(shè)計(jì)了一個(gè)接口:上傳完工信息接口。通過對這些接口的調(diào)用,可以實(shí)現(xiàn)數(shù)據(jù)的傳遞,最終實(shí)現(xiàn)系統(tǒng)的集成。
5.2 BAPI接口設(shè)計(jì)
下面通過一個(gè)例子來說明BAPI接口的設(shè)計(jì)。在ERP中采用了R/3的開發(fā)語言ABAP/4來開發(fā)BAPI接口。
根據(jù)對下載物料組接口的設(shè)計(jì)過程的描述來說明BAPI接口的設(shè)計(jì)。對BAPI接口設(shè)計(jì),首先在業(yè)務(wù)對象庫(BOR)的業(yè)務(wù)對象MaterialGroup中添加方法MaterialGroup.GetList,如圖3。
其次,在Function Builder中創(chuàng)建實(shí)現(xiàn)方法MaterialGroup的功能模塊,命名為BAPI_MATERIALGROUP
_GET_LIST,該功能模塊是RFC功能模塊,可以從外部系統(tǒng)調(diào)用該功能模塊。功能模塊包含輸入輸出參數(shù)和實(shí)現(xiàn)代碼,輸入輸出參數(shù)的設(shè)計(jì)在數(shù)據(jù)字典中進(jìn)行。
功能模塊的實(shí)現(xiàn)代碼是采用ABAP/4語言編寫的,實(shí)現(xiàn)代碼的數(shù)據(jù)聲明定義部分如下:
FUNCTION BAPI_MATERIALGROUP_GET_LIST.
CLEAR RETURN.
REFRESH RETURN.
CLEAR R_MATKL.
REFRESH R_MATKL.
CLEAR: PI_SPRAS, PI_LANGUAGE, PI_LANGUAGE_ISO, PI_MATKL,PI_FLAG_WGBEZ.
CLEAR: G_MSGV1, G_MSGV2, G_MSGV3, G_MSGV4.
CLEAR: BAPIWWG5_LANGUAGE, WWG5_LANGUAGE.
PI_FLAG_WGBEZ = SHORTDESCRIPTIONFLAG.
PI_LANGUAGE = LANGUAGE.
PI_LANGUAGE_ISO = LANGUAGEISO.
R_MATKL[] = MATERIALGROUPRANGE[].
CLEAR: G_SUBRC, G_SUBRC_LANGU_PARAMS. G_SUBRC_CHECKS = 4.
最后,通過將功能模塊BAPI_MATERIALGROUP_GET_
LIST指定給業(yè)務(wù)對象的方法MaterialGroup.GetList實(shí)現(xiàn)BAPI接口的設(shè)計(jì)。
5.3 調(diào)用BAPI接口實(shí)現(xiàn)系統(tǒng)集成
在實(shí)現(xiàn)系統(tǒng)集成數(shù)據(jù)傳遞的這個(gè)附加模塊的開發(fā)中,首先要連接ERP系統(tǒng),即連接R/3系統(tǒng)。通過VB程序來實(shí)現(xiàn),連接界面如圖4。實(shí)現(xiàn)連接ERP系統(tǒng)的代碼從略。
連接到SAP后我們就可以通過調(diào)用BAPI接口來實(shí)現(xiàn)數(shù)據(jù)的傳輸了。調(diào)用BAPI(BAPI_MATERIALGROUP
_GET_LIST)的VB代碼從略。
6 總結(jié)與展望
BAPI技術(shù)和業(yè)務(wù)對象技術(shù)為ERP接口的標(biāo)準(zhǔn)化提供了很好的方法。ERP系統(tǒng)的不斷擴(kuò)展使得ERP的集成需求越來越多,MES系統(tǒng)作為制造業(yè)中的一個(gè)重要系統(tǒng),它同ERP系統(tǒng)的集成實(shí)現(xiàn)了整個(gè)制造型企業(yè)內(nèi)部信息的完整集成交換,這樣的集成提高了企業(yè)的生產(chǎn)效率。本文通過對集成相關(guān)技術(shù)的介紹以及集成模型的設(shè)計(jì)開發(fā),展現(xiàn)了如何通過BAPI接口實(shí)現(xiàn)企業(yè)系統(tǒng)之間的集成途徑。隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,越來越多的系統(tǒng)開始考慮在Web上的應(yīng)用,ERP系統(tǒng)也要跟蹤這一發(fā)展方向。Web上的ERP系統(tǒng)的應(yīng)用必然導(dǎo)致在Web上集成ERP系統(tǒng)以及其他應(yīng)用系統(tǒng)方向上的研究,面向?qū)ο蠹夹g(shù)形成的業(yè)務(wù)框架、業(yè)務(wù)對象以及BAPI同樣會有一個(gè)很好的應(yīng)用空間。
轉(zhuǎn)載請注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標(biāo)題:基于BAPI的ERP與MES集成研究與應(yīng)用
本文網(wǎng)址:http://www.ezxoed.cn/html/consultation/10819917024.html