RFC 和 BAPI :
要理解它们首先要知道 Function Module, 它 是 sap 里一种封装功能的方式,我就把它理解成 函数和 C,c# 差不多。、
RFC :是指远程调用技术,调用的对像就是函数, 可以RFC的函数在设计时与普通函数相比在参数会有所限制,且需要将 Remote-enable module 勾上。
BAPI : 它是另一种封将功能的方式,它面向对像的,具有方法属性.和事件,是 business object 的一部份,SAP 本身提供了很多BAPI, 它同时是基于 RFC 的.
IDOC:它是一种数据交换格式,类似于 XML 的概念,是SAP标准的文件交换格式。
ALE 和 EDI
ALE : 主要用于 sap系统内部数据交换.
EDI: 主要用于 外部 或不同client 间数据交换。
它们同时都可采用 IDOC 的方式作为数据的传输格式.
BADI:另一种封装功能的方式 ,它是面向对像的。同时它可以供程序接口,供其它程序来实现,SAP 采这种方式留下了很多接口,可供增强系统用。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/fangkailove/archive/2009/05/13/4180206.aspx
1. What is the difference between BAPI, BADI and User Exit.
BAPI - These are published programs which is used to upload data into SAP system.
BADI - This is a program enhancement technique. SAP provides BADI openings in the standard programs. You need to search for the suitable BADI as ur requirement and then do the coding and plug in the program.
USEREXIT - It is also a program enhancement technique. here also u need to find suitable userexit and code in ur program.
The main diff
bet BADI and USEREXIT is that in USEREXIT u code in the standard SAP program, hence any updation in the version of the standard program will lead to the loss of ur coding. But same is not the case of BADI. Here the code remains outside the standard program.
2. Both BDC and BAPI will work. For anjoi SAP transaction, prefer a BAPI over a BDC
转自:http://sap.ittoolbox.com/groups/technical-functional/sap-dev/a-few-interview-questions-on-bapi-badi-idoc-1041418