データプロバイダー

データプロバイダー

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

「リストから選択」フィールドには多くのオプションを含めることができます。 たとえば、地球には約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を追加するには、

  1. フォームアプリケーションに移動します。

  2. [オプション]ボタン(クリックしてOptions)とクリック データプロバイダ

  3. [追加]ボタン(Add)をクリックします。

RESTデータプロバイダーフォームが読み込まれます。

  1. [名前]フィールドと[説明]フィールドに入力します。

名前: 世界の国々

  1. RESTサービスのURLと認証トークンを入力します。 get-countries サービスの場合:

URL: http:// localhost:8080 / api / jsonws / country / get-countries /

ユーザー名: test@example.com

パスワード:テスト

  1. [出力]フィールドで、RESTサービスのどのフィールドを選択リストに入力するかを指定します。

レーベル: 国名

パス: $ .. nameCurrentValue

タイプ: リスト

  1. データプロバイダーを保存します。

図1:簡単なデータプロバイダーをすぐにセットアップします。

$ .. before nameCurrentValue何ですか? これは、JSONデータ構造をナビゲートし、出力へのパスを指定するためのJsonPath構文です。 JsonPath 詳細はこちらこちらご覧ください。

選択フィールドでのデータプロバイダーの使用

データプロバイダーを構成したら、それを使用して[リストから選択]フィールドにデータを入力します。

  1. フォームビルダーに移動します(新しいフォームを追加するか、既存のフォームを編集します)

  2. [リストから選択]フィールドをフォームにドラッグします。

  3. [リストの作成]セクションで、[データプロバイダーから *選択します。

4 データプロバイダーとその出力パラメーターを選択します。

データプロバイダーの選択:世界の

出力パラメータを選択: 国名

5 フォームを発行してテストします。

図2:フォームのユーザーは、データプロバイダーによって入力されたリストからオプションを選択します。

現在、データプロバイダーを使用して、選択フィールドにデータが入力されています。 ただし、このフォームは、現在データプロバイダーからの結果のリストを表示する権限を持っていないゲストユーザーが送信する必要があります。 ああ! それで?

データプロバイダーのアクセス許可の付与

データプロバイダーの権限を構成するには、フォームアプリケーションに移動します(サイト管理コンテンツフォーム)。 [オプション]メニュー(Options)を開き、[ Data Providers]を選択します。 構成するデータプロバイダーについて、[アクション]ボタン(Actions)をクリックしてから、[ 権限]をクリックします。

必要な権限を構成します。 ゲストがフォームに記入する場合は、 表示 許可が必要です。そうでない場合、ゲストはデータプロバイダーが提供するオプションを表示できません。 権限を付与したら、[ 保存]をクリックします。

データプロバイダーの構成

上記の手順では、基本的なデータプロバイダーの追加について説明します。 データプロバイダー設定フォームの各フィールドについて詳しく知ることで、より多くの可能性が開かれます。

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エバリュエーターの使用を検討してください。

図3:RESTサービスから取得したデータを表示するようにデータプロバイダーを設定します。

データプロバイダーのエラーのトラブルシューティング

データプロバイダーの障害から発生するエラーを明らかにするには、これらのサービスのログレベル を 構成します。

カテゴリ: com.liferay.dynamic.data.mapping.data.provider.internal.DDMDataProviderInvokerImpl レベル: 警告

カテゴリ: com.liferay.dynamic.data.mapping.form.field.type.internal.DDMFormFieldOptionsFactoryImpl レベル: デバッグ

データプロバイダーを使用すると、世界の(RESTful)データをFormsアプリケーションで使用できます

« フォーム要素セット自動保存 »
この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています