http://blog.csdn.net/milkandcoffee/article/details/2612851
功能需求:验证country是CN的地址里的postal code不能以‘9’开头。
创建一个供应商,输入必输字段。回车进入debug模式。
设置断点Class Name: CL_EXITHANDLER
Method Name: GET_INSTANCE。
在断点处可以看到Badi的名字。
进入事务’SE18’,显示Badi ‘ADDRESS_CHECK’。
创建一个Badi的实现。
创建implement 'z_cust_postal_check'。
添加描述和filter。
双击编辑method 'ADDRESS_POSTAL_CHECK'。
在方法’ ADDRESS_POSTAL_CHECK’ 里加入如下代码,并激活。
IF sy-uname = '你的用户名'. BREAK-POINT. DATA: l_error TYPE addr_error. IF im_dialog_allowed IS NOT INITIAL. IF ch_adrc_struc-post_code1+0(1) = '9'. l_error-msg_id = 'Z1'. l_error-msg_type = 'E'. l_error-msg_number = 202. l_error-tablename = 'ADDR1_DATA'. l_error-fieldname = 'POST_CODE1'. APPEND l_error TO ch_t_error_table. ENDIF. ENDIF. ENDIF.
激活class,激活Badi implement。
测试Badi.