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

RESTデータプロバイダーを使用してフォームオプションを入力する

[リストから選択]フィールドには、多くのオプションを含めることができます。 これらのオプションは、Liferay DXP またはその他のサードパーティの REST Web サービスに登録されている JSON Web サービスを使用して自動的に提供できます。 データ プロバイダー全般の詳細については、 データ プロバイダーを参照してください。 REST データ プロバイダーをフォームに適用するには、JSON Web サービスを呼び出し、そこからデータを取得するようにデータ プロバイダーを構成し、フォームでデータ プロバイダーを使用する方法を学習します。

REST データ プロバイダーを使用して、 テキスト フィールドを自動補完することもできます。

前提条件

一般的なニーズは、[選択]フィールドにオプションのリストを入力することです。たとえば、フォームで個人情報を収集する場合は、ユーザーの国が必要です。

  1. Country」という単一選択フィールドを含むフォーム を作成します。

  2. 次に、 get-countries JSON Web サービスを使用します (—2 つあるので、いずれか 1 つを使用します)。

    get-countries Webサービスを検索します。

    • [呼び出し] をクリックします。

これで、国のリストが使用可能になりました。

ローカルネットワーク上のデータへのアクセスを有効にする

デフォルトでは、ユーザーはデータプロバイダーがローカルネットワーク上のURLを使用するように設定することはできません。 このデフォルト設定は本番環境におけるセキュリティにとっては適切ですが、テストがしずらくなります。

データプロバイダーからローカルネットワークへのアクセスを有効にするには:

  1. コントロール パネル構成システム設定に移動します。

  2. [コンテンツ & データ]の下にある[データプロバイダー]をクリックします。

  3. [ローカルネットワークへのアクセス]チェックボックスにチェックを入れます。

    ローカルネットワークへのアクセス権限を付与します。

  4. 完了したら、 「保存」 をクリックします。

基本的なRESTデータプロバイダーの追加

Countries of the Worldデータプロバイダーを追加するには:

  1. 製品メニュー (Product Menu) を開き、 サイト管理 メニューのコンパスアイコン (Compass) をクリックします。

  2. フォームを作成するサイトを選択します。

  3. コンテンツ & データフォームをクリックします。

  4. データ プロバイダー タブをクリックします。

    [データプロバイダー]タブに移動します。

  5. 追加 (Add) をクリックし、REST データ プロバイダーを追加します。

  6. このデータを入力してください:

    • 名前: 世界の国々
    • URL: http://localhost:8080/api/jsonws/country/get-countries/
    • ユーザー名: adminuser@liferay.com
    • パスワード: adminuserpass
    • タイムアウト: 1000
    • 出力ラベル: 国名
    • 出力パス: $..nameCurrentValue
    • 出力タイプ: リスト

    値を入力します。

  7. 完了したら、 「保存」 をクリックします。

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

RESTデータプロバイダーのフィルターとしての入力の使用

上記の例では、単一の出力のみを使用して、 リストから選択フィールドに入力します。 REST プロバイダーからの応答をフィルターするには、入力フィールドを使用します。

この例では、別のデータ プロバイダーを使用し、世界の国々に地域 (たとえば、アメリカ、ヨーロッパ、オセアニア) フィルターを適用します。

  1. このデータを入力してください:

    • 名前: その他の国
    • URL: https://restcountries.com/v3.1/region/{region}?fields=name
    • 入力パラメータ: 地域
    • 入力タイプ: テキスト
    • 入力ラベル: 地域
    • 出力パス: $..name.common
    • 出力タイプ: リスト
    • 出力ラベル: 国名

    これらの値の詳細については、 データ プロバイダーを参照してください。

この例では入力パラメータを使用しているため、API 呼び出しが適切に解決されるように、データ プロバイダーに入力を提供する必要があります。 テキスト フィールドの値を入力としてデータ プロバイダーに送信する自動入力ルールを設定できます。 例については、 自動入力ルール のドキュメントを参照してください。

データプロバイダーへの権限付与

データ プロバイダーが提供するオプションを表示するには、ユーザーはデータ プロバイダーの表示権限を持っている必要があります。 たとえば、ゲストがフォームに記入する必要がある場合は、表示権限を付与します。

データプロバイダーの権限を設定するには:

  1. サイト管理コンテンツ & データフォームに移動します。

  2. [データプロバイダー]タブをクリックします。

  3. [アクション] (Actions) をクリックし、データ プロバイダーの横にある [権限] をクリックします。

    ゲストの表示権限を付与します。

  4. 必要な権限を付与します。

  5. 完了したら、 「保存」 をクリックします。

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

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

  1. コンテンツ & データフォームをクリックします。

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

  3. リストの作成ドロップダウンメニューから データプロバイダーから を選択します。

  4. 「データプロバイダーの選択」ドロップダウン メニューから 世界の国々 を選択します。

  5. 「出力パラメータの選択」ドロップダウンメニューから 国名 を選択します。

    [リストから選択]フィールドのデータプロバイダーの値を設定します。

  6. 完了したら、 「フォームを保存」 をクリックします。

データプロバイダは、正しい権限を持ってフォームにアクセスしているユーザに対して、セレクトフィールドを生成するようになりました。

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

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

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

  1. コントロール パネルシステムサーバー管理に移動します。

  2. ログ レベル タブをクリックします。

  3. ロギングカテゴリ com.liferay.dynamic.data.mapping.data.provider.internal.DDMDataProviderInvokerImpl を追加し、 WARN レベルでログを記録するように設定します。 完了したら保存します

  4. ロギングカテゴリ com.liferay.dynamic.data.mapping.form.field.type.internal.DDMFormFieldOptionsFactoryImpl を追加し、 WARN レベルでログを記録するように設定します。 完了したら保存します

データプロバイダーでエラーが発生した場合、コンソールが警告メッセージを送信するようになりました。