Использование формул в бизнес-процессах

Вы можете использовать формулы для решения сложных задач при настройке бизнес-процессов. Например, можно задать автогенерируемый заголовок задачи, который содержит значения нескольких полей, или определить нестандартное условие для перехода по потокам. Формулы в BPMSoft задаются в специальном окне в соответствии с определенными правилами (синтаксисом).

Рисунок 1 — Переход к созданию формулы

Рисунок 1 — Переход к созданию формулы

Для перехода к окну создания формулы выберите параметр элемента или процесса, значение для которого необходимо установить с помощью формулы. В соответствующем поле нажмите на кнопку Молния и в выпадающем меню выберите значение «Формула» (Рисунок 1). В результате откроется окно для добавления формулы.

Рисунок 2 — Окно для добавления формулы

Рисунок 2 — Окно для добавления формулы

Также для работы с формулами используется специальный элемент бизнес-процесса «Формула». Подробнее: Формула

Типы значений в окне создания формулы отображаются в следующем виде:

  • Уникальный идентификатор— уникальный идентификатор;
  • Числовое значение— числовой;
  • Дробное значение— дробный;
  • Текстовое значение— текстовый;
  • Справочное значение— справочный;
  • Логическое значение— логический;
  • Дата и время— дата и время.

Синтаксис формул

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

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

Таблица 1 — Синтаксис формул

Оператор Описание

""

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

+

Оператор для объединения значений

-

Оператор для вычитания числовых данных

*

Оператор для умножения числовых данных

/

Оператор для деления числовых данных

==

Оператор для сравнения значений — равно

!=

Оператор для сравнения значений — неравно

<, >

Операторы для сравнения значений: меньше и больше, соответственно

>=, <=

Операторы для сравнения значений: больше или равно и меньше или равно, соответственно

&&

Логическое «И»

||

Логическое «ИЛИ»

true, false

Логические значения: «истина» и «ложь», соответственно

\n

Оператор для переноса текстового значения на следующую строку

Проверка даты в диапазоне

Чтобы проверить, находится ли дата в установленном диапазоне, в формулах используется функция ДеньЛежитВДиапазонеДаты(), в которую передаются четыре параметра:

ДеньЛежитВДиапазонеДаты(datetime1, datetime2, daysBefore, daysAfter)

  • datetime1 — параметр, относительно которого определяется установленный диапазон. Тип данных: Дата/Время;
  • datetime2 — параметр, который проверяется относительно установленного диапазона. Тип данных: Дата/Время;
  • daysBefore — параметр, который обозначает количество дней до параметра datetime1. Тип данных: Целое число;
  • daysAfter — параметр, который обозначает количество дней после параметра datetime1. Тип данных: Целое число.

Функция возвращает значение «True», если день из параметра «datetime2» находится в диапазоне [datetime1 - daysBefore; datetime1 + daysAfter].

Пример. В бизнес-процессе для перехода между условными потоками необходимо проверить, находится ли крайний срок выполнения заявки в периоде от 5 дней до и 5 дней после относительно поля «Дата подачи». В случае положительного результата проверки выполняется условие и инициируется создание новой задачи.

ДеньЛежитВДиапазонеДаты([#Читаем заявку.Первый элемент результирующей коллекции.Дата подачи#],[#Читаем заявку.Первый элемент результирующей коллекции.Дедлайн выполнения заявки#],5,5)

Условный поток

С помощью формул можно задать условие для перехода по определенному потоку. В зависимости от заданного в формуле условия будет выполнен переход к элементу соответствующего потока.

Зачастую для задания условий используется сравнение справочного параметра с постоянным значением справочника.

Пример 1. В бизнес-процессе необходимо проверить, что документ находится в актуальном состоянии.

Для задания формулы выберите параметр документа «Состояние» и сравните с его справочным значением «Актуально»:

[#Читать данные документа.Первый элемент результирующей коллекции.Состояние#] == [#Справочник.Состояние документа.Актуальный.2144d9a6-b446-4afd-a52d-41f1b1910546#]

Пример 2. Для условного потока необходимо установить проверку на наличие информации по контакту в контрагенте.

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

[#Читать данные контрагента.Первый элемент результирующей коллекции.Основной контакт#] != Guid.Empty

Пример 3. Для условного потока необходимо выполнить проверку на то, что заказ находится в любом другом состоянии, кроме «Завершен» или «Отменен».

В данном примере для формулы используется логический оператор «ИЛИ» (||) и оператор сравнения значений (!=):

[#Читать данные заказа.Первый элемент результирующей коллекции.Состояние#] != [#Справочник.Состояние заказа.4. Завершен.40de86ee-274d-4098-9b92-9ebdcf83d4fc#] || [#Читать данные заказа.Первый элемент результирующей коллекции.Состояние#] != [#Справочник.Состояние заказа.5. Отменен.8ab0f830-908b-40d7-80a3-7f49ef70ce70#]

Пример 4. Для условного потока необходимо выполнить проверку на возможность отправки сообщений контакту.

Для выполнения данной проверки используйте следующую формулу:

[#Читать данные контакта.Первый элемент результирующей коллекции.Не использовать Email#] == false

Сложный текст

С помощью формул можно соединять данные, формируя сложный текст с переменными.

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

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

"Статус оплаты по заказу №" + [#Читать данные заказа.Первый элемент результирующей коллекции.Номер#]+" изменен. Получатель:" + [#Читать данные заказа.Первый элемент результирующей коллекции.Имя получателя#]

Пример 2. В подсказке пользователю на странице задачи необходимо перенести текст на следующую строку.

Для переноса текста на следующую строку используется оператор \n, заключенный в кавычки. Чтобы объединить значения в формуле, используйте оператор +:

"Завершите задачу." + "\n" + "На детали «Результат» зафиксируйте информацию о встрече."

Для корректной работы оператора \n в текстовых полях необходимо установить признак «Многострочный текст».

Расчет числовых типов данных

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

Пример 1. При выполнении бизнес-процесса необходимо рассчитать процент от числа.

[#Читать данные заявки.Первый элемент результирующей коллекции.Первое число#]/[#Читать данные заявки.Первый элемент результирующей коллекции.Второе число#]*100

Если первое число, например, 12, а второе 30, результат расчета формулы будет 40.

Пример 2. При выполнении бизнес-процесса необходимо рассчитать сумму 100 продуктов с учетом себестоимости товара и его НДС.

([#Читать данные заявки.Первый элемент результирующей коллекции.Себестоимость товара#]+[#Читать данные заявки.Первый элемент результирующей коллекции.Себестоимость товара#]*[#Читать данные заявки.Первый элемент результирующей коллекции.НДС#]/100)*100

В результате при себестоимости в 50 рублей и НДС равном 15% общая сумма всех товаров составит 5750 рублей.

Примечание. Используйте арифметические формулы в рамках математических правил вычисления, в частности учитывайте, что деление на 0 вызовет ошибку.

Разные типы данных

При создании формулы необходимо использовать значения одного типа. Чтобы использовать разные типы, требуется преобразование.

Пример. При выполнении бизнес-процесса необходимо создать заголовок активности по оценке лояльности клиента к покупке. В заголовок должны быть включены значения следующих полей: «Бюджет клиента», «Вероятность, %» и «Дата создания».

В данном примере для формулы необходимо использовать значения разных типов: текстовый, числовой (поле «Вероятность, %»), дробный (поле «Бюджет клиента») и дата (поле «Дата создания»). Для использования данных типов значений в бизнес-процессе необходимо преобразовать их в текстовый тип. Для этого несоответствующие текстовому типу значения заключаются в круглые скобки и добавляется метод .ToString():

"Оцените лояльность клиента к покупке. Бюджет:" + ([#Читать данные продажи.Первый элемент результирующей коллекции.Бюджет клиента#]).ToString () + "Вероятность:" + ([#Читать данные продажи.Первый элемент результирующей коллекции.Вероятность, %#]).ToString () + "Дата создания:" + ([#Читать данные продажи.Первый элемент результирующей коллекции.Дата создания#]).ToString ()

Расчет даты и времени

В формулах для работы с датой и временем используется структура DateTime языка программирования C#. Основные свойства и методы представлены в таблице 2.

Таблица 2 — Свойства и методы для работы с датой и временем

Свойство/метод Описание

.Date

Возвращает дату выбранного параметра

.Hour

Возвращает значение часов выбранного параметра даты

DateTime.MinValue

Минимальное значение даты и времени, 00:00, UTC 1 января 0001 года

.TotalMinutes

Возвращает полное значение даты и времени в минутах

.TotalHours

Возвращает полное значение даты и времени в часах

.TotalDays

Возвращает полное значение даты и времени в количестве дней

.AddMinutes(), 

.AddHours(), 

.AddDays()

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

Пример 1. В бизнес-процессе для перехода между условными потоками необходимо проверить, заполнено ли поле даты завершения договора.

Для проверки в условиях перехода по потоку используйте оператор сравнения != и свойство DateTime.MinValue:

[#Читать данные договора.Первый элемент результирующей коллекции.Дата завершения#] != DateTime.MinValue

Пример 2. В рамках бизнес-процесса для перехода между условными потоками необходимо сравнить значения дат планового и фактического взятия обращения в работу.

Для сравнения значений воспользуйтесь оператором >= и свойством .Date в виде:

[#Читать данные обращения.Первый элемент результирующей коллекции.Фактическое разрешение#].Date >= [#Читать данные обращения.Первый элемент результирующей коллекции.Время разрешения#].Date

Пример 3. При выполнении бизнес-процесса в зависимости от типа промоакции необходимо добавить определенное количество дней к дате согласования.

Для решения задачи в бизнес-процессе должны быть заданы потоки в зависимости от типа промоакции, например, два потока: промоакции с типом «Скидка» и «Подарок». Для каждого типа промоакции необходимо задать формулу, по которой будет добавлено заданное количество дней к дате согласования. Например, для промоакции с типом «Скидка» необходимо добавить 3 дня к дате согласования. Для этого в формуле используйте метод .AddDays(), в скобках которого укажите нужное количество дней:

([#Читать данные промоакции.Первый элемент результирующей коллекции.Дата согласования#].AddDays(3)).Date

Рекомендуем изучить

Добавление бизнес-процесса
Добавление элементов
Элемент процесса «Формула»
Запуск процессов

Материал был полезен для вас?
Запросить демонстрацию
Купить приложение
Заявка на индивидуальный тренинг
Заявка на обучение в формате тренинга
Заявка на консультацию по обучению
Готовы сделать выбор CRM? (детальная)
Оставьте заявку, и наши эксперты бесплатно проконсультируют вас, подберут подходящую конфигурацию и рассчитают стоимость проекта.
Предпочитаемый способ связи
Вебинар: 25 июня в 11:00
Приглашаем вас на вебинар: BPMSoft CRM без отраслевых границ. От трейдинга до здравоохранения. Опыт и цифры
Готовы сделать выбор CRM?
Оставьте заявку, и наши эксперты бесплатно проконсультируют вас, подберут подходящую конфигурацию и рассчитают стоимость проекта.
Предпочитаемый способ связи
Готовы сделать выбор CRM? (детальная)
Оставьте заявку, и наши эксперты бесплатно проконсультируют вас, подберут подходящую конфигурацию и рассчитают стоимость проекта.
Предпочитаемый способ связи
Готовы сделать выбор CRM?
Оставьте заявку, и наши эксперты бесплатно проконсультируют вас, подберут подходящую конфигурацию и рассчитают стоимость проекта.
Предпочитаемый способ связи
Регистрация на мероприятие
Типовое внедрение
Внедрите BPMSoft CRM в свою компанию всего за 8 рабочих дней по фиксированной цене! Заполните заявку для уточнения условий.
Предпочитаемый способ связи
Оставить заявку
Оставьте свои контакты и наш менеджер свяжется с Вами в ближайшее время.
Предпочитаемый способ связи
Демонстрационная версия BPMSoft
Заполните заявку для получения бесплатного доступа к демонстрационному стенду на 14 дней.
Заказать презентацию
Наш менеджер свяжется с Вами в ближайшее время.
Предпочитаемый способ связи
Рассчитать стоимость
Предпочитаемый способ связи
Лучшие CRM-системы в России: выводы Фонда «Сколково»
Какие CRM выбирают крупнейшие российские компании? Скачайте исследование рынка CRM-систем 2026 от Фонда «Сколково» и TAdviser
Задать вопрос
Предпочитаемый способ связи
Есть вопросы?
Не нашли для себя подходящую вакансию, или остались вопросы?
*
Есть вопросы?
Не нашли для себя подходящую вакансию, или остались вопросы?
*
Присоединяйтесь к партнерской сети BPMSoft
Оставьте свои контакты и наш менеджер свяжется с Вами в ближайшее время
Тип партнерства*
Управление полным жизненным циклом клиента: от генерации лидов и продаж до внедрения, поддержки и продления подписки.
Разработка собственного Приложения – производного программного обеспечения, созданного на платформе BPMSoft (Базовое ПО).
Заявка на онлайн-консультации по BPMSoft
Оставьте свои контакты и наш менеджер свяжется с Вами в ближайшее время
Стать образовательным партнёром
Оставьте свои контакты и наш менеджер свяжется с Вами в ближайшее время.
Заявка на консультацию
Оставьте свои контакты и наш менеджер свяжется с Вами в ближайшее время.
Подписка
Спасибо!
Ваша заявка принята.
Спасибо!
Ваша заявка принята.
Наш сотрудник свяжется с вами в течение 1-2 рабочих дней.
Внимание!
Обнаружена ошибка.
Внимание!
Обнаружена ошибка.
Проверьте вашу почту
Проверьте вашу почту
Для завершения подписки перейдите по ссылке в письме, которое мы только что отправили. Если письма нет во «Входящих», проверьте папку «Спам».
MAX Подписаться
Уважаемые клиенты! Предупреждаем о случаях недобросовестной конкуренции и мошенничестве в сети Интернет.
Подробнее