Forms
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、 こちら までご連絡ください。

データプロバイダー

データプロバイダーは、Formsアプリケーションで使用できるデータを提供します。 RESTデータプロバイダーはFormsアプリケーションに含まれています。 これを使用すると、 REST Web サービス からデータを取得して、フォーム フィールドに自動入力することができます。

よくある例としては、RESTデータプロバイダーを使用して、[リストから選択]フィールドのオプションに国のリストを入力することが挙げられます。

登録済みのJSON Webサービス

一部のデータ ソースは、 restcountries.com データ プロバイダーなどのサード パーティ ソースからのものです。 また、Liferay DXPには独自に登録されたWebサービスがあります。 ローカル サーバーを実行している場合は、リストについては http://localhost:8080/api/jsonws を参照してください。 国のリストを入力する場合、2つのget-countries JSON Web サービスがありますが、どちらでも動作します。 [Invoke]をクリックすると、結果が生成されます。

警告

ローカルテスト環境でLiferayのWebサービスとデータプロバイダを使ってテストするには、ローカルネットワークアクセスを有効にする必要があります。 ローカル ネットワーク上のデータへのアクセスを有効にするを参照してください。

[Result]タブには、次のアフガニスタンのレコードのように、JSON構文を使用した国のリストが表示されます。

[
   {
      "a2": "AF",
      "a3": "AFG",
      "countryId": "20",
      "idd": "093",
      "mvccVersion": "0",
      "name": "afghanistan",
      "nameCurrentValue": "Afghanistan",
      "number": "4"
   },
      ...

Webサービスから選択可能なフィールドを選択します。 get-countriesの場合は、適切に大文字で表記された国の完全な名前が含まれているため、ほとんどの場合nameCurrentValueとなります。

[URL例]タブで、データプロバイダーの作成時に使用するURLを探します。 これは、get-countries JSON Webサービスにアクセスする際に生成されるものと同じです。 ユーザーは、登録されているJSON WebサービスのURLを、これと同じ手順で見つけることができます。

[URL例]タブには、対応するJSON Webサービスが表示されます。

データプロバイダー設定リファレンス

フォームアプリケーションからデータプロバイダーを設定するには、[サイト管理][Content & Data][フォーム]に移動します。 データ プロバイダー タブをクリックし、(Add icon) アイコンをクリックして開始します。 データプロバイダーを設定する際には、いくつかのフィールドに入力する必要があります。

このデータ プロバイダーは国を返します。

URL

内部または外部のRESTサービスのエンドポイントのURLを入力します。 上記の例は、 https://restcountries.com/ の REST サービスを示しています。このサービスには、 地域で国を検索するためのエンドポイントが含まれています。

https://restcountries.com/rest/v2/region/{region}

データプロバイダーのURLには、パスパラメーターとクエリパラメーターの2種類のパラメーターを指定できます。

パス パラメータは、REST Web サービスを呼び出す URL の一部です。 パターン https://service-url.com/service/{path_parameter_name}を使用して追加します。

たとえば、 restcountries.comサービスのregionエンドポイントのパスパラメーターは{region}です。 パスパラメーターはURLの必須部分なので、URLのパスパラメーターに一致する [パラメーター]フィールド値を持つ入力(下記参照)を指定してください。

クエリパラメーターは、サービス呼び出しの出力を絞り込むためのURLの補完的な部分で、?query_parameter=query_parameter_valueというパターンに従います。

https://restcountries.com/rest/v2/all?fields=capital

パスパラメーターとは異なり、クエリパラメーターはオプションです。

ユーザー名とパスワード

必要に応じて、REST Webサービスへの認証に使用する認証情報を入力します。

初回リクエスト時のデータキャッシュ

データがキャッシュされている場合は、RESTサービス・プロバイダーへの2回目の呼び出しが不要になるため、リストを選択フィールドの2回目のロードがより速くなります。

タイムアウト

リクエストを中止する前にREST呼び出しの応答を待機する時間(ミリ秒単位)を入力します。

入力

RESTサービスからのパスパラメーターまたはクエリパラメーターを設定して、RESTサービスの応答を絞り込みます。 ラベル、パラメータ、タイプ (テキストまたは数値) を指定します。

出力

出力は、オートコンプリートが有効になっているリストから選択またはテキスト フィールドに表示されるパラメーターです。 複数の出力を追加できます。 出力は入力によって絞り込むことができますが(上記参照)、入力フィルタリングを設定せずに表示することもできます。 ラベル、パス、タイプ(テキスト、数字、リスト)を指定します。

複数の入力を追加できます。 入力値を指定する方法を提供するには、 自動入力フォーム ルールを使用します。 ユーザーが1つのフィールドに入力すると、その入力内容がRESTサービスに送信されます。 RESTサービスの応答データは、入力パラメータによってフィルタリングされます。

出力パス フィールドは JsonPath 構文で指定されるため、常に $で始まる必要があります。 パスが返すデータのタイプは、[Type]フィールドで選択したタイプと一致する必要があります。 restcountries.com サービスを使用して、[パス]フィールドに$..nameと入力することで、nameフィールドを出力として指定します。 より複雑な JsonPath 式を作成する必要がある場合 (たとえば、人口が 1 億人を超えるすべての国の名前を—$..[?(@.population>100000000)].namerestcountries.com サービスで取得する必要がある場合)、 JsonPath エバリュエーター ( こちらなど) の使用を検討してください。

ヒント

1つの値を表示し、別の値をデータベースに保持するには、両方の値をパスフィールドにセミコロンで区切って入力します: $..name;$..numericCode

restcountries.comデータプロバイダーを使用している場合は、ユーザーには国名が表示され、データベースには数字の国コードが保存されます。

次のステップ