现在的位置: 首页 > 综合 > 正文

SAP 高级应用开发 学习笔记 2 — BAPI

2012年12月18日 ⁄ 综合 ⁄ 共 2750字 ⁄ 字号 评论关闭

声明本文转自:http://blog.csdn.net/leechirslcc/article/details/4808294  谢谢原作者leechirslcc

 

BAPI: Business Application Programming Interfaces,业务应用编程接口,

作用:1、在SAP内部组件及非SAP组件之间的技术整合

2、业务数据交换

3、SAP通过该标准接口把整个系统链接为一个整体

4、BAPI是SAP中心组件R/3和ECC和BW系统入口之一

技术:1、基于RFC技术实现

         2、BAPI提供的整合扩展到了业务层面

         3、外部程序可以通过BAPI访问SAP系统中的业务对象、数据、应用

Business Object BO SAP业务对象代表的是实际世界的对象,比如一个采购订单、一个物料数据,包含业务数据,并描述了完整的业务过程。

SAP的面向对象架构通过业务组件、业务对象类型、BAPI等元素共同完成

每个SAP业务组件都提供相对独立的功能,其中包含业务对象类型、实例

业务过程或业务场景可以再一个业务组件内部或者跨模块/系统实现,跨系统的业务过程也称为分布式业务过程,其集成通过ALE技术实现

业务对象类型是业务对象的定义和描述,面向对象架构的实现基础,也就是SAP系统中的‘类’,它封装了业务功能和数据,一个业务对象即为一个业务实体,其中不仅包含业务对象本身的数据,还包含其功能的实现,根绝业务规则来组织数据和业务过程

业务对象的而整体架构包含四层:

l        最内层 SAP业务对象内核层,包含对象本身的内部数据结构及标准设定

l        整合层,包含对象的业务逻辑

l        接口层,提供该业务对象类型的外部访问接口,包括属性、方法、BAPI方法、事件等

l        外部访问层,支持对业务对象数据访问的具体技术,RFC/JCo/NCo等

业务对象仓库BOR,是SAP业务对象类型和相关BAPI组织中心。

业务对象仓库浏览器的事务代码是SW03

业务对象在业务对象浏览器中定义,业务对象创建器 SWO1

接口中仅定义属性和方法的名称,但不能包含具体实现

SAP业务对象不支持多重继承,即一个业务对象类型只能制定唯一的父类型,但一个对象可以实现多个接口

业务对象类型组件:

业务对象类型的构成包括:基本数据、组件2部分

业务对象组件:SAP对象的接口、属性、方法、事件

l        接口:特殊的业务对象类型,本身不能生成对象实例

l        关键字段:唯一确定一个业务对象类型的实例

l        属性:业务对象的数据部分

l        方法:外界对业务对象进行访问的接口,BAPI是一种特殊的业务对象方法

l        事件:可通过事件触发工作流或任务

通过T-CODE SWO1来浏览业务对象类型的组件

返回,双击方法GETDETAIL

对话:是否包含用户交互对话

同步:不设置则为异步,在工作流中,异步方法创建的任务必须包含至少一个终止事件

返回结果:设定方法将返回一个参数作为结果,在结果类型中设定值列表,只有同步方法才能设定返回结果

独立实例:不关联到特定物料的操作

返回点 【参数】

返回点  弹出代码

SAP BAPI

BAPI是在BOR中味SAP业务对象类型或接口类型定义的特殊方法,通过RFC支持的ABAP功能模块实现,和业务对象关联的RFM也称为BAPI功能模块,俗称BAPI

BAPI支持同步、异步的数据通信过程

通过基于RFC协议实现的BAPI接口,可以从应用层直接对SAP业务对象进行访问

BAPI不存在表现层,调用BAPI的第三方负责显示传入BAPI或BAPI返回数据

BAPI建立在RFC协议基础上,外部语言需要进行RFC调用,即通过外部RFC接口来调用BAPI

通过SAP业务连接器,还支持从Internet直接访问BAPI,可以从BAPI调用中创建XML文档,或者将入站XML文档转换为BAPI调用,实现SAP到Internet集成

集成:

l        集成SAP系统中已存在的业务应用及组件

l        集成已实施的SAP R/3、ECC、其他SAP系统

l        集成外部应用与SAP系统

l        网络应用集成,(SAP业务连接器和互联网应用组件)

l        BAPI作为系统业务数据导入、导出方式之一,应用于数据传输、ALE数据分布过程

BAPI查找:

l        从业务对象创建器查看BAPI

T-CODE :SWO1

显示-方法

绿色对号标记,表示该方法时通过BAPI实现的

BAPI方法实现方式是API function,对应一个BAPI功能模块

双击FM名称

l        通过BAPI浏览器查找BAPI

T-CODE: BAPI

许多业务对象类型都包含:GETLIST/ GETDETAIL/CREATEFROMDATA

BAPI对应的功能模块命名规则BAPI_<bo>_<method>

l        T-CODE: SE37

BAPI事务模型:ACID原则

l        完整性

l        一致性

l        独立性

l        持久性

BAPI内部则通常不包含COMMIT WORK和ROLLBACK WORK

多个BAPI操作需要遵循原则:

l        有更新、修改、删除一个业务对象实例,则对实例进行另外读取的操作的BAPI只能访问上一个COMMIT WORK 执行后的最新数据

l        不允许在一个LUW中创建一个新实例,然后就修改它

l        可以创建多个相同对象类型的不同实例

在BAPI内部,数据库更新操作必须通过同步或异步更新过程实现

BAPI内部也不触发新的LUW

内部程序代码不包含

CALL TRANSACTION

SUBMIT REPORT

SUBMIE REPORT AND RETURN

BAPI事务中的数据库提交和回滚:

l        必须通过调用SAP标准业务对象BapiService的BAPI方法bapiservice.transactioncommit和bapiservice.transactionrollback实现

l        RFM:bapi_transaction_commit和bapi_transaction_rollback实现

在外部调用bapiservice.transactioncommi方法前,外部程序调用BAPI并不触发数据库提交,RFC一旦建立,即外部程序登陆SAP系统后,就一直保持

BAPI调用:

l        本地调用

BAPI功能模块不包含异常处理参数,同过输出参数RETURN返回,该参数参照BAPIRETURN、BAPIRETURN1、BAPIRET1、BAPIRET2、BAPIRET2_FIX

l        远程调用

抱歉!评论已关闭.