SAP RFC

SAP RFC-RFC概述

RFC(Remote Function Call,也叫远程函数调用)是SAP系统和其他(SAP或非SAP)系统间的一个重要而常用的双向接口技术,也被视为SAP与外部通信的基本协议。简单地说,RFC过程就是系统调用当前系统外的程序模块,从而实现某个功能,而且调用系统和被调用系统中至少有一个必须是SAP ABAP系统。这种远程功能调用也可在同一系统内部进行(如本地SAP系统内的远程调用);但通常情况下,调用程序和被调用程序处于不同系统。

SAP RFC-RFC基础知识

SAP所提供的外部接口包括程序通信接口(communication interface)、文件I/O接口(file I/O interface)以及数据接口(data interface)。数据接口用于在系统内部对程序运行时数据和数据库数据进行传递,其实现技术包括批输入(batch input)、SAP SQL等。程序通信接口和文件I/O接口则是与其他系统进行数据交换的通路。文件I/O实现文件中数据和运行时数据间的交换(即将数据从文件上载到程序中。或将运行时数据下载至文件)。RFC位于程序通信接口中,以实现外部程序对SAP系统内部数据的访问。

RFC是基于CPI-C实现的。CPI-C是比RFC更底层的数据交换接口,它基于TCP/IP或LU6.2协议,其使用比RFC更复杂,一般情况不直接使用。RFC就可在实现逻辑上位于CPI-C的上层,所有RFC的调用都将转换为CPI-C的调用完成,但作为程序设计人员则不必了解CPI-C的实现细节。

1.RFC调用过程

在系统间通信过程中,需区分发送系统和接受系统。RFC调用请求从发送系统(调用系统)中传至接收系统(被调用系统,也称远程系统或目标系统),发送请求的系统在通信过程中又称为RFC客户端,通信另一方则称为RFC服务器。RFC客户端发起远程功能调用以执行RFC服务器提供的功能。

其中,调用系统和被调用系统均可以是SAP系统和非SAP系统,此外还可以在SAP系统内部将特定应用服务器指定为目标系统。

2.RFC通信的情况

根据通信方向和系统类型,共有如下三种RFC通信:

*两个独立的SAP系统之间的通信;

*SAPA系统作为调用系统,与外部远程系统(非SAP ABAP系统)通信;

*外部系统作为调用系统,与SAP系统通信。

3.RFC接口系统

SAP调用远程功能的能力是通过RFC接口系统(RFC interface system)实现的。根据调用方向的不同(SAP系统调用其他模块或其他系统调用SAP模块),RFC接口提供以下两种服务。

(1)ABAP程序的调用接口

(2)非SAP ABAP程序的调用接口。


SAP的RFC调用是其接口技术中最简单和易用的一种方式,该方式开发比较简便,特别适合于外部报表开发,但对于大数据量的查询效率相对较低。大家在熟练掌握后,可以进一步学习高级的IDOC和BAPI接口开发技术。



SAP RFC使用总结:
(1).BAPI and RFC

SAP R/3的接口方式主要有RFC(Romote Function Call,远程函数调用)、IDOC、BAPI三种,BAPI实际上也是RFC函数,它处理一组业务。使用Tcode:BAPI/BAPIW在SAP系统中可查看到各模块的BAPI函数。

RFC版本:

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

aRFC(asynchronous RFC)这种RFC可以实现异步的RFC调用方式,它可以进行多个并发调用,并且不要求被调用系统的可用状态。发出调用系统会一直尝试直到获得被调用系统的应答。它通常用于当你需要提高系统并行调用多个RFC的效率,相对于强制等待程序的结果,它的效率更高。

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

qRFC(queue(d) RFC)是tRFC的一个增强版本,它保证了所传输数据的处理次序。

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

RFC不但是一种函数,更是一种数据通信协议,类TCP/IP.

(2).iDOC and Doc,XI,NetWeaver

IDoc: An Intermediate Document (IDoc) is a SAP standard format for data transfer between systems.
IDocs are mainly used for Application Link Enabling (ALE) and for Electronic Data Interchange
(EDI). They are not used for processing inside an application.
DBoc: Business Documents (BDocs) are used by the CRM Middleware to exchange data with mobile
clients. Furthermore BDocs are the central data structure to process business objects internally.
In contrast to Idocs, for which the internal processing has to be implemented manually, the coding to
process BDoc may be generated automatically.

(3).SOA and ESA

企业服务架构(ESA)和面向服务的体系结构(service-oriented architecture,SOA)的组件模型.

猜你喜欢

转载自ihyperwin.iteye.com/blog/1618915
rfc