スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

汎用M GUIアップロード

GUI_UPLOAD

概要

内部テーブルの値をファイルとしてダウンロードする汎用モジュールです。ファイルタイプや文字コードなどを指定することができます。

パラメータ

主なパラメータは、ファイル名、ファイルタイプと転送テーブルです。そのほかには文字コード、変換不可文字の置換文字などの設定パラメータもあります。
パラメータ一覧
種別パラメータ説明
インポートFILENAMEファイル名
FILETYPEファイルタイプ(ASCまたはBIN)
HAS_FIELD_SEPARATORASCIIアップロード時は、タブで列を分割
HEADER_LENGTHバイナリデータのヘッダ長
READ_BY_LINE内部テーブルの各行がファイルで上書き
DAT_MODEws_download 'DAT' 書式でインポートされた数値項目と日付項目
CODEPAGE出力する文字表記
IGNORE_CERR文字セットの変換エラーを無視するかどうかの指定
REPLACEMENT変換不可文字に用いる置換文字
CHECK_BOMコードページとバイト順序マークの整合性がチェックされます
VIRUS_SCAN_PROFILEウイルススキャンプロファイル
NO_AUTH_CHECKアクセス権限チェックのスイッチオフ
エクスポートFILELENGTHファイル長
HEADERバイナリアップロード時のファイルヘッダ
テーブルDATA_TAB転送テーブル
例外FILE_OPEN_ERRORファイルへの書き込みができません
NO_BATCHフロントエンド機能のバックグラウンド実行不可
GUI_REFUSE_FILETRANSFERフロントエンドが不適切
INVALID_TYPEパラメータFILETYPEの値が無効です
NO_AUTHORITYダウンロード権限がありません
UNKNOWN_ERROR不明なエラー
HEADER_NOT_ALLOWEDヘッダ使用不可
SEPARATOR_NOT_FOUND区切り記号の使用不可
FILESIZE_NOT_ALLOWEDファイルサイズは指定できません
HEADER_TOO_LONG現時点のヘッダ情報は1023バイトまで
DP_ERROR_CREATEデータプロバイダの登録不可
DP_ERROR_SENDデータプロバイダによるデータ送信エラー
DP_ERROR_WRITEデータプロバイダでの書込エラー
UNKNOWN_DP_ERRORデータプロバイダの呼出エラー
ACCESS_DENIEDファイルへのアクセス拒否
DP_OUT_OF_MEMORYデータプロバイダのメモリが不十分
DISK_FULL記憶媒体が満杯
DP_TIMEOUTデータプロバイダのタイムアウト
FILE_NOT_FOUNDファイルが見つかりません
DATAPROVIDER_EXCEPTIONデータプロバイダでの一般例外エラー
CONTROL_FLUSH_ERRORコントロールフレームワークでエラーが発生

インポートパラメータを設定する

ファイルタイプ、ファイル名は必須です。コードページを設定することでファイルの文字コードを指定して取り込むことができます。コードページ8000はShift_JIS(MS932)、4103はUTF16、4110はUTF-8を表します。
設定例:インポートパラメータ
項目項目名称設定値
FILENAMEファイル名C:\temp\test.csv
FILETYPEファイルタイプDAT
CODEPAGE出力する文字表記8000

転送テーブルパラメータ

ファイルから取り込まれた文字列が、パラメータで指定した構造の項目に区切られて転送テーブル(DATA_TAB)に格納されます。
設定例:DATA_TAB
項目項目名称設定値(1)設定値(2)
ZZ0001項目110001000
ZZ0002項目2AB0000AB0001
ZZ0003項目3120150

サンプルコード

ファイルをアップロードして任意の内部テーブルにデータを格納する例です。文字コードにはShift_JISを指定します。
DATA: LV_FILENAME   TYPE STRING,
      LV_FILETYPE   TYPE CHAR10,
      LV_CODEPAGE   TYPE ABAP_ENCODING,
      LV_FILELENGTH TYPE I,
      LT_DATA_TAB   TYPE TABLE OF ZZ01.

* パラメータに値を設定する
LV_FILENAME = 'C:\temp\test.csv'. " ファイル名
LV_FILETYPE = 'DAT'.              " ファイルタイプ
LV_CODEPAGE = '8000'.             " コードページ

CALL FUNCTION 'GUI_UPLOAD'
  EXPORTING
    FILENAME                = LV_FILENAME
    FILETYPE                = LV_FILETYPE
    CODEPAGE                = LV_CODEPAGE
  IMPORTING
    FILELENGTH              = LV_FILELENGTH
  TABLES
    DATA_TAB                = LT_DATA_TAB
  EXCEPTIONS
    FILE_OPEN_ERROR         = 1
    FILE_READ_ERROR         = 2
    NO_BATCH                = 3
    GUI_REFUSE_FILETRANSFER = 4
    INVALID_TYPE            = 5
    NO_AUTHORITY            = 6
    UNKNOWN_ERROR           = 7
    BAD_DATA_FORMAT         = 8
    HEADER_NOT_ALLOWED      = 9
    SEPARATOR_NOT_FOUND     = 10
    HEADER_TOO_LONG         = 11
    UNKNOWN_DP_ERROR        = 12
    ACCESS_DENIED           = 13
    DP_OUT_OF_MEMORY        = 14
    DISK_FULL               = 15
    DP_TIMEOUT              = 16
    OTHERS                  = 17
  .

* エラーの場合
IF SY-SUBRC <> 0.
*  エラー処理
ELSE.
*  正常処理
ENDIF.
関連記事

コメントの投稿

非公開コメント

プロフィール

Z*

Author:Z*

このブログではSAPの技術情報について解説をしていきます。

2017年:ブログをリニューアルしました。(旧Zの高速道路)

カテゴリ
最新記事
最新コメント
月別アーカイブ
検索フォーム
リンク
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。