APP下载

基于ALE/IDoc和BAPI技术的SAP与MES的集成研究与应用

2016-07-06贺欣张钦峰陈飞云祝洪敏

科技尚品 2016年12期

贺欣 张钦峰 陈飞云 祝洪敏

摘 要:SAP是为企业决策层及员工提供决策运行手段的管理平台,MES则对从订单下达到产品完成的整个生产过程进行优化管理,其旨在加强ERP计划的执行功能,所以,在SAP和MES之间需要建立接口,从而对整个生产流程进行控制。本文以某企业为例,介绍了基于IDOC和BAPI技术的SAP与MES的集成方法。

关键词:SAP;MES;集成接口

1 前言

SAP是一款用于ERP(企业资源计划)管理的软件。企业资源计划是指建立在信息技术基础上,以系统化的管理思想,为企业决策层及员工提供决策运行手段的管理平台。MES即制造执行系统,通过信息传递,对从订单下达到产品完成的整个生产过程进行优化管理,其旨在加强ERP计划的执行功能,把ERP计划同车间作业现场控制,通过执行系统联系起来。所以,在实际生产中,SAP和MES之间需要建立接口,方便数据的传输,从而对整个生产流程进行控制。

2 SAP与外围系统的集成方式

SAP与外围信息系统建立接口的技术有很多种,包括RFC接口技术、BAPI接口技术、ALE/IDoc接口技术、Web Service接口技术等。而根据系統之间数据交换的方式的划分,SAP与外围系统的接口形式又有以下3种:主动式、被动式和中间式。所以在建立SAP与外围系统的接口时,首先要根据实际需求、可行性分析以及响应时间等方面确定使用何种技术、何种方式。

本文以某企业为例,详细介绍如何实现SAP与MES之间的集成接口,具体实现的接口功能为将在MES里创建的计划订单上传到SAP。根据企业要求,此接口采用BAPI和ALE/IDoc相结合的接口技术,即首先将MES里的计划订单以IDOC格式上传至SAP系统,然后调用SAP系统中的BAPI来完成计划订单在SAP系统数据库的写入动作。

2.1 ALE/IDoc接口技术

IDOC是SAP与SAP或其他外部系统交换数据用的一种文件格式。每个IDOC文件包含一条control record、多条data record以及status record,其中control record记录接收系统和发送系统的配置信息,data record记錄系统之间传送的具体数据,status record记录传送状态如何。

IDOC类型定义了数据段及数据段的层次和次序。在实际开发过程中,可以根据具体情况定义配置IDOC类型,当然SAP系统里有很多标准的IDOC类型,也可以直接使用。在本文的例子中,因为在SAP系统里有标准的计划订单类型LOIPLO,所以我们直接使用,无需重新定义。

IDOC在SAP与其他系统的传送数据的形式上有两种:进站和出站。由外部系统传到SAP的形式称为进站;由SAP传到外部系统的形式称为出站。显然,本例中我们应选择进站形式,具体在SAP中计划订单的进站处理流程是这样的:

(1)SAP从系统的进站端口接收MES发送的IDOC数据;

(2)创建进站IDOC;

(3)通过伙伴参数文档查找此IDOC的处理类型;

(4)确定相关应用后写入SAP系统数据库。

2.2 BAPI接口技术

BAPI是面向对象程序设计方法中的一组程序接口,它的存在就是基于企业目标技术的接口应用。SAP中通过第三方软件内置了BAPI,它是SAP外部系统程序访问SAP内部数据和程序的标准方式,也就是说,BAPI是SAP和其他外部系统交换数据的一个通道。由于BAPI被内置在SAP中,所以在实际应用过程中,不必知道它具体的程序代码,只需了解它的使用方法。

3 SAP与MES的集成接口实现

3.1 IDOC的连接配置

接口方案确定之后,首先要进行的是IDOC的连接配置。进行IDOC数据传输时,合作方必须在SAP的业务伙伴参数文档中。SAP中用事务码WE42进行伙伴参数的配置,选择好合作伙伴类型后,添加新的进站参数,进行处理代码的配置。

3.2 编写接收IDOC数据的函数代码

事务码se37用来编写接收IDOC数据的函数代码。本例中接收IDOC数据的函数名为ZMES_RPCJH_IDOC_IN,函数的主程序包括3个部分:数据读取、数据处理、是否写入。

3.2.1 数据读取

从IDOC中读取数据,具体代码如下:

LOOP AT idoc_data.

CASE IDOC_DATA-SEGNAM.

WHEN ‘E1PLAFL.

MOVE idoc_data-sdata TO itb_rpcjh.

APPEND:itb_rpcjh .

ENDCASE.

ENDLOOP.

3.2.2 数据处理

将读到的数据进行处理。为了保证程序的延展性,此函数中不直接调用BAPI,而是调用另一函数ZIDOC_QDMES_RPCJH_RECEIVE,然后在这个函数中再实现BAPI的调用。

函数ZIDOC_QDMES_RPCJH_RECEIVE只实现一个功能,就是调用BAPI,具体代码如下:

MOVE:material TO header-material,

total_plord_qty TO header-total_plord_qty,

order_start_date TO header-order_start_date,

order_fin_date TO header-order_fin_date,

plan_plant TO header-plan_plant,

prod_plant TO header-prod_plant,

version TO header-version.

header-pldord_profile = ‘LA.

header-MRP_AREA = plan_plant.

header-firming_ind = ‘X.

CALL FUNCTION ‘BAPI_PLANNEDORDER_CREATE

EXPORTING

headerdata = header

IMPORTING

return = error

PLANNEDORDER = plannedorder_num

.

MOVE-CORRESPONDING error TO RETURN.

CALL FUNCTION ‘BAPI_TRANSACTION_COMMIT.

這里说明一下,SAP中用BAPI创建计划订单需要如下参数:material(物料号)、total_plord_qty(计划数量)、order_start_date(计划订单上的订单开始日期)、order_fin_date(計划订单上的订单结束日期)、plan_plant(计划工厂)、prod_plant(计划订单中的生产工厂)、version(生产版本)、pldord_profile(计划订单参数文件)、MRP_AREA(MRP 范围)、firming_ind(计划订货数据的确定的标识),其中material、total_plord_qty、order_start_date、order_fin_date、plan_plant、prod_plant、version从IDOC中读取,pldord_profile、MRP_AREA、firming_ind则是固定参数,在程序中赋值即可。

3.2.3 是否写入

如果数据处理无误,那么就将数据写入SAP数据库中;否则返回错误提示。

3.3 测试

SAP中的代码编写好后,就是和MES的连通测试的过程。由于IDOC的数据是由MES传送给SAP,所以首先要保证SAP中创建计划订单需要的参数都能由MES提供,另外,MES为保证订单数据准确传送,有些参数必须也要在IDOC中,即使SAP中并不需要,包括参数:加工中心、MES订单号、生产类型。

4 结语

随着信息化的高速发展,“信息孤岛”问题也越来越突出,虽然“大数据”等解决理念相继被提出,但对正在使用多种信息化系统的企业来说,要做到完全解决“信息孤岛”问题还需要一个长久的过程,那么在这个过程中,企业内部各个系统的集成就尤其重要。SAP和MES作为生产企业中最重要的两个信息化系统,它们之间的接口集成使企业管理更加快速准确,同时,它们之间的集成方式有多种,本文只简单介绍了用IDOC和BAPI技术的集成方式,其他集成方式还有待于我们在实际工作中研究和运用。

参考文献

[1]李爽,周洪友.MES与ERP系统集成技术研究[J].数字技术与应用,2016,(1):71.

[2]高远飙,刘仁金.ERP与MES集成技术及其应用研究[J].计算机应用与软件,2009,26(9):69-71.

(作者单位:山东中烟工业有限责任公司青州卷烟厂)