リストグループとリスト操作
品目の絞り込み、値のルックアップ、さまざまな計算を有効にして、データのリストを効率的に処理し、複雑な価格設定ロジックと計算を実装します。
必要なエディション
| 使用可能なインターフェース: Lightning Experience |
| 使用可能なエディション: Revenue Cloud の Enterprise Edition、Performance Edition、Unlimited Edition、および Developer Edition (Salesforce 価格設定が有効) |
| 必要なユーザー権限 | |
|---|---|
| 価格設定手順を作成、更新、および削除する | Salesforce 価格設定設計時間 |
リストグループ要素は、リスト変数内の個々の品目を処理するコンテナとして機能します。これは、リストの反復処理とその要素に対する操作の実行を容易にする価格設定手順の基本的なステップ要素です。すべてのリストグループは、リストを絞り込むための初期条件を定義するリスト検索条件で始まる必要があります。[リスト検索条件] に続いて、リストグループは複数の計算およびルックアップテーブルコンポーネントを組み込み、絞り込まれたリストをさらに処理できます。
リスト検索条件は、リストグループ内の初期要素として、定義済みの条件に基づいて入力リストの項目の絞り込みのみを行い、リスト変数を使用してこれらの条件を確立します。
顧客が 50 個以上のプリンターバンドルを購入した場合にのみ割引を適用する条件を設定するシナリオを考えてみましょう。この条件を満たしたら価格計算を停止する制限を設定することもできます。顧客が購入したプリンターバンドルが 50 個未満の場合、そのプリンターバンドルは条件を満たしていないため、価格設定手順ではこのステップがすべてスキップされます。
- 価格設定手順を設定します。
-
をクリックし
て [Pricing Setting (価格設定)] 要素を追加し、次の変数を対応付けます。
- 入力変数
- 品目: LineItem
- 出力変数
- 価格ウォーターフォール: price_water_fall
- 正味単価: NetUnitPrice。
- 小計: ItemNetTotalPrice
- 入力変数
-
[リスト価格] 要素を追加して、商品の基本価格を取得します。
[ルックアップテーブルの詳細] で、[価格表エントリ] 決定表を選択し、次の変数を対応付けます。
- 入力ルール変数
- 商品: 商品
- 価格表: PriceBooks
- 商品販売モデル: ProductSellingModel
- 入力変数
- Quantity: LineItemQuantity
- 出力変数
- リスト価格: ListPrice
- 小計: ItemNetTotalPrice
- 入力ルール変数
- リストグループ要素を追加します。
-
リストグループで、プリンターの最終価格の 10% 割引をユーザーが 50 台以上購入した場合にのみ適用できる条件を設定して、リスト操作を設定します。
- 検索条件の要件: すべての条件に一致 (AND)<
- リソース: # LineItemQuantity
- 演算子: >
- 値: 50
-
リストコンテナ内で、[数式ベースの価格設定] 要素を追加し、次の変数値を指定します。
- 数式: ItemNetTotalPrice - ( ItemNetTotalPrice * 0.10 )
- 出力変数: TotalLineAmount
- 価格設定を停止するには、リストコンテナ内、[数式ベースの価格設定] 要素で [価格設定を停止] 要素を追加します。
-
をクリックし
て、[出力に含める] を選択します。
- 最後に、価格設定情報、プロファイルアクセス権、ランク情報を表示するように設定を行います。
- 手順を保存します。
-
[シミュレーション] をクリックして手順をテストします。プリンタバンドル商品の入力値を入力し、再度 [シミュレーション] をクリックします。
価格ウォーターフォールには、割引 10% のプリンターバンドルの合計コストを計算するために使用される数式が表示されます。また、50 個を超えるプリンターバンドルの条件を満たしたため、価格計算が停止し、手順が期待どおりに動作していることも確認できます。
重要リストグループ要素に別の検索条件を追加して、context タグの値が null でないことを指定することをお勧めします。見積または注文で価格設定を実行するときに、タグに値がないか null の場合、プロシージャはエラーを返します。
たとえば、品目の値が 100 であることを示す検索条件を品目に追加する場合、品目の値が null 値でないことを示す条件を追加する必要があります。条件は、{LineItem equals isNotNull} AND {LineItem equals 100} のようになります。

