首页 > 其他分享 >BAPI 和 RFC 的区别

BAPI 和 RFC 的区别

时间:2024-07-02 13:28:53浏览次数:17  
标签:BAPI 调用 区别 系统 业务 RFC SAP

BAPI 和 RFC 的主要区别

RFC:是SE37写出来的其中可以远程调用的叫rfc,remote-enabled function,abap语法和输入输出参数就会有一些限制。

BAPI:是SAP做好的实现待定业务操作的RFC。

RFC:是面向过程的,调用简单直接;

BAPI:是面向对象的,有属性,方法,有事件。更加的复杂和丰富,更能反映sap业务的应用,bapi方法的构造是基于rfc的,所以可以说bapi集成了rfc。

RFC:一种函数,用于外部程序调用

BAPI:一种函数,用于主要业务流程处理

一个BAPI函数往往能是一个RFC函数(我不知道是不是所有BAPI都可以有基于RFC技术来调用,
但是至少也可以说大部分吧,java里面用BAPI,就是因为这个BAPI函数具有RFC的特性)

其他解释

  1. 概念与定位

    • BAPI:是SAP系统中用于实现待定业务操作的RFC。它是面向对象程序设计方法中的一组程序接口,允许程序员通过SAP将第三方软件整合成R/3专有产品。BAPI提供了基于企业目标(Business Object)技术的接口应用界面,使SAP系统内部的功能可以通过外部程序进行调用。
    • RFC:是SAP系统间通讯的一种方式,即远程函数调用。RFC不仅仅局限于SAP系统,它可以用于任何支持远程调用功能的系统。RFC主要关注于系统间的通信和函数调用,而不特定于业务逻辑的实现。
  2. 特性与用途

    • BAPI:是面向对象的,具有属性、方法和事件。它更加复杂和丰富,更能反映SAP业务的应用。BAPI主要用于处理SAP系统中的业务逻辑和数据,提供稳定的业务接口。由于BAPI是基于RFC技术实现的,因此BAPI函数往往也具备RFC函数的特性。
    • RFC:是面向过程的,调用简单直接。RFC主要用于外部程序调用SAP系统内部的功能,或者SAP系统调用外部程序的功能。RFC的开发相对简便,特别适合于外部报表开发等场景。
  3. 实现方式

    • BAPI:在SAP系统中以Function Module的方式实现,并被定义为Business Object Repository(BOR)中的SAP Business Object类型或SAP interface类型的方法。BAPI的创建包括定义BAPI Structure、创建FUNCTION MODULE、创建Business Object等步骤。
    • RFC:在SAP系统中通过SE37等事务代码进行创建和配置。RFC的实现主要关注于函数参数的定义、远程调用的配置等方面。
  4. 效率与适用场景

    • BAPI:由于BAPI是基于RFC技术实现的,并且针对业务逻辑进行了优化,因此BAPI在处理业务逻辑和数据时通常具有更高的效率。BAPI适用于需要频繁进行业务逻辑处理和数据交互的场景。
    • RFC:RFC的开发相对简便,特别适合于外部报表开发等场景。但是,对于大数据量的查询和处理,RFC的效率可能相对较低。此外,RFC也常用于同步处理,但并不适用于批量数据的处理。

标签:BAPI,调用,区别,系统,业务,RFC,SAP
From: https://blog.csdn.net/popo1987mm/article/details/139993608

相关文章

  • MARD和MARDH的区别
    MARD里记载的是当前库存的数量,但是期间并不一定是当月。比如你物料4月一整月都没有库存数量变化(没收没发),那么5月初你看MARD里的条目期间数还是4月而非5月。当某个期间发生货物移动的时候,系统在更新mard数据的之前(这个表是实时更新的),会检查此笔业务过账期间和mard里对应记......
  • ABAP工作区,内表,标题行的定义和区别
    工作区域跟变量一样,是用来保存数据的。区别是变量只能从中保存一个数据。而工作区域可以存放多个。把多个数据合在一起就成工作区域了。下面我们来看看工作区域是如何定义的吧。定义有四种方法,如下:1,直接定义DATA:BEGINOFWA_EKBE,MATNRTYPEMARA-MATNR,MAKTXTYPEMA......
  • 12.阻塞赋值与非阻塞赋值语句的区别和规范
    (1)阻塞赋值“=”  直到现行的赋值语句完成,才允许下一条赋值语句的执行,在串行块(begin-end)中,各赋值语句将以它们在顺序块中的排列次序依次执行。(2)非阻塞赋值“<=”    在赋值开始时,计算赋值号右边的语句,赋值结束时,更新赋值号左边的语句,因此其他在同一时间的语句都会......
  • 虚拟主机和服务器区别购买免备案主机
    很多人不知道虚拟主机和服务器区别是什么,甚至不知道怎么定义,什么是虚拟主机,什么是服务器。所以在看清楚虚拟主机和服务器的区别之前,一定要了解虚拟主机和服务器的概念。通俗来讲就是一台连在互联网的电脑。那么是不是我的电脑也连在互联网免费服务器上,是不是也能成为服务器呢......
  • xmodem ymodem xmodem协议和区别
    Overview帧长度=(帧头+数据+帧尾)Xmodem原始版XmodemCRCXmodem1KYmodemYmodem-gZmodemkermit帧头(1字节)NAKSOHSTXSOH或者STXSOH或者STX??数据包128字节128字节1024字节1024字节或者128字节1024字节或者128字节最大8K最小10字节最大9K最小64......
  • PHP与js遍历的区别,PHP运行原理学习
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title><?phpecho'PHP的第一......
  • 有源蜂鸣器和无源蜂鸣器的区别
    有源蜂鸣器和无源蜂鸣器的区别有无震荡源有源蜂鸣器内部带震荡源,所以只要一通电就会叫。无源蜂鸣器内部不带震荡源,如果用直流信号无法令其鸣叫,需要外部驱动电路提供一定频率的方波信号才能发声。价格有源蜂鸣器通常比无源蜂鸣器贵,原因在于其内部多了震荡源。高度有源蜂鸣......
  • TTL、RS2323、RS485电平协议的区别
    目录TTL、RS2323、RS485电平协议的区别定义电气特性应用场景其他特点总结TTL、RS2323、RS485电平协议的区别定义TTL(Transistor-TransistorLogic):是一种电平标准,主要用于描述数字电路中的逻辑电平。TTL电路使用晶体管来实现逻辑功能,通常用于计算机和其他数字电子设备中的内部......
  • SpringCloud和Dubbo有什么区别
    SpringCloud与Dubbo的区别两者都是现在主流的微服务框架,但却存在不少差异:初始定位不同: SpringCloud定位为微服务架构下的一站式解决方案;Dubbo是SOA时代的产物,它的关注点主要在于服务的调用和治理生态环境不同: SpringCloud依托于Spring平台,具备更加完善的生态体系;而Du......
  • 三次握手,四次挥手,以及Socket、TCP、HTTP之间的区别
    网络开发1.网站:最全的socket,tcp,http三者之间的区别和原理_cocket与tcpip-CSDN博客1.网络七层1.定义:网络七层(简称:OSI),即开放式系统互连。该体系架构标准定义了网络互连的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层和应用层)2.socket,tcp,http三者之间的区别和......