ABAP DUMP ERROR 24시

SAP ALV(FUNCTION GROUP, event) 본문

[SAP]ABAP/ABAP 강의 SYNC

SAP ALV(FUNCTION GROUP, event)

이운형 2022. 7. 19. 10:18
반응형

FUNCTION GROUP => 1개 ERROR 발생시 전체 FUNCTION 실행 ERROR 발생.

// @OVERRIDE 실행시 하나 오류나면 EXCEPTION 떨어지는 오류와 비슷//

 

 

 

*LEFT OUTER JOIN 시 WHERE에 SPARS 아니라

꼭 JOIN ON 조건절에 넣어주자.

*&---------------------------------------------------------------------*
*& Form MATNR_F4
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM matnr_f4 .

  DATA : BEGIN OF ls_value,
           matnr TYPE mara-matnr,
           maktx TYPE makt-maktx,
           mtart TYPE mara-mtart,
           meins TYPE mara-meins,
           vpsta TYPE mara-vpsta,
           pstat TYPE   mara-pstat,
         END OF ls_value,

         lt_value LIKE TABLE OF ls_value.


  CLEAR   : ls_value.
  REFRESH : lt_value.

  SELECT a~matnr a~mtart a~meins a~vpsta a~pstat
         b~maktx
    INTO CORRESPONDING FIELDS OF TABLE lt_value
    FROM mara AS a
    LEFT OUTER JOIN makt AS b
      ON a~matnr = b~matnr
     AND b~spras = sy-langu.

  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
*     DDIC_STRUCTURE  = ' '
      retfield        = 'MATNR'        " 던져주는 FIELD명
*     PVALKEY         = ' '
      dynpprog        = sy-repid
      dynpnr          = sy-dynnr
      dynprofield     = 'SO_MATNR_LOW' " 화면 어디 FIELD 에다 SETTING을 할건지 == 앞에 VALUE-REQUEST FOR '요기요'
*     STEPL           = 0
      window_title    = 'MATERIAL LIST'
*     VALUE           = ' '
      value_org       = 'S'
*     MULTIPLE_CHOICE = ' '
*     DISPLAY         = ' '
*     CALLBACK_PROGRAM       = ' '
*     CALLBACK_FORM   = ' '
*     CALLBACK_METHOD =
*     MARK_TAB        =
* IMPORTING
*     USER_RESET      =
    TABLES
      value_tab       = lt_value
*     FIELD_TAB       =
*     RETURN_TAB      =
*     DYNPFLD_MAPPING =
    EXCEPTIONS
      parameter_error = 1
      no_values_found = 2
      OTHERS          = 3.
  IF sy-subrc <> 0.
* Implement suitable error handling here
  ENDIF.



ENDFORM.

 

 

 

*USING PARAMETER를 활용해서 함수 튜닝

 

*&---------------------------------------------------------------------*
*& Form MATNR_F4 튜닝
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM matnr_f4  USING PV_POSITION.

  DATA : BEGIN OF ls_value,
           matnr TYPE mara-matnr,
           maktx TYPE makt-maktx,
           mtart TYPE mara-mtart,
           meins TYPE mara-meins,
           vpsta TYPE mara-vpsta,
           pstat TYPE   mara-pstat,
         END OF ls_value,

         lt_value LIKE TABLE OF ls_value.


  CLEAR   : ls_value.
  REFRESH : lt_value.

  SELECT a~matnr a~mtart a~meins a~vpsta a~pstat
         b~maktx
    INTO CORRESPONDING FIELDS OF TABLE lt_value
    FROM mara AS a
    LEFT OUTER JOIN makt AS b
      ON a~matnr = b~matnr
     AND b~spras = sy-langu.

  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
*     DDIC_STRUCTURE  = ' '
      retfield        = 'MATNR'        " 던져주는 FIELD명
*     PVALKEY         = ' '
      dynpprog        = sy-repid
      dynpnr          = sy-dynnr
      dynprofield     = PV_POSITION " 화면 어디 FIELD 에다 SETTING을 할건지 == 앞에 VALUE-REQUEST FOR '요기요'
*     STEPL           = 0
      window_title    = 'MATERIAL LIST'
*     VALUE           = ' '
      value_org       = 'S'
*     MULTIPLE_CHOICE = ' '
*     DISPLAY         = ' '
*     CALLBACK_PROGRAM       = ' '
*     CALLBACK_FORM   = ' '
*     CALLBACK_METHOD =
*     MARK_TAB        =
* IMPORTING
*     USER_RESET      =
    TABLES
      value_tab       = lt_value
*     FIELD_TAB       =
*     RETURN_TAB      =
*     DYNPFLD_MAPPING =
    EXCEPTIONS
      parameter_error = 1
      no_values_found = 2
      OTHERS          = 3.
  IF sy-subrc <> 0.
* Implement suitable error handling here
  ENDIF.



ENDFORM.

 

se24 로 event 사용.

더블클릭과 툴바, 핫스팟은  자주사용. 

 

 implements 는 꼭 기존에 존재했던 definition의 이름을 사용해라.!

 

 

파라미터 변수 형태 알아내는 방법

 

1. 커서 올리고

2. parameter클릭

3. check 하기

여기서는 mm03을 이용해서 parameter 주솟값을 찾기 때문에 mm03을 이용!

더블클릭해서 cs03 으로 가길 원하면 cs03 을 이용하자.

 

반응형
Comments