14. Аргумент: константа, переменная, выражение, шаблон
Аргумент — самое частое поле в редакторе: из тысячи свойств, описанных в метаданных, почти четыреста именно такие. Разобравшись с ним один раз, вы разберётесь с третью всех настроек сразу.
Одно поле, четыре способа
Аргумент отвечает на вопрос «откуда взять значение». Способов четыре:
- Константа
-
значение записано прямо здесь и не меняется.
- Переменная
-
значение берётся из переменной в момент выполнения.
- Выражение
-
значение вычисляется формулой на языке сервера.
- Шаблон
-
значение собирается из текста с подстановками.
Все четыре — одно и то же поле. Переключаться между ними можно когда угодно, не заводя ничего заново.
Как отличить на глаз
В таблице свойств значение аргумента показывается по-разному:
-
прямым шрифтом — константа: то, что видно, то и будет;
-
курсивом — всё остальное: имя переменной, текст выражения или шаблона. Курсив означает «здесь не значение, а способ его получить».
Кнопка … справа открывает окно, в котором способ и выбирается.
Константа
Вкладка Значение, переключатель Константа. Ниже — тип константы: Текст, Число, Дата и время. Тип важен: сервер приводит значение по нему, и «007», записанное числом, станет семёркой.
Набор доступных типов задаётся свойством: где число бессмысленно, его и не предложат.
Многострочная константа
Иногда константа — не строка, а целый кусок текста: тело запроса, JSON, сообщение в несколько абзацев. Значок из трёх полос на правом краю поля разворачивает его в многострочное.
В таком поле Enter переводит строку, а заканчивает ввод Shift+Enter.
Переменная
Переключатель Переменная, ниже — поиск по именам. Начните печатать, список отберёт подходящие. Если нужного имени ещё нет, предложит Создать «имя» — и откроет окно переменных с уже подставленным именем.
Ссылка хранится по идентификатору, а не по имени. Поэтому переименование переменной такое поле переживает само: подтверждать замену в нём не нужно.
Выражение и шаблон
Две оставшиеся вкладки — про вычисления, и им отведена следующая глава. Коротко разница:
| Что | Когда брать |
|---|---|
Выражение |
Нужно посчитать: сравнить, сложить, вырезать кусок строки, взять текущее время |
Шаблон |
Нужен готовый текст, в который подставляется пара значений: «Здравствуйте, {{ name }}» |
Одно переводится в другое: сервер умеет и то, и другое преобразование, и редактор им пользуется, когда вы переключаете вкладку.
Что выбрать
-
Значение известно и не меняется — константа. Не усложняйте.
-
Значение приходит по ходу вызова — переменная.
-
Значение надо посчитать — выражение.
-
Нужен текст с парой подстановок — шаблон. Выражение тут тоже сработает, но читаться будет хуже:
"Здравствуйте, " + str([name])противЗдравствуйте, {{ name }}. -
Одно и то же значение нужно нескольким компонентам — переменная, даже если значение постоянное. Например, адресат уведомлений: заведите переменную, в начале сценария присвойте ей константу, а во всех уведомлениях поставьте аргумент-переменную. Менять адресата придётся в одном месте, а не в двенадцати.
|
Способ, которым задано поле, сохраняется в сценарии вместе со значением. Открыв поле снова, вы увидите ту же вкладку, на которой его оставили, — редактор не пытается угадать «настоящий» способ. |