SAP常用接口
目录
三、RFC(Remote Function Call 远程函数调用)
四、BAPI(Business Application Programming Interface 业务操作编程接口)
接口:两系统之间通讯的方式 ,预留给外部的通道。本章讲的是SAP系统与其他系统进行关联、业务沟通、数据传输时连接、传输的方式。
PI:现在主流的管理接口的系统,它集中管理它和每一个系统之间的连接,这样就方便建立连接以及监控连接。一般情况下,用户可能业务不会有这么大,仅限于两个系统之间,或者用户预算有限,就可以用SAP常用的接口来实现系统的连接(前提是用SAP的产品)。
一、Webservice【最常用】
测试工具:SOAPUI
Web Service(企业服务)就是一个应用程序,它向外界暴露出一个能够通过Web调用的API(业务接口)。Web Service是一种基于Web的中间件技术。用户通过把应用程序的一部分包装成Web服务的形式,将自己的应用程序功能提供给别人,实现应用程序之间的接口。webservice可用于多个系统和SAP系统之间的传输,比较灵活。
根据外部系统提供的webservice的wsdl地址,在SAP系统创建webservice consumer(接收方)时候输入该URL(地址)。基于安全性、传输协议的考虑,使用SOAMANAGER(可以直接T-CODE)创建逻辑端口,封装函数,在函数里指定端口,并调用类的方法,反之,创建webservice provider(提供方),生成wsdl供外部调用。
实现Webservice的过程:
1、SE80
选择自己的Package创建,也可在本地创建(选择本地对象),右键点击创建再点击企业服务,就弹出向导界面。
再进行一些配置,就可以进行测试了。点击“测试”按钮,再点击“执行”,就进入初始界面
不仅要在自己的系统里测试,还要在调用方的系统里测试。
2、在函数模块里创建
T-CODE:SE37,进入一个函数模块,点击“实用程序”,再点击“更多实用程序”,再选择“创建Web服务”,之后就可以选择是“来自函数模块”还是“来自函数组”。本节为函数模块,点击后出现向导程序。首先,填写webservice的名称和描述;后续步骤与上一节一致。
3、上述为提供方,下面来讲讲接收方
SE80(前面步骤与“1、SE80”一致),出现向导程序后,选择“Service Consumer”,如果是用URL接收,选择“External WsDL/Schema”,再选“URL”,之后就可以填写提供方给与的URL,再填写其账号密码,填写包名和前缀。
调用Webservice:
进入要调用Webservice的程序,选择合适的行数,点击“模式”,选择“ABAP对象模式”回车,如果方法是Instance Method,必须先创建实例对象,这里选择“创建对象”,填写实例名称以及调用的类。
二、ALE/IDOC
ALE是SAP专门为SAP与SAP之间所设计的整合中间件。ALE技术是分布--集成式的SAP系统实现基础。从技术角度来说,ALE主要应用于两个有业务联系的SAP系统之间的数据同步,但也支持在SAP和非SAP系统间的数据同步的实现。
如果用最简单的语言介绍ALE的基本功能,可以认为其主要用于便捷地实现SAP系统/应用间的业务信息和数据的复制。数据以业务对象(BO)为实现单元,在系统/应用间通过基于RFC协议的ALE接口,以IDoc格式进行传递,在此过程中,系统将保证数据的完整性。IDoc是系统间数据交换过程中的媒介,SAP数据库中的IDoc结构包括一个控制记录、一段或多段数据记录以及一段或多段状态记录。
IDoc多用于在SAP系统之间的传输数据,IDoc对接收端的配置人员要求高。
IDOC出站处理:
- 应用层:生成应用数据(不需要像Webservice那样写代码了,纯配置,但配置挺多的)
- ALE层:创建出站IDOC(如果发送的是自己的应用数据,就要自己创建结构和表)
- 通讯层:寻找伙伴和端口(指定发送的对象)
- 发送 IDoc
IDOC入站处理:
- 通讯层:接收入站端口传来的数据.
- ALE 层:创建入站IDOC并通过伙伴参数文件(即端口、逻辑链接)查找IDOC处理类型.
- 应用层:写入文档.
信息从“发送端”出站,在“接收端”入站。
SAP和SAP系统之间传输,系统有很多标准的配置实现,做增量数据传输很方便,需要配置的RFC逻辑连接是R3类型。SAP系统和外部系统交互,一般采用生成文件的方式,放在本地(或者是服务器的某一个路径上),再转化为XML或者FTP形式发送给对方,配置的RFC逻辑连接时T类型。在这里补充一下SAP发送到FTP的实现方法:建立RFC逻辑连接,函数连接FTP,账户密码登陆,然后用FTP命令在指定位置创建文件。
逻辑连接【SAP系统与其他系统进行沟通、创建端口之前,都要创建的】的创建:
T-CODE:SM59
三、RFC(Remote Function Call 远程函数调用)
RFC只需知道怎么用即可,详细可看《SAP高级应用开发》。RFC只能在SAP系统中创建,为其他系统使用。
SAP调用远程功能的能力是通过RFC接口系统(RFC interface system)实现的。根据调用方向的不同(SAP系统调用其他模块或其他系统调用SAP模块),RFC接口提供以下两种服务。
- ABAP程序的调用接口:
- 任何ABAP程序都能使用CALL FUNCTION⋯DESTINATION语句(如果在本服务器中调用,即谁创建谁使用,就可省略DESTINATION)调用远程功能。【SAP系统调用SAP系统的RFC】
- 非SAP ABAP程序的调用接口:
- 非ABAP程序必须以特定的规格进行编程,以确保它可作为RFC通信中的伙伴方。【其他系统调用SAP系统的RFC】
- SAP为多种语言及相关的操作系统提供RFC库(其中包含RFC API)及SAP连接器。连接配置操作简单。为Java提供的Java Connector(JCo),为C和C++提供的RFC SDK(RFC Software Development Kit),为NET(C#,VBNET等)提供的 NET Connector(NCo),为Louts Notes 提供的Louts connector。RFC分为同步和异步的,队列RFC,事务性RFC。【这些都可在SERIVERS SAP中找到】
RFC是SAP系统之间以及SAP与外部系统之间程序通信的基本接口技术,诸多其他更高层的SAP接口和通信技术,如BAPI,ALE等,都是基于RFC实现的。
根据通信方向和通信类型,共有如下三种RFC通信:
- 两个独立的SAP系统之间通信;
- SAP系统作为调用6系统,与外部远程系统(非SAP ABAP系统)通信;
- 外部系统作为调用系统,与SAP系统通信。
RFC逻辑要尽量缜密一点,返回参数尽量详细一点,如发生错误要返回详细信息,外部人员也能一看就懂。其他,RFC与普通函数别无二致。
四、BAPI(Business Application Programming Interface 业务操作编程接口)
难点不在于如何创建,而在于如何使用。
使用可分为查找、调用两方面。
而我们一般只要会用BAPI即可,并不需要知道如何创建。
BAPI也是函数。
在研究BAPI之前,首先要了解业务对象(Business Object,简称BO) 和业务对象仓库(Business Object Repository,简称BOR) 。
BO代表的是实际世界的对象,比如一个采购订单,一个物料数据。SAP BO包含业务数据,并完整描述了业务过程。系统内部应用和系统间在BO级别进行通信:通过调用BAPI,内部及外部应用可以通过portal、java、.net、以及webservice等标准访问和操作业务对象。
BOR是SAP业务对象类型(业务对象的定义和描述)和相关BAPI的组织中心。其中的BO根据其隶属的应用层级进行组织,以便于查找。BOR管理着SAP BO的不同发布版本,同时保证其接口的版本兼容性。 【使用最多的地方为‘工作流’】
T-CODE:SWO1 业务对象显示
T-CODE:SWO3 查看BOR
BAPI介绍
BAPI,是指SAP中经过精确定义的业务应用的数据和处理接口。该接口在BOR中进行定义,是SAP BO方法的具体实现。每一个BAPI用于完成与该对象所属应用相关的特定业务功能。
BAPI特点
- 它实际上是一种特殊的Remote Function Module(RFC)是为了提供使用外部程序来进行交易活动。
- 它提供的基于企业目标(Business Object)技术的接口应用界面。
- SAP采用Object-oriented技术,逻辑定义了SAP系统的所有功能目标,并且将所有的目标(Objects)和BAPIs存储于企业目标库BOR。
- SAP R/3企业目标的目标类型(Object Type)相当于目标设计语言中类(Class)的概念,其定义结构由以下几部分组成:基本数据,接口界面,键(KeyFields),方法(Methods),特征(Attributes),事件(Events)。
BAPI的调用
改完后,要提交到数据库
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' "BAPI测试成功
* EXPORTING
* WAIT =
* IMPORTING
* RETURN =
.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK' "BAPI测试失败
* IMPORTING
* RETURN =
.
五、中间件(Middleware)
中间件是CRM特有的接口技术,是CRM系统和其他外部系统交互的工具,CRM通过适配器(CRM与外界之间连接、转换的工具,ABAP中大部分适配器为函数)实现数据传输,XML适配器,IDOC的适配器,R3适配器等等。在不同系统之间传递的媒介是BDOC,BDOC的本质是qRFC(队列RFC,通过队列传输)。CRM传输的对象分为“业务对象”,“配制对象”和“条件对象”。其中“配置对象”是一些配置表的对象,一般用于初始化传输的,业务对象就是CRM的业务对象。
简而言之CRM的处理机制可以理解为:CRM->BDoc->IDoc/xml/BAPI结构->外部系统。
数据传输时,CRM将出站数据和处理函数(即适配器)打包写入BDOC(qRFC),数据存入数据库,然后调度程序将数据库里的数据写入入站队列,在接收方再将数据映射为自己系统的数据。
比如,CRM 的order,保存时候,调用函数CRM_ORDER_SAVE,函数产生出站队列,到ERP端之后根据适配器里定义函数将数据转化为ERP的数据结构再保存到ERP的数据库。
实现两边系统的传输步骤是:定义好站点,确定RFC目标系统,注册并启动队列,传输数据,监控。
文章来自于网络,如果侵犯了您的权益,请联系站长删除!