フユブログ

ITエンジニア(AWS /SAP中心)向けの知識や、役立つスキルや考え方について発信します!20代のIT人材の方を中心に助けになれば幸いです!

【SAP】汎用M:POPUP_TO_CONFIRM (ダイアログ表示)

汎用M:POPUP_TO_CONFIRM (ダイアログ表示)

 

■機能としては

GUI画面に「YES」「NO」の確認ダイアログを表示する汎用モジュールです。

 

□用途としては

販売伝票を設定する際に不完全決定表の設定による確認でなく、EXITを用いてある一定の取引の設定が間違っていた際等に対して、処理を続行するか(YES)、中断するか(NO)を確認ダイアログにより分岐処理させる等。

中断時の処理としてはエラーメッセージを設定することで処理を中断させることが多く、これを警告メッセージとするとNOでも処理が継続されます。LEAVE PROGRAMを設定するとSAPのログイン時の画面まで戻るのでエラーメッセージによる中断処理が無難。

 

■注意点

・メッセージの表示できる桁数には制限があり、65バイトが限界値となっています。

そのため、それ以上の桁数を設定した際は桁落ちとなります。

・DISPLAY_CANCEL_BUTTONが初期設定ではついており、デフォルト設定のままだと想定外の「中止」ボタンが第3のボタンとして出力される。設定としては’ (空白)’とすることで非表示とすることができます。

・全体的に左による傾向があり、右に余白があるがこれを埋める手はありませんでした。

 

サンプルコード

DATA:

  L_TEXT_QUESTION TYPE STRING, *質問テキスト

  L_TEXT_BUTTO_1 TYPE TEXT8, *第1ボタン

  L_TEXT_BUTTO_2 TYPE TEXT8, *第2ボタン

  L_ANSWER TYPE CHAR1. *選択したボタンの返り値

 

*パラメータに値を設定する

  L_TEXT_QUESTION = "続行しますか。".*質問テキスト

  L_TEXT_BUTTO_1 = ”はい”.*第1ボタン

  L_TEXT_BUTTO_2 = ”いいえ”.*第2ボタン

 

CALL FUNCTION 'POPUP_TO_CONFIRM'

  EXPORTING

    TEXT_QUESTION = L_TEXT_QUESTION

    TEXT_BUTTON_1 = L_TEXT_BUTTO_1

    TEXT_BUTTON_2 = L_TEXT_BUTTO_2

IMPORTING

   ANSWER = L_ANSWER *回答を格納(ボタン1なら1、ボタン2なら2)

EXCEPTIONS

  TEXT_NOT_FOUND = 1

  OTHERS = 2.

 

IF SY-SUBRC = 1

  IF L_ANSWER <> 1 *ボタンの回答が1以外なら2のNOである分岐処理

    TEXT E・・・・

  ENDIF.

ENDIF.