• 2020.03.29 【ABAP随笔】- BUPT-BP客户界面保存时增加校验事件(DCHCK)


    前面的部分链接为:

    BP客户增强-详细

    BP客户增强说明

    该部分介绍在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类型错误时,不准保存。

    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_knb1INDEX 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

    点击保存:

     

    更多ABAP/SAP资料可以关注我的公众号谢谢。

  • 相关阅读:
    线程客户端Socket多客户端编程实例
    型文法文法文法的类型
    数据网络一键完成数据网络备份与恢复
    nullnullvc中加花
    sql文件Pro*C编程研究一:从.pc到.exe
    绑定函数【OpenGL】关于OpenGL中Bind函数的理解
    包删除Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream
    开源企业开源力量公开课第20期“拥抱开源,企业IT自主之路”
    剑侠情缘状态hdu 4558 剑侠情缘(dp, 西山居复赛1第2题)
    硬件问题关于创业
  • 原文地址:https://www.cnblogs.com/jxzhu/p/12595078.html
Copyright © 2020-2023  润新知