SAP系统增强介绍【业务加载项BAdI】
BAdI全称Business AddIn,是基于面向对象模式的增强技术,SAP仅定义接口并在标准程序中调用接口中的方法,但这些方法中不含任何代码,通过创建继承该接口的类来实现方法中的处理逻辑,在标准程序运行时系统实例化类并执行相应方法中的逻辑。
BAdI分为两种类型,典型BAdI和新BAdI,其在标准程序中实例化执行时所使用的ABAP语句不一样,典型BAdI通过全局类CL_EXITHANDLER的静态方法GET_INSTANCE实例化,并使用关键字CALL METHOD执行实例中的方法,而新BAdI通过关键字GET BADI和CALL BADI进行实例化和方法调用。主要差异在于新BAdI可以由ABAP编译器检查语法错误,并且可以通过“使用位置列表”功能查询该BAdI在哪些程序中被调用。
下面以典型BAdI“BADI_FIAA_DOCLINES“为例介绍增强实施过程,通过该BAdI可以在资产折旧时基于成本中心类型(生产、销售、管理等)切换过账的折旧费科目。
查看BAdI接口定义
SAP菜单à工具àABAP工作台à实用程序à业务插件àSE18 – 定义
图 12 ‑28
双击方法CHANGE_DOCUMENT可进入该方法的定义画面,查看输入和输出参数等。
图 12 ‑29
为该接口创建实施类
SAP菜单à工具àABAP工作台à实用程序à业务插件àSE19 – 实施
图 12 ‑30
点击确认 按钮,在实施类中编写增强代码如 图 12‑31 。
验证增强结果
执行事务码AFAB运行折旧,生成会计凭证如 图 12‑32 。