MIGO抬头屏幕增强

22 篇文章 0 订阅
MIGO抬头屏幕增强
一、增强描述
  1. 需要再进行物料移动的时候在MIGO抬头加自定义的字段
二、增强步骤
  1. 创建增强数据表和增强结构

    • 创建增强数据存储表

      在这里插入图片描述

    • 创建增强数据结构

      在这里插入图片描述

  2. 创建增强屏幕

    • 新建Function Group,定义全局变量

      在这里插入图片描述

    • 创建数据处理函数

      • ZMM_H_GET_DATA(抬头:从屏幕获取数据)

        在这里插入图片描述

        在这里插入图片描述

      • ZMM_H_SET_DATA(抬头:输出数据到屏幕)

        在这里插入图片描述

        在这里插入图片描述

      • ZMM_UPDATE_DATA(抬头/行项目:更新数据到数据库)

        外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

        在这里插入图片描述

        在这里插入图片描述

      • ZMM_SET_GOACTION(抬头/行项目:设置屏幕Action Code)

        在这里插入图片描述

        在这里插入图片描述

  3. 创建抬头增强屏幕9001

    • 创建屏幕

      在这里插入图片描述

    • 创建屏幕字段,屏幕字段名可以根据字典建立

      在这里插入图片描述

    • 创建PBO处理逻辑

      在这里插入图片描述

  4. 创建BADI实施

    • SE19 创建BADI实施

      在这里插入图片描述

      在这里插入图片描述

      在这里插入图片描述

    • 新增实施类属性

      在这里插入图片描述

      在这里插入图片描述

    • IF_EX_MB_MIGO_BADI~INIT

        METHOD if_ex_mb_migo_badi~init.
          APPEND gf_class_id TO ct_init.
        ENDMETHOD.
      
    • IF_EX_MB_MIGO_BADI~RESET

        METHOD if_ex_mb_migo_badi~reset.
          CLEAR: is_head,
                 g_no_input,
                 g_cancel.
        ENDMETHOD.
      
    • IF_EX_MB_MIGO_BADI~POST_DOCUMENT

      METHOD if_ex_mb_migo_badi~post_document.
      
        IF is_head IS NOT INITIAL.
          DATA: wa_head TYPE zsmm_h_migo01.
      
          wa_head-mandt = sy-mandt.
          wa_head-mblnr = is_mkpf-mblnr.
          wa_head-mjahr = is_mkpf-mjahr.
          wa_head-zzkey = is_head-zzkey.
          wa_head-zztxt = is_head-zztxt.
      
          CALL FUNCTION 'ZMM_UPDATE_DATA' IN UPDATE TASK
            EXPORTING
              i_head = wa_head.
        ENDIF.
      
      ENDMETHOD.
      
    • IF_EX_MB_MIGO_BADI~MODE_SET

        METHOD if_ex_mb_migo_badi~mode_set.
      *------------------------------------------------*
          " i_action:
          " A01 = Goods receipt
          " A02 = Return delivery
          " A03 = Cancellation
          " A04 = Display
          " A05 = Release GR bl.st.
          " A06 = Subsequent deliv.
          " A07 = Goods issue
          "
          " i_refdoc:
          " R01 = Purchase order
          " R02 = Material document
          " R03 = Delivery note
          " R04 = Inbound delivery
          " R05 = Outbound delivery
          " R06 = Transport
          " R07 = Transport ID code
          " R08 = Order
          " R09 = Reservation
          " R10 = Other GR
      *------------------------------------------------*
          IF i_action = 'A03' OR i_action = 'A04' .
            g_no_input = abap_true.
          ENDIF.
          IF i_action = 'A03'.
            g_cancel = abap_true.
          ENDIF.
      
          CALL FUNCTION 'ZMM_SET_GOACTION'
            EXPORTING
              i_goaction = i_action.
              
        ENDMETHOD.
      
    • IF_EX_MB_MIGO_BADI~STATUS_AND_HEADER

      METHOD if_ex_mb_migo_badi~status_and_header.
        IF is_gohead-mblnr IS NOT INITIAL
          AND is_gohead-mjahr IS NOT INITIAL
          AND is_head IS INITIAL.
      
          SELECT SINGLE *
            FROM ztmm_h_migo01
            INTO is_head
            WHERE mblnr = is_gohead-mblnr
            AND mjahr = is_gohead-mjahr.
        ENDIF.
      ENDMETHOD.
      
    • IF_EX_MB_MIGO_BADI~PBO_HEADER

       METHOD if_ex_mb_migo_badi~pbo_header.
         IF gf_class_id = i_class_id.
           CALL FUNCTION 'ZMM_H_SET_DATA'
             EXPORTING
               i_input = is_head.
           e_cprog = 'SAPLZMM_G_001'.      "'SAPL' + 'FG Name'
           e_dynnr = '9001'.
           e_heading = 'Header Addition1'(001).
         ENDIF.
       ENDMETHOD.
      
    • IF_EX_MB_MIGO_BADI~PAI_HEADER

      METHOD if_ex_mb_migo_badi~pai_header.
        DATA: wa_head TYPE zsmm_h_migo01.
      
        CALL FUNCTION 'ZMM_H_GET_DATA'
          IMPORTING
            e_output = wa_head.
      
        is_head = wa_head.
      ENDMETHOD.
      
  5. 验证效果

    • 增强前

      在这里插入图片描述

    • 增强后

      在这里插入图片描述

  • 8
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值