一、什么是BAPI?
1、BAPI(Business Application Programming Interfaces),业务应用编程接口。实际是一种特殊的RFC(Remote Function Modules),是为了提供使用外部程序与系统来进行交易活动,与RFC不同的是,他提供的基于技术的接口应用界面(Business object)。
2、SAP采用了object-oriented(面向对象)技术,逻辑定义了SAP R/3系统的所有功能对象,并且将所有的对象和BAPIs存储于业务对象库BOR(business object repository)。
SAP R/3业务对象类型相当于程序设计语言中类(class)的概念,其定义结构由以下几部分组成:基本数据,接口界面,键(key fields),方法(methods),特征(attributes),事件(events)
利用BAPI,开发人员可以实现对BOR进行实时访问,从而实现应用系统(SAP-SAP)之间在数据/逻辑层上的有效整合。
二、BAPI的结构和作用
1、BAPI是在BOR(business object repository)中为SAP业务对象类型或接口类型定义的特殊方法,通过RFC支持的ABAP功能模块实现,和业务对象关联的RFM也称为BAPI功能模块,俗称BAPI。通过基于RFC协议实现的BAPI接口,可以从业务层直接对SAP业务对象进行访问,BAPI支持同步、异步的数据通信过程。
BAPI不存在表现层,调用BAPI的第三方负责显示传入BAPI或BAPI返回数据BAPI建立在RFC协议基础上,外部语言需要进行RFC调用,即通过外部RFC接口来调用BAPI。
2、由于BAPI是封装在业务对象中的方法,因此BAPI相当于提供给外部程序访问的一个接口,代表着业务对象的行为,外部程序可用通过BAPI访问SAP系统中的业务对象、数据、应用。
三、业务对象(business object)
1、SAP业务对象描述了在SAP系统中每个模块中真实的对象体(如:销售订单、生产工单、物料清单等),它是基于OO(object oriented)思想而设计,通过业务组件(business component),业务对象(business object type)和BAPI等实现。
2、业务对象的整体框架包含四层:
最内层:SAP业务对象内核层,包含对象本身的内部数据结构及标准设定
整合层:包含对象的业务逻辑
接口层:提供该业务对象类型的外部访问接口,包括属性、方法、BAPI方法、事件等
访问层:支持对业务对象数据访问的具体技术,RFC/JCO等
3、业务对象仓库BOR,是SAP业务对象类型和相关BAPI组织中心。
4、业务对象组件:SAP对象的接口、属性、方法、事件
接口:特殊的业务对象类型,本身不能生成对象实例
关键字段:唯一确定一个业务对象类型的实例
属性:业务对象的数据部分
方法:外界对业务对象进行访问的接口,BAPI是一种特殊的业务对象方法
事件:可通过事件触发工作流或任务