×

什么是 SAP BAPI

前端技术网 前端技术网 发表于2024-01-18 20:52:38 浏览3033 评论0

抢沙发发表评论

一、什么是bapi在ABAP中

SAP封装好的function module,某些BAPI可以模拟业务的操作,并能返回业务处理的消息。

例如:你要创建采购订单,输入T-CODE ME21N,然后填写要创建的采购订单的数据,最后保存。

什么是 SAP BAPI

如果有很多采购订单需要创建的话,一个个输入的话不太现实。这时候,可以用程序调用合适的BAPI,输入参数即可创建采购订单了。

(创建采购订单好像是这个BAPI_PO_CREATE1,具体的可以根据业务的需求,输入T-CODE:BAPI。查找合适的BAPI,其实我们用BAPI的时候主要的工作就是找到BAPI,调试出业务需要的效果)。

二、SAP的BDC和BAPI之间有什么联系和区别

RFC是Remote Function Call的英文缩写为,是一种远程函数调用协议,BAPI是Business Application Programming Interface,是一种基于RFC协议的函数,该函数可以在SAP系统中使用一般的函数调用,也可以在其他的SAP系统中使用RFC调用,同时也可以在其他的编程语言(例如java,.net, Delphi等)中调用,当然有需要的话,还是可以在ABAP中调用其他语言编写RFC函数来完成特定的任务。

三、SAP中IDOC和BAPI和RFC 之间的区别

se37写出来的叫function,其中可以远程调用的叫rfc,remote-enabled function,abap语法和输入输出参数就会有一些限制。bapi是sap做好的实现特定业务操作的rfc。idoc是基于sap自己的类似xml格式的文档数据交换的方式。rfc必须在线的方式调用,一般做同步的,idoc基于文档,可以实现异步的。

idoc是基于sap自己的类似xml格式的文档数据交换的方式。rfc必须在线的方式调用,一般做同步的,idoc基于文档,可以实现异步的。

idoc是系统间利用message传递,不涉及底层函数调用,idoc的处理方式是用edi来执行的.

什么是 SAP BAPI

你可以理解为IDOC是SAP为了同外部系统或内部不同client通迅所采用的一种数据结构,不同的idoc type定义了不同的格式,如关于material master data的IDOC, BOM, PO,SO等相关的IDOC,, ALE主要用于内部数据交换用的,如不同client, EDI用于同外部系统的交换数据,它们的本质都是base on IDOC。。。idoc是基于sap自己的类似xml格式的文档数据交换的方式。idoc基于文档,可以实现异步的。

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

BAPI是面向对象的,有属性、有方法、有事件,更加复杂和丰富,更能反映SAP的业务应用,而

BAPI方法的构造是基于RFC的,你也可以认为BAPI封装了RFC

我觉得RFC在应用时最为灵活。

IDOC是SAP标准的文件交换格式,SAP已经有了大量的Function Module来处理和传递IDOC,特别

是对于要和其它系统交换数据时,配合一些系统如biztalk server,IDOC会显得非常的方便,开

发的工作量也是最小的。

RFC的话,如果配合SAP的BDC使用的话,或者你是一个ABAP的高手的话,RFC也是很灵活的。

至于BAPI的话,我觉得SAP的bapi概念很好,但是接口很不完善,很多数据无法通过SAP本身的

BAPI完成,得自己来做开发。

对于bapi和rfc到底那个好用,我觉得没什么定论。

有时bapi好用,有时rfc好用。

bapi好用在于,其效率相对比较高,这个主要体现在有些bapi是用direct input的方式写的,

效率高。

但你如果用rfc写也有他的好处,当你写的不只是一个luw时,而每个luw都比较简单,

在这种情况下就用rfc开发比较快。

SAP的idoc文件替代了edi文件的作用。

ale是一种通讯的模式。

bapi,一种函数,sap提供一大堆,用于主要的业务流程的处理

rfc,一种函数,用于与外部程序调用

应该说RFC是其它内容的基础,它是一个Function module,可以被远程调用。而BAPI本身就是一

个RFC,但它被作为BO的Interface,作用更进一步,除了BAPI文档中提到的内容外,还可以作为

ALE/IDOC的开发基础。

ALE是R/3系统之间的应用层数据交换,至于用什么,就看具体配置了,比如可以用IDOC,同步/

异步BAPI,甚至用EDI。非SAP系统无法用ALE来实现。

至于数据传输的方式,可以是IDOC(底层是用RFC来实际的),也可以是EDI,所以说IDOC/EDI实

际上是数据的载体

四、SAP RFC和BAPI有什么区别!

BAPI和RFC不是同一个层次上概念,不能说从字面上看到BAPI函数和RFC函数就认为他们之间有必然的联系和区别。打个比如,问一个问题:人可以分为哪几类,答曰:男人和老人,呵~~,大家都知道,男人是基于性别来说的,老人是基于年龄的。BAPI是SAP提供的基于业务对象的函数,关键是它们处理的对象是R/3的业务相关business object),比如单据类销售订单,组织:公司等,它们是一系列实体。RFC则是一种系统间通讯的方式(Remote Funciton Call),一个男人可能同时也是一个老人,一个BAPI函数往往能是一个RFC函数(我不知道是不是所有BAPI都可以有基于RFC技术来调用,但是至少也可以说大部分吧,VB里面用BAPI,就是因为这个BAPI函数具有RFC的特性)

BAPI是个SAP里一个很好的思想,把业务对象都对象化了。刚学ABAP/4时,并不能理解SAP所说”ABAP/ 4”中的‘4’,而觉得它更像是一种脚本语言,顶多也就是和C一样,但是自从我接触了BAPI之后,我才体会到SAP说ABAP是种4G语言的确不虚。当在外部调用BAPI的时候,比如VB,就可以把SAP里的诸如订单,物料,员工,工厂等作为一个对象来处理,而且这种处理又是那么的简单,可能只要几句代码就可以了,最关键就是:1.收集BAPI函数所要的数据,也就是BAPI输入参数,VB也好,SAP本身的 Screen也好,甚至Web页面也好,只不过是一个数据收集器!(要作一些必要的数据检查保证它们是正确的,不过即使不正确也没有关系,BAPI会返回错误信息)收集完成了,就送给BAPI作为参数,剩下的事都是BAPI给做了,你就不用管了! 2.接收BAPI返回的信息,也就是BAPI输出参数,并把它们“翻译”成恰当的形式给表达给用户

感谢您的阅读!希望本文对解决您关于什么是 SAP BAPI和什么是bapi在ABAP中的问题有所帮助。如果您还有其他疑问,欢迎随时向我们提问。