王家屋场


记录点滴!
<不要退缩,要勇往直前。作为一个男人,要拿出男人的勇气和豪情,学会挑战陌生和困难,挺过去你就是专家。>
  首页  :: 新随笔  :: 联系 :: 管理

BAPI学习笔记

Posted on 2009-05-21 21:05  Flying in sky  阅读(1334)  评论(0编辑  收藏  举报

     黄佳《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方法显示为绿色。