`
xiang37
  • 浏览: 431775 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

BADI

阅读更多

BADI作为SAP的第三代用户出口,他的应用也越来越广泛,但如何找到合适的badi是许多abap程序员的困惑。我这里就介绍一下我个人的应用的经验,供大家参考。 
1、badi对象的信息存储在SXS_INTER, SXC_EXIT, SXC_CLASS 和SXC_ATTR 这四个表中(参见SECE包); 
2、sap程序都会调用cl_exithandler=>get_instance来判断对象是否存在,并返回实例;其实get_instance就是对上述几个表和他们的视图(V_EXT_IMP 和 V_EXT_ACT)进行查询和搜索。 
3、基于这个机理,我查用ST05来监控一个TCODE来跟踪,然后选择查找有关上述几个表和视图的操作,就可获得相关BADI。 
4、se18 查找接口,se19 实现接口就可以实现用户增强。
示例:用LE_SHP_DELIVERY_PROC控制跨月Cancel
METHOD IF_EX_LE_SHP_DELIVERY_PROC~CHANGE_DELIVERY_HEADER .
data : thismonth(2) type c.
data : wa_likp type line of SHP_LIKP_T.
data : wa_log type line of SHP_BADI_ERROR_LOG_T.
clear ct_log[],thismonth.
thismonth = sy-datum+4(2). "----->這一個月的月份
loop at it_xlikp into wa_likp.
check IS_V50AGL-WARENAUSG_STORNO ='X'."--->代表作GI cancel
if wa_likp-WADAT_IST+4(2) < thismonth.
wa_log-VBELN = cs_likp-vbeln.
wa_log-MSGTY = 'E'. "錯誤訊息
wa_log-MSGID = 'ZDN_ERROR'. "這一個class要自己建
wa_log-MSGNO = '001'.
append wa_log to ct_log. "Error log寫入
endif.
endloop.
ENDMETHOD.

BADI的实现步骤。
A.BADI定义
1.SE18。
2.输入要创建的BADI的名字,点击"Create"。
3.输入BADI的描述性文本,在"Interface"选项卡上输入接口的名字,也可以采用SAP建议的接口的名字。同时,BADI类也会被创建。
例如:对于BADI "ZTEST",SAP会建议"ZIF_EX_TEST"作为接口的名字,"ZCL_EX_TEST"作为类的名字。
4.保存BADI。
5.双击接口的名字,会跳转到Class Builder界面,在这里你可以定义接口的方法。
6.保存并激活接口。

B.在应用程序中调用BADI
1.声明一个BADI接口的参考引用变量。
例如:DATA exit_ref TYPE REF TO zif_ex_test.
2.调用类CL_EXITHANDLER的静态方法GET_INSTANCE,将返回一个请求对象的实例。
例如:
CALL METHOD CL_EXITHANDLER=>GET_INSTANCE
CHANGING instance = exit_ref。
3.现在你可以调用BADI的所有方法了

C.BADI实现
1.SE19。
2.输入BADI实现的名字,点击"Create"。
3.输入BADI定义的名字。
4.输入实现的描述性文本,在"Interface"选项卡上输入实现类的名字。可以采用SAP建议的名字。
例如:"ZIMPTEST",SAP会建议"ZCL_IM_IMPTEST"。
5.保存实现。
6.双击某一方法名会跳转到Class Builder界面,在这里你可以添加代码来重定义接口方法。
7.激活实现。

分享到:
评论

相关推荐

    SAP ABAP开发BADI与增强资料

    BADI(Business Add-In)和屏幕增强是ABAP开发中的关键概念,它们允许用户自定义和扩展标准SAP功能以满足特定业务需求。 **BADI简介** BADI是一种灵活的、面向对象的设计技术,它允许开发人员在不修改标准SAP代码的...

    SAP 开发 SD 相关的增强BADI.pdf

    企业客户在使用SAP SD模块的过程中,经常会遇到需要对标准流程进行个性化调整或功能扩展的情况,而SAP提供的BADI (Business Add-Ins) 正是用于实现这种业务增强的技术手段。 BADI是SAP开发中用于业务增强的一种技术...

    BADI-BADI介绍

    ### BADI概述 #### 定义与概念 BAdI(Business Add-In)是一种由SAP提供的增强技术,用于向现有的SAP应用程序中添加自定义的业务逻辑或功能。通过预定义的接口,BAdI允许开发人员在不修改原生SAP标准代码的基础上...

    SAP_ABAP_BADI_增强_开发

    详细讲述SAP ABAP的BADI增强的概述及使用。详细讲述SAP ABAP的BADI增强的概述及使用。详细讲述SAP ABAP的BADI增强的概述及使用。详细讲述SAP ABAP的BADI增强的概述及使用。详细讲述SAP ABAP的BADI增强的概述及使用。...

    SAP BADI开发示例

    SAP BADI开发示例 本文主要介绍了SAP BADI(Business Add-In)开发示例,具体来说是如何在MRP长期计划的物料清单评估TCode:MS04中增加一列,并在明细数据的ALVTree中进行显示。该列的值用交通指示灯进行标志。 ...

    什么是BADI_如何从SAP中查找BADI

    ### 什么是BADI以及如何从SAP中查找BADI #### BADI概念解析 BADI(Business Add-In)是SAP提供的一种增强技术,它基于ABAP Objects框架,旨在为用户提供一种灵活的方式来满足特定需求而无需修改标准SAP交付内容。...

    BADI资料 有截图

    【BADI(Business Add-In)简介】 BADI是SAP系统中的一个重要概念,它基于面向对象编程(OOPS)的概念,允许用户通过扩展标准功能来实现特定的业务需求。BADI提供了一种灵活的方式来定制SAP系统,而无需直接修改...

    BADI --实现步骤

    BADI 实现步骤 BADI(Business Add-In)是 SAP 提供的一种用户出口机制,允许用户在不修改 SAP 标准代码的情况下,实现自己的业务逻辑。BADI 的实现步骤可以分为两个部分:BADI 定义和在应用程序中调用 BADI。 ...

    SAP_ABAP_BADI

    SAP_ABAP_BADI SAP_ABAP_BADI 是 SAP 系统中的一种业务增强工具,BADi 全称为 Business Add-In,意为业务增强接口。它允许开发者对 SAP 系统进行业务增强和定制,使得系统更加灵活和实用。 从标题"SAP_ABAP_BADI...

    abap BADI的实现

    ### ABAP BADI的实现 在ABAP编程中,BADI(Business Add-In)是一种非常重要的扩展机制,它允许开发人员在不影响标准程序的情况下进行定制和扩展。BADI的使用非常广泛,在各种业务场景中都能见到它的身影。下面将...

    查找sap标准程序用户出口以及badi的方法

    本教程将深入讲解如何查找 SAP 标准程序中的用户出口和 BADI 实现方法,帮助开发者更高效地进行系统扩展。 一、用户出口(User Exits) 1. **理解用户出口**:用户出口是 SAP 为开发者预留的特定代码段,允许在...

    BADI作为SAP的第三代用户出口

    ### BADI作为SAP的第三代用户出口 #### BADI简介 在SAP系统中,BADI(Business Add-In)作为一种非常重要的扩展性机制被广泛应用于各个模块中。它为开发人员提供了一种灵活的方式来增强标准SAP应用的功能,而无需...

    如何使用BADI对XD01/XD02/XD03进行附加屏幕,字段的增强

    使用 BADI 对 XD01/XD02/XD03 进行附加屏幕,字段的增强 在 SAP 中,对客户主数据的屏幕增强是一个重要的需求。使用 Business Add-Ins (BADI) 可以实现对客户主数据的屏幕增强。本文档将详细介绍如何使用 BADI 对 ...

    BADI及UserEXIT查找工具

    ### SAP ABAP中的BADI与UserExit:查找与理解 #### 概述 在SAP ABAP编程领域,BADI(Business Add-In)与UserExit是两种常见的扩展点,允许客户自定义或增强标准SAP应用程序的功能。这些扩展点对于满足特定业务...

    BADI出口增强查找方法

    BADI出口增强查找方法 在SAP ABAP开发中,BADI(Business Add-In)是一种强大的增强机制,允许开发者在标准SAP系统中添加自定义逻辑。然而,在实际开发中,查找BADI出口增强的方法可能会遇到一些困难。这篇文章将...

    sap 增强 badi userexit customerexit

    SAP增强BADI UserExit CustomerExit SAP增强BADI UserExit CustomerExit是SAP系统中的一种扩展机制,通过预留的Form/Subroutine,allowing开发者在系统中添加自己的逻辑。这种机制分为三种类型:User Exits、...

    怎么写一本BADI程序

    如何写一本BADI程序,详细手顺

    BADI增强的应用示例视频(AVI格式)

    以下是我做过的BADI增强 可以作为一个简单的例子进行练习 AVI格式的视频

    SAP BADI出口增强的查找方法

    ### SAP BADI出口增强的查找方法详解 在SAP系统中,BADI(Business Add-Ins)是一种重要的自定义机制,允许用户在不修改标准软件的情况下进行扩展和定制。通过BADI,企业可以在特定的业务流程中插入自定义代码,以...

    BADI开发实例

    ### BADI开发实例详解 #### 一、BADI概述 BADI(Business Add-Ins)是SAP系统中一种非常重要的扩展机制,它允许开发者在不修改标准代码的前提下,为SAP应用程序添加自定义功能。BADI提供了一种标准化的方式来扩展...

Global site tag (gtag.js) - Google Analytics