ABAP Standard Function

[ABAP] GUI_DOWNLOAD / Internal Table 데이터를 로컬 파일로 저장하기

ASAP ABAP 2025. 1. 2. 16:47
반응형

다들 새해 복 많이 받으세요~

오늘은 "GUI_DOWNLOAD" Function에 대해서 포스팅해보겠습니다.

기능 설명

Internal Table의 데이터를 로컬 파일로 저장하는 기능을 제공하는 모듈입니다. 주로 기본 텍스트 데이터를 다운로드 할 때 사용되며, 이후 GUI_DOWNLOAD 모듈이 확장된 기능을 제공함에 따라 기존 DOWNLOAD 모듈은 구형 모듈로 간주됩니다. 해당 function를 통해 SAP GUI에 있는 데이터를 텍스트 파일이나 엑셀 파일로 변환하여 로컬 파일로 저장할 수 있습니다.

Signature

Importing Parameter
Importing Parameter
Exporting Parameter
Exception Parameter
Exception Parameter

DATA: gt_sflight TYPE TABLE OF sflight,
	gv_filename TYPE string,
	lt_fieldnames TYPE TABLE OF string.
START-OF-SELECTION.
#//Internal Table를 만들기 위한 SQL Statement"
SELECT * FROM sflight INTO TABLE gt_sflight UP TO 30 ROWS.
#//다운로드할 파일 이름 설정"
gv_filename = 'C:\Users\조상현\Desktop\3학년 2학기\flight_data1.txt'.


#1, ASC Type의 방식 Download
CALL FUNCTION 'GUI_DOWNLOAD'
	EXPORTING
		filename = gv_filename #다운로드 할 파일의 경로
		filetype = 'ASC' #다운로드 할 File의 Type를 결정 ASC / BIN
		append = ’X’ #다운로드 경로에 동일한 파일이 있을 경우 데이터를 추가할 때 뒤이어서 넣을지 overwrite할 지 결정
		write_field_separator = ’X’ #구분선 여부를 결정
	TABLES
	data_tab = gt_sflight. #다운로드할 Internal Table

#2, BIN(Binary) Type의 방식 Download
CALL FUNCTION 'GUI_DOWNLOAD'
	EXPORTING
		#BIN Type의 경우 그 파일의 크기를 지정해줄 수 있다.
		bin_filesize = 300
		filename = gv_filename
		filetype = 'BIN'
		append = ' '
		WRITE_FIELD_SEPARATOR = ''
		header = '00'
	TABLES
		data_tab = gt_sflight.
 IF sy-subrc <> 0.
 	WRITE: / 'Error by:', sy-subrc.
 ELSE.
 	WRITE: / 'download success.'.
 ENDIF.

실행 결과

sflight 테이블에서 30개의 행을 조회한 Internal Table
#1, ASC Type의 파일로 다운로드 받았을 때의 .XLS 파일

 

#2, BIN Type의 파일로 다운로드 받았을 때의 .XLS 파일

문자가 깨져 보이는 이유는 인코딩 방식이 다르기 때문에 보이는 형식이 다른 것 입니다.

실제 데이터는 위 ASC Type의 데이터와 동일합니다.

다음 포스팅에서 소개되는 GUI_UPLOAD에서 확인 할 수 있습니다.

주의 사항

  • Filetype에 ASC와 BIN 타입을 제외한 다른 타입을 입력해서는 안됩니다. 해당 Function에서 지원하는 Type은 ASCII와 BINARY 두 가지 Type만 있기 때문입니다.
  • 다운로드 받는 파일의 확장자는 .xls, .txt 등 여러 형태로 다운 받을 수 있습니다.
  • BIN과 ASC에서 사용할 수 있는 importing 파라미터가 달라서 각 형태에 해당하는 추가적인 파라미터를 이용할 때, 각 타입에 맞는 파라미터를 사용해야 한다.
  • BIN type의 경우 00으로 하는 것보다 01로 하면 파일이 정갈하게 보입니다.
반응형