アダプティブフォーム送信アクション

最終更新日: 2024-02-21
バージョン 記事リンク
AEM 6.5 ここをクリックしてください
AEM as a Cloud Service この記事

適用先: ✔️アダプティブフォームの基盤コンポーネント。 ❌ アダプティブフォーム (コアコンポーネント. Adobeでは、コアコンポーネントを次のように使用することをお勧めします。 AEM SitesページへのアダプティブFormsの追加 または スタンドアロンのアダプティブFormsを作成する.

送信アクションは、ユーザーがアダプティブフォームの「送信」ボタンをクリックするときにトリガーされます。Forms as a Cloud Serviceでは、次の送信アクションが初期設定で提供されています。

デフォルトの送信アクションを拡張して、独自の送信アクションを作成することもできます。

サイドバーにあるアダプティブフォームコンテナプロパティの「送信」セクションで、送信アクションを設定できます。

送信アクションの設定

REST エンドポイントへの送信

REST エンドポイントへの送信​アクションを使用して、送信されたデータを REST URL に POST できます。URL は、内部(フォームがレンダリングされるサーバー)または外部サーバーのどちらのものでも使用できます。

内部サーバーにデータを POST 送信するには、リソースのパスを指定します。データは、リソースのパスに POST されます。例えば、/content/restEndPoint です。このような POST リクエストには、送信リクエストの認証情報が使用されます。

外部サーバーにデータを POST 送信するには、URL を指定します。URL の形式は、https://host:port/path_to_rest_end_point です。POST リクエストを匿名で処理するためのパスを設定してください。

「ありがとうございます」ページのパラメーターとして渡されたフィールド値のマッピング

上の例で、ユーザーが textbox に入力した情報は、パラメーター param1 を使用して取得されます。param1 を使用して取得されるデータを POST するための構文を以下に示します。

String data=request.getParameter("param1");

同様に、XML データと添付ファイルの POST に使用するパラメーターは、dataXml および attachments です。

例えば、この 2 つのパラメーターをスクリプト中で使用して、REST エンドポイントに送信されたデータを解析できます。データを格納および解析するための構文を以下に示します。

String data=request.getParameter("dataXml");
String att=request.getParameter("attachments");

この例では、data が XML データを格納し、att が添付ファイルデータを格納します。

REST エンドポイントへの送信​送信アクションでは、フォームに入力されたデータを HTTP GET リクエストの一部として設定済みの確認ページに送信します。リクエストにフィールド名を追加できます。リクエストのフォーマットを以下に示します。

{fieldName}={request parameter name}

以下の画像に示されているように、param1 および param2 が、textbox フィールドおよび numericbox フィールドからコピーされた値を持つパラメーターとして、次のアクションに向けて渡されます。

REST エンドポイント送信アクションの設定

POST リクエストを有効にする​ことで、リクエストを POST する URL を指定することもできます。フォームをホストする AEM サーバーにデータを送信するには、AEM サーバーのルートパスに対応する相対パスを使用します。例えば、/content/forms/af/SampleForm.html のようになります。他のサーバーにデータを送信するには、絶対パスを使用します。

メモ

フィールドを REST URL 内のパラメーターとして渡すためには、すべてのフィールドが異なる要素名を持っている必要があります。これは、異なるパネルに置かれているフィールドにも適用されます。

メールを送信

メールを送信」送信アクションでは、フォームの送信が完了すると同時に、1 人または複数の受信者にメールが送信されます。生成されるメールには、事前に定義された形式のフォームデータを含めることができます。例えば、以下のテンプレートでは、顧客名、配送先住所、州名、郵便番号が、送信されたフォームデータから取得されます。

```

こんにちは ${customer_Name} さん、

以下がデフォルトの配送先住所として設定されています。
${customer_Name}、
${customer_Shipping_Address}、
${customer_State}、
${customer_ZIPCode}

よろしくお願いいたします。
WKND

```
メモ
  • フィールドがアダプティブフォームの異なるパネルに配置されている場合でも、すべてのフォームフィールドは異なる要素名を持っている必要があります。
  • AEM as a Cloud Service では、送信メールを暗号化する必要があります。デフォルトでは、送信メールは無効になっています。有効にするには、アクセスのリクエストにサポートチケットを送信します。

メールには、添付ファイルとレコードのドキュメント(DoR)を含めることもできます。「レコードのドキュメントを添付」オプションを有効にするには、レコードのドキュメント(DoR)を生成するようにアダプティブフォームを設定します。このオプションを有効にして、アダプティブフォームのプロパティからレコードのドキュメントを生成できます。

フォームデータモデルを使用して送信

フォームデータモデルを使用して送信」送信アクションでは、フォームデータモデルの特定のデータモデルオブジェクトで送信したアダプティブフォームデータをデータソースに書き込みます。送信アクションの設定時に、データソースに書き戻す送信済みデータを持つデータモデルオブジェクトを選択できます。

さらに、フォームデータモデルとレコードのドキュメント(DoR)を使用して、フォームの添付ファイルをデータソースに送信できます。フォームデータモデルについて詳しくは、AEM Forms のデータ統合機能を参照してください。

AEM ワークフローを起動

AEM ワークフローを起動」送信アクションは、アダプティブフォームを AEM ワークフローと関連付けます。フォームが送信されると、関連するワークフローがオーサーインスタンスで自動的に起動します。データファイル、添付ファイル、レコードのドキュメントは、ワークフローのペイロードの場所または変数に保存できます。ワークフローが外部データストレージ用にマークされ、外部データストレージ用に設定されている場合、変数オプションのみを使用できます。ワークフローモデルで使用できる変数のリストから選択できます。ワークフローの作成時ではなく、後の段階で外部データストレージの対象としてワークフローがマークされている場合は、必要な変数設定が適切に行われていることを確認します。

送信アクションは、ワークフローのペイロードの場所、またはワークフローが外部データストレージ用にマークされている場合は変数に、以下を配置します。

  • データファイル:アダプティブフォームに送信されたデータを含みます。「データファイルパス」オプションを使用して、ファイル名とペイロードを基準とするファイルのパスを指定できます。例えば、/addresschange/data.xml パスは、addresschange という名前のフォルダーを作成し、ペイロードを基準に配置します。フォルダー階層を作成せずに、data.xml のみを指定して、送信されたデータのみを送信することもできます。ワークフローが外部データストレージ用にマークされている場合は、「変数」オプションを使用し、ワークフローモデルで使用可能な変数のリストから変数を選択します。

  • 添付ファイル:「添付ファイルのパス」オプションを使用して、アダプティブフォームにアップロードされた添付ファイルの保存先となるフォルダー名を指定できます。フォルダーがペイロードを基準に作成されます。ワークフローが外部データストレージ用にマークされている場合は、「変数」オプションを使用し、ワークフローモデルで使用可能な変数のリストから変数を選択します。

  • レコードのドキュメント:アダプティブフォーム用に生成されたレコードのドキュメントを含みます。「レコードのドキュメントパス」オプションを使用して、レコードのドキュメントファイル名と、ペイロードを基準にファイルのパスを指定できます。例えば、/addresschange/DoR.pdf パスは、ペイロードを基準に addresschange という名前のフォルダーを作成し、ペイロードを基準に DoR.pdf を配置します。DoR.pdf のみを指定して、フォルダー階層を作成せずに、レコードのドキュメントのみを保存することもできます。ワークフローが外部データストレージ用にマークされている場合は、「変数」オプションを使用し、ワークフローモデルで使用可能な変数のリストから変数を選択します。

AEM ワークフローを起動」送信アクションを使用する前に、AEM DS 設定サービス​の設定に対して、以下の設定を行います。

  • 処理サーバー URL:処理サーバーは、Forms または AEM ワークフローがトリガーされるサーバーです。これは、AEM オーサーインスタンスまたは別のサーバーの URL と同じです。

  • 処理サーバーのユーザー名:ワークフローユーザーのユーザー名

  • 処理サーバーのパスワード:ワークフローユーザーのパスワード

SharePoint に送信

SharePoint に送信」送信アクションは、アダプティブフォームと Microsoft® SharePoint ストレージを接続します。フォームデータファイル、添付ファイルまたはレコードのドキュメントを、接続された Microsoft® SharePoint ストレージに送信できます。

「SharePoint に送信」を使用して、次の操作を実行できます。

アダプティブフォームを SharePoint ドキュメントライブラリに接続

アダプティブフォームで「SharePoint ドキュメントライブラリに送信」送信アクションを使用するには、次の手順に従います。

  1. SharePoint ドキュメントライブラリ設定の作成:AEM フォームを Microsoft Sharepoint ストレージに接続します。
  2. アダプティブフォームでの「SharePoint に送信」送信アクションの使用:アダプティブフォームを設定済みの Microsoft® SharePoint に接続します。

SharePoint ドキュメントライブラリの設定を作成

AEM Forms を Microsoft® Sharepoint ドキュメントライブラリストレージに接続するには、次の手順に従います。

  1. AEM Forms オーサー​インスタンス/ツールCloud ServicesMicrosoft® SharePoint に移動します。

  2. Microsoft® SharePoint を選択すると、SharePoint ブラウザー​にリダイレクトされます。

  3. 設定コンテナ​を選択します。設定は、選択した設定コンテナに保存されます。

  4. クリック 作成 > SharePoint Document Library 」をドロップダウンリストから選択します。 SharePoint 設定ウィザードが表示されます。

    SharePoint の設定

  5. タイトル」、「クライアント ID」、「クライアント秘密鍵」および「OAuth URL」を指定します。OAuth URL のクライアント ID、クライアントの秘密鍵、テナント ID を取得する方法について詳しくは、Microsoft® のドキュメントを参照してください。

    • アプリの Client IDClient Secret は Microsoft® Azure Portal から取得できます。
    • Microsoft® Azure Portal で、リダイレクト URI を https://[author-instance]/libs/cq/sharepoint/content/configurations/wizard.html として追加します。[author-instance] をオーサーインスタンスの URL に置き換えます。
    • API 権限 offline_access および Sites.Manage.All を追加して、読み取り/書き込み権限を付与します。
    • OAuth URL https://login.microsoftonline.com/tenant-id/oauth2/v2.0/authorize を使用します。<tenant-id> を Microsoft® Azure Portal のアプリの tenant-id に置き換えます。
    メモ

    クライアント秘密鍵​フィールドは、Azure Active Directory アプリケーションの設定に応じて、必須またはオプションになります。アプリケーションでクライアント秘密鍵を使用するように設定されている場合は、クライアントの秘密鍵を指定する必要があります。

  6. 接続」をクリックします。接続に成功した場合、Connection Successful のメッセージが表示されます。

  7. SharePoint サイトドキュメントライブラリSharePoint フォルダー​を選択して、データを保存します。

    メモ
    • デフォルトでは、forms-ootb-storage-adaptive-forms-submission は選択した SharePoint サイトに存在します。
    • 選択した SharePoint サイトの Documents ライブラリにまだ存在しない場合は、「フォルダーを作成」をクリックして、フォルダーを forms-ootb-storage-adaptive-forms-submission として作成します。

アダプティブフォームの送信アクションに、この SharePoint サイト設定を使用できるようになりました。

アダプティブフォームでの SharePoint ドキュメントライブラリ設定の使用

作成した SharePoint ドキュメントライブラリ設定をアダプティブフォーム内で使用すると、データや生成済みレコードのドキュメントを SharePoint フォルダーに保存できます。 アダプティブフォームで SharePoint ドキュメントライブラリストレージ設定を使用するには、次の手順を実行します。

  1. アダプティブフォーム」を作成します。

    メモ
    • SharePoint ドキュメントライブラリストレージを作成したアダプティブフォームと同じ設定コンテナを選択します。
    • 設定コンテナが選択されていない場合、グローバルなストレージ設定フォルダーが送信アクションのプロパティウィンドウに表示されます。
  2. 送信アクション」を「SharePoint に送信」として選択します。
    SharePoint GIF

  3. データを保存する場所に「ストレージ設定」を選択します。

  4. 保存」をクリックして、送信設定を保存します。

フォームを送信すると、データは指定した Microsoft® Sharepoint ドキュメントライブラリストレージに保存されます。
データを保存するフォルダー構造は /folder_name/form_name/year/month/date/submission_id/data です。

アダプティブフォームを Microsoft® SharePoint リストに接続

アダプティブフォームで「SharePoint リストに送信」送信アクションを使用するには、次の手順に従います。

  1. SharePoint リスト設定を作成:AEM Forms を Microsoft® Sharepoint リストストレージに接続します。
  2. アダプティブフォームで「フォームデータモデルを使用して送信」を使用:アダプティブフォームを設定済みの Microsoft® SharePoint に接続します。

SharePoint リスト設定を作成

AEM Forms を Microsoft® Sharepoint リストに接続するには、次の手順に従います。

  1. ツールクラウドサービスMicrosoft® SharePoint に移動します。

  2. 設定コンテナ​を選択します。設定は、選択した設定コンテナに保存されます。

  3. クリック 作成 > SharePoint List 」をドロップダウンリストから選択します。 SharePoint 設定ウィザードが表示されます。

  4. タイトル」、「クライアント ID」、「クライアント秘密鍵」および「OAuth URL」を指定します。OAuth URL のクライアント ID、クライアントの秘密鍵、テナント ID を取得する方法について詳しくは、Microsoft® のドキュメントを参照してください。

    • アプリの Client IDClient Secret は Microsoft® Azure Portal から取得できます。

    • Microsoft® Azure Portal で、リダイレクト URI を https://[author-instance]/libs/cq/sharepointlist/content/configurations/wizard.html として追加します。[author-instance] をオーサーインスタンスの URL に置き換えます。

    • API 権限の追加 offline_access および Sites.Manage.All (内) Microsoft® Graph タブを使用して、読み取り/書き込み権限を設定します。 追加 AllSites.Manage の権限 SharePoint タブをクリックして、SharePointデータをリモートで操作します。

    • OAuth URL https://login.microsoftonline.com/tenant-id/oauth2/v2.0/authorize を使用します。<tenant-id> を Microsoft® Azure Portal のアプリの tenant-id に置き換えます。

      メモ

      クライアント秘密鍵​フィールドは、Azure Active Directory アプリケーションの設定に応じて、必須またはオプションになります。アプリケーションでクライアント秘密鍵を使用するように設定されている場合は、クライアントの秘密鍵を指定する必要があります。

  5. 接続」をクリックします。接続に成功した場合、Connection Successful のメッセージが表示されます。

  6. 選択 SharePoint Site および SharePoint List 」をドロップダウンリストから選択します。

  7. 作成」を選択して、Microsoft® SharePointList 用のクラウド設定を作成します。

アダプティブフォームで「フォームデータモデルを使用して送信」を使用

作成した SharePoint リスト設定をアダプティブフォーム内で使用すると、データや生成済みのレコードのドキュメントを SharePoint リストに保存できます。アダプティブフォームで SharePoint リストストレージ設定を使用するには、次の手順を実行します。

  1. Microsoft® SharePointリスト設定を使用したフォームデータモデルの作成
  2. データを取得して送信するためのフォームデータモデルの設定
  3. アダプティブフォームを作成
  4. フォームデータモデルを使用した送信アクションの設定

フォームを送信すると、データは指定した Microsoft® Sharepoint リストストレージに保存されます。

メモ

Microsoft® SharePointリストでは、次の列タイプはサポートされていません。

  • 画像列
  • メタデータ列
  • ユーザー列
  • 外部データ列

OneDrive に送信

OneDrive に送信」送信アクションでは、アダプティブフォームと Microsoft® OneDrive を接続します。接続されている Microsoft® OneDrive ストレージに、フォーム データ、添付ファイル、またはレコードのドキュメントを送信できます。アダプティブフォームで「OneDrive に送信」送信アクションを使用するには、次の手順に従います。

  1. OneDrive 設定の作成:AEM Forms を Microsoft® OneDrive ストレージに接続します。
  2. アダプティブフォームでの「OneDrive に送信」アクションの使用:アダプティブフォームを
    設定済みの Microsoft® OneDrive に接続します。

Microsoft OneDrive 設定の作成

AEM Forms を Microsoft® OneDrive ストレージに接続するには、以下の手順に従います。

  1. AEM Forms オーサー インスタンス/ツールクラウド サービスMicrosoft® OneDrive に移動します。

  2. Microsoft® OneDrive​を選択すると、Microsoft® OneDrive ブラウザー​にリダイレクトされます。

  3. 設定コンテナ​を選択します。設定は、選択した設定コンテナに保存されます。

  4. 作成」をクリックします。OneDrive 設定ウィザードが表示されます。

    OneDrive 設定画面

  5. タイトル」、「クライアント ID」、「クライアント秘密鍵」および「OAuth URL」を指定します。OAuth URL のクライアント ID、クライアントの秘密鍵、テナント ID を取得する方法について詳しくは、Microsoft® のドキュメントを参照してください。

    • アプリの Client IDClient Secret は Microsoft® Azure Portal から取得できます。
    • Microsoft® Azure Portal で、リダイレクト URI を https://[author-instance]/libs/cq/onedrive/content/configurations/wizard.html として追加します。[author-instance] をオーサーインスタンスの URL に置き換えます。
    • API 権限 offline_access および Files.ReadWrite.All を追加して、読み取り/書き込み権限を付与します。
    • OAuth URL https://login.microsoftonline.com/tenant-id/oauth2/v2.0/authorize を使用します。<tenant-id> を Microsoft® Azure Portal のアプリの tenant-id に置き換えます。
    メモ

    クライアント秘密鍵​フィールドは、Azure Active Directory アプリケーションの設定に応じて、必須またはオプションになります。アプリケーションでクライアント秘密鍵を使用するように設定されている場合は、クライアントの秘密鍵を指定する必要があります。

  6. 接続」をクリックします。接続が完了すると Connection Successful メッセージが表示されます。

  7. OneDrive コンテナ[OneDrive フォルダー]​を選択して、データを保存します。

    メモ
    • デフォルトでは、forms-ootb-storage-adaptive-forms-submission は OneDrive コンテナに存在します。
    • フォルダーを作成」をクリックして、まだ存在しない場合は、フォルダーを forms-ootb-storage-adaptive-forms-submission として作成します。

アダプティブフォームの送信アクションに、この OneDrive ストレージ設定を使用できるようになりました。

アダプティブフォームでの OneDrive 設定の使用

アダプティブフォームで作成した OneDrive ストレージ設定を使用して、データまたは生成済みレコードのドキュメントを OneDrive フォルダーに保存できます。 アダプティブフォームで OneDrive ストレージ設定を使用するには、次の手順を実行します。

  1. アダプティブフォーム」を作成します。

    メモ
    • OneDrive ストレージを作成したアダプティブ フォームと同じ設定コンテナを選択します。
    • 設定コンテナが選択されていない場合、グローバルなストレージ設定フォルダーが送信アクションのプロパティウィンドウに表示されます。
  2. 送信アクション」を「OneDrive に送信」として選択します。
    OneDrive GIF

  3. データを保存する場所に「ストレージ設定」を選択します。

  4. 保存」をクリックして、送信設定を保存します。

フォームを送信すると、指定した Microsoft® OneDrive ストレージにデータが保存されます。
データを保存するフォルダー構造は /folder_name/form_name/year/month/date/submission_id/data です。

Azure Blob Storage に送信

Azure Blob Storage に送信」送信アクションは、アダプティブフォームを Microsoft Azure Portal に接続します。フォームデータ、ファイル、添付ファイル、またはレコードのドキュメントを、接続された Azure ストレージコンテナに送信できます。 Azure Blob Storage の送信アクションを使用するには、次の手順に従います。

  1. Azure Blob Storage コンテナの作成:AEM Forms を Azure Storage コンテナに接続します。
  2. アダプティブフォームでの Azure ストレージ設定の使用:アダプティブフォームを、設定済みの Azure ストレージコンテナに接続します。

Azure Blob Storage コンテナの作成

AEM Forms を Azure ストレージコンテナに接続するには、次の手順に従います。

  1. AEM Forms オーサー​インスタンス/ツールクラウドサービスAzure ストレージ​に移動します。

  2. Azure ストレージ​を選択すると、Azure ストレージブラウザー​にリダイレクトされます。

  3. 設定コンテナ​を選択します。設定は、選択した設定コンテナに保存されます。

  4. 作成」をクリックします。Azure ストレージ設定の作成ウィザードが表示されます。

    Azure ストレージ設定

  5. タイトル」、「Azure ストレージアカウント」および「Azure アクセスキー」を指定します。

    • Azure Storage Account の名前と Azure Access key は、Microsoft Azure Portal のストレージアカウントから取得できます。
  6. 保存」をクリックします。

アダプティブフォームの送信アクションに、この Azure ストレージコンテナ設定を使用できるようになりました。

アダプティブフォームでの Azure ストレージ設定の使用

アダプティブフォームで作成した Azure ストレージコンテナ設定を使用して、データや生成済みレコードのドキュメントを Azure ストレージコンテナに保存できます。 アダプティブフォームで Azure ストレージコンテナ設定を使用するには、次の手順を実行します。

  1. アダプティブフォームを作成します。

    メモ
    • OneDrive ストレージを作成したアダプティブ フォームと同じ設定コンテナを選択します。
    • 設定コンテナが選択されていない場合、グローバルなストレージ設定フォルダーが送信アクションのプロパティウィンドウに表示されます。
  2. 送信アクション」を「Azure Blob Storage に送信」として選択します。
    Azure Blob Storage GIF

  3. データを保存する場所に「ストレージ設定」を選択します。

  4. 保存」をクリックして、送信設定を保存します。

フォームを送信すると、データは指定された Azure ストレージコンテナ設定に保存されます。
データを保存するフォルダー構造は /configuration_container/form_name/year/month/date/submission_id/data です。

設定の値をセットするには、AEM SDK を使用して OSGi 設定を生成し、Cloud Service インスタンスに設定をデプロイします。

Power Automate に送信

送信時に Microsoft® Power Automate のクラウドフローを実行するように、アダプティブフォームを設定できます。設定済みのアダプティブフォームは、キャプチャされたデータ、添付ファイルおよびレコードのドキュメントを Power Automate クラウドフローに送信して処理します。 Microsoft® Power Automate の機能を活用して、キャプチャされたデータを中心にビジネスロジックを構築し、顧客のワークフローを自動化しながら、カスタムのデータキャプチャエクスペリエンスを構築するのに役立ちます。アダプティブフォームを Microsoft® Power Automated と統合した後に実行できる操作の例を以下に示します。

  • Power Automate のビジネスプロセスでアダプティブフォームデータを使用する
  • Power Automate を使用して、500 を超えるデータソースまたは一般公開されている API にキャプチャしたデータを送信する
  • キャプチャしたデータに対する複雑な計算を実行する
  • 事前に定義されたスケジュールでアダプティブフォームのデータをストレージシステムに保存する

アダプティブフォームエディターには「Microsoft Power Automate フローの呼び出し」送信アクションが用意されており、アダプティブフォームのデータ、添付ファイル、レコードのドキュメントを Power Automate クラウドフローに送信することができます。送信アクションを使用して、キャプチャしたデータを Microsoft® Power Automate に送信するには、Forms as a Cloud Service インスタンスを Microsoft® Power Automate に接続します

Microsoft® Power Automate フローの呼び出し」送信アクションを使用して、Power Automate フローにデータを送信する

Workfront Fusion に送信

アダプティブフォームを設定して、送信時に Workfront Fusion にデータを送信できます。Workfront Fusion を使用すると、プロセスを自動化できるので、同じタスクを何度も繰り返す代わりに、新しいタスクに集中できます。シンプルなタスクと複雑なタスクの両方を自動化し、時間を節約し、プロセスの一貫した実行を実現します。

アダプティブフォームエディターでは、Workfront Fusion シナリオを呼び出す​送信アクションを使用して、アダプティブフォームのデータまたは添付ファイルを Workfront Fusion シナリオに送信します。送信アクションを使用して取得したデータを Workfront Fusion シナリオに送信する方法について詳しくは、Adobe Workfront Fusion へのアダプティブフォームの送信を参照してください。

同期または非同期送信の使用

送信アクションは、同期または非同期の送信を使用できます。

同期送信:これまでの Web フォームは、同期送信用に設定されていました。同期送信では、ユーザーがフォームを送信すると、確認ページ、ありがとうページ、または送信に失敗した場合はエラーページにリダイレクトされます。「非同期送信を使用」オプションを選択して、ユーザーを Web ページにリダイレクトしたり、送信時にメッセージを表示したりできます。

送信アクションの設定

非同期送信:単一ページアプリケーションなどの最新の Web エクスペリエンスが広く使用されるようになっています。こうしたアプリケーションでは、バックグラウンドでクライアントとサーバー間の通信が実行されている間、Web ページが静的な状態のままになります。非同期送信を設定することにより、アダプティブフォームでこうしたエクスペリエンスを実現できます。

アダプティブフォームでのサーバーサイドの再検証

通常、どのようなオンラインデータ取得システムでも、ビジネスルールを適用するために、開発者はクライアントサイドに何らかの JavaScript 検証を配置します。しかし、最新のブラウザーでは、エンドユーザーが Web Browser DevTools Console などの様々な手法を使用してこれらの検証を回避し、手動で送信を行える方法が存在します。このような手法は、アダプティブフォームにも有効です。フォーム開発者は、多様な検証ロジックを作成できますが、エンドユーザーは、これらの検証ロジックを回避し、無効なデータをサーバーに送信できます。無効なデータは、フォーム作成者が適用したビジネスルールを破ることになります。

サーバーサイドの再検証機能は、アダプティブフォーム作成者がアダプティブフォームのデザイン中に指定した検証を、サーバー上でも実行するための機能です。これは、フォームの検証で表されるデータ送信の漏洩やビジネスルール違反の可能性を阻止します。

サーバーで検証されるもの

サーバーで再実行される、アダプティブフォームのすぐに使用できる(OOTB)すべてのフィールド検証を以下に示します。

  • 必須
  • 検証パターン形式文字列
  • 検証式

サーバー側検証の有効化

サイドバーにある「アダプティブフォームコンテナ」の「サーバー側で再検証」を使用して、現在のフォームのサーバーサイド検証を有効または無効にします。

サーバーサイド検証の有効化

サーバーサイド検証の有効化

エンドユーザーがこれらの検証を回避してフォームを送信した場合、サーバーが再度検証を行います。サーバーサイドでの検証が失敗した場合、送信処理が中止されます。ユーザーには、元のフォームが再度表示されます。取得されたデータおよび送信されたデータは、エラーとしてユーザーに表示されます。

メモ

サーバーサイド検証により、フォームモデルが検証されます。検証のために別個のクライアントライブラリを作成し、1 つのクライアントライブラリに HTML のスタイルや DOM 操作を混在させないことをお勧めします。

検証式でのカスタム関数のサポート

複雑な検証ルール​がある場合、正確な検証スクリプトがカスタム関数の中に存在し、作成者がこれらのカスタム関数をフィールド検証式から呼び出すことがあります。このカスタム関数ライブラリをサーバーサイド検証中に認識させ、利用可能にするために、フォーム作成者は、「アダプティブフォームコンテナ」プロパティの「基本」タブで、AEM クライアントライブラリの名前を設定できます(下記画像を参照)。

検証式でのカスタム関数のサポート

検証式でのカスタム関数のサポート

作成者は、アダプティブフォームごとにカスタム JavaScript ライブラリを設定できます。ライブラリには、jQuery および underscore.js サードパーティライブラリに依存する、再利用可能な関数のみを保持します。

送信アクションに対するエラー処理

AEM セキュリティおよび堅牢化ガイドラインの一環として、400.jsp、404.jsp、500.jsp などのカスタムエラーページを設定します。これらのハンドラーは、フォーム送信時に 400、404 または 500 エラーが表示される場合に呼び出されます。また、これらのハンドラーは、公開ノードでこれらのエラーコードがトリガーされる場合にも呼び出されます。他の HTTP エラーコード用の JSP ページを作成することもできます。

フォームデータモデルに事前入力したり、<afData><afBoundData> および </afUnboundData> タグを含まないデータであるスキーマに対する XML または JSON データの苦情を含むスキーマベースのアダプティブフォームに事前入力すると、アダプティブフォームの境界なしのフィールドのデータは失われます。このスキーマは、XML スキーマ、JSON スキーマまたはフォームデータモデルのいずれかです。境界なしのフィールドは、bindref プロパティを持たないアダプティブフォームフィールドです。

このページ