ローカルファイル
25.1 ローカルファイル
1. ローカルファイル
- ローカルファイルとは
- ローカルファイル操作
- [ファイルを開く]ダイアログ(FILE OPEN DIALOG)
- [ファイルを開く]ダイアログ(TMP_GUI_FILE_OPEN_DIALOG)
- ファイルのアップロード(メソッドのGUI_UPLOAD)
- ファイルのアップロード(汎用モジュールのGUI_UPLOAD)
- [ファイルの保存]ダイアログ(FILE SAVE DIALOG)
- [ファイルの保存]ダイアログ(GUI_FILE SAVE DIALOG)
- ファイルダウンロード(メソッドのGUI_DOWNLOAD)
- ファイルダウンロード(汎用モジュールのGUI_DOWNLOAD)
ローカルファイルとは
PCに保存されているファイルのことをローカルファイルと呼びます。
ここではローカルファイルの書き込みや読み込みを行うファイル操作について説明します。
ローカルファイル操作
他システムとデータのやり取りをするために、他システムから送信されたデータをSAPに取り込む際にデータをアップロードしたり、SAPからデータを送信するためにダウンロードすることがあります。
ファイル操作で使用するファイル形式として、項目と項目の間にタブ文字を挿入したテキストであるTSV形式、「,」(カンマ)で区切るCSV形式、区切り文字を使用せず《決まった位置に隙間なくデータを配置していく固定長形式があります。
ローカルファイル操作をする場合、クラスのCL_GUI_FRONTEND_SERVICESを使用します。
使用頻度が高いファイルの照会や、対応する汎用モジュールも存在します。
「ファイルを開く」ダイアログ(FILE OPEN DIALOG)
メソッドのFILE OPEN DIALOG を使用すると、 [ファイルを開く]ダイアログを表示することができます。汎用モジュールのように、テスト、実行も可能です。
[ファイルを開く]ダイアログ(FILE OPEN DIALOG)
1 | REPORT ZTEST_PROGRAM_FILE_OP_DAIALOG. |
6 | LTD_FILETABLE TYPE FILETABLE. |
8 | CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG |
10 | WINDOW_TITLE = 'TEST TITLE' |
12 | INITIAL_DIRECTORY = 'C:\' |
14 | FILE_TABLE = LTD_FILETABLE |
「ファイルを開く」ダイアログ(TMP_GUI_FILE_OPEN_DIALOG)
汎用モジュールのTMP_GUI_FILE_OPEN_DIALOGでも、 [ファイルを開く]ダイアログを表示することができます。
[ファイルを開く]ダイアログ(TMP_GUI_FILE_OPEN_DIALOG)
1 | REPORT ZTEST_PROGRAM_FILE_OP_DAIALOG2. |
5 | LTD_FILETABLE TYPE FILETABLE. |
7 | CALL FUNCTION 'TMP_GUI_FILE_OPEN_DIALOG' |
9 | WINDOW_TITLE = 'TEST TITLE' |
11 | INIT_DIRECTORY = 'C:\' |
15 | FILE_TABLE = LTD_FILETABLE. |
ファイルのアップロード(メソッドのGUI_UPLOAD)
メソッドのGUI_UPLOADを使用すると、指定したファイルパスからローカルファイルをアップロードし、内部テーブルに格納できます。
ファイルアップロード
1 | REPORT ZTEST_PROGRAM_FILE_UPLOAD2. |
7 | DATA: IT_FILE TYPE TABLE OF T_FILE. " 内部テーブル |
8 | DATA: ST_FILE TYPE T_FILE. " データ格納用 |
9 | DATA: W_FILE TYPE STRING. |
10 | *ファイルパスを指定(選択画面上でユーザーが指定できるようにする方が良い) |
11 | W_FILE = 'C:\User\kanda-it\TEST.txt’. |
12 | CALL METHOD CL_GUI_FRONTEND_SERVICES=>GUI_UPLOAD |
16 | HAS_FIELD_SEPARATOR = 'X' |
23 | LOOP AT IT_FILE INTO ST_FILE. |
24 | WRITE: / ST_FILE-VAL1. |
27 | MESSAGE S001(ZTEST2021). |
出力結果
内部テーブルにアップロードした内容
アップロードする内容
ファイルのアップロード(汎用モジュールのGUI_UPLOAD)
汎用モジュールのGUI_UPLOADでも同様にできます。
ファイルアップロード
1 | REPORT ZTEST_PROGRAM_FILE_UPLOAD. |
8 | DATA: IT_FILE TYPE TABLE OF T_FILE. " 内部テーブル |
9 | DATA: ST_FILE TYPE T_FILE. " データ格納用 |
10 | DATA: W_FILE TYPE STRING. |
12 | *ファイルパスを指定(選択画面上でユーザーが指定できるようにする方が良い) |
13 | W_FILE = 'C:\Users\kanda-it\TEST.txt'. |
15 | CALL FUNCTION 'GUI_UPLOAD' |
17 | FILENAME = W_FILE " 入力ファイル名 |
18 | FILETYPE = 'ASC' " ファイルタイプ |
19 | HAS_FIELD_SEPARATOR = 'X' " セパレータ(TAB) |
21 | DATA_TAB = IT_FILE. " 内部テーブル |
23 | LOOP AT IT_FILE INTO ST_FILE. |
24 | WRITE: / ST_FILE-VAL1. |
27 | MESSAGE S001(ZTEST2021). |
出力結果
内部テーブルにアップロードした内容
アップロードする内容
[ファイルの保存]ダイアログ(FILE SAVE DIALOG)
メソッドのFILE SAVE DIALOGを使用すると、[ファイル保存]ダイア ログを表示することができます。
[ファイルの保存]ダイアログ
1 | REPORT ZTEST_PROGRAM_FILE_SAVE_DIALOG. |
4 | LTD_FILETABLE TYPE FILETABLE. |
6 | ST_FILENAME TYPE STRING, |
7 | ST_FULLPATH TYPE STRING, |
9 | CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG |
11 | WINDOW_TITLE = '保存ダイアログ' |
12 | DEFAULT_FILE_NAME = 'デフォルトファイル名' |
14 | FILENAME = ST_FILENAME |
15 | FULLPATH = ST_FULLPATH |
20 | NOT_SUPPORTED_BY_GUI = 3 |
23 | MESSAGE S001(ZTEST2021). |
出力結果
[ファイルの保存]ダイアログ(GUI_FILE_SAVE_DIALOG)
汎用モジュール GUI_FILE_SAVE_DIALOGでも同様です。
[ファイルの保存]ダイアログ
1 | REPORT ZTEST_PROGRAM_FILE_SAVE_DLOG2. |
5 | LTD_FILETABLE TYPE FILETABLE. |
7 | ST_FILENAME TYPE STRING, |
8 | ST_FULLPATH TYPE STRING, |
11 | CALL FUNCTION 'GUI_FILE_SAVE_DIALOG' |
13 | WINDOW_TITLE = '保存ダイアログ' |
14 | DEFAULT_FILE_NAME = 'デフォルトファイル名' |
16 | FILENAME = ST_FILENAME |
17 | FULLPATH = ST_FULLPATH |
22 | NOT_SUPPORTED_BY_GUI = 3 |
25 | MESSAGE S001(ZTEST2021). |
出力結果
ファイルダウンロード(メソッドのGUI_DOWNLOAD)
メソッドのGUI_DOWNLOADを使用すると、内部テーブルのデータを指定した
ファイルパスのローカルファイルにダウンロードすることができます。
ファイルダウンロード
1 | REPORT ZTEST_PROGRAM_FILE_DOWNLOAD2. |
9 | DATA: IT_FILE TYPE TABLE OF T_FILE, ” 内部テーブル |
11 | DATA: W_FILE TYPE STRING. |
17 | APPEND WA_FILE TO IT_FILE. |
19 | *ファイルパスを指定(選択画面上でユーザーが指定できるようにする方が良い) |
20 | W_FILE = 'C:\Users\kanda-it\TESTDOWNLOAD.txt'. |
22 | CALL METHOD CL_GUI_FRONTEND_SERVICES=>GUI_DOWNLOAD |
24 | FILENAME = W_FILE " 出力ファイル名 |
25 | FILETYPE = 'ASC' " ファイルタイプ |
26 | WRITE_FIELD_SEPARATOR = 'X' " タブ区切りで出力 |
28 | DATA_TAB = IT_FILE. " 内部テーブル |
30 | LOOP AT IT_FILE INTO WA_FILE. |
31 | WRITE: / WA_FILE-VAL1, WA_FILE-VAL2, WA_FILE-VAL3. |
34 | MESSAGE S001(ZTEST2021). |
出力結果
ファイルダウンロード(汎用モジュールのGUI_DOWNLOAD)
汎用モジュールのGUI_DOWNLOADでも同様にできます。
ファイルダウンロード
1 | REPORT ZTEST_PROGRAM_FILE_DOWNLOAD. |
9 | DATA: IT_FILE TYPE TABLE OF T_FILE, ” 内部テーブル |
11 | DATA: W_FILE TYPE STRING. |
17 | APPEND WA_FILE TO IT_FILE. |
18 | *ファイルパスを指定(選択画面上でユーザーが指定できるようにする方が良い) |
19 | W_FILE = 'C:\Users\kanda-it\TESTDOWNLOAD.txt'. |
21 | CALL FUNCTION 'GUI_DOWNLOAD' |
23 | FILENAME = W_FILE " 出力ファイル名 |
24 | FILETYPE = 'ASC' " ファイルタイプ |
25 | WRITE_FIELD_SEPARATOR = 'X' " タブ区切りで出力 |
27 | DATA_TAB = IT_FILE. " 内部テーブル |
29 | LOOP AT IT_FILE INTO WA_FILE. |
30 | WRITE: / WA_FILE-VAL1, WA_FILE-VAL2, WA_FILE-VAL3. |
33 | MESSAGE S001(ZTEST2021). |
出力結果
NEXT>> 25.2 サーバーファイル