Salesforce Spiff でのルックアップテーブルと動的ロジックの使用
ハードコードされた値やif()ステートメントの長いチェーンは、管理が難しく、ビジネスルールが変更されたときにリスクが生じます。ルックアップテーブル、ワークシートの計算、ステートメント期間により、計画設定を変更することなく、入力の変化に適応する柔軟で動的な手数料ロジックが提供されます。
必要なエディション
| 使用可能なインターフェース: Salesforce Classic (一部の組織で使用可能) および Lightning Experience の両方 |
| 使用可能なエディション: Enterprise Edition、Unlimited Edition、および Developer Edition |
| 有料オプションで使用可能なエディション: Web Services API が有効になっている Professional Edition |
ネストされた IF ステートメントの代わりにルックアップテーブルを使用
コミッション ロジックで入力をレートまたは階層と照合する必要がある場合(アクセラレーター レートに対応付ける目標達成率など)、一般的な最初のアプローチは一連のif()ステートメントを記述することです。このアプローチは、少数の階層で機能します。ただし、条件の数が増えると扱いづらくなり、階層を変更するたびに数式を直接編集する必要があります。
ルックアップテーブルは、対応付けをデータとして保存することでこの問題を解決します。計算はテーブルを参照し、入力値に基づいて該当する行を検索し、関連付けられた出力を返します。階層の追加、削除、変更は、数式ではなくテーブルの更新を意味します。
ルックアップテーブルは、次の状況で使用します。
- 手数料ロジックには複数の条件分岐が必要です。
- レートまたはしきい値は、日付、テリトリー、商品ファミリー、または期間間で変化するその他の属性によって決まります。
- 複数のプランで同じレート構造と 1 つの情報源を共有します。
ワークシート項目への変数金額の保存
手数料数式のハードコードされた数値は、非表示の連動関係を作成します。税率、しきい値、または目標金額が変更された場合、エンジンでその値を含むすべての数式を見つけて更新する必要があります。見逃すと、誤った支払が発生します。
ワークシート項目に変数金額を保存し、数式でそれらの項目を参照します。値が変更されたら、ワークシート項目を 1 か所で更新します。これを参照するすべての数式は、次のステートメントの実行時に自動的に再計算されます。
ワークシート項目は、次の種別の値に適しています。
- プラン全体に適用される定額の手数料率または乗数。
- 最小商談規模や目標などのしきい値金額。
- 対象商品ファミリーや地域コードなどの値の短いリスト。
Q1MinDealSizeThreshold という名前の項目は、Threshold1 という名前の項目よりも検索と監査が簡単です。主要な日付のステートメント期間の使用
手数料の計算では、多くの場合、四半期の初め、会計年度末、新しい計画構造の特定のカットオーバー日などの日付を参照します。これらの日付をハードコードする場合、計算を実行する前にすべての期間に手動で数式を更新する必要があります。
ステートメント期間の日付とワークシートの計算を使用して、日付ロジックを動的にします。
- 主要な日付 (四半期の初め、四半期の終わり、前半の開始と終わり、後半の開始と終わりなど) を 1 つの専用ワークシートに保存します。日付が必要な計算からこれらの項目を参照します。
- 一連の月次値ごとに個別のワークシート計算を作成することは避けてください。たとえば、
JanARR、FebARR、MarARRフィールドを個別に作成することはお勧めしません。データ検索条件からこれらの値を動的に返し、代わりに日付範囲条件を使用します。 - 可能な場合は組み込みステートメントの期間変数 (
BeginningOfPeriod、EndOfPeriod) を日付計算の基礎として使用し、ステートメントがさまざまな期間で生成されるときにロジックが自動的に適応されるようにします。
計算に適したレベルの選択
作成する前に、計算がワークシートレベルに属するのか、データシートレベルに属するのかを検討します。
手数料プランの目的は、レベルによって異なります。
- ワークシートの計算。定額、商談全体の合計、期間レベルの目標、個々のレコードに関連付けられていないその他の値など、ステートメント全体に適用される値に最適です。ワークシートの計算では、ステートメントコンテキストに対して 1 つの出力が生成されます。
- データシートの計算。レコード単位の計算が必要な値 (商談レベルの手数料金額、レコードごとの対象資格フラグ、または個々のレコードで出力が異なる計算) に最適です。最終支払がレコードレベルの金額の合計の場合、データシートで計算を実行し、結果をワークシートに集計します。
ヘルパー関数を使用した構文の簡略化
Spiff には、複雑な複数引数の標準関数を、よりシンプルで読みやすい構文に置き換えるヘルパー関数が用意されています。ヘルパー関数は標準の同等の関数と互換性があり、同じ出力が生成されますが、実装時や監査時に構文エラーが発生する可能性が低くなり、数式が読みやすくなります。
多数の引数またはネストされたコールを必要とする複雑な関数が発生した場合、その使用事例でヘルパー関数が使用可能かどうかを確認します。ヘルパー関数は、速度と読みやすさが最も重要な最初のビルド時に特に有用です。

