본문 바로가기

ABAP 물타기/Report

Lock Data



   DATABEGIN OF GT_MSG OCCURS 0,
        MSGID LIKE SMESG-ARBGB,    "Message ID
        MSGTY LIKE SMESG-MSGTY,    "Message Type
        MSGNR LIKE SMESG-TXTNR,    "Message Number
        MSGV1 LIKE SMESG-MSGV1,    "Message Parameter
        MSGV2 LIKE SMESG-MSGV2,    "Message Parameter
        MSGV3 LIKE SMESG-MSGV3,    "Message Parameter
        MSGV4 LIKE SMESG-MSGV4,    "Message Parameter
      END OF GT_MSG.
 

  DATA: tab_lines TYPE sy-tabix,
        lock_user(12),
        lock_key TYPE trdir-name.

  REFRESH gt_msg.

  CONCATENATE p_bukrs pv_canno INTO lock_key.

  CALL FUNCTION 'ENQUEUE_ESRDIRE'
    EXPORTING
      name           = lock_key
    EXCEPTIONS
      foreign_lock   = 1
      system_failure = 2
      OTHERS         = 3.

  CASE sy-subrc.
    WHEN 1.
      MOVE sy-msgv1 TO lock_user.

      PERFORM save_msg USING '04' 'E' '108'
                            '사용자 '
                            lock_user
                            '이(가) 이용중입니다.'
                            ' '.

    WHEN 2.
      MESSAGE a288(f5).
      LEAVE SCREEN.
  ENDCASE.




  FORM save_msg  USING    value(p_msgid)
                        value(p_msgty)
                        value(p_msgnr)
                        value(p_msgv1)
                        value(p_msgv2)
                        value(p_msgv3)
                        value(p_msgv4).
  gt_msg-msgid = p_msgid.
  gt_msg-msgty = p_msgty.
  gt_msg-msgnr = p_msgnr.
  gt_msg-msgv1 = p_msgv1.
  gt_msg-msgv2 = p_msgv2.
  gt_msg-msgv3 = p_msgv3.
  gt_msg-msgv4 = p_msgv4.
  APPEND gt_msg.
*
ENDFORM.                    " SAVE_MSG
 




  FORM put_msg .
*
  DATA: lv_cnt TYPE i.
*
  DESCRIBE TABLE gt_msg LINES sy-tfill.
  CHECK sy-tfill > 0.
* Message Initialize
  CALL FUNCTION 'MESSAGES_INITIALIZE'.
* Message Store
  LOOP AT gt_msg.
    lv_cnt = sy-tabix.
    CALL FUNCTION 'MESSAGE_STORE'
      EXPORTING
        arbgb = gt_msg-msgid
        msgty = gt_msg-msgty
        msgv1 = gt_msg-msgv1
        msgv2 = gt_msg-msgv2
        msgv3 = gt_msg-msgv3
        msgv4 = gt_msg-msgv4
        txtnr = gt_msg-msgnr
        zeile = lv_cnt.
  ENDLOOP.
*     Message Show
  CALL FUNCTION 'MESSAGES_SHOW'
    EXPORTING
      show_linno = ' '.

  LEAVE SCREEN.

ENDFORM.                    " PUT_MSG

'ABAP 물타기 > Report' 카테고리의 다른 글

NEWLINE (CL_ABAP_CHAR_UTILITIES=>NEWLINE)  (0) 2011.09.05
T-CODE & Report Table  (0) 2011.08.25
Long Text  (0) 2011.07.10
한글 출력 자리수 조정  (0) 2011.06.22
Modify Screen 1000  (0) 2011.01.19