zoukankan      html  css  js  c++  java
  • 如何从SAP中查找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.

    5、补充7.00版后badi的几个处理变化

    • 以前的CL_EXITHANDLER=>GET_PROG_AND_DYNP_FOR_SUBSCR被CL_ENH_BADI_RUNTIME_FUNCTIONS=>GET_PROG_AND_DYNP_FOR_SUBSCR 代替.
    • 以前的 PUT_DATA_TO_SCREEN和GET_DATA_FROM_SCREEN不在需要。用户可以创建自己的数据传输函数,通过CALL BADI来调用.
    •   用户也不需要调用CL_EXITHANDLER=>SET_INSTANCE_FOR_SUBSCREENS 和 CL_EXITHANDLER=>GET_INSTANCE_FOR_SUBSCREENS函数. These methods are now unnecessary as they only place the BAdI reference in a temporary storage.
      SET_INSTANCE_FOR_SUBSCREENS is no longer necessary.
      GET_INSTANCE_FOR_SUBSCREENS can, if necessary, be replaced by GET BADI.

    相关连接
    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

  • 相关阅读:
    25号了
    9月特别日程
    26日 晴
    8月22日 出游时间更改
    雷雨过后
    28日 多云
    080826 小雨(补记)
    080822 阴
    27日 晴
    IOS 5 ARC机制 (一)
  • 原文地址:https://www.cnblogs.com/xiaomaohai/p/6157506.html
Copyright © 2011-2022 走看看