您位於此處:
最佳化 Salesforce Spiff 中的資料篩選效能
結構良好的資料篩選條件是改善 Salesforce Spiff 中佣金計算效能的最有效方法。以正確的順序套用篩選條件、提早限制記錄量,並避免強制佣金引擎執行不必要工作的模式。
必要版本
| 提供版本:Salesforce Classic (並非所有組織皆適用) 和 Lightning Experience |
| 提供版本:Enterprise、Unlimited 及 Developer Edition |
| 下列版本亦可額外付費使用:已啟用 Web 服務 API 的 Professional Edition |
資料到達 Spiff 前篩選
篩選會在資料篩選在 Designer 之前開始。當您設定 Salesforce 連接器或資料上載時,請使用 WHERE 子句條件來限制同步至 Spiff 的記錄。達到佣金引擎的記錄愈少,計算執行速度愈快。
套用這些技巧可減少上游記錄量。
- 使用日期文字表示值。您可以使用日期相關篩選條件 (例如
THIS_YEAR、LAST_90_DAYS或符合您對帳單期間的特定滾動式視窗),而不是同步所有歷程記錄。例如,CloseDate >= THIS_YEAR的篩選條件會將同步化限制在目前行事曆年度中已結束的記錄,不包括不再影響啟用中佣金計算的歷程記錄。 - 計畫記錄成長。對 50,000 筆記錄執行良好的組態可能會逾時 500,000 筆。請與您的小組一起檢閱預測的資料量,並在您的計算達到這些資料量之前調整同步化策略。
- 定義封存策略。與您的客戶合作以建立記錄何時超過佣金資格,並將其從啟用中同步移除。歸檔舊資料會減少每個篩選條件掃描的工作集。
效能的訂單篩選作業
您鏈結篩選條件的順序會影響引擎在每個步驟中評估的記錄數量。結構篩選條件會讓最選擇性的條件優先執行,並縮小記錄集的範圍,引擎才能評估較不選擇性的條件。
一般方法是依此順序建構您的篩選條件。
- 透過連接器或資料上載套用上游 WHERE 條件,以限制到達 Spiff 的記錄。
- 在基本資料篩選條件中依日期範圍和代表指派篩選。使用
ClosedInPeriod和ByRep類型條件來處理最小的相關記錄集。 - 將條件套用為參照基本篩選條件的壓縮子篩選條件,而不是將所有條件堆疊在單一運算式中。
- 從子篩選條件撰寫最終篩選條件,讓最上層運算式保持可讀取且可維護。
避免在大型物件的資料篩選條件中使用計算欄位
資料篩選條件中的計算欄位需要 Spiff 來評估物件中每個記錄的公式,才能套用篩選條件。此方法通常適用於記錄少於 250,000 的物件。針對較大的物件,這會造成顯著的效能壓力。
若要篩選大型物件的計算值,請考慮這些替代項目。
- 將預先計算的欄位新增至 Salesforce 中的來源物件上游,讓 Spiff 直接接收計算值,而非在篩選時間進行計算。
- 使用雙篩選條件在工作表中套用計算,然後在使用
contains()函數的第二個篩選條件中參照結果。
壓縮可重複使用與擴充性的篩選條件
您可以將篩選條件拆分為具名子篩選條件,每個篩選條件都會測試單一條件,而不是撰寫長的單一篩選運算式。此方法稱為壓縮。壓縮篩選提供數個優點。
- 引擎會計算子篩選條件一次,並在任何參照子篩選條件的篩選條件之間重複使用結果,以減少重複計算。
- 當欄位名稱或業務規則變更時,請在單一位置更新子篩選條件,而非編輯包含條件的每個篩選條件。
- 較短且具名篩選條件更容易讀取、稽核和除錯。
例如,您不需要在多個篩選條件中重複 Split_Percent__c != null,只要需要即可建立子篩選條件 SplitPercentNotNull 和參照。
SplitPercentNotNull = Split_Percent__c != null
SplitARRThreshold = SplitARR >= 20000
ClosedInPeriod AND ByRep AND SplitPercentNotNull AND SplitARRThreshold如需壓縮的詳細資訊,請參閱在 Salesforce Spiff 計算中使用壓縮。
瞭解資料結構描述與關係
根據三個必要元件 (付款時機、付款人和付款金額) 最容易直接存取的位置,選取資料篩選條件的指標物件。從右側物件開始,可減少引擎執行的關係周遊次數。
如果您在多個物件之間散佈日期、擁有者和金額欄位,請排定保留日期欄位的物件優先順序,並建立關係以提取其他欄位。首先使用日期欄位表示引擎只會在相關期間內的記錄上作業,而不會在完整物件歷程記錄上作業。
如果單一物件在每個期間擁有每個代表數千筆的記錄,請考量較高層級的彙總物件是否可以改為做為指標。

