目录
4、BAPI(Business Application Programming Interface)
一、SAP的常用接口技术
1)WebService
2)ALE/IDOC
3)RFC
4)BAPI
5)Middleware
1、WebService
Web Service就是一个应用程序,它向外界暴露出一个能够通过Web调用的API。Web Service是一种基于Web的中间件技术。用户通过把应用程序的一部分包装成Web服务的形式,将自己的应用程序功能提供给别人,实现应用程序之间的接口。webservice可用于多个系统和SAP系统之间的传输,比较灵活。
根据外部系统提供的webservice的wsdl地址,在SAP系统创建webservice consumer时候输入该URL。使用SOAMANAGER创建逻辑端口,封装函数,在函数里指定端口,并调用类的方法,反之,创建webservice provider,生成wsdl供外部调用。
WebService接口创建步骤
1.输入t-code:se80,选择Package然后右键你的包名。
2. 右键包名后找到创建 Web Service的位置。
3.选择 Service Provider(服务提供者,即我们作为信息的提供者,供外部程序调用我们的接口提取信息) 或者 Service Consumer(服务使用者,即我们作为接口的使用者,通过接口调用外部程序的信息)
4. 选择 Existng ABAP Objects(inside Out) 点击继续。
4.如图
5.输入一个函数,下面这个函数是我之前就已经创建好的。
6.配置服务,SOAP Application选择默认选项即可,Profile根据自己的实际情况进行选择,如果不知道怎么选就默认REF_DT_IF_SEC_LOW。
6.如图
7.完成创建 Web Service,后续根据提示完成后续步骤。(t-code:WSCONFIG好像已经不能用了,我现在使用的t-code是:SOAMANAGER,或者se80->刚才选择的包名->服务定义->启动SOAMANAGER配置。如果不可用大家自行百度当前创建逻辑端口的方法)
8.保存输入请求号并激活。
2、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出站处理:
1)应用层:生成应用数据
2)ALE层:创建出站IDOC
3)通讯层:寻找伙伴和端口
4)发送 IDoc
IDOC入站处理:
1)通讯层:接收入站端口传来的数据.
2)ALE 层:创建入站IDOC并通过伙伴参数文件查找IDOC处理类型.
3)应用层:写入文档.
SAP和SAP系统之间传输,系统有很多标准的配置实现,做增量数据传输很方便,需要配置的RFC逻辑连接是R3类型。SAP系统和外部系统交互,一般采用生成文件的方式,放在本地,再转化为XML或者FTP形式发送给对方,配置的RFC逻辑连接时T类型。在这里补充一下SAP发送到FTP的实现方法:建立RFC逻辑连接,函数连接FTP,账户密码登陆,然后用FTP命令在指定位置创建文件。
3、RFC
SAP调用远程功能的能力是通过RFC接口系统(RFC interface system)实现的。根据调用方向的不同(SAP系统调用其他模块或其他系统调用SAP模块),RFC接口提供以下两种服务。
(1)ABAP程序的调用接口
任何ABAP程序都能使用CALL FUNCTION⋯DESTINATION语句调用远程功能。
(2)非SAP ABAP程序的调用接口
非ABAP程序必须以特定的规格进行编程,以确保它可作为RFC通信中的伙伴方。
RFC(Remote Function Call)
RFC是SAP系统之间以及SAP与外部系统之间程序通信的基本接口技术,诸多其他更高层的SAP接口和通信技术,如BAPI,ALE等,都是基于RFC实现的。
根据通信方向和通信类型,共有如下三种RFC通信:
SAP为多种语言及相关的操作系统提供RFC库(其中包含RFC API)及SAP连接器。连接配置操作简单。为Java提供的Java Connector(JCo),为C和C++提供的RFC SDK(RFC Software Development Kit),为.NET(C#,VB.NET等)提供的 .NET Connector(NCo),为Louts Notes 提供的Louts connector 。RFC分为同步和异步的,队列RFC,事务性RFC。
4、BAPI(Business Application Programming Interface)
在研究BAPI之前,首先要了解业务对象(Business Object,简称BO) 和业务对象仓库(Business Object Repository,简称BOR) 。
BO代表的是实际世界的对象,比如一个采购订单,一个物料数据。SAP BO包含业务数据,并完整描述了业务过程。系统内部应用和系统间在BO级别进行通信:
通过调用BAPI,内部及外部应用可以通过portal、java、.net、以及webservice等标准访问和操作业务对象。
1.输入t-code:SWO1显示业务对象
BOR是SAP业务对象类型(业务对象的定义和描述)和相关BAPI的组织中心。其中的BO根据其隶属的应用层级进行组织,以便于查找。BOR管理着SAP BO的不同发布版本,同时保证其接口的版本兼容性。
T-CODE:SWO3 查看BOR
BAPI,是指SAP中经过精确定义的业务应用的数据和处理接口。该接口在BOR中进行定义,是SAP BO方法的具体实现。每一个BAPI用于完成与该对象所属应用相关的特定业务功能。
BAPI特点
1、它实际上是一种特殊的Remote Function Module(RFC)是为了提供使用外部程序来进行交易活动。
2、它提供的基于企业目标(Business Object)技术的接口应用界面。
5、中间件(MiddleWare)
中间件是CRM特有的接口技术,是CRM系统和其他外部系统交互的工具,CRM通过适配器实现数据传输,XML适配器,IDOC的适配器,R3适配器等等。在不同系统之间传递的媒介是BDOC,BDOC的本质是qRFC。CRM传输的对象分为“业务对象”,“定制对象”和“条件对象”。其中“配置对象”是一些配置表的对象,一般用于初始化传输的,业务对象就是CRM的业务对象。简而言之CRM的处理机制可以理解为:CRM->BDoc->IDoc/xml/BAPI结构->外部系统。
数据传输时,CRM将出站数据和处理函数打包写入BDOC(qRFC),数据存入数据库,然后调度程序将数据库里的数据写入入站队列,在接收方再将数据映射为自己系统的数据。
比如,CRM 的order,保存时候,调用函数CRM_ORDER_SAVE,函数产生出站队列,到ERP端之后根据适配器里定义函数将数据转化为ERP的数据结构再保存到ERP的数据库。
实现两边系统的传输步骤是:定义好站点,确定RFC目标系统,注册并启动队列,传输数据,监控。