增强的BADI是:MB_DOCUMENT_BADI,特别要注意的是假如你是想在点击保存按钮的时候根据生成的凭证号,把某些数据更新到你的自建表的话,要用第二个方法MB_DOCUMENT_UPDATE,调试可以在第一个方法MB_DOCUMENT_BEFORE_UPDATE里面调试,特别注意不能在方法MB_DOCUMENT_BEFORE_UPDATE里面写COMMIT WORK,因为两个方法的参数完全一样,所以可以在第一个方法那边调试,然后直接把所有的代码拷贝到第二个,要注意第二个方法打断点是无法进去的,但是他确实有执行,所以说只能在第一个方法那边调试,下面赋一段写的代码吧:
method if_ex_mb_document_badi~mb_document_update.
data: gs_mseg type mseg.
data: gt_gdfh type table of ztmm_gdfh.
data: gs_gdfh type ztmm_gdfh.
data: gt_gdth type table of ztmm_gdth.
data: gs_gdth type ztmm_gdth.
data: gt_lxjj type table of ztmm_lxjjgl.
data: gs_lxjj type ztmm_lxjjgl.
data: gs_mkpf type mkpf.
if sy-tcode eq ‘MIGO’ or sy-tcode eq ‘MB11′.
read table xmkpf into gs_mkpf index 1.
loop at xmseg into gs_mseg.
if gs_mseg-bwart eq ‘201′ and gs_mseg-sobkz eq ” .
select single zgngo into gs_lxjj-zlxjjbm from marc where matnr eq gs_mseg-matnr and werks

本文介绍了如何利用BADI MB_DOCUMENT_BADI在SAP系统中进行增强,特别是在执行MIGO、MB11、MB1A等货物移动或收货操作后保存时的数据处理。关键在于在MB_DOCUMENT_BEFORE_UPDATE方法中调试,并将代码复制到MB_DOCUMENT_UPDATE方法,以确保在凭证保存后更新自定义表。注意避免在MB_DOCUMENT_BEFORE_UPDATE中使用COMMIT WORK,因为这会导致无法在第二个方法中设置断点并调试。

879

被折叠的 条评论
为什么被折叠?



