클립보드 방식의 엑셀 업로드 함수(ALSM_EXCEL_TO_INTERNAL_TABLE) 오류

1. 문제점
– 특정 사용자 PC에서 엑셀파일 업로드 오류가 발생함.

2. 사용된 함수 : ALSM_EXCEL_TO_INTERNAL_TABLE

3. 오류발생 부분

 – 클립보드에 복사한 데이터를 excel_tab으로 가져오지 못함.

4. 해결방안
– 다른 함수로 대체 (TEXT_CONVERT_XLS_TO_SAP)

* Excel Upload 구조.

DATA: BEGIN OF GS_EXCEL,
        ZYEAR     TYPE ZCOT5445-ZYEAR,  " 연도.
        ZMONTH    TYPE ZCOT5445-ZMONTH, " 월.
        KUNNR     TYPE ZCOT5465-KUNNR,  " 고객.
        MATNR     TYPE ZCOT5465-MATNR,  " 상품.
        ECAMT(15),                      " 금액.
      END OF GS_EXCEL,
      GT_EXCEL LIKE TABLE OF GS_EXCEL.

  DATA:LV_FILE   LIKE  RLGRAP-FILENAME.
  DATA: LV_SUBRC TYPE SY-SUBRC.

  CALL FUNCTION 'WS_FILENAME_GET'
    EXPORTING
*      DEF_FILENAME     = L_FILE
*      DEF_PATH         = 'C:/'
      MASK             = ',*.*,*.*.'
      MODE             = 'O'             "-. O = Open.
      TITLE            = 'Select uploading excel file...'
    IMPORTING
      FILENAME         = LV_FILE
    EXCEPTIONS
      INV_WINSYS       = 01
      NO_BATCH         = 02
      SELECTION_CANCEL = 03
      SELECTION_ERROR  = 04.

  PERFORM FILE_READ TABLES GT_EXCEL
                     USING LV_FILE
                           'GT_EXCEL'
                  CHANGING LV_SUBRC.
*&---------------------------------------------------------------------*
*&      Form  FILE_READ
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM FILE_READ  TABLES PT_DATA LIKE GT_EXCEL
                 USING PV_FNAME
                       PV_TNAME
              CHANGING PV_SUBRC.

  TYPES TRUXS_T_TEXT_DATA(4096) TYPE C OCCURS 0.
  DATA: LS_TABLE_NAME(30),
        LWA_TEXT_DATA TYPE TRUXS_T_TEXT_DATA.

  FIELD-SYMBOLS <IT_FS> TYPE  STANDARD TABLE.

* Internal Table Assign
  CONCATENATE  PV_TNAME '[]' INTO LS_TABLE_NAME.
  ASSIGN (LS_TABLE_NAME) TO <IT_FS>.
  TRANSLATE PV_FNAME TO UPPER CASE.

  CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
    EXPORTING
      I_LINE_HEADER        = 'X'
      I_TAB_RAW_DATA       = LWA_TEXT_DATA
      I_FILENAME           = PV_FNAME
    TABLES
      I_TAB_CONVERTED_DATA = <IT_FS>
    EXCEPTIONS
      CONVERSION_FAILED    = 1
      OTHERS               = 2.

  IF SY-SUBRC <> 0.
    IF SY-SUBRC = 1 OR SY-TABIX EQ 2.
      MESSAGE I000 WITH '파일을 열 수 없습니다( 파일을 닫고 실행해 주세요 )' DISPLAY LIKE 'E'.
      PV_SUBRC = 4.
      EXIT.
    ELSE.
      PV_SUBRC = 4.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
  ELSE.
    CLEAR: PV_SUBRC.
  ENDIF.
  PT_DATA[] = <IT_FS>[].
ENDFORM.
Subscribe
Notify of
guest
2 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
버크하우스
9 years ago

잘 보고 가요. 좋은 하루 되세요. ^^

Thinkmaniac
9 years ago

네, 자주 놀러 오세요..