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.

  • 相关阅读:
    程序格式
    java数据类型
    java-helloworld
    原生字符串
    字符串常见操作19个操作
    字符串函数操作
    【字符串切片操作和range函数用法】
    【字符串拼接之两种方法】
    C#中ref和out的区别使用
    c语言内部函数、外部函数多文件编译总结(vs2015编译环境)
  • 原文地址:https://www.cnblogs.com/byfhd/p/779706.html
Copyright © 2011-2022 走看看