С помощью окна формул в настройках элементов бизнес-процесса вы можете решить множество задач без привлечения разработчиков. Функциональность формул позволяет автоматически генерировать тексты email-сообщений, определять условия перехода по потокам. Для использования формул необходимо ознакомиться с основными правилами синтаксиса, которые описаны в этой статье.
Основные синтаксические правила
При работе с полем формул следует придерживаться определенного синтаксиса, который будет привычным для пользователей, знакомых с С#. При работе с полем Формула важно придерживаться типизации при заполнении формул. По возможности используйте значения одного типа, к примеру, текстовые с текстовыми, числовые с числовыми. Иначе необходимо преобразовать значения в нужный тип.
Кроме того, рекомендуем ознакомиться с основными операторами, которые помогут реализовать сложные условия в ваших формулах.
"" |
Текстовые строки необходимо заключить в кавычки. |
+ |
Используется для соединения значений. |
== |
Определяет равенство двух значений. |
!= |
Определяет неравенство двух значений. |
<, > |
Сравнивает величину двух значений (меньше чем, больше чем). |
>=, <= |
Больше или равно, меньше или равно. |
&& |
Логическое “И”. |
|| |
Логическое “Или”. |
true, false |
Булевы значения “Истина” и “Ложь”. |
\n, <br> |
Перенос текстовой строки. |
Сформировать сложный текст
Один из самых распространенных сценариев использования поля Формула — формирование или “связывание” данных.
Для решения задачи в формулу нужно добавить как параметры элемента Читать данные, так и константные текстовые значения:
Между статичными данными и кавычками "" следует добавлять пробелы, чтобы разделить результирующий текст.
Вы можете объединить две строки и более с помощью диалогового окна формулы. Для конкатенации используйте символ +. Для добавления новой строки используйте управляющий символ \n, например:
Текст строки должен быть заключен в прямые двойные кавычки (" "). Для обеспечения корректной работы логических операторов установите признак Многострочное. Иначе все символы новой строки будут отфильтрованы.
Сгруппировать различные типы данных
При работе с элементом Формула необходимо использовать данные одного типа. На странице заполнения формулы тип данных каждого параметра обозначен значком:
- — уникальный идентификатор;
- — числовой;
- — дробный;
- — текстовый;
- — справочное значение;
- — значение даты и времени.
В данном случае нельзя обычным способом добавить параметр даты комплектации. Для решения задачи нужно преобразовать значение даты в текстовое значение:
Для преобразования параметра #Читать заказ.Первый элемент результирующей коллекции.Плановая дата выполнения# его необходимо заключить в круглые скобки и добавить метод .ToString(). В этом случае бизнес-процесс, в который включен элемент формирования заголовка активности, отработает корректно.
Настроить расчеты даты и времени
Чтобы выполнить бизнес-процессы с использованием операций с датой и временем, можно воспользоваться структурой DateTime языка программирования C#. Основные свойства и методы представлены в таблице:
.Date |
Возвращает дату выбранного параметра. |
.Hour |
Возвращает значение часов выбранного параметра даты. |
DateTime.MinValue |
Минимальное значение даты и времени, 00:00, UTC 1 января 0001 года. |
.TotalMinutes |
Возвращает полное значение даты и времени в минутах. |
.TotalHours |
Возвращает полное значение даты и времени в часах. |
.TotalDays |
Возвращает полное значение даты и времени в количестве дней. |
.AddMinutes(), .AddHours(), .AddDays() |
Увеличивают выбранное значение даты и времени на определенное количество минут, часов или дней. |
Чтобы произвести проверку, воспользуйтесь оператором != и свойством DateTime.MinValue:
Для сравнения двух значений воспользуйтесь оператором == и свойством .Date в виде:
В случае, когда необходимо рассчитать разницу между двумя значениями даты, воспользуйтесь такой конструкцией:
То есть, необходимо в окне формулы выбрать функцию Округлить и заполнить ее нужными параметрами элемента процесса. В нашем случае — разницей значений, а затем добавить свойство .TotalMinutes. В итоге вы получите количество затраченного времени в минутах. Таким образом можно также использовать свойства .TotalHours и .TotalDays.
Для выполнения задачи добавьте свойство .TotalHours к параметру элемента, значение параметра целиком заключите в круглые скобки, а затем произведите сравнение с числовым значением:
При работе с параметрами даты и времени также можно использовать функции .AddMinutes(), .AddHours() и .AddDays() для увеличения значения времени и даты на определенную величину. Например, чтобы привести данные даты и времени к часовому поясу пользователя при использовании элемента Чтение данных.
Для решения задачи укажите в значении .AddHours() добавляемое количество часов в виде:
Настроить формулу в условном потоке
Функциональность элемента Формула в условном потоке ничем не отличается от его функциональности в других элементах бизнес-процесса. То есть, актуальны как основные правила, так и операторы. Условные потоки применяются для перехода к следующему элементу процесса, поэтому проверяют условия перехода.
Часто в условных потоках справочные параметры сравнивают с константными значениями справочника.
Для решения задачи нужно в условном потоке сравнить текущую стадию продажи со справочным значением:
Чтобы проверить, заполнены ли справочные поля, используйте условие:
Если же нужно проверить, что справочное поле контакта лида не заполнено, то необходимо воспользоваться следующей конструкцией:
Для решения задачи необходимо в условном потоке использовать условие:
То есть, производится проверка результата визирования.
Обратите внимание, что вариантов решения задачи может быть несколько. Например, воспользуйтесь более сложной конструкцией:
В этом случае производится проверка, что статус визы не “Отклонена” или не “Ожидает визирования”.
Чтобы проверить статус презентации, необходимо использовать такую конструкцию:
Если презентация не проведена, то процесс перейдет по другому условному потоку.