機械翻訳について

レイアウト内のコンポーネントのカスタム・コンテキストの定義

動的コンポーネント内で使用できる組込みシステム変数(デバイス・サイズやユーザー・ロールなど)に加えて、コンテキストを定義して、動的コンポーネントにアクセスできない可能性のある情報を渡すこともできます。 この情報は、レイアウトの外部から生成された値(ページ変数やアプリケーションの他の部分からの詳細など)です。

たとえば、動的表またはフォームを使用してレイアウトを構築する場合に便利なプリファレンスをアプリケーションに含めることができます。 これらのプリファレンスには任意の値を指定できますが、レイアウト開発者として、無効な値をレイアウトで使用しないようにします。 そのため、Visual Builderには、コンポーネント・コンテキストが受け入れるシェイプまたはパラメータの定義に役立つ契約であるcomponentContextTypeが用意されています。 componentContextTypeが定義されると、これらのパラメータは$componentContextシステム変数の一部となり、レイアウト内の任意の場所で使用できます。 ルール・セット条件ビルダーの$componentContextパラメータの例を次に示します:



Visual Builderには、サービス・レベルでパラメータを定義するbaseComponentContextTypeも用意されています。 componentContextTypeと同様に、baseComponentContextType契約で定義されたパラメータは、$componentContext変数を使用できるレイアウト内の任意の場所で使用できます。 ただし、コンポーネント・コンテキスト・パラメータとは異なり、ベース・コンポーネント・コンテキスト・パラメータはOpenAPIスキーマでも使用できます。

たとえば、OAuth 2認証がユーザーに対して有効になっているかどうかに基づいて、レイアウトへのアクセスを制御するとします。 $componentContextを使用してisOAuth2enabledフィールドを介して外部情報を渡してから、それをopenapi.jsonファイルのURLの問合せパラメータにバインドできます:
"employees": {
  "operationRef": "http://example.com/hrApi/resources/1.0/employees/describe#/paths/~1employees/get",
  "parameters": {
    "token": "AUTH_TOKEN=[[$componentContext.securityInfoMap.isOAuth2Enabled ? 'foo' : 'bar' ]]"
  }
}

baseComponentContextTypeは、openapi.json$componentContext.securityInfoMap.isOAuth2Enabledを使用できるようにする契約です。

レイアウトに渡すことができるパラメータを定義するには:

  1. 定義するパラメータのタイプを選択: コンポーネント・コンテキストまたはベース・コンポーネント・コンテキスト。
    • コンポーネント・コンテキスト・パラメータを定義するには、レイアウト・ルール・セット・エディタに移動します。 次に、プロパティ・ペインで、「パラメータ」タブをクリックします。

    • 基本コンポーネントのコンテキスト・パラメータを定義するには、レイアウト・フィールド・エディタに移動し、プロパティ・ペインで「パラメータ」タブを表示します。

  2. 「+パラメータ」 (他のパラメータが存在する場合は「パラメータの追加」)をクリックします。
  3. 名前と説明を入力し、タイプを選択します(たとえば、パラメータにサブフィールドを含める場合はオブジェクトを選択します)。 パラメータは、アプリケーションを拡張するユーザーが参照できるため、受け入れるパラメータと値の説明を提供することが重要です。
  4. 配列またはオブジェクトを選択した場合は、「フィールドの追加」をクリックし、名前と説明を入力してタイプを選択します。
  5. ステップを繰り返して、必要な数のパラメータとフィールドを追加します。 右側のコンポーネント・コンテキスト・パラメータ(ルール「セット」タブで設定)の左側およびベース・コンポーネント・コンテキスト・パラメータ(フィールド・タブで設定)を示す例を次に示します:


    レイアウト内のすべてのルール・セットで使用可能なパラメータは、式エディタおよび条件ビルダーでアクセスできます。