ABAP Standard Function

[ABAP] GUI_UPLOAD / 로컬 파일을 서버에 업로드 하기

ASAP ABAP 2025. 1. 3. 12:27
반응형

안녕하세요 어제 말씀드린 것 처럼 오늘은 다운로드의 반대로 업로드하는 Function를 정리해보겠습니다.

기능 설명

"GUI_UPLOAD" Function는 파일을 로컬 시스템에서 서버로 업로드할 때 사용하는 함수 모듈입니다. 이 함수는 텍스트 파일, CSV 파일, 또는 Excel 파일과 같은 다양한 파일 형식을 업로드할 수 있습니다. 특히 GUI_UPLOAD는 데이터 양이 많을 때 빠른 처리 속도를 자랑하며, 사용자의 PC 환경에 크게 의존하지 않아 안정적인 업로드가 가능합니다.

Signature

Importing Parameter
Exporting Parameter
Changing Parameter
Tables Parameter
Exception Parameter
Exception Parameter

예시코드

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.

실행 결과

외부에서 SAP로 파일을 불러올 때 SAP Security 정책상 불러와도 되는지 사용자에게 확인하는 팝업 창
Demo_output를 통한 Upload한 데이터 출력 화면

주의 사항

  • Field name : 경로가 유효하지 않은 경우 관련 예외가 트리거됩니다.
  • INTRM : ALV에 옮기는 과정입니다. ABAP Type으로 변경을 해줘야 합니다.
  • Field Type 에 따라 업로드 파일이 처리되는 방식이 달라집니다.
    1. 'BIN' (이진 데이터) 이진 표현을 파일에서 그대로 읽어옵니다. 즉, 데이터가 변환되거나 해석되지 않습니다. 이때 이진 데이터는 'X’ Type의 단일 열로 구성된 경우에만 예상한 결과를 얻을 수 있습니다. X type 은 ABAP에서 RAW 또는 RAWSTRING 타입으로, 이진 데이터를 그대로 저장하는 타입입니다. 이진 데이터는 텍스트와 달리 읽기 어려운 특수한 형식이기 때문에 데이터를 그대로 가져오기 위해선 하나의 열로 가져와야 합니다. 여러 열이 있으면 각 열에 데이터를 분리하여 넣어야 하는데, 이진 데이터는 그 자체로 데이터의 경계를 나누는 기준이 없기 때문에 분리하는 작업이 어렵고 오류가 발생하기 쉽습니다.
    2. ‘DAT’ (날짜 데이터) 여러 개의 열이 포함된 테이블에서는 파일의 각 항목이 탭으로 구분되어야 합니다. 데이터는 변환되지 않고, 날짜는 사용자의 설정에 따라 정의된 형식으로 맞춰야 합니다.
    3. 숫자 데이터 (I, N, P, F) 숫자를 나타내며, 숫자는 사용자의 설정에 정의된 십진수 형식으로 작성되어야 합니다. 시스템의 설정에 맞춰야 하며, 잘못된 형식으로 입력될 경우 오류가 발생할 수 있습니다.
    4. ‘D’ (날짜) 사용자의 설정에 따라 정의된 날짜 형식으로 입력해야 합니다. YYYY-MM-DD 또는 DD.MM.YYYY 등등
    5. 'T' (시간) 시간 데이터는 반드시 시:분:초 형식으로 입력되어야 합니다. (14:30:00)
    6. 'ASC' (ASCII 데이터). 데이터는 파일에서 전체 길이로 포함되어야 하며, 고정된 길이만 허용됩니다.
  • BIN Type 의 경우 Field_Separator 를 빈 값으로 설정해야 합니다.
  • ASC Type 의 경우 Field_Separator 를 X 로 설정해야 합니다.
반응형