Show Menu
トピック×

チュートリアル:フォームデータモデルの作成

これは、「 最初のアダプティブフォームを作成する 」シリーズを構成するチュートリアルです。チュートリアル内のユースケースを理解して実際に操作できるように、このシリーズのチュートリアルを最初から順に学習することをお勧めします。

このチュートリアルについて

AEM Forms data integration module allows you to create a form data model from disparate backend data sources such as AEM user profile, RESTful web services, SOAP-based web services, OData services, and relational databases. フォームデータモデル内でデータモデルオブジェクトとサービスを設定し、そのフォームデータモデルをアダプティブフォームに関連付けることができます。アダプティブフォームのフィールドは、データモデルオブジェクトのプロパティに連結されます。フォームデータモデル内のサービスを使用して、アダプティブフォームに事前にデータを取り込み、送信されたフォームデータをデータモデルオブジェクトに書き込むことができます。
フォームデータの統合機能とフォームデータモデルについて詳しくは、「 AEM Forms のデータ統合機能 」を参照してください。
このチュートリアルでは、フォームデータモデルの準備、作成、設定を行い、そのフォームデータモデルをアダプティブフォームに関連付けるための手順について、順を追って説明します。このチュートリアルを完了すると、次の操作を実行できるようになります。
フォームデータモデルは、以下のように表示されます。
A. Configured data sources B. Data source services C. Available services D. Data model objects E. Configured services

前提条件

作業を開始する前に、以下の条件が満たされているかどうかを確認してください。

手順 1:MySQL データベースをデータソースとして設定する

各種のデータソースを設定して、フォームデータモデルを作成することができます。このチュートリアルでは、サンプルデータが取り込まれた MySQL データベースの設定を行います。サポートされている他のデータソースとその設定方法については、「 AEM Forms のデータ統合機能 」を参照してください。
Do the following to configure your MySQL database:
  1. Install JDBC driver for MySQL database as an OSGi bundle:
    1. Log in to AEM Forms Author Instance as an administrator and go to AEM web console bundles. The default URL is https://localhost:4502/system/console/bundles .
    2. Tap Install/Update . 「Upload / Install Bundles」ダイアログが表示されます。
    3. Choose File 」をタップし、 JDBC ドライバーの OSGi バンドルを探して選択します。MySQLSelect Start Bundle and Refresh Packages , and tap Install or Update . Ensure that the Oracle Corporation's JDBC Driver for MySQL is active. このドライバーは、既にインストールされています。
  2. Configure MySQL database as a data source:
    1. Apache Sling Connection Pooled DataSource 」という設定を探し、その設定をタップして編集モードで開きます。
    2. 設定ダイアログで、以下の詳細情報を指定します。
      • Datasource name :任意のデータソース名を指定します。For example, specify WeRetailMySQL .
      • DataSource service property name :データソース名を保管するサービスプロパティの名前を指定します。この名前は、データソースインスタンスを OSGi サービスとして登録する際に指定されます。例えば、「 datasource.name 」などを指定します。
      • JDBC driver class :JDBC ドライバーの Java クラス名を指定します。For MySQL database, specify com.mysql.jdbc.Driver .
      • JDBC connection URI :データベースの接続 URL を指定します。ポート3306およびスキーマWeretailで実行される MySQL データベースの場合、URLは次のとおりです。 jdbc:mysql://'server':3306/weretail?autoReconnect=true&useUnicode=true&characterEncoding=utf-8
      • Username :データベースのユーザー名を指定します。データベースとの接続を確立するには、JDBC ドライバーを有効にする必要があります。
      • Password :データベースのパスワードを指定します。データベースとの接続を確立するには、JDBC ドライバーを有効にする必要があります。
      • 借用時のテスト: # オプションを有効にします。
      • リターン時のテスト: 「リターン時に テスト 」オプションを有効にします。
      • Validation Query :プールからの接続状態を確認するための SQL SELECT クエリを指定します。このクエリでは、1 行以上の行が返される必要があります。例えば、「 select * from customerdetails 」などを指定します。
      • Transaction Isolation :このオプションの値を「 READ_COMMITTED 」に設定します。
        Leave other properties with default values and tap Save .
        以下のような設定が作成されます。

手順 2:フォームデータモデルを作成する

AEM Forms provides an intuitive user interface to create a form data model from configured data sources. 1 つのフォームデータモデル内で複数のデータソースを使用することができます。For our use case, we will use the configured MySQL data source.
フォームデータモデルを作成するには、以下の手順を実行します。
  1. AEM オーサーインスタンスで、 フォーム データ統合 ​に移動します。
  2. 作成 フォームデータモデル ​の順にタップします。
  3. フォームデータモデル作成ダイアログで、フォームデータモデルの​ 名前 ​を指定します。例えば、「 customer-shipping-billing-details 」などを指定します。「 次へ 」をタップします。
  4. データソース選択画面に、すべての設定済みデータソースが一覧表示されます。Select WeRetailMySQL data source and tap Create .
The customer-shipping-billing-details form data model is created.

手順 3:フォームデータモデルを設定する

フォームデータモデルを設定するには、以下の操作を行う必要があります。
  • データモデルのオブジェクトおよびサービスの追加
  • データモデルオブジェクト用の読み取りサービスと書き込みサービスを設定する
フォームデータモデルを設定するには、以下の手順を実行します。
  1. On AEM author instance, navigate to Forms > Data Integrations . The default URL is https://localhost:4502/aem/forms.html/content/dam/formsanddocuments-fdm .
  2. The customer-shipping-billing-details form data model you created earlier is listed here. このフォームデータモデルを編集モードで開きます。
    前の手順で選択した WeRetailMySQL というデータソースが、フォームデータモデル内に設定されています。
  3. データソースツリーで WeRailMySQL データソースを展開します。Select the following data model objects and services from weretail > customerdetails schema to form data model:
    • データモデルオブジェクト :
      • id
      • name
      • shippingAddress
      • 市区町村
      • state
      • zipcode
    • Services:
      • get
      • 更新
    選択項目を追加 」をタップして、選択したデータモデルオブジェクトとサービスをフォームデータモデルに追加します。
    JDBCデータソースのデフォルトのget、update、insertサービスは、フォームデータモデルと共に、すぐに使用できます。
  4. 以下の手順により、データモデルオブジェクトの読み取りサービスと書き込みサービスを設定します。
    1. customerdetails 」データモデルオブジェクトを選択して「 プロパティの編集 」をタップします。
    2. 「読み取りサービス」ドロップダウンで「 get 」を選択します。The id argument, which is the primary key in the customerdetails data model object is added automatically. 「 」をタップし、次のように引数を設定します。
    3. 同様に、書き込みサービスとして「 update 」を選択します。 customerdetails オブジェクトが引数として自動的に追加されます。この引数を以下のように設定します。
      id 引数を追加して以下のように設定します。
    4. 完了 」をタップして、データモデルオブジェクトのプロパティを保存します。Then, tap Save to save the form data model.
      get サービスと update サービスが、データモデルオブジェクトのデフォルトのサービスとして追加されます。
  5. サービス 」タブに移動し、 get サービスと update サービスを設定します。
    1. Select the get service and tap Edit Properties . プロパティダイアログが開きます。
    2. プロパティを編集ダイアログで、以下のプロパティを指定します。
      • タイトル :サービスのタイトルを指定します。例えば、「Retrieve Shipping Address」などを指定します。
      • 説明 :サービスの詳細な機能を示す説明を入力します。次に例を示します。
        This service retrieves shipping address and other customer details from MySQL database
      • 出力モデルオブジェクト :顧客データを保管するスキーマを選択します。次に例を示します。
        customerdetailスキーマ
      • 配列を返す :「 配列を返す 」オプションを無効にします。
      • 引数 ID という引数を選択します。
      完了 」をタップします。これで、顧客の詳細情報を MySQL データベースから取得するサービスが設定されました。
    3. update サービスを選択し、「プロパティの 編集 」をタップします。 プロパティダイアログが開きます。
    4. Specify the following in the Edit Properties dialog:
      • タイトル :サービスのタイトルを指定します。例えば、「Update Shipping Address」などを指定します。
      • 説明 :サービスの詳細な機能を示す説明を入力します。次に例を示します。
        このサービスは、MySQLデータベースの配送先住所と関連フィールドを更新します
      • 入力モデルオブジェクト :顧客データを保管するスキーマを選択します。次に例を示します。
        customerdetailスキーマ
      • 出力タイプ :「 ブール演算式 」を選択します。
      • 引数 ID という引数と customerdetails という引数を選択します。
      完了 」をタップします。これで、 データベース内の顧客の詳細情報を更新する update サービスが設定されました。MySQL
これで、フォームデータモデル内のデータモデルオブジェクトとサービスが設定されました。次に、フォームデータモデルのテストを実行します。

手順 4:フォームデータモデルのテストを実行する

データモデルのオブジェクトおよびサービスをテストして、フォームデータモデルが正しく設定されていることを確認できます。
テストを実行するには、以下の手順を実行します。
  1. モデル 」タブに移動し、 customerdetails データモデルオブジェクトを選択して「 モデルオブジェクトをテスト 」をタップします。
  2. 「モデル / サービスのテスト」ウィンドウの「 モデル / サービスを選択 」ドロップダウンで「 モデルオブジェクトを読み込み 」を選択します。
  3. In the customerdetails section, specify a value for the id argument that exists in the configured MySQL database and tap Test .
    指定した id 引数に関連付けられている顧客の詳細情報がデータベースから取得され、以下のように「 出力 」セクションに表示されます。
  4. 同様の手順で、書き込みモデルオブジェクトと書き込みサービスをテストします。
    以下の例では、データベース内で 7102715 という ID が設定されている住所情報が、update サービスによって正しく更新されています。
    この状態で、7102715 という ID に対して読み取りモデルサービスのテストをもう一度実行すると、以下のように、更新後の顧客情報が画面に表示されます。