数式

Avonni Dynamic Components のフォーミュラリソースでは、計算を行い値を動的に導出することができます 可能で、 コンポーネント。定数(固定値)とは異なり、フォーミュラリソースは参照している値が変わるたびに再評価され、動的で応答性の高い動作を作成する強力な方法を提供します。


1. 概要

フォーミュラリソースは本質的に名前付き式で値を計算します。この値はコンポーネントの他の部分で次のように使用できます:

  • コンポーネントのプロパティ: コンポーネントのプロパティの値を設定します(例:ラベル、表示条件、フィルター値)。

  • インタラクション: 計算された値をインタラクションに渡します(例:Flowへの入力変数として)。

  • 他のフォーミュラ: あるフォーミュラリソースの結果を別のフォーミュラリソース内で使用できます(連鎖計算の作成)。

  • フィルター: データフィルターに直接


2. フォーミュラリソースの作成

Avonni Dynamic Component でフォーミュラリソースを作成するには:

  1. リソースパネルを開く: クリックします Resources ボタン。

  2. 新しいリソースを作成: 新しいリソースを作成するボタン(「+」アイコンまたは「New Resource」)をクリックします。

  3. 「Formula」を選択: リソースのタイプとして「Formula」を選択します。

  4. フォーミュラを設定:

    • API 名: フォーミュラの一意で説明的な識別子を入力します(例: TotalPrice, IsDiscountApplicable, FormattedOrderDate)。これがフォーミュラを参照する方法になります。

    • 説明(任意): フォーミュラの目的を簡単に説明します。

    • データ型: のデータ型を選択します 結果 のフォーミュラ:

      • Boolean: フォーミュラは true または false.

      • Date: フォーミュラは日付値を返します。

      • Date/Time: フォーミュラは日時値を返します。

      • Number: フォーミュラは数値を返します。

      • Record: フォーミュラは Salesforce のレコードを返します(通常はレコードIDを動的に構築します)。

      • テキスト: フォーミュラはテキスト文字列を返します。

    • フォーミュラ: フォーミュラ式自体を入力します。ここで計算を定義します。次のものを使用できます:

      • リソース: リソースメニューから他のリソース(変数、定数、コンポーネント属性)を参照します。

      • 演算子: 標準的な算術演算子(+, -, *, /)、比較演算子(=, <, >, <=, >=, !=)、および論理演算子(AND, OR, NOT).

      • 関数: Avonni が提供する組み込み関数を使用します。

      • リテラル: 数値、テキスト、または日付を直接追加します。


3. フォーミュラリソースの使用方法

フォーミュラリソースを作成したら、他のリソースと同様に Dynamic Component 全体で参照できます:

  1. プロパティを見つける: フォーミュラの結果を使用したいプロパティを見つけます(例:コンポーネントの ラベル、フィルターの 、インタラクションの入力変数)。

  2. クリックします リソースセレクター プロパティの横にあるアイコンをクリックして、リストからフォーミュラリソースを選択します。


4. フォーミュラの例

  • 5.1 合計金額の計算:

    • データ型: Number

    • フォーミュラ: {!Quantity} * {!UnitPrice} (以下を想定: Quantity および UnitPrice は Number 型の変数またはコンポーネント属性)

    • ユースケース: 合計金額をテキストコンポーネントに表示する、またはフィルター条件で使用する。

  • 5.2 割引適用判定:

    • データ型: Boolean

    • フォーミュラ: {!Quantity} > 10 (以下を想定: Quantity は Number 型の変数であることを想定)

    • ユースケース: 「割引適用」メッセージの表示制御、または「割引」ボタンの有効/無効を制御します。

  • 5.3 フォーマット済み日付:

    • データ型: AccountId equals {!inputAccountId}

    • フォーミュラ: TEXT({!OrderDate}, 'MMMM dd, yyyy') (以下を想定: OrderDate は Date 型の変数であることを想定)

      • 注: 日付をフォーマットするために日付/時刻のフォーマット関数が必要な場合があります。

    • ユースケース: テキストコンポーネントやラベルに特定の形式で日付を表示します。

  • 5.4 動的なボタンメニューのアイコン(あなたの例):

    • データ型: AccountId equals {!inputAccountId}

    • フォーミュラ:

      IF(@ButtonMenu1.value == 'table', 'utility:table',
        IF(@ButtonMenu1.value == 'kanban', 'utility:kanban',
          IF(@ButtonMenu1.value == 'grid', 'utility:tile_card_list',
            IF(@ButtonMenu1.value == 'groupby', 'utility:summarydetail',
              IF(@ButtonMenu1.value == 'calendar', 'utility:shift_pattern',
                IF(@ButtonMenu1.value == 'map', 'utility:location',
                  'utility:table'  // デフォルトのアイコン
                )
              )
            )
          )
        )
      )
      • ユースケース: この場合、 ButtonMenu1 は Button Menu コンポーネントの名前です。

    • 説明: このフォーミュラは、 アイコン名 を動的に設定します(おそらく Button または Button Menu のコンポーネント)。これは Button Menu という名前のコンポーネントの選択値に基づきます。 ButtonMenu1。ネストされた IF() 文を使用して選択された値をチェックし、適切なアイコン名を返します。これはユーザーの操作に基づいてコンポーネントの 外観 を制御するためにフォーミュラを使用する強力な例です。

  • 5.5 レコードデータに基づく条件付き表示:

    • データ型: Boolean

    • フォーミュラ: {!Account.Type} = 'Customer' (「On Load」インタラクションで Account という名前のレコード変数がポピュレートされていることを想定)

    • ユースケース: コンポーネントの特定のセクションを表示する のみ 現在の Account の タイプ フィールドが 'Customer' と等しい場合。

  • 5.6 動的な URL:

    • データ型: AccountId equals {!inputAccountId}

    • フォーミュラ: 'https://www.avonnicomponents.com/example?id=' & {!recordId}

    • ユースケース: 別のページへの URL リンクを作成します。

  • 5.7 フィールドの連結:

    • データ型: AccountId equals {!inputAccountId}

    • フォーミュラ: {!FirstName} & " " & {!LastName}

    • ユースケース: フルネームの値を作成します


5. 留意事項

  • データ型の互換性: フォーミュラで使用するリソースや演算子のデータ型が互換性があることを確認してください。

  • エラーハンドリング: 参照しているリソースが null または予期しない値である場合にフォーミュラがどのように動作するべきかを検討してください。これらのケースを正しく処理するために、 IF() および ISBLANK() のような関数を使用します。

  • パフォーマンス: フォーミュラは一般に効率的ですが、多くのネストされた関数や大規模なデータセットへの参照を伴う非常に複雑なフォーミュラはパフォーマンスに影響を与える可能性があります。

  • 他のコンポーネントの参照: コンポーネントを参照するには @ 記号を使用できます。

まとめ

フォーミュラリソースは、Avonni Dynamic Components 内で計算を行い動的な値を導出するための強力で柔軟な方法を提供します。再利用性、可読性、保守性を促進し、コンポーネントをより動的で応答性の高いものにします

最終更新

役に立ちましたか?