通过上游数据更改减少佣金引擎负载
在同步到 Spiff 之前在 Salesforce 中准备数据会减少佣金引擎执行的工作。解决上游的数据结构、类型转换和信用逻辑问题,可以产生更快、更可维护的佣金计算。
所需的 Edition
| 适用于:Salesforce Classic(并非在所有组织中可用)和 Lightning Experience |
| 适用于:Enterprise、Unlimited 和 Developer Edition |
| 另行付费后适用于:启用了 Web 服务 API 的 Professional Edition |
为何解决数据上游问题
佣金引擎执行的每个转换(转换数据类型、遍历关系以查找标记或运行回看计算以确定区域信用)都会消耗内存和时间。对于每个报表,佣金引擎都有固定的分配。当超过该分配时,语句超时或失败。
使用对象管理器、流或 Apex 将数据准备工作向 Salesforce 上游移动,以便佣金引擎接收干净的、预先确定的数据,并专注于佣金逻辑,而不是数据清理。
常见上游优化场景
在数据到达 Spiff 之前,这三种情况在上游处理数据时提供了最高的回报。
-
数据类型转换。Spiff 将特定数据类型用于日期、布尔值和货币。当源数据与预期类型不匹配时,Spiff 会在计算时为处理的每个记录转换每个值。
常见示例包括将
DATETIME字段转换为 Spiff 用于期间比较的DATE格式,或将源系统存储为0和1的布尔字段转换为 Spiff 的true/false值。在数据同步前,在 Salesforce 流或公式字段中执行这些转换,以便 Spiff 接收最终形式的值。
-
相关对象上的指示符字段。佣金规则有时需要检查特定产品、类别或条件是否与记录相关联。当该信息存在于相关对象上时,Spiff 会遍历筛选器中每个记录的关系,以评估条件。
例如,仅在订单包含特定产品类型时支付佣金的规则会使 Spiff 将订单对象加入每个订单记录的订单产品对象。直接在订单对象上添加复选框或指示符字段(在添加产品时由流设置)会完全消除这种关系遍历。
每当您的佣金逻辑需要检查子对象上的条件时,请考虑在父对象上添加指示符字段。
-
区域信用。基于区域的佣金计算通常需要回溯逻辑 — 确定代表在交易结束时属于哪个区域,以及他们欠的信用。在委托引擎中为每个语句运行此逻辑需要大量计算。
更有效的方法是,让您的客户提供区域分配数据作为预先计算的查找。当分配数据在 Spiff 中作为直接字段或相关对象可用时,引擎会读取值,而不是计算它。与您的客户协调,作为定期数据同步的一部分提供这些数据,而不是在每次语句运行中动态计算它。
适用于上游数据管理工具
使用这些 Salesforce 工具在数据到达 Spiff 之前进行准备。
- 对象管理器。将公式字段、复选框字段或自定义字段添加到现有 Salesforce 对象,以存储预计算值或指示符标记。
- 流。在 Spiff 创建或更新记录时,使用记录触发的流填充指标字段、转换数据类型或写入计算值。
- Apex对于复杂的转换或批处理,使用 Apex 触发器或计划的 Apex 在同步到 Spiff 之前大规模准备数据。
在实施前计划上游变更
上游数据更改最容易在参与开始时实施。查看佣金计划的完整数据映射。此外,确定需要类型转换的任何字段、需要关系遍历的任何条件,以及作为预计算数据提供的任何入计逻辑。

