2014년 10월 23일 목요일

[SAP] BAPI나 BDC 에러 로그를 팝업창으로 표시하기



DATA : BEGIN OF IT_DATA OCCURS 0,
       ICON(4),
       .......
       T_MSG      TYPE RS_T_MSG,   "에러 로그 저장용 필드 선언
       END OF IT_DATA.


* BAPI나 BDC에서 발생된 에러 로그를 저장한다.
DATA : LT_MSG  TYPE RS_T_MSG,
       LS_MSG  LIKE LINE OF LT_MSG.
 


REFRESH : LT_MSG.
LOOP AT RETURN.
  CLEAR : LS_MSG.
  LS_MSG-MSGTY = RETURN-TYPE.
  LS_MSG-MSGID = RETURN-ID.
  LS_MSG-MSGNO = RETURN-NUMBER.
  LS_MSG-MSGV1 = RETURN-MESSAGE_V1.
  LS_MSG-MSGV2 = RETURN-MESSAGE_V2.
  LS_MSG-MSGV3 = RETURN-MESSAGE_V3.
  LS_MSG-MSGV4 = RETURN-MESSAGE_V4.
  APPEND LS_MSG TO LT_MSG .
ENDLOOP. 

IT_DATA-T_MSG = LT_MSG.  

* ALV상의 더블클릭이나 HOTSPOT 이벤트에 팝업 표시 기능 추가
FORM ALV_DOUBLE_CLICK USING E_ROW     TYPE LVC_S_ROW
                            E_COLUMN  TYPE LVC_S_COL
                            ES_ROW_NO TYPE LVC_S_ROID.
  DATA : LS_DATA LIKE LINE OF IT_DATA.
  READ TABLE IT_DATA INDEX ES_ROW_NO-ROW_ID INTO LS_DATA.

  DATA: E_T_MSG  TYPE  RS_T_MSG,
        S_MSG LIKE LINE OF E_T_MSG,
        E_TXT(40) TYPE  C VALUE 'Error List',
        E_WITH_S_ON_EMPTY TYPE  RS_BOOL VALUE 'X',
        E_ONE_MSG_DIRECT  TYPE  RS_BOOL VALUE ' ',
        E_ONE_MSG_TYPE_S  TYPE  RS_BOOL VALUE 'X',
        I_S_EXIT_COMMAND  TYPE  BAL_S_EXCM.


  REFRESH : E_T_MSG.
  E_T_MSG = LS_DATA-T_MSG.

  CHECK E_T_MSG[] IS NOT INITIAL.
  CALL FUNCTION 'RSDC_SHOW_MESSAGES_POPUP'
    EXPORTING
      I_T_MSG           = E_T_MSG
      I_TXT             = E_TXT
      I_WITH_S_ON_EMPTY = E_WITH_S_ON_EMPTY
      I_ONE_MSG_DIRECT  = E_ONE_MSG_DIRECT
      I_ONE_MSG_TYPE_S  = E_ONE_MSG_TYPE_S
    IMPORTING
      E_S_EXIT_COMMAND  = I_S_EXIT_COMMAND.
ENDFORM.              


댓글 없음:

댓글 쓰기

참고: 블로그의 회원만 댓글을 작성할 수 있습니다.