現在表示中:

概要

送信アクションは、ユーザーが「送信」ボタンをクリックしたときにトリガーされます。アダプティブフォームでは、各フォームごとに送信アクションを設定することができます。使用例と要件に基づき、送信されたフォームのデータを処理するための独自の送信アクションを書いて登録することができます。ただし、アダプティブフォームには、追加設定なしで使用できる送信アクションがあります。デフォルトの送信アクションをコピーし、拡張することにより、独自の送信アクションを作成することができます。

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

送信アクションの設定
送信アクションの設定

アダプティブフォームで使用可能なデフォルトの送信アクションは次のとおりです。

  • REST エンドポイントへの送信
  • コンテンツ保存アクション (廃止)
  • メール送信アクション
  • PDF のメール送信アクション
  • PDF の保存アクション (廃止)
  • フォームワークフローへの送信
  • フォームポータル送信アクション

注意:

実稼働環境では、送信されたフォームデータを AEM リポジトリに保存しないことをお勧めします。コンテンツ保存(廃止)、PDF の保存(廃止)、フォームポータルなどの送信アクションは、フォームデータを AEM リポジトリに保存します。これらの送信アクションは、デモを目的としたものです。実稼働環境では、その代わりに、企業データベースなどのよりセキュアなストレージにフォームデータを保存するカスタム送信アクションを作成する必要があります。詳しくは、「アダプティブフォーム向けのカスタム送信アクションの作成」を参照してください。

注意:

PDF のメール送信アクションおよび PDF の保存(廃止)アクションは、XFA テンプレートをフォームモデルとして使用しているアダプティブフォームにのみ使用することができます。

注意:

コンテンツ保存アクション(廃止)、ファイル添付、eSign サービスは、匿名ユーザーには対応していません。

警告:

フォームテンプレートまたはスキーマベースのアダプティブフォームを、スキーマ(XML スキーマまたはフォームテンプレート)に準拠した XML データを使用して事前入力する、つまりデータが <afData>、<afBoundData>、および </afUnboundData> タグを含まない場合、アダプティブフォームの連結されていないフィールド(連結されていないフィールドとは、bindref プロパティのないアダプティブフォームフィールドのこと)のデータは失われます。

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

REST エンドポイントへの送信 オプションでは、フォームに記入されたデータが、HTTP GET リクエストの一環として設定済みの確認ページに渡されます。フィールド名をリクエストに追加することができます。リクエストのフォーマットは次のとおりです。

{フィールド名}={リクエスト パラメーター名}

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

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

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

注意:

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

リソースまたは外部の REST エンドポイントへの送信されたデータの POST

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

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

内部サーバーにデータを POST 送信するには、URL を指定します。URL の形式は、http://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 が添付ファイルデータを格納します。

廃止 - 送信アクション「コンテンツ保存アクション」の設定

コンテンツ保存アクション」(廃止)送信オプションでは、フォームのデータが CRX レポジトリに保存されます。フォームデータは、送信アクションの設定時に指定されるパス上に作成される CRX ノードに、プロパティとして保存されます。

コンテンツ保存アクション(廃止)について詳しくは、「JCR リポジトリへのコンテンツの送信と保存」を参照してください。

送信アクション「メール送信アクション」の設定

メール送信アクション」オプションでは、フォームの送信が完了すると同時に、1 人または複数の受信者に電子メールが送信されます。生成される電子メールには、事前に定義された形式のフォームデータを含めることができます。

注意:

フォームデータを電子メールに含めるには、異なるパネルに配置されているフォームフィールドを含め、すべてのフォームフィールドが異なる要素名を持っている必要があります。

送信アクション「PDF のメール送信アクション」の設定

PDF のメール送信アクション」オプションでは、フォームの送信が完了すると同時に、1 人または複数の受信者にフォームデータを含む PDF が添付された電子メールが送信されます。

注意:この送信アクションは、レコードのドキュメントテンプレートを持つ XFA ベースのアダプティブフォームおよび XSD ベースのアダプティブフォームに使用することができます。

廃止 - 送信アクション「PDF の保存アクション」の設定

PDF の保存アクション」(廃止)オプションでは、フォームの送信が完了すると同時に、フォームデータが PDF ドキュメントとして CRX に保存されます。

注意:この送信アクションは、レコードのドキュメントテンプレートを持つ XFA ベースのアダプティブフォームおよび XSD ベースのアダプティブフォームに使用することができます。

送信アクション「PDF の保存アクション」(廃止)の設定方法について詳しくは、「JCR リポジトリへのコンテンツの送信と保存」を参照してください。

送信アクション「フォームワークフローへの送信」の設定

フォームワークフローへの送信」オプションでは、データ XML および添付ファイル(存在する場合に)が既存の Adobe LiveCycle プロセスに送信されます。

送信アクション「フォームワークフローへの送信」の設定方法について詳しくは、「フォームワークフローを利用したフォームデータの送信および処理」参照してください。

送信アクション「フォームポータル送信アクション」の設定

フォームポータル送信アクション」オプションでは、フォームデータが AEM Forms ポータルで使用できるようになります。

フォームポータルと送信アクションについて詳しくは、「ドラフトと送信コンポーネント」を参照してください。

アダプティブフォームにおけるサーバー側の再検証

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

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

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

アダプティブフォームの追加設定なし(OOTB)のフィールド検証で、サーバーで再実行されるものは次のとおりです。

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

サーバー側検証の有効化

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

サーバー側検証の有効化
サーバー側検証の有効化

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

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

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

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

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

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

AEM セキュリティおよび堅牢化ガイドラインの一部として、404.jsp や 500.jsp などのカスタムエラーページを設定してください。これらのハンドラーは、フォーム送信時に 404 または 500 エラーが表示されるときに呼び出されます。また、これらのハンドラーは、発行ノードでこれらのエラーコードがトリガーされるときにも呼び出されます。 

詳しくは、「エラーハンドラーによって表示されるページのカスタマイズ」を参照してください。

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー