(1) V17.2におけるページスクリプト影響について
・本ページでは、V17.2導入時における、/wiki/spaces/SVE4JA/pages/2950178への影響と対応例を記載します。
■影響するダイアログ部品と、対応後のダイアログ部品について |
---|
・V17.2でパッケージに追加されたダイアログ部品は下記となります。
・/wiki/spaces/SVE4JA/pages/2950174で「対応前」の各ダイアログ部品を使用されている場合、「対応後」のSkyVisualEditor独自のダイアログ部品を呼び出すように、スクリプトの書き換えが必要となります。
ダイアログ分類 | 【対応前】ネイティブAPIのダイアログ部品 | 【対応後】SkyVisualEditor独自のダイアログ部品 | |
---|---|---|---|
呼び出し構文 | インタフェース | ||
確認ダイアログ | window.confirm(message) | showSveConfirmDialog(title, message) | title: ダイアログタイトルに表示する文字列 message: ダイアログ本文に表示する文字列 返却値: 選択結果の文字列("OK"または'Cancel') |
警告ダイアログ | window.alert(message) | showSveAlertDialog(title, message) | title: ダイアログタイトルに表示する文字列 message: ダイアログ本文に表示する文字列 返却値: 固定文字列"OK" |
入力ダイアログ | window.prompt(message) | showSvePromptDialog(title, message) | title: ダイアログタイトルに表示する文字列 message: ダイアログ本文に表示する文字列 返却値: ユーザが入力したテキスト ユーザーが入力したテキスト |
■ページスクリプトの変更の具体例 |
---|
・ダイアログのパターンにおける、ページスクリプトの具体的な対応例をご紹介します。
1.シンプルなダイアログの呼び出し
・ダイアログを呼び出している場合、下記のように記載を変更します。
- 各ダイアログ呼び出しを更新後の呼び出し構文で書き換えます。
- 呼び出し関数を非同期実行するため、呼び出し元関数に「async」を、更新後のダイアログ部品呼び出し前に「await」を付与します。
- confirmの場合、更新後のダイアログ部品であるshowSveConfirmDialogに変更し、返却値からダイアログ選択結果の文字列を判定します。
【変更前】
// confirmの場合 function confirmDialogPettern1() { if (confirm('処理を実行します。よろしいですか?')) { // Business Logic } }; // alertの場合 function alertDialogPettern1() { alert('処理を実行します'); // Business Logic }; // promptの場合 function promptDialogPettern1() { let inputtext = prompt('文字列を入力してください'); // Business Logic };
【変更後】
// confirmの場合 async function confirmDialogPettern1() { if (await showSveConfirmDialog('', '処理を実行します。よろしいですか?') == 'OK') { // Business Logic }; }; // alertの場合 async function alertDialogPettern1() { await showSveAlertDialog('', '処理を実行します'); // Business Logic }; // promptの場合 async function promptDialogPettern1() { let sign = await showSvePromptDialog('', '文字列を入力してください'); // Business Logic };
2.カスタムボタンのOnClickからダイアログを表示する関数を呼び出す場合
・「1.シンプルなダイアログの呼び出し」で定義した関数をカスタムボタンの/wiki/spaces/SVE4JA/pages/2949967から呼び出す場合、
呼び出し時にasyncおよびawaitを付与して呼び出す必要があります。
※asyncおよびawaitを付与しない場合、ダイアログ表示処理の完了を待たずに後続処理が実行されるためです。
【変更前のonclick設定】
// 「1.シンプルなダイアログの呼び出し」で定義したconfirmダイアログを使用する関数を呼び出す場合 confirmDialogPettern1();
【変更後のonclick設定】
// 「1.シンプルなダイアログの呼び出し」で定義したconfirmダイアログを使用する関数を呼び出す場合 (async function(){ await confirmDialogPettern1(); })();
3.カスタムボタンのOnClickからダイアログを表示する関数を呼び出し、その後にactionに設定したApexクラスの処理を呼び出したい場合
・「2.カスタムボタンのOnClickからダイアログ表示する関数を呼び出す場合」に加えて、
actionに設定した拡張Apexクラスの処理をダイアログ表示後に呼び出す場合は、
ダイアログを表示する関数を呼び出し後に、カスタムボタンのアクションを呼び出す記載をonclick設定に追加する必要があります。
【変更前のonclick設定】
// 「1.シンプルなダイアログの呼び出し」で定義したconfirmダイアログを使用する関数を呼び出す場合 confirmDialogPettern1();
【変更後のonclick設定】
※「return falseを出力」をONにしてください。
(async function(){ // 「1.シンプルなダイアログの呼び出し」で定義したconfirmダイアログを使用する関数を呼び出す await confirmDialogPettern1(); // カスタムボタンのアクションを呼び出す。下記メソッド名形式になります。 // {カスタムボタンのID(例:Component7)}_customButtonAction(); Component7_customButtonAction(); })();