摘要:隨著企業(yè)資源計(jì)劃(ERP)的發(fā)展,ERP的功能已經(jīng)變得越來(lái)越向外擴(kuò)伸,ERP與外部系統(tǒng)的集成已經(jīng)成為企業(yè)迫切的需求。制造執(zhí)行系統(tǒng)(MES)是一種車(chē)間層控制系統(tǒng),其與ERP的集成已經(jīng)形成一個(gè)現(xiàn)實(shí)的需求。該文通過(guò)對(duì)ERP系統(tǒng)中BAPI概念、設(shè)計(jì)和調(diào)用方法的研究,開(kāi)發(fā)了基于BAPI的接口,通過(guò)調(diào)用這個(gè)接口,最終實(shí)現(xiàn)ERP與MES系統(tǒng)的集成。
關(guān)鍵詞:EPR;MES;業(yè)務(wù)對(duì)象;BAPI
中圖分類(lèi)號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2008)28-0121-03
Research and Application of Integration between ERP and MES Based on BAPI
JIANG Hua, WU Yu-zhi
(School of Information Engineering, Jiaozuo University, Jiaozuo 454003,China)
Abstract: With the development of enterprise resource planning (ERP), the function of ERP can be expanded largely. The integration between ERP and non-ERP system has become urgent. Manufacturing execution system (MES) is a control system in plant layer, the integration between ERP and MES is necessary. In this paper, through researching the concept, design and the calling method of business application programming interface (BAPI), some BAPI interfaces can be developed. Trough calling these interfaces, the integration between ERP and MES can be implemented finally.
Key words: ERP; MES; business object; Business Application Programming Interface (BAPI)
1 前言
企業(yè)資源計(jì)劃ERP(Enterprise Resource Plan)已經(jīng)發(fā)展成為當(dāng)今企業(yè)管理軟件的主流,越來(lái)越多的系統(tǒng)開(kāi)始考慮與ERP的集成,制造執(zhí)行系統(tǒng)MES(Manufacturing Execution System)就是其中之一。
MES是制造業(yè)中的一種車(chē)間層控制系統(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的開(kāi)放性是前提,1996年,SAP公司和微軟共同制訂的商業(yè)應(yīng)用編程接口BAPI(Business Application Programming Interface)是一個(gè)很好的開(kāi)放性規(guī)范。當(dāng)前許多ERP廠(chǎng)商已經(jīng)在研究并已實(shí)現(xiàn)BAPI,提出了集成解決方案。其中SAP R/3就是一個(gè)很好的應(yīng)用產(chǎn)品,它實(shí)現(xiàn)了更大的靈活開(kāi)放性,提高了產(chǎn)品的競(jìng)爭(zhēng)力。
本文通過(guò)對(duì)BAPI概念、設(shè)計(jì)以及調(diào)用方法的研究,設(shè)計(jì)了一個(gè)ERP與MES的集成案例來(lái)實(shí)現(xiàn)對(duì)BAPI的應(yīng)用。
2 ERP中的業(yè)務(wù)框架
2.1 業(yè)務(wù)框架技術(shù)
框架的概念已經(jīng)廣泛應(yīng)用于編程中,它可以更好地集成各個(gè)獨(dú)立的應(yīng)用程序從而便于將來(lái)的程序標(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。
■
圖1 業(yè)務(wù)框架結(jié)構(gòu)圖
業(yè)務(wù)組件可以看成是ERP中的模塊(例如人力資源模塊就是一個(gè)業(yè)務(wù)組件),它是由一些業(yè)務(wù)對(duì)象及其功能組成的。業(yè)務(wù)對(duì)象是面向?qū)ο蠹夹g(shù)的應(yīng)用,它封裝定義了一些業(yè)務(wù)數(shù)據(jù)、函數(shù)和接口。而且所有的業(yè)務(wù)對(duì)象都存放在ERP的業(yè)務(wù)對(duì)象倉(cāng)庫(kù)BOR(Business Object Repository)中。同時(shí)每個(gè)業(yè)務(wù)對(duì)象都提供一些業(yè)務(wù)應(yīng)用程序接口。程序可以通過(guò)一些預(yù)定的通訊方式進(jìn)行接口訪(fǎng)問(wèn),通過(guò)面向?qū)ο蟮姆绞脚c業(yè)務(wù)對(duì)象進(jìn)行通訊。
2.2 業(yè)務(wù)對(duì)象體系結(jié)構(gòu)
在業(yè)務(wù)對(duì)象倉(cāng)庫(kù)中包含許多業(yè)務(wù)對(duì)象,通過(guò)業(yè)務(wù)對(duì)象的方法來(lái)提供BAPI。它們提供了與ERP軟件的高級(jí)接口,使得ERP組件能夠進(jìn)行面向?qū)ο蟮耐ㄓ崱I(yè)務(wù)對(duì)象封裝業(yè)務(wù)數(shù)據(jù)和業(yè)務(wù)過(guò)程,同時(shí)隱含最底層的數(shù)據(jù)結(jié)構(gòu)和實(shí)現(xiàn)方法。
2.3 業(yè)務(wù)框架中數(shù)據(jù)訪(fǎng)問(wèn)的方式
通常ERP系統(tǒng)中數(shù)據(jù)的訪(fǎng)問(wèn)是通過(guò)直接訪(fǎng)問(wèn)底層數(shù)據(jù)庫(kù)的方式來(lái)實(shí)現(xiàn)的,要實(shí)現(xiàn)系統(tǒng)之間的集成,數(shù)據(jù)的傳輸和訪(fǎng)問(wèn)是最基礎(chǔ)的。由各種語(yǔ)言開(kāi)發(fā)的外部系統(tǒng)要訪(fǎng)問(wèn)ERP系統(tǒng)的數(shù)據(jù),最基本的是利用JDBC/ODBC方式進(jìn)行數(shù)據(jù)的直接訪(fǎng)問(wèn)。但是,有時(shí)ERP系統(tǒng)的數(shù)據(jù)庫(kù)并不是完全開(kāi)放的。隨著業(yè)務(wù)框架技術(shù)的引入以及業(yè)務(wù)應(yīng)用程序接口(BAPI)的出現(xiàn),ERP的數(shù)據(jù)訪(fǎng)問(wèn)就有了一個(gè)高效的接口。同時(shí)業(yè)務(wù)框架提供了一個(gè)數(shù)據(jù)庫(kù)的接口——數(shù)據(jù)字典,它是一種能夠定義和管理數(shù)據(jù)類(lèi)型和結(jié)構(gòu),以及定義管理數(shù)據(jù)表及其視圖的工具。通過(guò)數(shù)據(jù)字典可以進(jìn)行底層數(shù)據(jù)庫(kù)的基本操作,這樣就為用戶(hù)對(duì)ERP的二次開(kāi)發(fā)提供了很方便的工具。
3 BAPI實(shí)現(xiàn)
業(yè)務(wù)應(yīng)用程序接口(BAPI)被定義為業(yè)務(wù)對(duì)象的方法,內(nèi)部軟件組件的集成和外部客戶(hù)開(kāi)發(fā)的應(yīng)用系統(tǒng)的集成都能使用BAPI。BAPI是在業(yè)務(wù)對(duì)象倉(cāng)庫(kù)(BOR)中定義的業(yè)務(wù)對(duì)象的方法,通過(guò)能被遠(yuǎn)程調(diào)用的功能模塊(Function Module)來(lái)實(shí)現(xiàn)。功能模塊是在功能模塊庫(kù)中設(shè)計(jì)定義的,用于對(duì)可供訪(fǎng)問(wèn)輸入輸出參數(shù)。BAPI實(shí)施的步驟如下:1) 在數(shù)據(jù)字典中定義BAPI中需要用到的數(shù)據(jù)結(jié)構(gòu);2) 實(shí)現(xiàn)BAPI的基于RFC協(xié)議的功能模塊設(shè)計(jì);3) 在業(yè)務(wù)對(duì)象倉(cāng)庫(kù)中將BAPI定義為商業(yè)對(duì)象的方法。
4 ERP與MES集成信息分析
MES作為一個(gè)車(chē)間層的信息采集處理系統(tǒng),并沒(méi)有一個(gè)共同的標(biāo)準(zhǔn),也就是說(shuō)不同行業(yè)的MES系統(tǒng)可能差別很大。因此先行的MES系統(tǒng)一般都是具體針對(duì)某個(gè)行業(yè)開(kāi)發(fā)的,但是通過(guò)分析它與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)收集到這些信息后可以用來(lái)指導(dǎo)底層控制系統(tǒng)從而控制車(chē)間的生產(chǎn)。
另一方面,為了便于信息的分析與處理,我們可以將MES采集的信息傳遞到ERP中,通過(guò)ERP比較強(qiáng)大的報(bào)表處理功能來(lái)進(jìn)行信息的統(tǒng)計(jì)與處理。
5 ERP與MES集成模型設(shè)計(jì)與實(shí)現(xiàn)
5.1 集成方案設(shè)計(jì)
根據(jù)某半導(dǎo)體企業(yè)的MES系統(tǒng)需求,通過(guò)分析系統(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#語(yǔ)言開(kāi)發(fā)的,底層數(shù)據(jù)庫(kù)采用Access數(shù)據(jù)庫(kù)。整個(gè)系統(tǒng)的集成方案設(shè)計(jì)步驟如下:
1) 在原有MES系統(tǒng)中附加數(shù)據(jù)庫(kù)表以收集從ERP中下載的數(shù)據(jù)。
2) 在ERP中開(kāi)發(fā)BAPI接口,用于實(shí)現(xiàn)數(shù)據(jù)的傳遞。
3) 在MES系統(tǒng)中附加一個(gè)模塊,用于調(diào)用BAPI接口來(lái)實(shí)現(xiàn)到MES系統(tǒng)附加的數(shù)據(jù)庫(kù)表中的數(shù)據(jù)傳遞,并且從這個(gè)附加數(shù)據(jù)庫(kù)表中抽取數(shù)據(jù)以更新原有數(shù)據(jù)庫(kù)。這個(gè)模塊采用VB語(yǔ)言進(jìn)行開(kāi)發(fā)。同時(shí),通過(guò)調(diào)用BAPI接口來(lái)實(shí)現(xiàn)原有MES系統(tǒng)的數(shù)據(jù)信息上傳到ERP中。集成模型如圖2。
■
圖2 ERP與MES集成模型圖
通過(guò)對(duì)集成信息的分析,在集成功能上,根據(jù)從ERP下載還是上傳數(shù)據(jù),可以分為兩個(gè)方面。一方面,開(kāi)發(fā)BAPI接口實(shí)現(xiàn)從ERP下載數(shù)據(jù)到MES系統(tǒng)中,設(shè)計(jì)了三個(gè)接口:1)下載物料組接口;2)下載物料主數(shù)據(jù)接口;3)下載工作訂單接口;另一方面,開(kāi)發(fā)BAPI接口實(shí)現(xiàn)從MES上傳數(shù)據(jù)到ERP系統(tǒng)中,設(shè)計(jì)了一個(gè)接口:上傳完工信息接口。通過(guò)對(duì)這些接口的調(diào)用,可以實(shí)現(xiàn)數(shù)據(jù)的傳遞,最終實(shí)現(xiàn)系統(tǒng)的集成。
5.2 BAPI接口設(shè)計(jì)
下面通過(guò)一個(gè)例子來(lái)說(shuō)明BAPI接口的設(shè)計(jì)。在ERP中采用了R/3的開(kāi)發(fā)語(yǔ)言ABAP/4來(lái)開(kāi)發(fā)BAPI接口。
根據(jù)對(duì)下載物料組接口的設(shè)計(jì)過(guò)程的描述來(lái)說(shuō)明BAPI接口的設(shè)計(jì)。對(duì)BAPI接口設(shè)計(jì),首先在業(yè)務(wù)對(duì)象庫(kù)(BOR)的業(yè)務(wù)對(duì)象MaterialGroup中添加方法MaterialGroup.GetList,如圖3。
■
圖3 添加業(yè)務(wù)對(duì)象方法
其次,在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語(yǔ)言編寫(xiě)的,實(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.
最后,通過(guò)將功能模塊BAPI_MATERIALGROUP_GET_
LIST指定給業(yè)務(wù)對(duì)象的方法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è)附加模塊的開(kāi)發(fā)中,首先要連接ERP系統(tǒng),即連接R/3系統(tǒng)。通過(guò)VB程序來(lái)實(shí)現(xiàn),連接界面如圖4。實(shí)現(xiàn)連接ERP系統(tǒng)的代碼從略。
■
圖4 連接ERP系統(tǒng)界面
連接到SAP后我們就可以通過(guò)調(diào)用BAPI接口來(lái)實(shí)現(xiàn)數(shù)據(jù)的傳輸了。調(diào)用BAPI(BAPI_MATERIALGROUP
_GET_LIST)的VB代碼從略。
6 總結(jié)與展望
BAPI技術(shù)和業(yè)務(wù)對(duì)象技術(shù)為ERP接口的標(biāo)準(zhǔn)化提供了很好的方法。ERP系統(tǒng)的不斷擴(kuò)展使得ERP的集成需求越來(lái)越多,MES系統(tǒng)作為制造業(yè)中的一個(gè)重要系統(tǒng),它同ERP系統(tǒng)的集成實(shí)現(xiàn)了整個(gè)制造型企業(yè)內(nèi)部信息的完整集成交換,這樣的集成提高了企業(yè)的生產(chǎn)效率。本文通過(guò)對(duì)集成相關(guān)技術(shù)的介紹以及集成模型的設(shè)計(jì)開(kāi)發(fā),展現(xiàn)了如何通過(guò)BAPI接口實(shí)現(xiàn)企業(yè)系統(tǒng)之間的集成途徑。隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,越來(lái)越多的系統(tǒng)開(kāi)始考慮在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ù)對(duì)象以及BAPI同樣會(huì)有一個(gè)很好的應(yīng)用空間。
參考文獻(xiàn):
[1] Huang Ja.SAP programming[M].Beijing:China Machine Press,2005.
[2] Vivek Kale.Implementing SAP R/3:The Guide For Business and Technology Managers[M].Indiana:Sams Publishing,2002.
[3] Ralph Kappelhoff.Integration of ERP to the final control elements[J].ISA Transactions,1998,36(4):229-238.
[4] Thomas A Curran,Andrew Ladd,Dennis Ladd.SAP R/3 Reporting eBusiness Intelligence[M].USA:Prentice Hall,2000.
[5] 馬萬(wàn)太,譚惠民,黎志剛,等.ERP閉環(huán)實(shí)現(xiàn)關(guān)鍵——ERP/MES/底層控制集成系統(tǒng)研究[J].中國(guó)機(jī)械工程,2003,14(16):1387-1390.