Как работать с логическим типом параметров
  • 08 Aug 2023
  • 1 минута
  • Темная тема
    Светлая тема
  • формат pdf

Как работать с логическим типом параметров

  • Темная тема
    Светлая тема
  • формат pdf

Article Summary

Логический тип поля означает, что параметр может иметь значение «да» или «нет».
Так же значение может отсутствовать, то есть быть null.
Это надо учитывать при проверке параметра в письме.

Как проверить, что значение поля = «да»

@{if field}
@{end if}

Как проверить, что значение поля = «нет»

@{if not field}
@{end if}

Как проверить, что у поля есть значение

@{if field != null}
@{end if}

Вместо field подставляем параметр с логическим типом

Примеры

  • Пример 1

Есть дополнительное поле «Участвует в акции» (системное имя PartInPromo) с типом «Логическое».

Задача: при значении «да» вывести дату начала акции, в остальных случаях предложить принять в ней участие.

Что надо сделать: проверить, что у поля есть значение (не равно null) и что оно положительное.
Оставшимся можно вывести текст в помощью else.

Вёрстка:

@{if Recipient.CustomField.PartInPromo != null and Recipient.CustomField.PartInPromo}
Начало акции 1 февраля.
@{else}
Примите участие в акции.
@{end if}
  • Пример 2

Есть дополнительное поле «Посетит лекцию» (системное имя AttendLection).

Задача: при ответе «да» вывести дату и время лекции, при ответе «нет» уточнить, не передумал ли клиент, при отсутствии значения спросить, не хочет ли клиент пойти на лекцию.

Проверка на отсутствие значения должна идти первой (подробное объяснение — ниже в статье).

Вёрстка:

@{if Recipient.CustomField.AttendLection = null}
Не хотите ли посетить лекцию?
@{else if Recipient.CustomField.AttendLection}
Начало лекции 1 февраля в 19:00.
@{else if not Recipient.CustomField.AttendLection}
Ещё есть время передумать.
@{end if}

Подробнее о том, зачем нужна проверка на null.

При отсутствии значения поля с ним нельзя взаимодействовать.
А проверка на да/нет является таким взаимодействием.
Поэтому если мы начнём блок с @{if Recipient.CustomField.AttendLection}, а оно null, такое письмо упадёт, ведь мы пытались обратиться к значению поля и сравнить его с true.

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

Как ускорить верстку email-рассылок с помощью универсального шаблона