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

概要

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

置換え方法

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

ポイント

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

  • メッセージの入力可能変数が1つ
  • 返却値が異なる
  • ポップアップアイコンが異なる
  • 中止ボタンが初期値で設定されている

メッセージの入力可能変数が1つ

メッセージを入力できるパラメータが「TEXTLINE1」「TEXTLINE2」の2箇所あったが汎用モジュール「POPUP_TO_CONFIRM」では「TEXT_QUESTION 」の1箇所のみとなった。
そのため廃止汎用モジュール「POPUP_TO_CONFIRM_LOSS_OF_DATA」で2箇所に値を設定している場合はテキストを結合して1つにまとめる必要がある。

返却値が異なる

廃止汎用モジュール「POPUP_TO_CONFIRM_LOSS_OF_DATA」では「はい」「いいえ」のボタンの返却値は「JまたはY」「N」だったが
汎用モジュール「POPUP_TO_CONFIRM」の返却値は「1」「2」となっている。
そのため、返却値を「1」「2」から「J」「N」へ変換する必要がある。
(「はい」のボタンを押下すると返却値は「J」のため「Y」は考慮しなくてもよい)

ポップアップアイコンが異なる

廃止汎用モジュール「POPUP_TO_CONFIRM_LOSS_OF_DATA」では警告のアイコンだが汎用モジュール「POPUP_TO_CONFIRM」では正常のアイコンのため異なる。
そのため、アイコンの修正が必要となる。
アイコンの修正は汎用モジュール「POPUP_TO_CONFIRM」のパラメータ「POPUP_TYPE」で定義する事が出来る。

中止ボタンが初期値で設定されている

廃止汎用モジュール「POPUP_TO_CONFIRM_LOSS_OF_DATA」では中止ボタンは存在しません。
汎用モジュール「POPUP_TO_CONFIRM」では中止ボタンが初期値で定義されているため修正する必要がある。
中止ボタンが必要な場合はパラメータ「DISPLAY_CANCEL_BUTTON」の値を「X」としているためブランクに修正する。

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

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

修正前コーディング

DATA: L_ANSER TYPE C,
      LW_ANS TYPE C,
      L_TEXT1(70) TYPE C,
      L_TEXT2(70) TYPE C,
      L_TITLE(70) TYPE C,
      L_TEXT(400) TYPE C.

L_TEXT1 = '入力内容に不整合が発生しています。そのため保存することができません。'.
L_TEXT2 = 'この処理を終了しますか。'.
L_TITLE = '保存処理取消の確認'.

CALL FUNCTION 'POPUP_TO_CONFIRM_LOSS_OF_DATA'
  EXPORTING
    TEXTLINE1     = L_TEXT1
    TEXTLINE2     = L_TEXT2
    TITEL         = L_TITLE
*   START_COLUMN  = 25
*   START_ROW     = 6
    DEFAULTOPTION = 'J'
  IMPORTING
    ANSWER        = L_ANSER
          .

ポップアップ画面は以下の通り

修正後コーディング

DATA: L_ANSER TYPE C,
      LW_ANS TYPE C,
      L_TEXT1(70) TYPE C,
      L_TEXT2(70) TYPE C,
      L_TITLE(70) TYPE C,
      L_TEXT(400) TYPE C.

L_TEXT1 = '入力内容に不整合が発生しています。そのため保存することができません。'.
L_TEXT2 = 'この処理を終了しますか。'.
L_TITLE = '保存処理取消の確認'.

CONCATENATE L_TEXT1 L_TEXT2
INTO L_TEXT.

CALL FUNCTION 'POPUP_TO_CONFIRM'
  EXPORTING
   TITLEBAR                    = L_TITLE
*   DIAGNOSE_OBJECT             = ' '
    TEXT_QUESTION               = L_TEXT
   TEXT_BUTTON_1               = 'はい'
*   ICON_BUTTON_1               = ' '
   TEXT_BUTTON_2               = 'いいえ'
*   ICON_BUTTON_2               = ' '
   DEFAULT_BUTTON              = '1'
   DISPLAY_CANCEL_BUTTON       = ' '
*   USERDEFINED_F1_HELP         = ' '
*   START_COLUMN                = 25
*   START_ROW                   = 6
   POPUP_TYPE                  = 'ICON_MESSAGE_WARNING'
*   IV_QUICKINFO_BUTTON_1       = ' '
*   IV_QUICKINFO_BUTTON_2       = ' '
 IMPORTING
   ANSWER                      = LW_ANS
* TABLES
*   PARAMETER                   =
 EXCEPTIONS
   TEXT_NOT_FOUND              = 1
   OTHERS                      = 2
          .
  IF LW_ANS = '1'.
    L_ANSER = 'J'.

  ELSEIF LW_ANS = '2'.
    L_ANSER = 'N'.

  ENDIF.

ポップアップ画面は以下の通り