Loading
Расширение Salesforce с помощью кликов, а не кода
Советы по работе с полями действий в формулах

Советы по работе с полями действий в формулах

Получите советы по созданию точных формул действий, различая задачи и события. Кроме того, найдите рекомендации по обработке полей действий и корректной ссылке на полиморфные взаимосвязи, например, «Кто и что».

Требуемые версии

Доступно в версиях: Salesforce Classic и Lightning Experience
Доступно в версиях: Все версии.

Формулы в макетах страниц задач и событий

Поля формулы, созданные для объекта «Действие», могут быть добавлены в макеты страниц задач и событий. Однако, формулы, ссылающиеся на поля, эксклюзивные для одного типа действий, часто отображают пустые значения или общие стандартные значения при просмотре в макете другого типа.

  • Поля задачи: Формулы, ссылающиеся на поля (например, «Статус» или «Приоритет»), не отображают нужных данных в макетах страниц событий.
  • Поля событий: Формулы, ссылающиеся на такие поля, как DurationInMinutes, ShowAs или IsAllDayEvent, не отображают нужных данных в макетах страниц задач.

Во избежание путаницы, используйте поле слияния IsTask для создания условных формул, обрабатывающих оба типа действий надлежащим образом. Дополнительную информацию см. в разделе «Различие между задачами и событиями» данной темы. Или можно создать отдельные поля формулы для определенных способов использования и добавить их только в соответствующий макет страницы задачи или события.

Определение задачи и события

Поле IsTask является ключом к определению того, является ли действие задачей или событием. Данная функция возвращает значение «ИСТИНА» для записей, являющихся задачами, и значение «ЛОЖЬ» для событий. Используйте это поле в условных формулах для создания логики, корректно работающей для обоих типов действий.

Например, данная формула отображает значение «Это задача» в записи задачи или значение «Это событие» в записи события.

IF( IsTask, "This is a task", "This is an event" )

Например, данная формула динамически отображает приоритет записи, если она является задачей, или ее продолжительность, если она является событием.

IF( IsTask, 
    "Priority: " & TEXT( Priority ), 
    "Duration: " & TEXT( DurationInMinutes ) & " minutes" )

Кто и какие ссылки

Действия используют два специальных поля, WhoID (имя) и WhatID (связано с), для подключения к другим записям. Эти поля могут указывать на разные типы записей, например, контакты, интересы и организации. Формулы действуют по-разному, в зависимости от используемого объекта.

  • Кто (WhoID): Ссылается на людей (интересы и контакты). Например, используйте Who.FirstName для получения имени лица.
  • Что (WhatID): Ссылается на бизнес-объекты (организации, возможности, настраиваемые объекты и т. д.). Например, используйте What.Name для получения имени записи.

Не все комбинации действительны. Например, рассмотрим ситуацию, когда действие связано с интересом (WhoID). WhatID обычно пустой, поскольку интересы не связаны с организациями или возможностями так, как контакты.

Поля и типы данных для конкретных действий

Задачи и события используют один и тот же основной объект «Действие», но они хранят данные в разных полях. Ссылка на поле, относящееся к неправильному типу действия (например, запрос продолжительности задачи), может привести к ошибкам или пустым значениям.

  • Поля даты и даты/времени: ActivityDate для задач является полем «Дата», в то время как ActivityDateTime для событий является полем «Дата/время». Избегайте смешивания этих полей в формулах без соответствующих функций преобразования.
    • Задачи: Используйте ActivityDate для ссылки на крайний срок.
    • События: Используйте StartDateTime и EndDateTime для ссылки на время события.
  • Поля задачи: Эти поля работают только для задач. Если на них ссылается формула в макете страницы события или записи, они обычно возвращают пустые значения или ошибки.
    • Статус
    • Приоритет
    • IsClosed
    • IsRecurrence
    • TaskSubtype
    • CallType
  • Поля событий: Эти поля работают только для событий. Если на них ссылается формула в макете страницы задачи или записи, они рассчитываются некорректно.
    • StartDateTime и EndDateTime
    • DurationInMinutes
    • IsAllDayEvent
    • ShowAs
    • IsReccurrence2
  • Общедоступные поля: Как задачи, так и события используют эти стандартные поля. Вы можете безопасно ссылаться на них в формулах для любого типа действий, не нуждаясь в условной логике (например, IsTask).
    • Тема
    • Описание
    • OwnerId
    • CreatedDate
    • LastModifiedDate

Настраиваемые поля действий

Настраиваемые поля, созданные для действий, доступны для задач и событий, если вы не используете макеты страниц и типы записей для управления доступностью.

  • При создании настраиваемого поля действия с формулой значения по умолчанию формула выполняется для задач и событий. Используйте IsTask для предоставления разных стандартных параметров. Например:
    IF( IsTask, "Follow-up required", "Meeting scheduled" )
  • Во избежание ошибок, убедитесь, что поля формулы действия, ссылающиеся на стандартные поля задачи или события, содержат обработку ошибок или условную логику. Например:
    IF( IsTask, 
       IF( ISPICKVAL( Priority, "High" ), "⚠ High Priority", "Standard" ), 
       "Event - No Priority" )

Даты и время действия

Для задач ссылайтесь на крайний срок, используя поле «Дата» под именем ActivityDate. Для событий ссылайтесь на время события с полями даты/времени под именами StartDateTime и EndDateTime.

Salesforce автоматически вычисляет продолжительность события, но вы можете ссылаться на это значение в формулах посредством DurationInMinutes. Перевести в часы с помощью:

DurationInMinutes / 60

Чтобы вычислить статус просроченной для задач, сравните ActivityDate с сегодняшней датой и проверьте, закрыта ли задача.

IF( AND( NOT( IsClosed ), ActivityDate < TODAY() ), "Overdue", "On Track" )

Повторяющиеся действия

Как задачи, так и события поддерживают повторение, но используют разные поля.

  • Задачи используют IsReccurrence (со связанными полями RecurrenceStartDate, RecurrenceEndDate и т. д.)
  • События используют IsReccurrence2 (со связанными полями RecurrenceStartDateTime, RecurrenceEndDate и т. д.)

Используйте IsTask для проверки соответствующего поля повторения.

IF( IsTask, IsRecurrence, IsRecurrence2 )

Статус действия и завершение

Используйте IsClosed для определения завершения задачи или события. Это логическое поле работает для обоих типов действий.

Значения статуса задачи определяются организацией и типом задачи, но обычно содержат такие значения, как «Не начато», «Выполняется» и «Завершено». Используйте ISPICKVAL или CASE при обращении к статусу.

CASE( TEXT( Status ),
    "Completed", "✓ Done",
    "In Progress", "→ Working",
    "Not Started", "○ Pending",
    "Unknown" )

Другие рекомендации

  • Ограничения полиморфных полей: Формулы, ссылающиеся на сведения «Кто» или «Какие», работают только при наличии взаимосвязи с целевым объектом. Например, Who.Account.Name извлекает имя организации, если действие связано с контактом, но возвращает пустое значение, если оно связано с интересом.
  • Ограничения только для чтения: Формулы могут ссылаться на поля действий только для чтения для вычисления данных, но не могут устанавливать изменения полей только для чтения. См. Ссылка на объект для Salesforce Platform для получения конкретных ограничений полей.
  • Контексты бизнес-правил и кампаний: Действия, связанные с кампаниями, бизнес-правилами или процессами, могут содержать другие доступные поля. Проверьте доступность поля для определенного сценария использования.
 
Загрузка
Salesforce Help | Article