BaPi学习

来源:互联网 发布:三星一体机扫描软件 编辑:程序博客网 时间:2024/05/30 02:53

BAPIBusiness Application Programming Interfaces,业务应用编程接口,

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

2、业务数据交换

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

4BAPISAP中心组件R/3ECCBW系统入口之一

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

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

        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-CODESWO1来浏览业务对象类型的组件

返回,双击方法GETDETAIL

 

 

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

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

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

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

 

返回点【参数】

 

返回点 弹出代码

 

 

SAP BAPI

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

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

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

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

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

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

 

集成:

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

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

l       集成外部应用与SAP系统

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

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

 

BAPI查找:

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

T-CODESWO1

显示-方法

 

绿色对号标记,表示该方法时通过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 WORKROLLBACK WORK

 

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

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

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

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

 

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

BAPI内部也不触发新的LUW

内部程序代码不包含

CALL TRANSACTION

SUBMIT REPORT

SUBMIE REPORT AND RETURN

 

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

l       必须通过调用SAP标准业务对象BapiServiceBAPI方法bapiservice.transactioncommitbapiservice.transactionrollback实现

l       RFMbapi_transaction_commitbapi_transaction_rollback实现

 

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

 

BAPI调用:

l       本地调用

BAPI功能模块不包含异常处理参数,同过输出参数RETURN返回,该参数参照BAPIRETURNBAPIRETURN1BAPIRET1BAPIRET2BAPIRET2_FIX

l       远程调用

原创粉丝点击