arron99

saper

  博客中心 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 登录 ::
  515 随笔 :: 0 文章 :: 235 评论 :: 0 Trackbacks
Cached @ 2025/4/26 14:21:28Control ASP.skins_cogitation_controls_blogstats_ascx
<2006年11月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

留言簿(2)

随笔档案

文章档案

搜索

最新评论

阅读排行榜

评论排行榜

Cached @ 2025/4/26 14:21:28Control ASP.skins_cogitation_controls_singlecolumn_ascx

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.

分享按钮发布于: 2006-11-20 21:14 arron99 阅读(1000) 评论(1)  编辑 收藏

评论

# SAP资料-PA教材 2008-07-12 11:08 SAP99
完整的一个SAP培训系列教材,中文E文的都有部份,一共679多M,涉及SAP的多个模块

地址:http://www.sap99.com/Soft/VIP/200807/64.html

标题
姓名
主页
内容 
  登录  使用高级评论  Top 订阅回复  取消订阅
[使用Ctrl+Enter键可以直接提交]