フォーム送信時に確認ポップアップを実装すると、ユーザーの処理内容を検証し、次の処理に進む前に確認できます。ユーザーがデータを送信する際に、確認ダイアログボックスが表示されます。この機能により、意図しないフォーム送信を防止し、重要な処理に対して追加の検証レイヤーを提供することで、ユーザーエクスペリエンスが向上します。以下の手順を、アプリケーション内の任意のメインフォームに設定することで、送信時に確認ポップアップを表示できます。
-
新規作成したフォームに、確認ポップアップとして表示するため、次の詳細を設定します。
|
フォーム名 |
フォームリンク名 |
項目タイプ |
項目名 |
項目リンク名 |
|
Confirmation Pop-up |
Confirmation_Popup
(このフォームを複製して、ステートレスフォーム「送信を確定しますか?」という名前と、リンク名Confirm_Submitで作成します) |
メモ |
メモ
メモ: メモ項目に入力した内容は、ポップアップと一緒にユーザーに表示されます。例えば、メッセージ「フォームを送信してもよろしいですか?」と入力しています。
|
メモ |
|
複数行 |
Temp Data |
Temp_Data |
- ステートレスフォーム「送信を確定しますか?」のフォームプロパティに移動し、送信ボタンとリセットボタンの名前を、それぞれ確定とキャンセルに変更します。また、これらのボタンのタイプを送信およびリセットから「ボタン」に変更します(以下のとおり)。

- ワークフローを作成し、ステートレスフォーム「送信を確定しますか?」内のTemp_data複数行項目を、内部用途で使用するため非表示にします。フォームイベントとして項目ルールを選択し、ワークフロー名を「項目を非表示」にします。

- 追加する > 新規操作 > 項目を非表示をクリックし、表示される画面でTemp Data項目を選択します。

- 新しいワークフローを作成し、標準フォーム(メインフォーム)のフォーム送信成功時に実行されるよう設定して、データが送信されるたび(作成または編集)に確認ポップアップを表示します。

- 追加する > 新規操作 > Deluge Scriptをクリックし、次のコードを Deluge エディターに追加します。これにより、メインフォーム内の各項目に入力された値を取得し、JSON 形式に変換します。生成された JSON は、送信を確定しますか?ポップアップフォーム内の非表示のTemp_Data複数行項目に設定されます。
- //Fetchを使用して、ID を入力データの ID と照合し、追加されたデータを取得します。
- sourceRecord =<Main_form_link_name>[ID == input。ID];
- //getFieldNames();関数を使用して、Asset_Requests フォーム内のすべての項目のフィールドリンク名を取得します。
- fieldNames = sourceRecord。getFieldNames();
- //マップ変数を作成し、フィールドリンク名とその値を JSON 形式で保存します。
- jsonObject = Map();
- for each 項目 in fieldNames
- {
- 値 = sourceRecord。getFieldValue(項目);
- jsonObject。put(項目,値);
- }
- //toString(); 関数を使用して、JSON をテキストに変換します。
- jsonString = jsonObject。toString();
- //encodeを使用して JSON 文字列をエンコードし、URL パラメーターに値を渡します。
- encoded_json = encodeUrl(jsonString);
- //確認ポップアップをトリガーする前に、入力値をクエリパラメーターとして渡してメインフォームを開きます。これにより、送信後のフォーム更新時に項目値がクリアされることを防ぎます。
- openUrl('#Form:<Main_form_link_name>?<Field_link_name_1>='+input.<Field_link_name_1>+'&<Field_link_name_2>='+input.<Field_link_name_2>+'&<Field_link_name_3>='+input.<Field_link_name_3>,'same window');
- //開くを使用して、ポップアップで「確定して送信しますか?」というステートレスフォームを開き、JSON 値を Temp_Data 複数行項目に渡します。
- openUrl('#Form:Confirm_Submit?Temp_Data=' + encoded_json,'popup window','height=300,width=500');
- //削除を使用して、ユーザーの確認なしにレコードが残らないよう、送信済みデータを削除します。
- 削除 差出人 <Main_form_link_name>[ID == sourceRecord];
-
ここで、
|
<Main_form_link_name> |
は、ユーザーが[送信]をクリックしたときに確認ポップアップが表示されるフォームのリンク名です。 |
- フォームワークフローを作成し、ボタンのクリック時に確定して送信しますか?ステートレスフォームで実行されるように設定し、ボタンとして確定を選択します。ワークフロー名を「送信データ」とします。

- [新しいアクションを追加 > Deluge Script]をクリックし、次のコードを Deluge エディターに追加します。これにより、ユーザーがポップアップで確定ボタンをクリックしたときに、確定して送信しますか?ポップアップの Temp_Data 項目に JSON として保存されている取得済み入力値を使用して、メインフォームにレコードが挿入されます。
- //Temp_Data 項目に保存された JSON データを使用し、JSON キーとフィールドリンク名を照合して、メインフォームにレコードを追加します。
- insert into <Main_form_link_name>
- [
- Added_User=Zoho。loginuser
- <Field_link_name_1>=input。Temp_Data。getJSON('<Field_link_name_1>')
- <Field_link_name_2>=input。Temp_Data。getJSON('<Field_link_name_2>')
- <Field_link_name_3>=input。Temp_Data。getJSON('<Field_link_name_3>')
- ];
- //ユーザーをメインフォームにリダイレクトします。
- openUrl('#Form:<Main_form_link_name>','same window');
- 別のワークフローを作成し、ボタンのクリック時に確定して送信しますか?ステートレスフォームで実行されるように設定し、ボタンとしてキャンセルを選択します。ワークフロー名を「キャンセルデータ」とします。

- [新しいアクションを追加 > Deluge Script]をクリックし、次のコードを Deluge エディターに追加します。これにより、ユーザーがポップアップでキャンセルボタンをクリックしたときに、確定して送信しますか?ポップアップが閉じられます。
- //「確定して送信しますか?」ポップアップウィンドウを閉じます。
- openUrl('#Script:page。閉じる ','popup window');
- メインフォームのフォームプロパティに移動し、メッセージを表示項目の内容をクリアします。これにより、ユーザーが送信をクリックしたときに完了トーストが表示されず、確認ポップアップのみが表示されるようになります。

動作を確認する
- ステートレスフォーム
- getFieldNames()
- encodeURL()
- openURL()
- レコードを追加
- レコードを削除