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.

댓글