【バージョンアップ】廃止汎用モジュール「WS_DOWNLOAD」

概要

4.6CからECC6.0へバージョンアップする時にアドオンプログラム内に廃止された汎用モジュールを使用している事がある。
今後使用できなくなるため別のものに置換える必要があります。
今回廃止汎用モジュール「WS_DOWNLOAD」の置換えについて一部解説していきます。
修正前後のサンプルコードがあるのでコーディングだけ確認するだけでも理解が深まると思います。

置換え方法

廃止汎用モジュール「WS_DOWNLOAD」は以下の1つの汎用モジュールを用いる事で置換える事が出来ます。
・汎用モジュール「GUI_DOWNLOAD」

ポイント

置換える際のポイントは以下となります。

型の変換

以下の様に型が異なるため、廃止汎用モジュールで使用していた変数をそのまま使用するとショートダンプの原因となります。
そのため一度型変換を行う必要があります。
廃止汎用モジュール「WS_DOWNLOAD」のFILETYPEはC型の3桁
汎用モジュール「GUI_DOWNLOAD」のTILETYPEの型は「CHAR10」(C型の10桁)

置換えソースコードサンプル

修正後については廃止汎用モジュール「WS_DOWNLOAD」が使用されていたものを置換えて修正しているため、改修を想定したコーディングサンプルとなっています。

修正前コーディング

*使用するパラメータ値
DATA:
 L_FILE             LIKE RLGRAP-FILENAME,
 C_DAT(3)           TYPE C VALUE 'DAT',
 IT_DATA_TAB        TYPE TABLE OF BKPF.

CALL FUNCTION 'WS_DOWNLOAD'
  EXPORTING
    FILENAME                = L_FILE
    FILETYPE                = C_DAT
  TABLES
    DATA_TAB                = IT_DATA_TAB
  EXCEPTIONS
    FILE_OPEN_ERROR         = 1
    FILE_WRITE_ERROR        = 2
    INVALID_FILESIZE        = 3
    INVALID_TYPE            = 4
    NO_BATCH                = 5
    UNKNOWN_ERROR           = 6
    INVALID_TABLE_WIDTH     = 7
    GUI_REFUSE_FILETRANSFER = 8
    CUSTOMER_ERROR          = 9
    OTHERS                  = 10.

修正後コーディング

*使用するパラメータ値
DATA:
 L_FILE             LIKE RLGRAP-FILENAME,
 C_DAT(3)           TYPE C VALUE 'DAT',
 IT_DATA_TAB        TYPE TABLE OF BKPF.

***新規追加変数(START)
DATA:
 L_FILENAME2       TYPE STRING,
 L_DAT2            TYPE CHAR10,
***新規追加変数(END)

***型変換を実施(START)
L_FILENAME2      = L_FILE.
L_DAT2           = C_DAT.
***型変換を実施(END)

*   指定先パスにファイルをダウンロード
    CALL FUNCTION 'GUI_DOWNLOAD'
      EXPORTING
        FILENAME                = L_FILENAME2
        FILETYPE                = L_DAT2
        IGNORE_CERR             = ABAP_FALSE
      TABLES
        DATA_TAB                = IT_DATA_TAB
      EXCEPTIONS
        FILE_WRITE_ERROR        = 1
        NO_BATCH                = 2
        GUI_REFUSE_FILETRANSFER = 3
        INVALID_TYPE            = 4
        NO_AUTHORITY            = 5
        UNKNOWN_ERROR           = 6
        HEADER_NOT_ALLOWED      = 7
        SEPARATOR_NOT_ALLOWED   = 8
        FILESIZE_NOT_ALLOWED    = 9
        HEADER_TOO_LONG         = 10
        DP_ERROR_CREATE         = 11
        DP_ERROR_SEND           = 12
        DP_ERROR_WRITE          = 13
        UNKNOWN_DP_ERROR        = 14
        ACCESS_DENIED           = 15
        DP_OUT_OF_MEMORY        = 16
        DISK_FULL               = 17
        DP_TIMEOUT              = 18
        FILE_NOT_FOUND          = 19
        DATAPROVIDER_EXCEPTION  = 20
        CONTROL_FLUSH_ERROR     = 21
        OTHERS                  = 22.