機械翻訳について

実行時に表示される内容を決定する表示ロジックの追加

ページで実行時に表示される内容は、レイアウトの「ルールセット」タブで構成する表示ロジックを使用して制御します。

ページを表示しているユーザーが管理者である場合にのみ、従業員データ(従業員給与など)を表示するとします。 その後、動的表またはフォームを作成し、ユーザー・ロールをチェックするルール・セットに関連付けます。 たとえば、給与マネージャ・ロールなど、ユーザーに給与フィールドが含まれるレイアウトが表示されます。 他のすべてのユーザーには、デフォルト・レイアウトのページが表示されます。

特定のコンポーネントに対して複数のルールを設定でき、ルールは、ルール「セット」タブで動的フォームまたは表を選択すると、表示ロジック・ツリーにリストされます。 ルールは実行時に上から下に評価されるため、表示ロジック・ツリーに表示される順序は重要です。 すべての条件が満たされる最初のルール。この場合、ユーザーはマネージャで、使用されるルールであり、関連付けられたレイアウトがコンポーネントに適用されます。 他のルールはテストされません。 Rule「セット」タブで作業しているため、これに留意してください。

動的コンポーネントの表示ロジックを構成するには:

  1. 動的表またはフォームのプロパティ・ペインで、「ルール・セットに移動」をクリックして、レイアウトの「ルールセット」タブでコンポーネント・ルール・セットを開きます。
  2. ルール・セット・エディタで、「+ルール」をクリックして名前を指定してルールを作成します。

    動的コンポーネントのルール・セットには、常にデフォルト・ルールが含まれます。 編集、コピーして独自のルールのベースとして使用することも、最初からルールを作成することもできます。

    ヒント:

    ルールに意味のある名前を付けることをお薦めします。 たとえば、ユーザーがカナダにいる場合にのみ特定のレイアウトを表示するには、ルールinCanadaを呼び出します。 ルール名を編集するには、名前の近くにカーソルを置き、「編集」アイコンをクリックして、終了した「保存」アイコンwhenをクリックします。
    1. 新規またはデフォルト・ルールで、「クリックして条件を追加」をクリックします。
    2. ドロップダウン・リストから属性と演算子を選択し、値を選択または入力します。

      属性ドロップダウン・リストには、レイアウトで使用できるフィールドおよび変数が含まれており、演算子リストには、選択した属性に対して有効な演算子('='や'<='など)が含まれています。 値リストには、属性にすでに定義されている値(trueやfalseなど)が表示されますが、独自の値を入力することもできます。

      ルールの条件を作成する際に様々な情報にアクセスする方法を提供する組込みのcontext変数を選択できます。 たとえば、アプリケーションにアクセスするデバイスのサイズや、ロールや電子メールなどのアプリケーションを使用してユーザーに関する情報を確認できます。 組込みコンテキスト変数には次のものがあります:

      • フィールド・エディタに表示されるフィールドによって決定される$fields変数。 たとえば、$ fields.firstName.valueを使用すると、データ・ソースの「名」フィールドの値にアクセスできます。 条件ビルダーの「フィールド」グループの下でこれらの変数を検索します。

        ノート:

        各フィールドについて、型に関係なく、$numberValue ($fields.ConflictId.numberValue()など)または$value ($fields.ConflictId.value())を選択できます。 フィールド値に数値が含まれている必要があることがわかっている場合は、$numberValueを使用する必要があります。 たとえば、ConflictIdフィールド・タイプが文字列で、$numberValueを選択すると、可能な場合はフィールド値が数値に変換されます。 値が変換できない場合、$numberValueNaN (数値ではありません)になります。

        唯一の制限は、$numberValueがJavascriptのNumberタイプで許可される最大精度によって制限されることです。

      • $responsive変数は、アプリケーションが現在表示されているデバイスの画面サイズによって決まります。 たとえば、現在のユーザーがタブレットなどの画面幅が768ピクセル以上のデバイスを使用している場合、responsive.mdUp変数値はTrueです。 条件ビルダーの「レスポンシブ」グループの下でこれらの変数を検索します。
      • 現在のユーザーが決定する$user変数。 たとえば、現在のユーザーが認証済ユーザーの場合、user.isAuthenticated変数値はTrueです。 user.roles変数を使用して、アプリケーションを使用してユーザーのロールを確認できます。 条件ビルダーの「ユーザー」グループの下でこれらの変数を検索します。

        ノート:

        user.rolesを使用する場合、値ドロップダウンには、使用可能なOracle Cloudアプリケーション・ジョブ・ロールと抽象ロールがリストされます。 (ドロップダウンに職務ロールが表示されません。 職務ロールを指定する場合は、Value(値)フィールドに職務ロール名を手動で入力できます。)

      「レイアウト内のコンポーネントのカスタム・コンテキストの定義」で説明されているように、独自のコンテキストを定義して、アプリケーションが提供する値でルールを拡張することもできます。 これらのコンテキストは、$componentContextシステム変数を介して使用可能になります。 条件ビルダーの「コンテキスト」グループでこれらを検索します。

      現在のユーザーにEmployeeロールがあるかどうかをチェックする条件は次のとおりです:
      dynamic-components-table-condition.pngの説明は以下のとおりです
      図dynamic-components-table-condition.pngの説明

    3. より詳細な属性を使用してルールをより正確にするには、条件およびグループ条件を追加できます。たとえば、ユーザーがEmployeeロールを持つこと、および認証されていることを確認できます。 次に、2つの条件を持つルールを作成し、「すべてに一致」を選択して、両方の条件がtrueである必要があります。
    4. 「Done」をクリックします。
    5. 戻りフィールドで、ルールがtrueの場合に適用するレイアウトを選択します。

      ルールの作成時にレイアウトのコピーを作成した場合は、戻りフィールドでデフォルトで選択されます。 複数のルールで同じレイアウトを使用できます。

  3. 必要に応じて追加のルールを作成します。たとえば、マネージャ・ロールを持つ認証済ユーザーのみにマネージャ・レイアウトを表示するには、次のようにします:
    1. 複製アイコン(「Duplicate」アイコン)をクリックし、「重複するルール」ダイアログ・ボックスに新規ルールの名前を入力します。

      開始点として使用するレイアウトのコピーも作成するには、チェックボックスが選択されていることを確認します。 「複製」をクリックします。

    2. 新しいルールを編集して条件を定義します。 この例を続けるには、現在のユーザー・ロールがManagerの場合にManagerレイアウトを表示するルールを設定し、認証済ユーザーのみに表示するように拡張します:


      通貨コードを表示をクリックすると、ルール式を表示および編集できます。 前述のルールには次の式が表示されます:
      $user.roles.includes('Manager') && $user.isAuthenticated === true ? 'Manager' : null
    3. 「上に移動」および「下に移動」ボタンを使用して、評価する順序でルールが設定されていることを確認します。


      ルールの順序と精度は重要です。 ルールはトップダウンで評価されるため、trueと評価された最初のルールによって、使用されるレイアウトが決まります。 表示ロジックを構成する場合、使用または評価されないルールがあると問題になりません。

      デフォルト・レイアウトは通常、表示ロジック・ツリーの最後のルールであり、定義した条件のいずれかが満たされていない場合に表示されます。

    4. 新しいルールの構成の一環として、レイアウトタブ(この例ではManager)で新しく作成したレイアウトをクリックし、ユーザーがマネージャ(デフォルト・レイアウトに給与を加えたフィールドなど)のときに表示するフィールドを選択します:
  4. アプリケーションをテストして、別のロール(たとえば、従業員やマネージャ)でプレビューします。 「ロールベース・アクセスのテスト」を参照してください。

    次に、ロールベースのロジックが有効になっている動的表の例を示します。 左側にはEmployee(従業員)ロールを持つユーザーが表示され、右側にはManager(マネージャ)ロールを持つユーザーに対して表示される内容が表示されます:
    dynamictable-example.pngの説明は以下のとおりです
    図dynamictable-example.pngの説明