BADI应用实例

 

1.定义BADI
   1) T-Code:  SE18     Business Add-In Define.

   2) 输入要创建的BADI的名字,点击"Create"。

   3) 输入BADI的描述性文本,在"Interface"选项卡上输入接口的名字,也可以采用SAP建议的接口的名字。同时,BADI类也        会被创建。

     例如:对于BADI "ZTEST",SAP会建议"ZIF_EX_TEST"作为接口的名字,"ZCL_EX_TEST"作为类的名字。

   4) 保存BADI。

   5) 双击接口的名字,会跳转到Class Builder界面,在这里你可以定义接口的方法。

   6) 保存并激活接口。

2.实现BADI
   1) T-Code:  SE19     Business Add-In Implementation
   2.输入BADI实现的名字,点击"Create"。
   3.输入BADI定义的名字。
   4.输入实现的描述性文本,在"Interface"选项卡上输入实现类的名字。可以采用SAP建议的名字。

    例如:"ZIMPTEST",SAP会建议"ZCL_IM_IMPTEST"。

   5.保存实现。

   6.双击某一方法名会跳转到Class Builder界面,在这里你可以添加代码来重定义接口方法。

   7.激活实现。

 

 

3. 程序中调用BADI

 1)先用类型参照引用出要调用的BADI
 
 2)实例化BADI
 
 3)实例化后就可以任意调用BADI 中的方法了。


REPORT  ZZW_BAPI_01                                                 .

data exit type ref to ZIF_EX_ZW_BD_TEST.


call method cl_exithandler=>get_instance
     changing
        instance = exit.


call method exit->Z_ZW_01.

 

示例:用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后运行有什么效果.请知道的朋友发言

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值