SAP r3接口技术报告.docx

上传人:b****2 文档编号:24191989 上传时间:2023-05-25 格式:DOCX 页数:11 大小:50.97KB
下载 相关 举报
SAP r3接口技术报告.docx_第1页
第1页 / 共11页
SAP r3接口技术报告.docx_第2页
第2页 / 共11页
SAP r3接口技术报告.docx_第3页
第3页 / 共11页
SAP r3接口技术报告.docx_第4页
第4页 / 共11页
SAP r3接口技术报告.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

SAP r3接口技术报告.docx

《SAP r3接口技术报告.docx》由会员分享,可在线阅读,更多相关《SAP r3接口技术报告.docx(11页珍藏版)》请在冰豆网上搜索。

SAP r3接口技术报告.docx

SAPr3接口技术报告

SAPr3接口技术报告

SAPR/3接口技术

SAPR/3提供了众多的API应用编程接口和接口工具,以方便SAP二次开发和爱好者进行研究。

RFC、ALE/IDocs是SAP公司早期为SAPR/3R4.6C版本所提供的接口机制,目前应用最为广泛。

在R4.0以后的版本中,又添加了技术上先进的BAPI和DCOM。

下面对这些接口方式以及其它可用的整合方式进行介绍。

一、RFC(RomoteFunctionCall,远程函数调用)。

SAP系统RFC调用的原理其实很简单,有一些类似于三层构架的C/S系统,第三方的客户程序通过接口调用SAP内部的标准或自定义函数,获得函数返回的数据进行处理后显示或打印。

下面是RFC调用的模型:

这里主要不是讨论SAPR/3函数的开发,使用SAP的公司一般都有专门的ABAP开发人员,通过事务代码SE37进入ABAP开发平台的“函数编制器”进行函数开发测试。

以VB为例,SAP接口RFC的开发思路如下。

在SAP客户端SAPGuiClient安装的时候,注意选择安装附带的SDK包。

RFC接口程序开发,主要用的是“SAP.Functions”这个控件,通过控件在外部程序模拟SAPGuiClient的用户登录和函数调用,然后返回函数的值。

SAP的RFC调用是其接口技术中最简单和易用的一种方式,该方式开发比较简便,特别适合于外部报表开发,但对于大数据量的查询效率相对较低。

在附件中有VB中调用RFC的例程。

在JAVA中也可以使用JCO接口来CALLSAP中的RFC,相关包和demo也包含在附件中。

二、ALE/IDOC

ALE是ApplicationLinkandEnabling的缩写,是SAP专门为SAP与SAP之间所设计的整合中间件。

IDocs是中介文本(IntermediateDOCument)的缩写,是SAP提供的系统整合专用的数据/消息格式,可用于EDI、ALE或导出导入(XML,ASCII)文件等。

当然也可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系统整合有以下几个好处:

ALE技术不受SAP版本升级的影响,它提供了版本向后兼容性。

ALE定义于SAP应用层,与SAP的逻辑层相对独立,整个ALE中间件独立于发送和接收系统。

ALE消息设计逻辑保证消息的“一次且只有一次”的消息传递。

ALE采用“存储-发送”技术确保消息即使系统发生故障或接收方没有准备接收时也可以达到目的地。

这样就保证接收方不至于收到重复消息。

ALE也提供了IDocs管理功能。

主要有文本缩减、文本版本控制以及文本数据过滤。

三种控制机制使得SAP开发人员可以根据实际需要对IDocs文本在运行中进行动态处理。

ALE提供了系统管理功能,允许对ALE系统进行启动/复位/恢复等系统操作,为开发人员提供了进一步的管理控制。

IDoc几乎可以传带任何SAP应用的数据,是一种“外围”定义格式,与SAP的应用数据定义不直接相关。

IDocs已经广泛应用于早期的SAP-EDI的数据交换,因而它的设计有点类似于EDI的标准,即EDIFACT标准。

IDocs是以字符基础的,因而是可读的。

它有三种纪录类型,即:

控制纪录-含文本信息,如IDoc类型,发送/接收方信息以及文本标识。

数据纪录-含管理和实际数据部分。

状态纪录-用来追踪文本传递各点的状态,如状态码,系统时间,错误标识等。

再来看一下ALE/IDocs在系统整合过程中消息的实际传递情况:

首先看发送过程。

一个发送过程由事件触发,文本生成,数据打包以及交由传输媒介传递这四个步骤组成,具体如下:

a应用系统事件触发

系统目标(Objects)的状态变化,用户自主活动或其它数据库特定变化等可以启动数据表的触发程序,从而进行数据传递的初始化工作,如数据准备。

b生成主IDoc文本(Master)

按标准格式生成主IDoc文件,包含所有可以传递数据(不分接收者)

c生成通讯Idoc

从主IDoc中生成只与特定接收者有关的文本,通讯文本是主文本的子数据集(Subset)

dIdoc发送

利用异步通讯方式将一定版本的IDoc传递到接收方。

下面,看看接收过程。

接收过程始于SAP系统从外部收到IDoc文本。

接收过程的优点在于,接收方既可以是SAP系统,也可以是第三方系统,这也是SAP与第三方进行有效整合的基础。

接收过程由以下三个步骤组成:

a存储Idoc-将文本存储于数据库,并进行语法校验

b邮件处理程序读取Idoc--一个专门设计的IDoc处理程序读取IDoc并产生SAP或其它系统所需的系统消息。

多个程序可以同时运行。

c生成系统文本--处理程序进一步生成系统文本供系统使用,并将结果信息存于Idocd的状态纪录中。

三、BAPI简介

BAPI是BusinessApplicationProgrammingInterface的缩写,是SAP为3.0版本以上提供的基于企业目标(BusinessObject)技术的接口应用界面。

SAP在3.0版本以上采用了Object-oriented技术,逻辑定义了SAPR/3系统的所有功能目标,并且将所有的目标(Objects)和BAPIs存储于企业目标库BOR(BusinessObjectsRepository)。

SAPR/3企业目标的目标类型(ObjectType)相当于目标设计语言中类(Class)的概念,其定义结构由以下几部分组成:

基本数据--所有目标类的通用属性,如目标标识和默认方法(Method)。

接口界面--目标的方法(Method),事件(Event),特征(Attributes)。

键(KeyFields)--供BOR中目标检索使用

方法(Methods)--对目标进行所要求的各种操作。

特征(Attibutes)--描述目标特征。

事件(Events)--触发以改变目标状态。

利用BAPI,开发人员可以实现对BOR进行实时访问,从而实现应用系统(SAP-SAP)之间在数据/逻辑层上的有效整合。

1、当一个用户需求到来时,首先需要确认用户的需求,主要是接口参数的确定。

2、在SAP下面输入事务代码BAPI,进入系统标准BAPI的列表界面。

寻找符合要求的标准BAPI,主要关注业务模块以及版本号,目前SAP4.6A的为符合条件的标准BAPI接口,在文档标签中,也有关于每一个BAPI对象的详细介绍。

如果标准接口过多,或者你仍然不清楚应该调用哪个系统标准的BAPI,那么你可以去咨询相关的业务专家或开发专员,S上面也可以去咨询,也可以到国外网站的BBS上咨询。

3、在找到标准BAPI后,对于每个BAPI接口而言,它都有相应的参数,这些参数都对应着具体的结构,可以在BAPI标准接口的SORUCECODE下面双击该结构,然后可以进入该结构体的查看界面,这里你可以寻找结构体各个字段中符合你的用户需求的字段,跳出这些字段。

4、确认用户需求时主要是确认传进去和传出来的参数,这些参数比如,日期,物料列表等等,对于日期而言它是单个行项目的,对于物料列表而言,它是多个行项目的,那么你需要将单个行项目的设计成结构体,而多个行项目设计成表tables。

具体BAPI的应用,在SAP系统中用事务se37按baip*查找,再用where-use看其如何使用,也是非常详细的资料。

SAPR/3的企业目标库BOR(BusinessObjectsRepository)中封装了R/3的功能对象。

通过BAPI(BusinessApplicationProgrammingInterface)可以访问BOR。

BAPI是R/3平台专用的开发接口,但是从系统整合的角度看,BAPI主要是支持SAP应用-SAP应用之间的整

合,SAP应用-非SAP应用之间的整合需要其他的技术,其中R/3DCOM接口应用比较广泛。

四、SAP-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的生成和管理工具,叫做DCOMConnector。

通过DCOMConnector生成的DCOM组件包含两个组件,一个是业务代理组件,用于代理调用R/3BAPI或远程方法;另一个是Session组件,用于管理业务代理组件和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的使用。

1、运行环境。

如果是Win2000,那么只需要VC6开发环境。

如果是NT/98/95,那么需要IE5.0以上版本,并且安装微软的数据库访问组件MDAC2.5。

建议使用Win2000。

2、安装。

一路默认安装,如果不需要com4abap,那么在configurecom4abap属性页中什么都不用填。

安装后的DCOMConnector是一个WindowsMMC程序。

3、转到节点Destination,配置Destination。

填入各种参数后保存,然后测试一下连接。

4、转到节点ObjectBuilder,选择一个Destination,输入密码登陆。

然后选择BAPI或远程方法,就可以导出或部署DCOM了。

需要注意的是:

1、如果同一台机器上安装了R/3客户端,并且建立了与DCOMConnector同名的Destination,那么可能发生冲突。

此时某个Destination,用另外的名字重新配置一下即可。

2、在DCOMConnecctor的ObjectBuilder中,可以选择是否创建Session。

Session的比较重要,以下会有介绍。

3、DCOMConnecctor导出COM标准的C代码,包括mak文件,然后用本机编译器nmake。

exe进行编译,生成COM标准的dll。

因此本机必须安装VC6。

4、在ObjectBuilder中指定一个MTSPackage名称,那么可以自动安装部署COM。

建议手工在"组件服务"中部署COM。

5、在DCOMConnector中,可以监控和查找已经部署在本机上的R/3DCOM组件,类似Windows的组件服务。

R/3DCOM组件的使用

1、Session组件

Session组件的接口是ISAPSession,包括登陆验证和事务管理两方面功能。

典型的R/3登陆代码:

DimstrErrAsString

DimblnRetAsBoolean

objSAPSessionAsMyGoodsMvtLib。

GoodsMvtSessionComponent

objSAPSession=CreateObject("SAP。

GoodsMvtSessionComponent。

1")

objSAPSession。

PutSessionInfo(_destination,_username,_password,_language,_organization)

bResult=objSAPSession。

Logon(strErrorMessage)

典型的事务提交代码:

Try

//业务代理组件的操作

objSAPSession。

CommitWork()

objSAPSession=Nothing

objGoodsMvt=Nothing

Catch

objSAPSession。

RollbackWork()

objSAPSession=Nothing

objGoodsMvt=Nothing

EndTry

Session组件能够管理一个或一组业务代理组件。

Session能够将多个业务代理组件的业务方法在同一个事务中提交,也可以在多个业务代理组件中共享RFC连接。

然而,Session组件不是必须的。

实际上,事务管理的方法封装在ISAPConnector接口中。

Session组件的ISAPSession接口由于继承了ISAPConnector才具有事务功能。

同样,业务代理组件也继承自ISAPConnector,因此业务代理组件也同样可以单独提交。

不同的是,业务代理组件使用各自独立的RFC连接,且不能将多个组件方法在一个事务中提交。

2、业务代理组件

业务代理组件是R/3BAPI和R/3远程方法的proxy。

应用程序使用这个proxy就能够像在本地一样透明地调用R/3的BO。

R/3中不同的业务对象对应不同的业务代理。

业务代理组件可以由Session组件创建:

SetoOrders=oSession。

CreateInstance("sam。

GoodsMovement。

1")

不同的业务代理组件除了包含实现各自功能的业务接口外,都实现了一个共同的接口:

ISAPCatalog。

DCOMConnector利用了这个接口,对业务代理组件进行管理和监控。

PutSeesionInfo()—设定系统一次调用的目标参数

AdviceRfcGuiSink()—用于需要SAPGUI或dubugging的场合。

CommitWork()-用于数据更新,无implicitcommit的场合。

InitKeys()-DCOM目标键初始化

DimAs()-返回MicrosoftADO(AdvancedDataObject)纪录集(支持游标控制)。

R/3DCOM更适合于小型的R/3外挂程序,或者与基于Windows的小型应用集成。

对于大型R/3EAI,必然要考虑WBIAdapter、Tibco、Webmethod、Biztalk、Crossworld等中间件产品了。

在附件中有一个关于WBISAPAdapter中间件的文档。

关于中间件还有待进一步了解。

总起说来,SAPR/3作为一个相对灵活的ERP系统,利用上述的各种接口技术能够实现SAP系统之间以及SAP与其它系统之间的数据交换和过程的整合。

当然,应用系统的高度客户化必将会导致系统整合的难度。

随着系统功能的增加,多种可供采用的接口技术的结合也就显得很有必要。

对于SAPR/3用户来说,正确选择适用的接口技术是实现成功系统整合的关键。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 可爱清新

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1