これは、「最初のアダプティブフォームを作成する」シリーズを構成するチュートリアルです。チュートリアル内のユースケースを理解して実際に操作できるように、このシリーズのチュートリアルを最初から順に学習することをお勧めします。
AEM Formsデータ統合モジュールを使用すると、AEMユーザープロファイル、RESTful Webサービス、SOAPベースのWebサービス、ODataサービス、およびリレーショナルデータベースなど、異なるバックエンドデータソースからフォームデータモデルを作成できます。 フォームデータモデル内でデータモデルオブジェクトとサービスを設定し、そのフォームデータモデルをアダプティブフォームに関連付けることができます。アダプティブフォームのフィールドは、データモデルオブジェクトのプロパティに連結されます。フォームデータモデル内のサービスを使用して、アダプティブフォームに事前にデータを取り込み、送信されたフォームデータをデータモデルオブジェクトに書き込むことができます。
フォームデータの統合機能とフォームデータモデルについて詳しくは、「AEM Forms のデータ統合機能」を参照してください。
このチュートリアルでは、フォームデータモデルの準備、作成、設定を行い、そのフォームデータモデルをアダプティブフォームに関連付けるための手順について、順を追って説明します。このチュートリアルを完了すると、次の操作を実行できるようになります。
フォームデータモデルは、以下のように表示されます。
A. 設定済みデータソース B. データソーススキーマC. 利用可能なサービス Available Services. Data modelオブジェクトE Configuredサービス
作業を開始する前に、以下の条件が満たされているかどうかを確認してください。
各種のデータソースを設定して、フォームデータモデルを作成することができます。このチュートリアルでは、サンプルデータが取り込まれた MySQL データベースの設定を行います。サポートされている他のデータソースとその設定方法については、「AEM Forms のデータ統合機能」を参照してください。
MySQL データベースを設定するには、以下の手順を実行します。
MySQLデータベース用のJDBCドライバーをOSGiバンドルとしてインストールします。
AEM Forms のオーサーインスタンスに管理者としてログインし、AEM Web コンソールバンドルに移動します。デフォルトの URL は、http://localhost:4502/system/console/bundles です。
「インストール/更新」をタップします。 「Upload / Install Bundles」ダイアログが表示されます。
「Choose File」をタップし、MySQL JDBC ドライバーの OSGi バンドルを探して選択します。「開始バンドル」と「パッケージを更新」を選択し、「インストールまたは更新」をタップします。 Oracle が提供する MySQL の JDBC ドライバーがアクティブになっていることを確認します。このドライバーは、既にインストールされています。
以下の手順により、MySQL データベースをデータソースとして設定します。
AEM Web コンソール(http://localhost:4502/system/console/configMgr)に移動します。
「Apache Sling Connection Pooled DataSource」という設定を探し、その設定をタップして編集モードで開きます。
設定ダイアログで、以下の詳細情報を指定します。
jdbc:mysql://[server]:3306/weretail?autoReconnect=true&useUnicode=true&characterEncoding=utf-8
その他のプロパティはデフォルトの値のままにし、「保存」をタップします。
以下のような設定が作成されます。
AEM Formsは、設定済みのデータソースからフォームデータモデル](data-integration.md)を作成するための直観的なユーザーインターフェイスを提供します。 [1 つのフォームデータモデル内で複数のデータソースを使用することができます。このユースケースでは、既に設定されている MySQL データソースを使用します。
フォームデータモデルを作成するには、以下の手順を実行します。
AEMオーサーインスタンスで、Forms > データ統合に移動します。
作成/フォームデータモデルの順にタップします。
フォームデータモデル作成ダイアログで、フォームデータモデルの名前を指定します。例えば、「customer-shipping-billing-details」などを指定します。「次へ」をタップします。
データソース選択画面に、すべての設定済みデータソースが一覧表示されます。WeRetailMySQLデータソースを選択し、「作成」をタップします。
customer-shipping-billing-detailsフォームデータモデルが作成されます。
フォームデータモデルを設定するには、以下の操作を行う必要があります。
フォームデータモデルを設定するには、以下の手順を実行します。
AEM オーサーインスタンスで、フォーム/データ統合に移動します。デフォルトの URL は、http://localhost:4502/aem/forms.html/content/dam/formsanddocuments-fdm です。
先ほど作成したcustomer-shipping-billing-detailsフォームデータモデルをここに示します。 このフォームデータモデルを編集モードで開きます。
前の手順で選択した WeRetailMySQL というデータソースが、フォームデータモデル内に設定されています。
データソースツリーで WeRailMySQL データソースを展開します。weretail > customerdetailsスキーマから次のデータモデルオブジェクトおよびサービスを選択して、データモデルを作成します。
データモデルオブジェクト:
Services:
「選択項目を追加」をタップして、選択したデータモデルオブジェクトとサービスをフォームデータモデルに追加します。
JDBCデータソースのデフォルトのget、update、insertサービスは、フォームデータモデルと共に、すぐに使用できます。
以下の手順により、データモデルオブジェクトの読み取りサービスと書き込みサービスを設定します。
「customerdetails」データモデルオブジェクトを選択して「プロパティの編集」をタップします。
「読み取りサービス」ドロップダウンで「get」を選択します。id引数は、customerdetailsデータモデルオブジェクトの主キーです。この引数は自動的に追加されます。 をタップし、次のように引数を設定します。
同様に、書き込みサービスとして「update」を選択します。customerdetails オブジェクトが引数として自動的に追加されます。この引数を以下のように設定します。
id 引数を追加して以下のように設定します。
「完了」をタップして、データモデルオブジェクトのプロパティを保存します。次に、「保存」をタップして、フォームデータモデルを保存します。
get サービスと update サービスが、データモデルオブジェクトのデフォルトのサービスとして追加されます。
「サービス」タブに移動し、get サービスと update サービスを設定します。
getサービスを選択し、「プロパティを編集」をタップします。 プロパティダイアログが開きます。
プロパティを編集ダイアログで、以下のプロパティを指定します。
タイトル:サービスのタイトルを指定します。例えば、「Retrieve Shipping Address」などを指定します。
説明:サービスの詳細な機能を示す説明を入力します。次に例を示します。
このサービスは、MySQLデータベースから配送先住所とその他の顧客の詳細を取得します
出力モデルオブジェクト:顧客データを保管するスキーマを選択します。次に例を示します。
customerdetailスキーマ
配列を返す:「配列を返す」オプションを無効にします。
引数:ID という引数を選択します。
「完了」をタップします。これで、顧客の詳細情報を MySQL データベースから取得するサービスが設定されました。
updateサービスを選択し、「プロパティを編集」をタップします。 プロパティダイアログが開きます。
プロパティを編集ダイアログで、以下のプロパティを指定します。
タイトル:サービスのタイトルを指定します。例えば、「Update Shipping Address」などを指定します。
説明:サービスの詳細な機能を示す説明を入力します。次に例を示します。
このサービスは、MySQLデータベースの配送先住所と関連フィールドを更新します
入力モデルオブジェクト:顧客データを保管するスキーマを選択します。次に例を示します。
customerdetailスキーマ
出力タイプ:「ブール演算式」を選択します。
引数:ID という引数と customerdetails という引数を選択します。
「完了」をタップします。これで、MySQL データベース内の顧客の詳細情報を更新する update サービスが設定されました。
これで、フォームデータモデル内のデータモデルオブジェクトとサービスが設定されました。次に、フォームデータモデルのテストを実行します。
データモデルのオブジェクトおよびサービスをテストして、フォームデータモデルが正しく設定されていることを確認できます。
テストを実行するには、以下の手順を実行します。
「モデル」タブに移動し、customerdetails データモデルオブジェクトを選択して「モデルオブジェクトをテスト」をタップします。
「モデル / サービスのテスト」ウィンドウの「モデル / サービスを選択」ドロップダウンで「モデルオブジェクトを読み込み」を選択します。
「customerdetails」セクションで、設定済み MySQL データベース内の id 引数を指定して「テスト」をタップします。
指定した id 引数に関連付けられている顧客の詳細情報がデータベースから取得され、以下のように「出力」セクションに表示されます。
同様の手順で、書き込みモデルオブジェクトと書き込みサービスをテストします。
以下の例では、データベース内で 7102715 という ID が設定されている住所情報が、update サービスによって正しく更新されています。
この状態で、7102715 という ID に対して読み取りモデルサービスのテストをもう一度実行すると、以下のように、更新後の顧客情報が画面に表示されます。