SAP Enhancement系列:Badi

功能需求:验证country是CN的地址里的postal code不能以‘9’开头。

创建一个供应商,输入必输字段。回车进入debug模式。

SAP Enhancement系列:Badi_第1张图片

设置断点Class Name     CL_EXITHANDLER

                Method Name  GET_INSTANCE

SAP Enhancement系列:Badi_第2张图片

在断点处可以看到Badi的名字。

SAP Enhancement系列:Badi_第3张图片

进入事务’SE18’,显示Badi ADDRESS_CHECK’。

SAP Enhancement系列:Badi_第4张图片

创建一个Badi的实现。

SAP Enhancement系列:Badi_第5张图片

创建implement 'z_cust_postal_check'。

SAP Enhancement系列:Badi_第6张图片

添加描述和filter。

SAP Enhancement系列:Badi_第7张图片

双击编辑method 'ADDRESS_POSTAL_CHECK'。

SAP Enhancement系列:Badi_第8张图片

在方法’ 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.

 

SAP Enhancement系列:Badi_第9张图片

 

激活class,激活Badi implement。

SAP Enhancement系列:Badi_第10张图片

 

测试Badi.

SAP Enhancement系列:Badi_第11张图片

你可能感兴趣的:(SAP)