Почти все Задачи имеют поля, в которые можно вставить переменные.
Все текстовые поля, которые выглядят как картинка справа, поддерживают эту функцию.
Текстовое поле с зеленой иконкой предназначено для ввода выражения на языке PHP. Выражение должно возвращать результат с помощью return.
Эти выражения нужны для вычисления самых сложных значений. Если вы хотите просто подставить значение одного из полей, пожалуйста, используйте текстовые поля с голубой иконкой!
Простой текст приведет к ошибкам. Если вы не знаете, что писать, то не используйте это поле!
$fieldname
Этот способ использования переменных доступен для полей и с синей, и с зеленой иконкой. Вместо переменных будут подставлены значения соответствующих полей Записи, для которой запущен Бизнес-Процесс. Например, для Обращений есть $company, $lastname, $firstname, $modifiedby, … . Полный список возможных переменных доступен по щелчку на синей или зеленой иконке. Учтите, что переменные доступны только для чтения.
Внутри зеленых пользовательских функций можно создавать временные переменные, используя синтаксис PHP. Пользовательские переменные будут уничтожены после выполнения функции.
Поля с синей иконкой Textfields: $(contact_id: (Contacts) leadsource) Поля с зеленой иконкой (PHP) Textfields: $account_id->Accounts->tickersymbol
Таким образом можно получить значения полей связанных записей. Например, для записи из модуля Контакты можно использовать значения полей из связанного Контрагента.
Это работает только если к данному модулю привязан только один объект связанного модуля (связь 1:N). Например из Контрагента нельзя получить данные Контакта, так как с одним Контрагентом может быть связано несколько Контактов.
Все доступные поля, в том числе и поля связанных записей, доступны с помощью голубой/зеленой иконки. Вам не нужно писать эти выражения самому!
В синих текстовых полях доступны несколько функций для простых вычислений.
Основные функции:
$[Now] – вставляет текущую дату в формате (YYYY-MM-DD). В базе данных дата хранится именно в этом формате.
$[Now,-x] – вставляет текущую дату -X дней в формате (YYYY-MM-DD)
$[Now,+x] – вставляет текущую дату +X дней в формате (YYYY-MM-DD)
$[Now,0,'d.m.Y'] – вставляет текущую дату в формате (DD.MM.YYYYY) Подробнее
$[Now,0,'H:i:s'] – вставляет текущее время в формате (HH:MM:SS)Подробнее
В данный момент эта возможность не позволяет изменять дату в поле! Возможна лишь текущая дата.
$[entityname,$id] – заменяет ID записи ее названием (Название Контрагента, Имя и Фамилия Контакта и т.п.)
$[dateformat,$date,“d.m.Y”] – меняет формат вывода переменной типа datetime на DD.MM.YYYYY Подробнее
$[utctz,$time] - используйте эту функцию, когда создаете Событие и в качестве времени начала нужно использовать значение одного из полей. Это нужно, чтобы очистить время от сдвига UTC
$[link,$crmid] - вставляет HTML-ссылку на Запись. В качестве текста ссылки (anchor) используются Название Записи
$[round,$number,$decimals] - округлить число $number до $decimals десятичных знаков после запятой
Следующий абзац будет вам полезен, только если у вас есть базовые навыки программирования, так как описывает использование пользовательских функций (Зеленое текстовое поле).
Вы можете использовать функции PHP даже в простых текстовых полях (синяя иконка).
Вам лишь нужно вставить следующее:
${ ... custom function ... return "result"; }}>
Оператор return является обязательным условием, потому что полный блок (от “${” до “}}>” ) будет заменен тем значением, которое возвращается с его помощью. Например, это позволяет вставлять округленные общие суммы:
${ return round($hdnGrandTotal, 2); }}>
Можно вычислять выражения на основе дат из полей Записи:
${ $date = strtotime($fieldname); $new_date = strtotime($date, "+1 day"); return date("Y-m-D", $new_date); }}>
Пожалуйста, обратите внимание, внутри пользовательских функций вы должны использовать ссылки на поля из связанных модулей в стиле PHP ($field->module->field)
Остальные примеры я упомяну в отдельной статье о Пользовательских Функциях
Локальные переменные могут быть использованы чтобы передавать значение из одной Задачи в другую. Они не будут очищены после того, как выполнена Задача, в которой они инициализированы и доступны до окончания выполнения всего Бизнес-Процесса.
Для доступа к локальным переменным используется массив $env. Чтобы задать значение локальной переменной variableame, вам необходимо использовать конструкцию: $env[“variableame”] = “значение переменной”;. Для чтения значения: … $env[“variablename”] …