Вы находитесь здесь:
Использование таблиц поиска и динамической логики в Salesforce Spiff
Жестко запрограммированные значения и длинные цепочки if() операторов трудно поддерживать и создавать риски при изменении бизнес-правил. Таблицы поиска, вычисления рабочих таблиц и периоды ведомости предоставляют гибкую динамическую логику комиссии, которая адаптируется к меняющимся вводным данным, не требуя изменений конфигурации плана.
Требуемые версии
| Доступно в версиях: Salesforce Classic (недоступно во всех организациях) и Lightning Experience. |
| Доступно в версиях: Enterprise Edition, Unlimited Edition и Developer Edition. |
| Доступно за дополнительную плату в версиях: Профессиональная версия с включенным API веб-служб |
Использование таблиц поиска вместо вложенных операторов IF
Если логика комиссии требует соотнесения вводных данных со ставкой или уровнем (например, процент выполнения плана продаж, соотносящийся со ставкой ускорителя), распространенным первым методом является создание последовательности операторов if(). Этот метод работает для небольшого количества уровней. Однако, он становится громоздким по мере роста количества условий, и каждое изменение уровня требует прямого редактирования формулы.
Таблицы поиска решают эту проблему, сохраняя соотнесение как данные. Вычисление ссылается на таблицу, ищет применимую строку на основе значения ввода и возвращает связанный вывод. Добавление, удаление или изменение уровня означает обновление таблицы, а не формулы.
Используйте таблицы поиска в этих ситуациях.
- Логика комиссии требует наличия нескольких условных ответвлений.
- Тарифы или пороги определяются датами, территориями, группами продуктов или другими атрибутами, изменяющимися между периодами.
- Несколько планов используют одну структуру тарифа и один источник истины.
Хранение значений переменных в полях рабочих таблиц
Жестко запрограммированные числа в формулах комиссий создают скрытые зависимости. При изменении ставки, порога или стоимости плана продаж механизм должен найти и обновить каждую формулу, содержащую значение. Пропущенные экземпляры приводят к некорректным выплатам.
Храните количества переменных в полях рабочих таблиц и ссылайтесь на эти поля в формулах. При изменении значения обновите поле таблицы в одном месте. Все ссылающиеся на него формулы автоматически пересчитываются при следующем выполнении оператора.
Поля рабочих таблиц подходят для данных типов значений.
- Единые тарифы комиссии или множители, применяемые в плане.
- Пороговые суммы, например, минимальные размеры сделок или цели планов продаж.
- Короткие списки значений, например, подходящие группы продуктов или коды регионов.
Q1MinDealSizeThreshold легче найти и проверить, чем поле под именем Threshold1.Использование периодов выписки для ключевых дат
Расчеты комиссии часто ссылаются на даты, например, начало квартала, окончание финансового года или конкретную дату сокращения для новой структуры плана. Если жестко запрограммировать эти даты, каждый период требует обновления формулы вручную перед выполнением вычисления.
Используйте даты периода выписки и вычисления рабочих таблиц, чтобы сделать логику даты динамической.
- Храните ключевые даты (например, начало квартала, конец квартала, начало и конец первой половины, а также начало и конец второй половины) в одной специальной таблице. Ссылайтесь на эти поля из любого расчета, которому нужна дата.
- Избегайте создания расчетов отдельных рабочих таблиц для каждого ежемесячного значения в последовательности. Например, не рекомендуется создавать отдельные поля
JanARR,FebARRиMarARR. Возвращайте эти значения динамически из фильтра данных и используйте условия диапазона дат. - Рекомендуем использовать встроенные переменные периода оператора (
BeginningOfPeriod,EndOfPeriod) в качестве основы для вычисления даты, чтобы логика автоматически адаптировалась при создании операторов для разных периодов.
Выбор нужного уровня для расчетов
Прежде чем создать таблицу, определите, на каком уровне должен быть выполнен расчет.
Каждый уровень служит отдельной цели в плане комиссии.
- Расчеты табелей. Лучше всего подходит для значений, применимых к оператору в целом — единые тарифы, итоговые суммы по сделкам, планы продаж на уровне периода и другие значения, не связанные с отдельными записями. Вычисления рабочих таблиц создают один вывод для контекста оператора.
- Расчеты таблиц данных. Лучше всего подходит для значений, требующих вычисления по записи — суммы комиссии на уровне сделки, флажки права на запись или любые вычисления, где результат меняется в отдельных записях. Если итоговая выплата представляет собой сумму сумм на уровне записи, выполните расчет в таблице данных и агрегируйте результат в таблице.
Использование функций помощника для упрощения синтаксиса
Spiff предоставляет функции помощника, которые заменяют сложные стандартные функции с несколькими аргументами более простым и читаемым синтаксисом. Функции помощника взаимозаменяемы со стандартными эквивалентами и выдают одинаковые результаты, но они уменьшают вероятность ошибок синтаксиса и упрощают чтение формул во время внедрения и аудита.
При возникновении сложной функции, требующей большого количества аргументов или вложенных вызовов, проверьте доступность функции помощника для данного сценария использования. Функции помощника особенно ценны во время первичной сборки, когда скорость и читаемость наиболее важны.

