Do.

[MM] MM01 Screen 확장 후 Standard Toolbar가 실행되지 않을 때 본문

SAP/Module

[MM] MM01 Screen 확장 후 Standard Toolbar가 실행되지 않을 때

성공보다는 가치를.. 2022. 7. 28. 12:49
728x90

삽질을 너무하다가 찾아서 정리용으로 올림.

SPRO

출처 : https://blogs.sap.com/2019/09/23/customizing-material-master-adding-new-tabsub-screen-in-mm01-mm02-mm03/

 

Customizing Material Master – Adding new tab/sub-screen in MM01 / MM02 / MM03 | SAP Blogs

9 12 20,047 Introduction: In this blog post you will learn how to insert your own custom tab/sub-screen onto Material master transactions MM01 / MM02 / MM03. Let’s look the requirement and steps performed to achieve it. Requirement: To Add a new tab in

blogs.sap.com

 

 Link File 

Material_Master_Extension.pdf
2.20MB

 

 

아래는 PBO & PAI 참고용 

PROCESS BEFORE OUTPUT.
  MODULE get_dd07v.
  MODULE modify_screen.
  MODULE get_data.

PROCESS AFTER INPUT.

  CHAIN.
    FIELD mara-zz_end    MODULE get_end_txt.
    FIELD mara-zz_serial MODULE get_serial_txt.
    FIELD mara-zz_dev    MODULE get_dev_txt.
    FIELD mara-zz_subc   MODULE get_subc_txt.
    FIELD mara-zz_rkit   MODULE get_rkit_txt.
  ENDCHAIN.

  MODULE modify_data.

 

[ PBO ]

*&---------------------------------------------------------------------*
*& Module DISABLE_FIELDS OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE modify_screen OUTPUT.

  LOOP AT SCREEN.
    CASE sy-tcode.
      WHEN 'MM01' OR 'MM02'.
        IF screen-group1 = 'GR1'.
          screen-input = 1.
          MODIFY SCREEN.
        ENDIF.
      WHEN 'MM03'.
        IF screen-group1 = 'GR1'.
          screen-input = 0.
          MODIFY SCREEN.
        ENDIF.
      WHEN OTHERS.
    ENDCASE.
  ENDLOOP.

ENDMODULE.
*&---------------------------------------------------------------------*
*& Module GET_DATA OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE get_data OUTPUT.
  DEFINE $_get_text.
    IF &1 IS NOT INITIAL.
      READ TABLE gt_dd07v WITH KEY domname = &2
                                   domvalue_l = &1.
      IF sy-subrc = 0.
        &3 = gt_dd07v-ddtext.
      ENDIF.
    ENDIF.
  END-OF-DEFINITION.

  DATA:
    ls_0900 TYPE zmms9000.

  CALL FUNCTION 'MARA_GET_SUB'
    IMPORTING
      wmara = mara
      xmara = *mara
      ymara = lmara.

  CASE sy-tcode.
    WHEN 'MM03'.

      "-- Get Extended Data
      SELECT SINGLE *
        FROM mara
        INTO CORRESPONDING FIELDS OF ls_0900
       WHERE matnr = mara-matnr.

      MOVE-CORRESPONDING ls_0900 TO mara.

    WHEN OTHERS.
  ENDCASE.

  "-- Get Text
  $_get_text: mara-zz_end    'ZD_END'     gv_end_t,
              mara-zz_serial 'ZD_SERIAL'  gv_serial_t,
              mara-zz_dev    'ZD_DEV'     gv_dev_t,
              mara-zz_subc   'ZD_SUBC'    gv_subc_t,
              mara-zz_rkit   'ZD_RKIT'    gv_rkit_t.

  CALL FUNCTION 'MARA_SET_SUB'
    EXPORTING
      wmara = mara.

ENDMODULE.
*&---------------------------------------------------------------------*
*& Module GET_DD07V OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE get_dd07v OUTPUT.

  IF gt_dd07v[] IS INITIAL.

    DATA:
      r_dname TYPE RANGE OF domname.

    r_dname = VALUE #( ( sign = 'I' option = 'EQ' low = 'ZD_END'   )
                       ( sign = 'I' option = 'EQ' low = 'ZD_SERIAL')
                       ( sign = 'I' option = 'EQ' low = 'ZD_DEV'   )
                       ( sign = 'I' option = 'EQ' low = 'ZD_SUBC'  )
                       ( sign = 'I' option = 'EQ' low = 'ZD_RKIT'  ) ).

    SELECT *
      FROM dd07v
      INTO TABLE gt_dd07v[]
      WHERE domname IN r_dname.
  ENDIF.

ENDMODULE.

[ PAI ]

*&---------------------------------------------------------------------*
*&      Module  MODIFY_DATA  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE modify_data INPUT.

  CALL FUNCTION 'MARA_SET_SUB'
    EXPORTING
      wmara = mara.

ENDMODULE.
*&---------------------------------------------------------------------*
*&      Module  SET_PARAM  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE set_param INPUT.
  CLEAR kz_ein_programm.
  rmmzu-okcode = sy-ucomm.
  CLEAR t130m-aktyp.
ENDMODULE.
*&---------------------------------------------------------------------*
*&      Module  GET_ZZ_END_TXT  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE get_end_txt INPUT.

  IF mara-zz_end IS NOT INITIAL.
    READ TABLE gt_dd07v WITH KEY domname = 'ZD_END'
                                 domvalue_l = mara-zz_end.
    IF sy-subrc = 0.
      gv_end_t = gt_dd07v-ddtext.
    ENDIF.
  ENDIF.

ENDMODULE.
*&---------------------------------------------------------------------*
*&      Module  GET_SERIAL_TXT  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE get_serial_txt INPUT.

  IF mara-zz_serial IS NOT INITIAL.
    READ TABLE gt_dd07v WITH KEY domname = 'ZD_SERIAL'
                                 domvalue_l = mara-zz_serial.
    IF sy-subrc = 0.
      gv_serial_t = gt_dd07v-ddtext.
    ENDIF.
  ENDIF.

ENDMODULE.
*&---------------------------------------------------------------------*
*&      Module  GET_DEV_TXT  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE get_dev_txt INPUT.
  IF mara-zz_dev IS NOT INITIAL.
    READ TABLE gt_dd07v WITH KEY domname = 'ZD_DEV'
                                 domvalue_l = mara-zz_dev.
    IF sy-subrc = 0.
      gv_dev_t = gt_dd07v-ddtext.
    ENDIF.
  ENDIF.

ENDMODULE.
*&---------------------------------------------------------------------*
*&      Module  GET_SUBC_TXT  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE get_subc_txt INPUT.
  IF mara-zz_subc IS NOT INITIAL.
    READ TABLE gt_dd07v WITH KEY domname = 'ZD_SUBC'
                                 domvalue_l = mara-zz_subc.
    IF sy-subrc = 0.
      gv_subc_t = gt_dd07v-ddtext.
    ENDIF.
  ENDIF.

ENDMODULE.
*&---------------------------------------------------------------------*
*&      Module  GET_RKIT_TXT  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE get_rkit_txt INPUT.
  IF mara-zz_rkit IS NOT INITIAL.
    READ TABLE gt_dd07v WITH KEY domname = 'ZD_RKIT'
                                 domvalue_l = mara-zz_rkit.
    IF sy-subrc = 0.
      gv_rkit_t = gt_dd07v-ddtext.
    ENDIF.
  ENDIF.

ENDMODULE.
728x90

'SAP > Module' 카테고리의 다른 글

[FI] 원전표 및 파샬전표 잔액 구하기  (0) 2023.04.05
[N] 전표 Display  (0) 2023.02.20
[CO] K9R* 로 시작하는 테이블 찾기  (0) 2023.02.20
[MM] 자재마스터 View 조회 Function  (0) 2022.11.29
[PP] 계획오더 변경(HANA)  (0) 2022.11.23