SAP BADI

一、概述

可能很多业务顾问在项目中,总听到ABAPER说那个“扒皮(ABAP)逻辑不是那样的呀,搞不了呀”,但是很少有说BADI的,某次在一个财务的FS中看到,因此有了这篇笔记。
关于BADI,help.sap.com的解释:
SAP HELP
SAP HELP

二、BADI简介

BADI 是ABAP中面向对象的一种增强方式,他的调用方式是CALL METHOD (instance),(相关的TCODE是SE18和SE19),你可以通过EXIT_HANDLER这个单词查找BADI。
创建增强有多种方法,用CMOD可以创建,用SPRO也可以创建。网上有这段:
针对BADI的增强
1、BADI对象的信息存储在SXS_INTER, SXC_EXIT, SXC_CLASS 和SXC_ATTR 这四个表中。
2、SAP程序都会调用cl_exithandler=>get_instance来判断对象是否存在,并返回实例;其实get_instance就是对上述几个表和他们的视图(V_EXT_IMP 和 V_EXT_ACT)进行查询和搜索。
3、基于这个机理,我查用ST05来监控一个TCODE来跟踪,然后选择查找有关上述几个表和视图的操作,就可获得相关BADI。
4、se18 查找接口,se19 实现接口就可以实现用户增强。
T-CODE:CMOD
在程序中,查找BAdI的常用方法:
使用事务代码 SE84 :Repository information system
使用事务代码 SPRO: Customizing Guide, SAP标准发布的BAdI会在相关应用配置点中说明
在程序中搜索关键字CL_EXITHANDLER=>GET_INSTANCE或关键字GET BADI
在程序中搜索BAdI相关的接口名称,其接口的命规范通常为IF_EX_
事务代码CODE_SCANNER, 可指定在特定的package、program中所有相关的字符串

三、BAPI与BADI的区别

1. BAPI概述

BAPI是business application programming interface的缩写,是面向对象程序设计方法中的一组程序接口。它允许程序员通过SAP将第三方软件整合成R/3专有产品。为了完成一些特殊的商业任务,如上传交易数据等,R/3系统中内置了BAPI。

2. BAPI的作用

2.1 它实际上是一种特殊的Remote Function Modules (RFC)是为了提供使用外部程序来进行交易活动, BAPI是SAP以外程序访问SAP内部数据和程序的标准方式。接口调用方式:SAP RFC或者WEBSERVICE。
2.2 BAPI业务应用程序接口是一个标准化的开放接口。有了BAPI,用户可以通过浏览器、Exchange电子邮件来使用ERP系统,用户可以将这些软件模块与非ERP软件混合匹配使用。
2.3 BAPI是SAP提供的基于业务对象的函数,关键是它们处理的对象是R/3的业务相关对象,比如单据类销售订单,它们是一系列实体,RFC则是一种系统间通讯的方式(Remote Fcuntion Call),一个BAPI函数是一个RFC函数。
需要注意的是在T-CODE:SE11中创建的结构必须保存在开发类中,不可保存为本地对象。

3. 创建BAPI程序

3.1 定义BAPI Structure (Structure不能在BAPI中重复使用,因为一旦BAPI被释放,其Structure被冻结)。事务代码SE11。
3.2 创建FUNCTION MODULE。事务代码SE80。
每个BAPI必须有自己的Function Group,Function Group属性必须为RFC。
3.3 创建Business Object。事务代码SWO1。
3.4 使用BAPI WIZARD创建API Method。这样BAPI可以被外部程序调用。
3.5 Function Module符合BOR Method。
3.6 释放BAPI Function Module, 事务代码SE37、SWO1。
释放Business Object Type,释放BAPI作为BOR的一种Method。
业务顾问多了解开发的实现方式,可以更好的跟开发人员沟通,提高FS的可读性,减少因沟通过程中的理解错误造成的问题。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Joker Yin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值