前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >BP客户增强-保存时增加校验事件(DCHCK)

BP客户增强-保存时增加校验事件(DCHCK)

作者头像
Tab Zhu
发布2022-06-27 17:03:09
1.1K0
发布2022-06-27 17:03:09
举报
文章被收录于专栏:TAB的coding生活TAB的coding生活

BUPT-BP客户界面保存时增加校验事件

(DCHCK)

我们对于前面的增强做一个限制,需求如下:

1.BP界面合作商类型字段为10,20,30时,才能维护合作商,99或为空时不允许维护;否则报错”当前合作商类型不允许维护合作商LIST”

2.BP界面合作商类型有值且不为99或空时,可以维护合作商LIST,合作商类型需要和BP界面的合作商类型一致;否则报错”存在合作商LIST的合作商类型和BP界面的合作商类型不一致”

1.创建保存前检查校验的函数

这时我们需要使用到事件(BUS7)-DCHCK;

在该事件中维护函数:

在函数组ZBP_FG_ENHENCEMENT中创建DCHCK函数(ZBP_BUPA_EVENT_DCHCK):

在BP事件中,可以使用BUS_MESSAGE_STORE函数来把你所想要报错的消息存储起来,当保存时,会去检测,有E类型错误时,不准保存。

代码语言:javascript
复制
FUNCTION zbp_bupa_event_dchck.
*"----------------------------------------------------------------------
*"*"本地接口:
*"----------------------------------------------------------------------
*参考:BUP_BUPA_EVENT_DCHCK 创建
  DATA lt_knb1 TYPE TABLE OF knb1.
*获取目前界面数据
  cvi_bdt_adapter=>get_current_bp_cc_data(
   EXPORTING
     i_table_name = table_name_knb1
   IMPORTING
     e_data_table = lt_knb1[]
 ).
  CHECK lt_knb1[] IS NOT INITIAL.
  READ TABLE lt_knb1 INTO DATA(ls_knb1) INDEX 1.

  DATA(lv_corporate_type) = ls_knb1-corporate_type.

  "1.BP界面合作商类型字段为10,20,30时,才能维护合作商,99或为空时不允许维护;
  IF ( lv_corporate_type IS INITIAL OR lv_corporate_type = '99' ) AND  ls_knb1-maintain_corpo = abap_on.
    "调用BUS_MESSAGE_STORE 来写入报错信息
    CALL FUNCTION 'BUS_MESSAGE_STORE'
      EXPORTING
        arbgb = 'ZBP'
        msgty = 'E'
        txtnr = 001.
  ELSE.
    "2.2.BP界面合作商类型有值且不为99或空时,可以维护合作商LIST,合作商类型需要和BP界面的合作商类型一致
    LOOP AT gt_ztbp001_info_buf[] TRANSPORTING NO FIELDS WHERE corporate_type NE lv_corporate_type.
      "调用BUS_MESSAGE_STORE 来写入报错信息
      CALL FUNCTION 'BUS_MESSAGE_STORE'
        EXPORTING
          arbgb = 'ZBP'
          msgty = 'E'
          txtnr = 002.
      EXIT.
    ENDLOOP.
  ENDIF.

ENDFUNCTION.

2.执行效果

当我们修改LIST内和BP界面合作商不一致时,然后保存数据

BP会报错:

然后我们修改BP界面合作商类型为99

点击保存:

如果想看之前相关BP增强的小伙伴可以点击下面链接:

英文

https://www.abaplog.com/Icerik/50/add-new-tab-to-bp

或者我的文章

S4 BP增强说明

BP客户增强-详细-干货

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-03-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 SAP TAB 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.创建保存前检查校验的函数
  • 2.执行效果
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档