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.
相关连接
http://blog.csdn.net/CompassButton/archive/2006/09/16/1230344.aspx
http://blog.csdn.net/CompassButton/archive/2006/09/16/1230614.aspx
http://blog.csdn.net/compassbutton/archive/2006/08/07/1032686.aspx
http://blog.csdn.net/compassbutton/archive/2006/08/07/1032510.aspx
分享到:
相关推荐
### 什么是BADI以及如何从SAP中查找BADI #### BADI概念解析 BADI(Business Add-In)是SAP提供的一种增强技术,它基于ABAP Objects框架,旨在为用户提供一种灵活的方式来满足特定需求而无需修改标准SAP交付内容。...
SAP提供了事务代码SE18来查找和激活BADI。在SE18中,你可以输入BADI的关键字或描述,系统将显示相关的BADI列表。然后,你可以查看BADI的接口定义,理解其方法和数据元素,最后在SE24中创建新的实现类来编写自己的...
本文将详细介绍如何在SAP系统中查找和利用BADI出口增强,特别是通过SE80事务代码进行的具体步骤。 #### 1. 使用SE80事务代码查看程序包 首先,登录到SAP系统,输入事务代码SE80,进入程序包视图。在SE80的主界面上...
本教程将深入讲解如何查找 SAP 标准程序中的用户出口和 BADI 实现方法,帮助开发者更高效地进行系统扩展。 一、用户出口(User Exits) 1. **理解用户出口**:用户出口是 SAP 为开发者预留的特定代码段,允许在...
#### 查找BADI与UserExit的工具 为了有效地查找和管理BADI与UserExit,SAP提供了多种工具和技术。其中一种方法是通过编写ABAP程序,如示例报告“ZPZTEST”,来搜索特定事务代码下可用的BADI和UserExit。这种程序...
SAP增强查找工具程序 SAP增强查找工具程序是基于ABAP编程语言开发的一种查找工具程序,旨在帮助SAP系统管理员和开发者快速查找各种类型的增强工具程序。该工具程序可以根据不同的搜索条件和scope criteria来查找...
3. 查找BADI可以通过SE38工具进行,需要知道相关的程序名称,例如SAPLMIGO,这是MIGO程序的名称。 4. CL_EXITHANDLER是SAP系统中用于管理程序退出点的类,可以通过对它的全局搜索来找到相关的BADI实现。 5. 实现...
### SAP如何查找BADI 在SAP系统中,BADI(Business Add-In)是一种非常重要的扩展机制,允许用户自定义业务逻辑而不修改标准SAP代码。对于开发人员来说,了解如何快速有效地查找与特定事务代码或功能模块相关的BADI...
使用SE24查找BADI - **步骤**: - 在SE24中打开类对象`CL_EXITHANDLER`。 - 在其方法`GET_INSTANCE`的第14行设置断点。 - 运行相关的事务代码。 - 当BADI被触发时,会进入`GET_INSTANCE`方法。 - 参数`EXIT_...
"ZUSEREXIT_SAP增强查找"指的是在ABAP编程环境中寻找和利用SAP提供的增强点,以便在不修改标准代码的情况下定制系统行为。这通常涉及到事务代码、程序的查找和应用,以满足特定业务需求。 SAP增强主要包括以下几种...
然而,在实际开发中,查找BADI出口增强的方法可能会遇到一些困难。这篇文章将详细介绍BADI出口增强的查找方法,并提供了详细的操作步骤。 首先,需要在SE80中查看程序包,并在Repository Information System下查找...
3. 第三代BADI:第三代BADI是SAP提供的第三代的用户出口,它的调用方式是CALL METHOD (instance),〔相关的TCODE是SE18和SE19〕,你可以通过EXIT_HANDLER这个单词查找BADI。 三、BADI的应用场景 BADI广泛应用于SAP...
SAP增强查找的知识点涵盖了SAP系统中用户扩展功能的方法与技术,从最初的源代码增强到最新的Switch Framework,各种增强方式都有其独特的应用场景和技术要求。 第一代增强基于源代码,是最早期的增强方法,需要直接...
BADI 的实现步骤可以分为两个部分:BADI 定义和在应用程序中调用 BADI。 BADI 定义 1. 使用事务代码 SE18 创建 BADI,输入要创建的 BADI 的名字,点击“Create”。 2. 输入 BADI 的描述性文本,在“Interface”...
1. **查找BADI** - 使用事务码SE24进入ABAP开发环境。 - 在对象类型中输入类名`CL_EXITHANDLER`,点击显示按钮。 - 在`CL_EXITHANDLER`类中找到方法`GET_INSTANCE`,并在其中设置断点于函数模块`CALL METHOD CL_...
在SAP系统中,管理和优化业务流程是至关重要的,而SAP增强查找工具正是为了这一目的而设计的。这个工具允许用户通过一系列选择参数来搜索和查找SAP系统中的各种增强点,包括ABAP程序、函数模块、用户出口、业务事件...
通过SPRO->IMG查找用户出口 通过开发类查找用户出口 用户出口子程序所能使用的数据变量 VA01增强示例 第二代:基于函数出口增强(Function) SMOD与CMOD的区别 查找出口函数 根据出口函数查找对应的出口对象 出口...
- 查找E类(Function Exits):在SAP发布的版本中,通过调用`CALL CUSTOMER-FUNCTION`找到函数模块。 - C类(GUI Codes):查看区域菜单和工作菜单栏的增强。 - S类(Screens):通过`CALL CUSTOMER-SCREEN`找到...