ABAP ローカルのテキストファイルを読み込む(Uploadする)方法

  ファイル入出力

概要

ローカルからファイルをアップロード、ローカルにファイルをダウンロードしたい場合にしようするのがGUI_UPLOAD、GUI_DOWNLOADの汎用モジュールです。
ここではこれらの汎用モジュールの基本的に使い方を記載します。

サンプルコード:GUI_UPLOAD

" 出力レイアウト
* 入力レイアウト
TYPES: BEGIN OF T_FILE,
         VAL1(10) TYPE C,
         VAL2(10) TYPE C,
         VAL3(10) TYPE C,
       END OF T_FILE.
DATA: IT_FILE TYPE TABLE OF T_FILE. " 内部テーブル
DATA: W_FILE TYPE STRING.

*ファイルパスを指定(選択画面上でユーザーが指定できるようにする方が良い)
W_FILE = 'C:\temp\upload.txt'.

CALL FUNCTION 'GUI_UPLOAD'
  EXPORTING
    FILENAME                = W_FILE        " 入力ファイル名
    FILETYPE                = 'ASC'         " ファイルタイプ
    HAS_FIELD_SEPARATOR     = 'X'           " セパレータ(TAB)
  TABLES
    DATA_TAB                = IT_FILE.      " 内部テーブル

サンプルコード:GUI_DOWNLOAD

" 出力レイアウト
TYPES: BEGIN OF T_FILE,
         VAL1(10) TYPE C,
         VAL2(10) TYPE C,
         VAL3(10) TYPE C,
       END OF T_FILE.
       
DATA: IT_FILE TYPE TABLE OF T_FILE, " 内部テーブル
      WA_FILE TYPE T_FILE.
DATA: W_FILE TYPE STRING.

* テスト用にデータを一行だけ格納
WA_FILE-VAL1 = '1'.
WA_FILE-VAL2 = '2'.
WA_FILE-VAL3 = '3'.
APPEND WA_FILE TO IT_FILE.

*ファイルパスを指定(選択画面上でユーザーが指定できるようにする方が良い)
W_FILE = 'C:\temp\download.txt'.

CALL FUNCTION 'GUI_DOWNLOAD'
  EXPORTING
    FILENAME              = W_FILE  " 出力ファイル名
    FILETYPE              = 'ASC'   " ファイルタイプ
    WRITE_FIELD_SEPARATOR = 'X'     " タブ区切りで出力
  TABLES
    DATA_TAB              = IT_FILE. " 内部テーブル

説明

どちらも入出力するファイル名といくつかのパラメータを渡すだけで簡単にファイルの読み込み、書き込みを行う事ができます。
当サンプルはタブ区切りですが、もしカンマ区切りで行いたい場合は、長い文字列(たとえば1000桁)の列のみ持つ内部テーブルを作成し
自前で出力したい文字をカンマ区切りで結合していく事で同じように当汎用モジュールを使用する事が可能です。

Typeの定義方法はこちらを参照
Dataの定義方法はこちらを参照
Excelファイルを操作する場合はこちらを参照
アプリケーションサーバーのファイルを操作する場合はこちらを参照