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

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

2. 사용된 함수 : ALSM_EXCEL_TO_INTERNAL_TABLE

3. 오류발생 부분

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





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

[#M_소스코드 예시|접기|

* 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.                    ” FILE_READ

_M#]





Subscribe
Notify of
guest
2 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
버크하우스
7 years ago

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

Thinkmaniac
7 years ago

네, 자주 놀러 오세요..