データプロバイダー
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、こちらまでご連絡ください。
「リストから選択」フィールドには多くのオプションを含めることができます。 たとえば、地球には約200か国があります。 空き家で無給のインターンがいる場合は、[リストから選択]フィールドに国を手動で入力するよう依頼するか、REST Webサービスを使用して選択フィールドに自動入力することができます。 これにより、あなた(またはあなたのインターン)がこれらのオプションをすべて入力する手間が省け、他の誰か(できれば信頼できる専門家)に頼ってデータを最新の状態に保つことができます。
データプロバイダーを設定するときは、 REST Webサービスアクセスしています。 Liferayに登録されている
JSON Webサービス、またはアクセス可能なその他のREST Webサービスを使用します。 Liferay DXPですぐに使用できる登録済みJSON Webサービスのリストを見つけるには、 http:// localhost:8080 / api / jsonws します(ローカルサーバーを実行している場合)。 利用可能なLiferayサービスを参照します。 多くの場合、Formsアプリケーションで役立つサービスは何かのリストを取得します。 get-countries
JSON Webサービス(2つあります—どちらか1つを使用)を見つけてクリックし、[ Invoke]をクリックします。 Result タブには、次のようなJSON構文を使用する国のリストが表示されます。
[
{
"a2": "AF",
"a3": "AFG",
"countryId": "20",
"idd": "093",
"mvccVersion": "0",
"name": "afghanistan",
"nameCurrentValue": "Afghanistan",
"number": "4"
},
...
それがアフガニスタンの国の記録です。 [ URL ]タブで確認できるように、データプロバイダーフォームに入力したURLは、 get-countries
JSON Webサービスにアクセスするために生成されたものと同じです。 同じ手順を使用して、登録済みのJSON WebサービスのURLを見つけます。
ユーザーが選択するフィールドに注意してください。 このサービスでは、国の完全に適切に大文字で表記された名前が含まれているため、おそらく nameCurrentValue
です。
基本的なデータプロバイダーの追加
フォームで使用するために Countries of the World Data Providerを追加するには、
-
フォームアプリケーションに移動します。
-
[オプション]ボタン(クリックして
)とクリック データプロバイダ。
-
[追加]ボタン(
)をクリックします。
RESTデータプロバイダーフォームが読み込まれます。
- [名前]フィールドと[説明]フィールドに入力します。
名前: 世界の国々
- RESTサービスのURLと認証トークンを入力します。
get-countries
サービスの場合:
URL: http:// localhost:8080 / api / jsonws / country / get-countries /
ユーザー名: test@example.com
パスワード:テスト
- [出力]フィールドで、RESTサービスのどのフィールドを選択リストに入力するかを指定します。
レーベル: 国名
パス: $ .. nameCurrentValue
タイプ: リスト
- データプロバイダーを保存します。
$ ..
before nameCurrentValue
何ですか? これは、JSONデータ構造をナビゲートし、出力へのパスを指定するためのJsonPath構文です。 JsonPath 詳細はこちら と こちらご覧ください。
選択フィールドでのデータプロバイダーの使用
データプロバイダーを構成したら、それを使用して[リストから選択]フィールドにデータを入力します。
-
フォームビルダーに移動します(新しいフォームを追加するか、既存のフォームを編集します)
-
[リストから選択]フィールドをフォームにドラッグします。
-
[リストの作成]セクションで、[データプロバイダーから *選択します。
4 データプロバイダーとその出力パラメーターを選択します。
データプロバイダーの選択:世界の 国
出力パラメータを選択: 国名
5 フォームを発行してテストします。
現在、データプロバイダーを使用して、選択フィールドにデータが入力されています。 ただし、このフォームは、現在データプロバイダーからの結果のリストを表示する権限を持っていないゲストユーザーが送信する必要があります。 ああ! それで?
データプロバイダーのアクセス許可の付与
データプロバイダーの権限を構成するには、フォームアプリケーションに移動します(サイト管理 → コンテンツ → フォーム)。 [オプション]メニュー()を開き、[ Data Providers]を選択します。 構成するデータプロバイダーについて、[アクション]ボタン(
)をクリックしてから、[ 権限]をクリックします。
必要な権限を構成します。 ゲストがフォームに記入する場合は、 表示 許可が必要です。そうでない場合、ゲストはデータプロバイダーが提供するオプションを表示できません。 権限を付与したら、[ 保存]をクリックします。
データプロバイダーの構成
上記の手順では、基本的なデータプロバイダーの追加について説明します。 データプロバイダー設定フォームの各フィールドについて詳しく知ることで、より多くの可能性が開かれます。
URL :内部または外部RESTサービスエンドポイントのURL。 https://restcountries.eu/にあるRESTサービスを検討してください。これには、 リージョン
国を検索するREST APIエンドポイントが含まれています。
`https://restcountries.eu/rest/v2/region/{region}`
データプロバイダーのURLは、パスパラメーターとクエリパラメーターの2種類のパラメーターを取ることができます。
パスパラメータはREST Webサービスを呼び出すURLの一部であり、パターン https://service-url.com/service/{path_parameter_name}
を使用して追加されます。
restcountries.eu
サービスの リージョン
エンドポイントのパスパラメータは {region}
です。 パスパラメータはURLの必須部分なので、URLのパスパラメータと一致する パラメータ フィールド値で入力(以下を参照)を指定していることを確認してください。
クエリパラメータは、サービス呼び出しの出力をフィルタリングするURLの補足部分であり、パターン ?query_parameter = query_parameter_value
従います。
https://restcountries.eu/rest/v2/all?fields=capital
パスパラメータとは異なり、クエリパラメータはオプションです。
ユーザー名とパスワード :必要に応じて、REST Webサービスへの認証に使用される資格情報。
最初のリクエストでデータをキャッシュします。 :データがキャッシュされている場合、RESTサービスプロバイダーへの2回目の呼び出しが不要であるため、選択リストフィールドの2回目のロードははるかに高速です。
タイムアウト :応答が返されない場合に、リクエストを中止する前にRESTサービス呼び出しを処理できる時間(ミリ秒)。
入力 :RESTサービスからのパスまたはクエリパラメータを設定して、RESTサービスの応答をフィルタリングします。 ラベル、パラメーター、およびタイプ(テキストまたは数値)を指定し、データプロバイダーを使用するために入力が必要かどうかを選択します。 複数の入力を追加できます。 ユーザーが入力値を指定する方法を提供するには、 Autofill Form Ruleます。 ユーザーが1つのフィールドに入力を入力すると、その入力がRESTサービスに送信されます。 RESTサービスの応答データは、入力パラメーターによってフィルタリングされます。
出力 :オートコンプリートが有効になっている[リストから選択]または[テキスト]フィールドに表示するパラメーター。 複数の出力を追加できます。 出力は入力(上記を参照)でフィルタリングできますが、入力フィルタリングを構成せずに表示することもできます。 ラベル、パス、およびタイプ(テキスト、数値、またはリスト)を指定します。 Pathフィールドは JsonPath構文で指定されるため、常に $
始まる必要があります。 パスによって返されるデータのタイプは、[タイプ]フィールドで選択したタイプと一致する必要があります。 restcountries.eu
サービスを使用して、Pathフィールドにenter $ .. name
と入力し、 name
フィールドを出力として指定します。
より複雑なJsonPath式を作成する場合(たとえば、人口が1億人を超えるすべての国の名前が必要です—$ .. [?(@。population>100000000)]。name
with the restcountries.eu
サービス)、 this this または this thisようなオンラインJsonPathエバリュエーターの使用を検討してください。
データプロバイダーのエラーのトラブルシューティング
データプロバイダーの障害から発生するエラーを明らかにするには、これらのサービスのログレベル を 構成します。
カテゴリ: com.liferay.dynamic.data.mapping.data.provider.internal.DDMDataProviderInvokerImpl
レベル: 警告
カテゴリ: com.liferay.dynamic.data.mapping.form.field.type.internal.DDMFormFieldOptionsFactoryImpl
レベル: デバッグ
データプロバイダーを使用すると、世界の(RESTful)データをFormsアプリケーションで使用できます