ABAP 接口

一、ABAP接口

        在现代软件开发中,“接口(Interface)” 是一个非常重要的概念,通常用于定义不同系统、组件或模块之间的通信契约,它为不同的实体提供了一种标准化的交互方式,使得它们能够通过预定的规则进行合作而无需关心彼此的内部实现。

        ABAP 接口不仅仅是为了面向对象编程中的方法约定,它在 增强开发外部系统集成业务流程自动化 等方面起着至关重要的作用。通过定义接口,开发者能够清晰地规定系统间的调用规范,确保不同模块或系统间的协作不受语言、平台或实现细节的影响。

        下面对于ABAP中常用的几个接口以及其用法进行介绍。

二、BAPI接口

        BAPI ——业务应用编程接口,它实际上是一种特殊的RFC,是为了提供使用外部程序与系统来进行交易活动。与RFC不同的是它提供的基于(Business Object) 技术的接口应用界面。

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

        调用BAPI接口的方法和调用函数相同。在很多需要对于底表进行修改的时候我们也常用到BAPI,它由系统进行定义,包括涉及到的表,以及传入、传出、修改的参数。因此相对于其他的方法更加安全。通常不允许进行修改,因此我们需要实现什么功能就去找对应的BAPI,当然不是我们能想到的所有功能都有其对应的BAPI。

我们可以通过事务码BAPI查看系统中所有的BAPI接口。

BAPI浏览器界面:

双击函数名称可以查看函数详情。 

MM/SD模块常用的BAPI:

三、RFC接口

1、定义

        RFC是SAP系统和其他(SAP或者非SAP)系统之前的一个重要的双向通信技术,也被成为SAP与外部通信的基本协议。RFC过程就是系统调用当前系统外的程序模块,从而实现某个功能。 调用系统和被调用系统中,至少有一个必须是SAP ABAP系统。 也可以在同一系统内进行调用(如本地SAP系统内的远程调用);但是通常情况下,调用程序和被调用程序处于不同的系统。

其中发送请求方被称为RFC客户端,接收方被称为RFC服务器。

2、通信模式

有同步通信、异步通信两种模式。

a、同步通信

优点:可以及时将数据返还给发送系统

缺点:系统对话时必须保证两个系统处于活动状态,否则对话出现中断,影响业务应用的处理

b、异步通信

优点:不需要接收系统随时可用,如系统升级、维护等不影响请求发送系统的业务处理

缺点:不适用于要求及时响应的处理过程。

3、RFC接口的分类

a、同步RFC(sRFC)

        是RFC的第一个版本,它要求连接的双方是同步的工作方式,即都是在可用状态才能够实现成功调用。

b、异步RFC(aRFC)

        这种RFC可以实现异步的RFC调用方式,它可以进行多个并发调用,并且不要求被调用系统的可用状态。发出调用系统会一直尝试直到获得被调用系统的应答。它通常用于当你需要提高系统并行调用多个RFC的效率,相对于强制等待程序的结果,它的效率更高。由于后续有很多优化版本,基本已经停用。

c、事务RFC(tRFC)

        是对aRFC进行相关技术改进后的一个RFC版本,其于aRFC相同点是实现异步调用,其优点是可以将多个调用进行LUW分组处理, 并只执行一次运行。现在aRFC基本上已经停用。

        LUW分组处理:

        LUW是SAP中执行一个完整业务流程或操作的最小单元,它代表着一系列操作(例如数据库更新、业务逻辑处理等),它们要么一起成功执行,要么一起失败。一个LUW可以包括多个步骤或操作,只有在所有操作成功时,整个LUW才会被提交。如果其中某一步失败,则整个LUW将回滚,所有相关操作都将被撤销。

d、队列RFC(qRFC)

        是事务RFC(tRFC)的一个增强版本,它保证了所传输数据的处理次序,并可用于SAP-SAP及SAP-non SAP。

e、并行RFC(pRFC)

        是一种特殊的RFC,它是aRFC的一种扩展类型。因为它改善了系统的性能,在执行大量的aRFC时。SAP 使用它在MRP里面提高速度。但是它只能执行在同一个系统和同一个client里

4、RFC接口的调用

a、ABAP程序的调用

        任何ABAP程序,都能通过

                        CALL FUNCTION 函数名 DESTINATION 系统连接名称

                                 EXPORTING

                                          参数

                                  CHANGING

                                          参数.

         语句调用远程功能。系统连接名称由BASIS配置好之后这里直接用就行。

这里的函数是在目标系统(接收方)里面进行调用执行的,只返回结果。

具体的过程如下:

发送方 / 调用方发起RFC请求→目标系统 / 接收方接收并执行RFC函数→执行结果返回给发送方

b、非SAP ABAP程序的调用

非SAP程序必须以特定的规格进行编程,以确保它可以作为RFC通信中的伙伴方。

发送方(非SAP系统)配置: 主要通过中间件(如SAP JCo、.NET Connector等)来配置与SAP的连接,并确保能够调用目标SAP系统中的ABAP函数模块。

接收方(SAP系统)配置: 在SAP系统中,主要通过 SM59 事务配置RFC连接,并确保外部系统能够访问相关的函数模块。还需要为外部系统分配合适的权限,并保证远程调用服务的正常运行。

四、Web Service接口

可以参考:SAP ABAP Web Service接口使用

        Web Service(Web 服务)是一种标准化的、用于不同应用程序或系统之间进行数据交换和通信的技术,它允许通过网络(如 HTTP、HTTPS 等)在不同平台或语言间进行互操作。Web 服务通常基于开放的标准和协议,使得跨平台、跨编程语言的系统可以互相通信。可以用于多个系统和SAP之前的传输,比较灵活。分为两个角色:

a、Provider(提供接口方)

        一个应用程序,向外部暴露出一个能够通过Web调用的API(Application Interface),生成WSDL,以供外部调用。

        用户通过把应用程序的一部分,封装成Web服务的形式,将自己的应用程序的功能提供给别人,实现应用程序之间的接口。

b、Consumer(使用接口方)

        根据外部系统提供的Webservice的WSDL地址,在SAP系统创建Webservice Concumer的时候输入该URL。

        使用事务码SOAMANAGER创建该逻辑端口,封装函数,在函数内指定端口,并调用该类的方法。

1、通过SE37创建函数模块。

注意这里的属性处理类型处需要选择远程启用的模块。

实用程序更多实用程序创建Web服务来自函数模块。

后续的操作看连接中的演示吧,博主系统权限不够。 

五、总结

        通过接口可以实现SAP到SAP系统间或者SAP到其他系统间的通信,这种接口机制允许一方作为客户端,另一方作为服务器,从而实现跨系统的数据传输和功能调用。这不仅增强了 SAP 系统在不同技术环境中的集成能力,还为企业提供了更灵活的数据流动和操作流程。

        通过接口实现的系统间通信,可以大大提高企业信息系统的交互性与协同效率,减少人工干预和重复数据录入。保证系统数据的一致性、增强了企业系统的整体集成性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值