반응형
안녕하세요 어제 말씀드린 것 처럼 오늘은 다운로드의 반대로 업로드하는 Function를 정리해보겠습니다.
기능 설명
"GUI_UPLOAD" Function는 파일을 로컬 시스템에서 서버로 업로드할 때 사용하는 함수 모듈입니다. 이 함수는 텍스트 파일, CSV 파일, 또는 Excel 파일과 같은 다양한 파일 형식을 업로드할 수 있습니다. 특히 GUI_UPLOAD는 데이터 양이 많을 때 빠른 처리 속도를 자랑하며, 사용자의 PC 환경에 크게 의존하지 않아 안정적인 업로드가 가능합니다.
Signature
예시코드
REPORT zup_01.
DATA: lt_sflight TYPE TABLE OF sflight,
lv_filename TYPE string.
lv_filename = 'C:\Users\조상현\Desktop\3학년 2학기\학술제 연습\flight_11.txt'.
START-OF-SELECTION.
#1,ASC Type File Upload
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = lv_filename
filetype = 'ASC'
has_field_separator = 'X'
TABLES
data_tab = lt_sflight.
IF sy-subrc = 0.
cl_demo_output=>display( lt_sflight[] ).
ELSE.
WRITE: / 'Error uploading file:', sy-subrc.
ENDIF.
#2, BIN Type File Upload
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = lv_filename
filetype = 'BIN'
has_field_separator = ' '
TABLES
data_tab = lt_sflight.
IF sy-subrc = 0.
cl_demo_output=>display( lt_sflight[] ).
ELSE.
WRITE: / 'Error uploading file:', sy-subrc.
ENDIF.
실행 결과
주의 사항
- Field name : 경로가 유효하지 않은 경우 관련 예외가 트리거됩니다.
- INTRM : ALV에 옮기는 과정입니다. ABAP Type으로 변경을 해줘야 합니다.
- Field Type 에 따라 업로드 파일이 처리되는 방식이 달라집니다.
- 'BIN' (이진 데이터) 이진 표현을 파일에서 그대로 읽어옵니다. 즉, 데이터가 변환되거나 해석되지 않습니다. 이때 이진 데이터는 'X’ Type의 단일 열로 구성된 경우에만 예상한 결과를 얻을 수 있습니다. X type 은 ABAP에서 RAW 또는 RAWSTRING 타입으로, 이진 데이터를 그대로 저장하는 타입입니다. 이진 데이터는 텍스트와 달리 읽기 어려운 특수한 형식이기 때문에 데이터를 그대로 가져오기 위해선 하나의 열로 가져와야 합니다. 여러 열이 있으면 각 열에 데이터를 분리하여 넣어야 하는데, 이진 데이터는 그 자체로 데이터의 경계를 나누는 기준이 없기 때문에 분리하는 작업이 어렵고 오류가 발생하기 쉽습니다.
- ‘DAT’ (날짜 데이터) 여러 개의 열이 포함된 테이블에서는 파일의 각 항목이 탭으로 구분되어야 합니다. 데이터는 변환되지 않고, 날짜는 사용자의 설정에 따라 정의된 형식으로 맞춰야 합니다.
- 숫자 데이터 (I, N, P, F) 숫자를 나타내며, 숫자는 사용자의 설정에 정의된 십진수 형식으로 작성되어야 합니다. 시스템의 설정에 맞춰야 하며, 잘못된 형식으로 입력될 경우 오류가 발생할 수 있습니다.
- ‘D’ (날짜) 사용자의 설정에 따라 정의된 날짜 형식으로 입력해야 합니다. YYYY-MM-DD 또는 DD.MM.YYYY 등등
- 'T' (시간) 시간 데이터는 반드시 시:분:초 형식으로 입력되어야 합니다. (14:30:00)
- 'ASC' (ASCII 데이터). 데이터는 파일에서 전체 길이로 포함되어야 하며, 고정된 길이만 허용됩니다.
- BIN Type 의 경우 Field_Separator 를 빈 값으로 설정해야 합니다.
- ASC Type 의 경우 Field_Separator 를 X 로 설정해야 합니다.
반응형
'ABAP Standard Function' 카테고리의 다른 글
[ABAP] POPUP_TO_DISPLAY_TEXT / Text POPUP 출력하기 (0) | 2025.01.07 |
---|---|
[ABAP] POPUP_TO_CONFIRM / POPUP창 출력하여 반환 값 받기 (1) | 2025.01.06 |
[ABAP] GUI_DOWNLOAD / Internal Table 데이터를 로컬 파일로 저장하기 (1) | 2025.01.02 |
[ABAP] GRAPH_MATRIX_3D / 3D 그래프 함수 (0) | 2024.12.30 |
[ABAP] GET_WEEK_INFO_BASED_ON_DATE / 해당 날의 주차와 월요일, 일요일 산출 (0) | 2024.12.27 |