MIRO屏幕增强

  1. 业务场景
    MIRO需要新增客制化字段展示,或者RBKP有的字段,但是INVFO没有的字段展示,或者RBKP和INVFO都存在的字段。增强点:BADI_FDCB_SUBBAS04,由于该BADI只能实例化一次,如果已经实例化过,我们新建的BADI增强就不能激活,所以我们可以先SXC_EXIT查找BADI实例化的地方,
    在这里插入图片描述然后SXC_ATTR查看这两个实例化激活状态,如果FPIA_APP_FU_MM这个显示是激活状态,我们就必须先给它取消激活,才可以进一步激活我们创建的BADI
    在这里插入图片描述

  2. 效果图片
    我这里是RBKP存在的字段,在INVFO里面不存在
    在这里插入图片描述

  3. 增强结构
    ACMM_VENDOR_COMP在这里插入图片描述INVFO
    在这里插入图片描述

6.建一个函数组ZFG_MIRO
在这里插入图片描述
LZFG_MIROTOP

FUNCTION-POOL zfg_miro.                     "MESSAGE-ID ..

 5. INCLUDE LZFG_MIROD...                      " Local class definition

TABLES:invfo.
DATA: o_badi_fdcb_subbas04 TYPE REF TO if_ex_badi_fdcb_subbas04.
CONSTANTS exit_name_fdcb_subbas04 TYPE exit_def
                          VALUE 'BADI_FDCB_SUBBAS04'.

LZFG_MIROO01

*----------------------------------------------------------------------*
***INCLUDE LZFG_MIROO01.
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module GET_INSTANCE OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE get_instance OUTPUT.
  IF o_badi_fdcb_subbas04 IS INITIAL.

    CALL METHOD cl_exithandler=>get_instance_for_subscreens
      CHANGING
        instance                      = o_badi_fdcb_subbas04
      EXCEPTIONS
        no_reference                  = 1
        no_interface_reference        = 2
        no_exit_interface             = 3
        data_incons_in_exit_managem   = 4
        class_not_implement_interface = 5
        OTHERS                        = 6.

    IF sy-subrc <> 0.
*     MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*     WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.

  ENDIF.


* object created
  CHECK NOT o_badi_fdcb_subbas04 IS INITIAL.


* get data from main screen
  CALL METHOD o_badi_fdcb_subbas04->get_data_from_screen_object
    IMPORTING
      ex_invfo = invfo.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Module SCREEN_MODIFY OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE screen_modify OUTPUT.
  LOOP AT SCREEN.
    CASE sy-tcode.
      WHEN 'FB60' OR 'FB65' OR 'FB70' OR 'FB75'
         OR 'MIRO' OR 'MIRA' OR 'MIR7'.

        screen-input = 1.
      WHEN OTHERS.
        screen-input = 0.
    ENDCASE.
    MODIFY SCREEN.
  ENDLOOP.
ENDMODULE.

LZFG_MIROI01

*----------------------------------------------------------------------*
***INCLUDE LZFG_MIROI01.
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&      Module  RECEIVE_ACTUAL_DATA  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE receive_actual_data INPUT.
* object created
  CHECK NOT o_badi_fdcb_subbas04 IS INITIAL.

* get data from main screen
  CALL METHOD o_badi_fdcb_subbas04->get_data_from_screen_object
    IMPORTING
      ex_invfo = invfo.
ENDMODULE.
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_9001  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE user_command_9001 INPUT.
* object created
  CHECK NOT o_badi_fdcb_subbas04 IS INITIAL.

* put data to main screen
  CALL METHOD o_badi_fdcb_subbas04->put_data_to_screen_object
    EXPORTING
      im_invfo = invfo.
ENDMODULE.

屏幕:9001

PROCESS BEFORE OUTPUT.
* MODULE STATUS_9001.
  MODULE get_instance.
  MODULE screen_modify.

PROCESS AFTER INPUT.
  MODULE receive_actual_data.
  FIELD:invfo-ername.
  MODULE user_command_9001.
  1. BADI处理
    首先配置自己新建的屏幕在这里插入图片描述PUT_DATA_TO_SCREEN_OBJECT
   METHOD if_ex_badi_fdcb_subbas04~put_data_to_screen_object.
    me->if_ex_badi_fdcb_subbas04~invfo = im_invfo.
  ENDMETHOD.

GET_DATA_FROM_SCREEN_OBJECT

  METHOD if_ex_badi_fdcb_subbas04~get_data_from_screen_object.
    ex_invfo = me->if_ex_badi_fdcb_subbas04~invfo.
  ENDMETHOD.

相关推荐

  1. MIMO

    2024-01-23 10:42:01       54 阅读
  2. Massive MIMO技术

    2024-01-23 10:42:01       30 阅读
  3. windows server安装mino

    2024-01-23 10:42:01       25 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-23 10:42:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-23 10:42:01       101 阅读
  3. 在Django里面运行非项目文件

    2024-01-23 10:42:01       82 阅读
  4. Python语言-面向对象

    2024-01-23 10:42:01       91 阅读

热门阅读

  1. 【Delphi 基础知识 24】Format函数的用法

    2024-01-23 10:42:01       49 阅读
  2. Linux稀碎知识点 -- 挂载点和分区

    2024-01-23 10:42:01       57 阅读
  3. C Primer Plus(第六版)13.11 编程练习 第1题

    2024-01-23 10:42:01       52 阅读
  4. 20240122周报—redis收官,网络开搞

    2024-01-23 10:42:01       60 阅读
  5. 编程笔记 html5&css&js 052 CSS伪类

    2024-01-23 10:42:01       55 阅读
  6. NLP自然语言处理原理应用讲解

    2024-01-23 10:42:01       59 阅读
  7. 自然语言处理的发展

    2024-01-23 10:42:01       58 阅读
  8. krpano制作无水印360°场景方法

    2024-01-23 10:42:01       53 阅读
  9. P1697 [USACO18JAN] Lifeguards B 题解

    2024-01-23 10:42:01       47 阅读
  10. 面试题(三)mybatis

    2024-01-23 10:42:01       52 阅读
  11. #Uniapp: onReachBottom页面触底的事件回调

    2024-01-23 10:42:01       58 阅读
  12. ERC20 解读

    2024-01-23 10:42:01       59 阅读