SAP接口技术研究
- 格式:pdf
- 大小:182.80 KB
- 文档页数:2
-58-信息产业 SAP接口技术研究王志刚(辽宁工程技术大学职业技术学院,辽宁阜新123000)作为目前ERP市场最为领先的应用系统之一,一直以来SAPR/3在提供API应用编程接口和接口工具方面也同样领先于其他ERP厂商。RFC、ALE/IDocs是SAP公司为SAPR/3R4.6C版本所提供的接口机制,目前应用最为广泛。在R4.0以后的版本中,有添加了技术上的先进的BAPI和DCOM。1RFC(RomoteFunctionCall,远程函数调用)SAP系统RFC调用的原理其实很简单,有点类似于三层构架的C/S系统,第三方的客户程序通过接口调用SAP内部的标准或自定义函数,获得函数返回的数据进行处理后显示或打印。以JAVA为例,在JAVA中可以使用JCO接口来CALLSAP中的RFC。RFC中间件使用RFC库通过JNI来连接SAP的R/3系统,如图1所示。2ALE/IDOCALE是ApplicationLinkandEnabling的缩写,是SAP专门为SAP与SAP之间所设计的整合中间件。IDocs是中介文本(Intermedi-ateDOCument)的缩写,是SAP提供的系统整合专用的数据/消息格式。ALE在SAP3.0版本开始就作为SAP整个应用体系的一部分,为分布式数据交换提供了可靠安全的通讯机制。ALE的设计,原本作为两个SAP流程之间的一种消息传递服务(MessagingService),使SAP与SAP的业务流程之间企业数据能够有效的交换,为两个独立的SAP之间提供了的系统整合服务。不过,随着应用的发展,ALE/IDocs接口机制也已然成为与其它非SAP系统的标准的整合方式。ALE的设计结构可以分为三层,即应用层,数据/消息分配层和通讯层。通讯层是SAP整合机制的基础,它利用远程功能呼叫RFC(RemoteFunctionCall)调用SAP系统的功能模块。数据/消息分配层,主要提供三个关键服务:按数据分配模型决定数据接收者、消息的过滤和转换、数据/消息的压缩,以提高传递效率。应用层直接与SAP系统接口,生成或从其它系统接收含有路由信息的消息文本IDocs,包括消息接收者的姓名,要求发送的类型以及对消息进行处理的规则。ALE的机制代替了原来的SAP所提供的批数据通讯BDC(BatchDataCommunication)方式。顾名思义,BDC为系统之间提供了简单的数据批处理服务,还不能作为一种中间件技术,它没有提供系统之间进行无缝整合所要求的纠错功能、系统管理和其它安全措施。总得说来,应用SAP的ALE机制进行SAP与SAP或非SAP系统整合有以下几个好处:a.ALE技术不受SAP版本升级的影响,它提供了版本向后兼容性。ALE定义于SAP应用层,与SAP的逻辑层相对独立,整个ALE中间件独立于发送和接收系统。b.ALE消息设计逻辑保证消息的“一次且只有一次”的消息传递。ALE采用“存储-发送”技术确保消息即使系统发生故障或接收方没有准备接收时也可以达到目的地。这样就保证接收方不至于收到重复消息。c.ALE也提供了IDocs管理功能。主要有文本缩减、文本版本控制以及文本数据过滤。三种控制机制使得SAP开发人员可以根据实际需要对IDocs文本在运行中进行动态处理。d.ALE提供了系统管理功能,允许对ALE系统进行启动/复位/恢复等系统操作,为开发人员提供了进一步的管理控制。IDoc几乎可以传带任何SAP应用的数据,是一种“外围”定义格式,与SAP的应用数据定义不直接相关。IDocs已经广泛应用于早期的SAP-EDI的数据交换,因而它的设计有点类似于EDI的标准,即EDIFACT标准。IDocs是以字符基础的,因而是可读的。它有三种纪录类型,即:a.控制纪录:含文本信息,如IDoc类型,发送/接收方信息以及文本标识。b.数据纪录:含管理和实际数据部分。c.状态纪录:用来追踪文本传递各点的状态,如状态码,系统时间,错误标识等。再来看一下ALE/IDocs在系统整合过程中摘要:随着企业信息化的发展,应用系统之间的集成已成为众多企业需要面临的难题。SAP(System,ApplicationsandProductsinDataPro-cessing)系统应用及数据处理产品系统代表了最先进的企业资源计划技术,并广泛地应用于各行各业,为企业带来更有效的管理模式和提高整个企业的竞争力。由于SAP是一种通用的标准化的系统,因此为了满足企业各自不同的需求,在SAP系统实施过程中就必须进行不同的配置和开发。SAP系统为了更好的和其他系统集成,提供了很多接口技术。RFC、ALE/IDocs是SAP公司早期为SAPR/3R4.6C版本所提供的接口机制,目前应用最为广泛。在R4.0以后的版本中,又添加了技术上先进的BAPI和DCOM。关键词:SAP;RFC;ALE/IDocs;R/3;R4.6C;BAPI;DCOM
图2ALE设计结构图1Java连接SAP
图3数据发送过程图4ALE接收过程-59-信息产业消息的实际传递情况:首先看发送过程。一个发送过程由事件触发,文本生成,数据打包以及交由传输媒介传递这四个步骤组成,具体如下:a.应用系统事件触发系统目标(Objects)的状态变化,用户自主活动或其它数据库特定变化等可以启动数据表的触发程序,从而进行数据传递的初始化工作,如数据准备。b.生成主IDoc文本(Master)按标准格式生成主IDoc文件,包含所有可以传递数据(不分接收者)c.生成通讯Idoc从主IDoc中生成只与特定接收者有关的文本,通讯文本是主文本的子数(Subset)d.Idoc发送利用异步通讯方式将一定版本的IDoc传递到接收方。下面,看看接收过程。接收过程始于SAP系统从外部收到IDoc文本。接收过程的优点在于,接收方既可以是SAP系统,也可以是第三方系统,这也是SAP与第三方进行有效整合的基础。接收过程由以下三个步骤组成:a.存储Idoc-将文本存储于数据库,并进行语法校验。b.邮件处理程序读取Idoc———一个专门设计的IDoc处理程序读取IDoc并产生SAP或其它系统所需的系统消息。多个程序可以同时运行。c.生成系统文本———处理程序进一步生成系统文本供系统使用,并将结果信息存于Idocd的状态纪录中。3BAPI简介BAPI是BusinessApplicationProgrammingInterface的缩写,是SAP为3.0版本以上提供的基于企业目标(BusinessObject)技术的接口应用界面。SAP在3.0版本以上采用了Ob-ject-oriented技术,逻辑定义了SAPR/3系统的所有功能目标,并且将所有的目标(Objects)和BAPIs存储于企业目标库BOR(BusinessOb-jectsRepository)。SAPR/3企业目标的目标类型(ObjectType)相当于目标设计语言中类(Class)的概念,其定义结构由以下几部分组成:a.基本数据:所有目标类的通用属性,如目标标识和默认方法(Method)。b.接口界面:目标的方法(Method),事件(Event),特征(Attributes)。c.键(KeyFields):供BOR中目标检索使用。d.方法(Methods):对目标进行所要求的各种操作。e.特征(Attibutes):描述目标特征。f.事件(Events):触发以改变目标状态。SAPR/3的企业目标库BOR(BusinessObjectsRepository)中封装了R/3的功能对象。通过BAPI(BusinessApplicationProgrammingInterface)可以访问BOR。BAPI是R/3平台专用的开发接口,但是从系统整合的角度看,BAPI主要是支持SAP应用-SAP应用之间的整合,SAP应用-非SAP应用之间的整合需要其他的技术。4SAP-DCOM接口SAP于1998首次提供SAP-DCOM接口,以满足各种桌面应用开发的要求。利用DCOM连接端口,开发人员可以利用VB,C++,以DCOM目标方式访问SAP数据。在Web应用上,可以用VBScript,JavaScript以DHTML方式页面访问,也可以用ASP访问数据。另外,利用DCOM也可以间接访问SAP的企业目标库BOR。上面提到的BAPI是SAP系统上专用的,在实际应用上不如DCOM来得广泛。DCOM端口主要有两个技术模块组成,一个是管理模块,另一个模块生成SAPBO的DCOM代理组件(ProxyComponents),生成的DCOM组件存放于C++。代理组件有以下属性:Client:要访问的R/3客户系统UserID:R/3用户Password:用户密码Language:系统语言Destination:预先定义的目标名称另外,每个组件具有以下方法:PutSeesionInfo():设定系统一次调用的目标参数AdviceRfcGuiSink():用于需要SAPGUI或dubugging的场合。CommitWork():用于数据更新,无implicitcommit的场合。InitKeys():DCOM目标键初始化DimAs():返回MicrosoftADO(AdvancedDataObject)纪录集(支持游标控制)。其它从R/3BO定义中继承的方法。R/3的DCOM接口主要用于Windows平台的应用程序访问R/3。R3DCOM除了可以访问BAPI外,还可以远程调用R/3上的ABAP程序(需要DCOMConnector4.6D以后的版本支持)。SAP的frontendCD中,附带了一个R/3DCOM的生成和管理工具,叫做DCOMCon-nector。通过DCOMConnector生成的DCOM组件包含两个组件,一个是业务代理组件,用于代理调用R/3BAPI或远程方法;另一个是Ses-sion组件,用于管理业务代理组件和R/3系统的交互。R/3DCOM组件运行在COM+环境(或者MTS)中,通过RFC协议访问R/3应用服务器。RFC是R/3开发接口的基本协议。不仅DCOM使用RFC协议,IDOC和BAPI也使用RFC调用访问R/3应用服务器。R/3DCOM可以被C/C++、VB等开发的桌面应用程序访问,也可以嵌入VBScript、JavaScript和ASP页面从而支持Web应用。下面简单介绍一下DCOMConnector的使用。a.运行环境。如果是Win2000,那么只需要VC6开发环境。如果是NT/98/95,那么需要IE5.0以上版本,并且安装微软的数据库访问组件MDAC2.5。建议使用Win2000。b.安装。一路默认安装,如果不需要com4abap,那么在configurecom4abap属性页中什么都不用填。安装后的DCOMConnector是一个WindowsMMC程序。c.转到节点Destination,配置Destination。填入各种参数后保存,然后测试一下连接。d.转到节点ObjectBuilder,选择一个Des-tination,输入密码登陆。然后选择BAPI或远程方法,就可以导出或部署DCOM了。需要注意的是:a.如果同一台机器上安装了R/3客户端,并且建立了与DCOMConnector同名的Desti-nation,那么可能发生冲突。此时某个Destina-tion,用另外的名字重新配置一下即可。b.在DCOMConnecctor的ObjectBuilder中,可以选择是否创建Session。Session的比较重要,以下会有介绍。c.DCOMConnecctor导出COM标准的C代码,包括mak文件,然后用本机编译器nmake。exe进行编译,生成COM标准的dll。因此本机必须安装VC6。d.在ObjectBuilder中指定一个MTSPackage名称,那么可以自动安装部署COM。建议手工在“组件服务”中部署COM。e.在DCOMConnector中,可以监控和查找已经部署在本机上的R/3DCOM组件,类似Windows的组件服务。总起说来,SAPR/3作为一个相对灵活的ERP系统,利用上述的各种接口技术能够实现SAP系统之间以及SAP与其它系统之间的数据交换和过程的整合。当然,应用系统的高度客户化必将会导致系统整合的难度。随着系统功能的增加,多种可供采用的接口技术的结合也就显得很有必要。对于SAPR/3用户来说,正确选择适用的接口技术是实现成功系统整合的关键。参考文献[1]陈永杰.SAP商务智能完全解决方案,2008,1.[2]希格里德·哈格曼、蓝·威尔.SAPR/3系统管理,2006,4.[3]石坚燕.SAPNetWeaver,2005,6.作者简介:王志刚(1973-),男,辽宁阜新市人,辽宁工程技术大学讲师,研究方向:计算机网络应用。