bapi和FM是两个完全不同的概念,BAPI是SAP里一个很好的思想,把业务对象都对象化了。刚学ABAP/4时,并不能理解SAP所说”ABAP/4”中的‘4’,而觉得它更像是一种脚本语言,顶多也就是和C一样,但是自从我接触了BAPI之后,我才体会到SAP说ABAP是种4G语言的确不虚。 当在外部调用BAPI的时候,比如VB,就可以把SAP里的诸如订单,物料,员工,工厂等作为一个对象来处理,而且这种处理又是那么的简单,可能只要几句代码就可以了。
一个bapi对应一个特定对象类型的对象,但是一个对象可以用多个bapi来实现,对象包含接口,关键字段,属性,方法和事件,而每一个方法都会用一个FM来实现,bapi可以只实现对象下部分的方法。bapi也许指的就是方法对应的fm吧,其实这只是bapi的皮毛而已
相关的tcode
bapi--bapi浏览器
se37--建立fm
SWO1--业务对象维护
说到bapi,不得不说下RFC这东西,不能说从字面上看到BAPI函数和RFC函数就认为他们之间有必然的联系和区别。打个比如,问一个问题:人可以分为哪几类,答曰:男人和老人,呵~~,大家都知道,男人是基于性别来说的,老人是基于年龄的。BAPI是SAP提供的基于业务对象的函数,关键是它们处理的对象是R/3的业务相关(business object),比如单据类销售订单,组织:公司等,它们是一系列实体。RFC则是一种系统间通讯的方式(Remote Function Call),一个男人可能同时也是一个老人,一个BAPI函数往往能是一个RFC函数
综合概括就是:
一个FM可以是bapi的实现(即面向对象的bapi函数),同时也可以用RFC来实现通讯(即允许远程访问的RFC函数),这两者是不矛盾的,这个时候可以说这个bapi是基于RFC来调用的,当然bapi也可以不基于RFC来调用。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/181844/viewspace-609117/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/181844/viewspace-609117/