下面是详细步骤,跟着我的路一步步走就OK. 一.SE24-> 输入:CL_EXITHANDLER->双击GET_INSTANCE进入程序打断点。如图: 二.打开新窗口,进入业务要做增强的代码(MM01),它会自动跳出debug’的界面,点击EXIT_NAME,就会出现BADI的名字,再按F8(多次)会自动跳转到业务操作,把这期间的BADI都记录下来。 跳转到业务页面如图:要选择 销售:销售组织数据1,然后填好工厂、销售组织、以及分销渠道的内容点击√。 得到的各种步骤的BADI。 TAXKM/ CT_SALES_TAX
输入MM01的BADI: BADI_SCREEN_LOGIC_RT W_RETAILSYSTEM_IDENT BADI_MATN1
选择视图时 BADI_MATERIAL_OD ALV_SWITCH_GRID_LIST
选择视图之后: BADI_MATERIAL_OD BADI_MATERIAL_REF
三.找到合适的BAID ,我们先看看要增强的字段是什么名称(后面找BADI,必须会要用到),如图:字段名称是:TAXKM, 含义名称是:销项税。 四.根据第二步找到的BADI ,到SE18进行筛选。 短文本:客户定义默认数据,和我们的业务目的是相似的。
点进方法CREATE_MATERIAL,看看具体的参数。再根据英文解释Sales Taxes for Material(物料销售税)可以找到CT_SALES_TAX的方法参数。 我们进参数CT_SALES_TAX的参考类型看看
可以看到这个参考类型是和MM01中的销项税的参考类型是一致的,那么我们可以确定这就是我们要找的方法BADI_MATERIAL_REF 中的CREATE_MATERIAL (小技巧,寻找BADI的时候如这个在给字段一个初始的默认值。那么可以先找到这个字段对应的字段名,然后根据参数中的描述和字段名去搜)
五.找到了BDAI 方法了,那么怎么实现呢,点击实施—>创建
填写好实施名称:
给CT_SALES_TAX 表中的字段 TAXKM 赋值为零,然后激活
实施处,再次激活: 六.完成之后,看看增强的效果,进入MM01,组织级别选择好销售组织数据1. 我们是为了测试才做这个增强,所以要把实施取消激活,在用的时候就不会被调用。 七.完成增强之后,要把增强记录在案,在什么事务代码,哪个位置,写了叫什么名字的增强,增强的代码和目的是什么都记录在案。
增强的BADI名字:BADI_MATERIAL_REF 实施名称:ZBADI_LIMF001 实施短文本(目的):MM01物料销售税默认填写为0 实施代码:
IF SY-UNAME ='LIMF' . CT_SALES_TAX = VALUE #( ( TAXKM = '0') )."新语法赋值 ENDIF.增强的前台表现 位置:MM01,销售组织数据1,销项税 字段名:TAXKM
总结:增强的难点在于找,需要懂一些英文,更加方便你找BADI。也可通过对比参考字段来确定增强点。多找找,多试试就好了 。