SAP Enhancement系列:Badi

来源:互联网 发布:linux 竖线 编辑:程序博客网 时间:2024/05/16 00:10

功能需求:验证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.