黄佳《SAP高级应用开发》,第二章BAPI和业务对象学习笔记,记录如下:
BAPI:Business Application Programming Interface.
一,SAP Business Object
A, SAP面向对象的架构:business component业务组件、business object type业务对象类型、BAPI
B, 业务对象类型即SAP系统中的类
C, 内核层:
整合层:对象的业务逻辑
接口层:属性、普通方法、BAPI方法、事件
外部访问层:
D, 业务对象仓库 Business Object Repository BOR
业务对象仓库浏览器:Tcode---SWO3
业务对象仓库创建器:Tcode---SWO1
E, 一个业务对象类型职能继承一个唯一的父类型,一个对象可以实现多个接口
二,业务对象类型的组建
A, 接口、关键字段、属性、方法、事件
B, 四种状态:modeled、Implemented、released、object
三,SAP BAPI
A, BAPI在业务对象类型中的实现方式是API Function。BAPI实质上是一种特殊的、支持远程调用的业务对象方法,并通过远程支持的功能模块实现。
B, BAPI作为建立在RFC协议之上的,通过业务对象进行组织的系统接口,是在业务级别而不是技术层次定义的。
C, BAPI的查找: 从业务对象创建器查看BAPI
通过BAPI浏览器查看BAPI Tcode:BAPI
D. BAPI的事务模型ACID
完整性(atomic)原则:事务调用时,其中所有数据库操作将全部完成或者全部撤销
一致性(consistent)原则:如果一次事务被超过一次的重复调用,且每次条用都实现相同的结果,那么其赏赐输入的数据不应隐性地影响新的调用结果
独立性(isolated)原则:两个事务不应该存在功能上的依赖关系
持久性(durable)原则
E, 在同一个LUW中,不能对同一个业务对象实例进行超过一次的重复操作,在BAPI内部数据库更新操作必须通过同步或者异步的更新过程实现,BAPI内部不能触发新的LUW,也不能包含Call transaction、submit report、submit reprot and return
F, BAPI事务中的数据库提交和回滚必须通过BAPIServices的BAPI方法BapiServices.TransactionCommit和Bapiservices.Transactionrollback实现
G, BAPI的功能模块不包含异常处理参数,其成功调用或者出错信息通过输出参数Return返回。Return参数可以BAPIRETURN、BAPIRETURN1、BAPIRET1、BAPIRET2等定义
五 业务对象的创建和BAPI的创建。
SWO1创建业务对象,注意其中状态的设置
BAPI:首先创建RFM,然后再SWO1中可以通过向导实现。在SWO1中BAPI方法显示为绿色。