Битрикс 24 бизнес процесс на изменение поля

 

Пользователь 962635

Заглянувший

Сообщений: 2
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 20.02.2017

Добрый день,

Недавно занимаюсь Битриксом. Начал настраивать процессы по заявка. Не могу найти в бизнес процессов как сделать условие, чтобы БП выполнялсь только в случае, если определённое поле было изменено.

 

Пользователь 962635

Заглянувший

Сообщений: 2
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 20.02.2017

#2

0

20.02.2017 18:25:59

Нашёл вот такую инструкцию в мануале, но не совсем понимаю, что с этим делать. Куда вставлять код?

Цитата
Тип условия — Было изменено
Если бизнес-процесс запускается при изменении документа, то есть возможность определять внутри него измененные поля. Ветка условий будет выполняться, если в поле были внесены какие-то изменения.
Примечание: Данный тип условий может быть применим только после дополнительных настроек модуля.

Для того, чтобы можно было использовать данный тип условия, нужна реализация на стороне модуля, который работает с процессом. При старте процесса необходимо передавать массив изменившихся полей через параметр CBPDocument::PARAM_MODIFIED_DOCUMENT_FIELDS:

Код
CBPDocument::StartWorkflow(
   $arDocumentState["TEMPLATE_ID"],
   BizProcDocument::getDocumentComplexId($arParams["IBLOCK_TYPE_ID"], $arResult["ELEMENT_ID"]),
   array_merge($arBizProcParametersValues[$arDocumentState["TEMPLATE_ID"]], array(
      CBPDocument::PARAM_TAGRET_USER => "user_".intval($GLOBALS["USER"]->GetID()),
      CBPDocument::PARAM_MODIFIED_DOCUMENT_FIELDS => $modifiedFields
   )),
   $arErrorsTmp
);

А для того, чтобы новое условие появилось в редакторе для настройки, необходимо реализовать в документе его поддержку:

Код
public static function isFeatureEnabled($documentType, $feature)
{
   return in_array($feature, array(CBPDocumentService::FEATURE_MARK_MODIFIED_FIELDS));
}
 

Пользователь 396895

Заглянувший

Сообщений: 4
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 20.10.2015

поддерживаю, опытные коллеги, подскажите!

 

Пользователь 16221

Эксперт

Сообщений: 886
Баллов: 175
Авторитет:

1

Рейтинг пользователя:

6

Регистрация: 01.10.2007

Актуально!
Куда код-то вставлять?

 

Пользователь 2539871

Посетитель

Сообщений: 66
Баллов: 5
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 05.10.2018

облачный битрикс.
у меня есть задача:
если менеджер заполнил в сделке поле «мастер-приёмщик»(тип поля «привязка к сотруднику»), то мастеру-приёмщику ставится задача,
если нет, то нет.
оказалось, что в роботе даже нельзя проверить условие: «поле «мастер-приёмщик» заполнено».
кто виноват?

нет, это не рио-де-житомир

 

Пользователь 136059

Гуру

Сообщений: 5418
Баллов: 636
Авторитет:

22

Рейтинг пользователя:

0

Регистрация: 16.07.2012

#6

0

21.11.2018 10:54:10

Цитата
Рашид Махмутов написал:
кто виноват?

Очевидно вы, так как битрикс такой схемы не предусматривал :)
А если серьезно, то вы можете сделать по роботу запуск БП и в нем уже это проверять

Голосуй за идеи по развитию API Bitrix:
https://idea.1c-bitrix.ru/26707/
https://idea.1c-bitrix.ru/26709/
https://idea.1c-bitrix.ru/the-local-extension-folder-js/

 

Пользователь 2539871

Посетитель

Сообщений: 66
Баллов: 5
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 05.10.2018

#7

0

21.11.2018 15:20:21

Цитата
Андрей Николаев написал:

Цитата
А если серьезно, то вы можете сделать по роботу запуск БП и в нем уже это проверять

вопрос: как запустить робота по событию: менеджер заполнил поле «мастер-приёмщик» ?

нет, это не рио-де-житомир

 

Пользователь 136059

Гуру

Сообщений: 5418
Баллов: 636
Авторитет:

22

Рейтинг пользователя:

0

Регистрация: 16.07.2012

#8

0

21.11.2018 19:36:25

Цитата
Рашид Махмутов написал:
вопрос: как запустить робота по событию: менеджер заполнил поле «мастер-приёмщик» ?

Самое простое, но костыльное решение:
— создаем дополнительное поле такого же типа
— создаем БП на изменение/добавления сущности
— при запуске БП проверяем есть ли значение в доп.поле, если есть — завершаем процесс
— проверяем есть ли значение в целевом поле
— если есть — изменяем значение доп. поля этого документа
— запускаем нужный вам БП и завершаем текущий БП

Голосуй за идеи по развитию API Bitrix:
https://idea.1c-bitrix.ru/26707/
https://idea.1c-bitrix.ru/26709/
https://idea.1c-bitrix.ru/the-local-extension-folder-js/

 

Пользователь 2539871

Посетитель

Сообщений: 66
Баллов: 5
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 05.10.2018

#9

0

22.11.2018 11:24:13

Цитата
Андрей Николаев написал:

Цитата
Самое простое, но костыльное решение:
— создаем дополнительное поле такого же типа
— создаем БП на изменение/добавления сущности
— при запуске БП проверяем есть ли значение в доп.поле, если есть — завершаем процесс
— проверяем есть ли значение в целевом поле
— если есть — изменяем значение доп. поля этого документа
— запускаем нужный вам БП и завершаем текущий БП

я не понимаю,как БП запустить автоматически по событию «изменение сущности» ?

нет, это не рио-де-житомир

 

Пользователь 136059

Гуру

Сообщений: 5418
Баллов: 636
Авторитет:

22

Рейтинг пользователя:

0

Регистрация: 16.07.2012

#10

0

22.11.2018 17:44:41

Цитата
Рашид Махмутов написал:
я не понимаю,как БП запустить автоматически по событию «изменение сущности» ?

При создании БП есть опция «Автоматически запускать» и 2 значения checkbox — при добавлении и при изменении

Голосуй за идеи по развитию API Bitrix:
https://idea.1c-bitrix.ru/26707/
https://idea.1c-bitrix.ru/26709/
https://idea.1c-bitrix.ru/the-local-extension-folder-js/

 

Пользователь 2539871

Посетитель

Сообщений: 66
Баллов: 5
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 05.10.2018

#11

0

23.11.2018 08:02:56

https://helpdesk.bitrix24.ru/open/1434597/

Цитата
Но для лидов есть ограничения на автозапуск при добавлении, зависящие как от вашего тарифного плана, так и от поддержки функционала.

Бизнес процесс будет запускаться автоматически на всех тарифах в случаях, когда:
— лид был создан вручную
— лид был создан через

интеграцию с почтой и email-трекер
— лид был создан автоматически при входящем звонке на портал (если включена соответствующая функция в настройках телефонии)
— лид был создан через веб-форму на вашем сайте.

Бизнес процесс будет запускаться автоматически только на тарифах «Проект+», «Команда», «Компания», «Бизнес-школа» и «Партнер» в случае, когда:
— лид был создан через

REST API
— лид был создан из приложения Маркетплейса

В случаях, когда:
— лид был импортирован из csv-файла
— лид был создан с помощью блока

«Создание нового лида» в другом шаблоне бизнес-процесса
автозапуска текущего бизнес процесса при добавлении лида НЕ будет. Эти пункты не поддерживаются функционалом автозапуска.

Данные правила распространяются и на другие CRM-сущности — Контакты, Компании и Сделки.

Дополнительно:
— если в сделке будет создан контакт или компания, то автозапуска БП для созданных контакта или компании НЕ будет.

какие есть ограничения на автозапуск БП при «изменении» поля сделки ?

нет, это не рио-де-житомир

 

Пользователь 2587979

Заглянувший

Сообщений: 49
Баллов: 2
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 26.10.2018

#12

0

15.01.2019 08:40:54

Всё проще чем вы думаете.
1. Создаёте новый шаблон
2. Ставите галочки :

Автоматически запускать: При добавлении
При изменении

3. Пишите конструкцию Если,

 4. В ней ставите условие поле «заполнено»

 

Пользователь 2539871

Посетитель

Сообщений: 66
Баллов: 5
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 05.10.2018

#13

0

15.01.2019 10:59:19

Цитата
Шурик, сейчас к людям надо помягше, а на вопросы смотреть ширше

нет, это не рио-де-житомир

 

Пользователь 213927

Постоянный посетитель

Сообщений: 83
Баллов: 17
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 30.08.2013

#14

0

02.12.2021 01:36:56

Что бы проверить изменилось ли поле документа в БП, который запускается при изменении используйте конструкцию Условие, тип условия PHP, туда вставьте код, приведённый ниже, где PROPERTY_STATUS код вашего поля

in_array(‘PROPERTY_STATUS’, $ownerActivity->getRootActivity()->ModifiedDocumentField)

ПС
Годы идут битрикс не меняется 🦿, ладно меняется но по капле, к году 2050 будет норм.)))

 

Пользователь 358834

Заглянувший

Сообщений: 15
Баллов: 1
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 08.09.2015

#15

0

22.03.2022 19:33:23

Цитата
написал:
Что бы проверить изменилось ли поле документа в БП, который запускается при изменении используйте конструкцию Условие, тип условия PHP, туда вставьте код, приведённый ниже, где PROPERTY_STATUS код вашего поля   in_array(‘PROPERTY_STATUS’, $ownerActivity->getRootActivity()->ModifiedDocumentField)

  ПС
Годы идут битрикс не меняется 🦿, ладно меняется но по капле, к году 2050 будет норм.)))

Добрый день!

Это доступно только в коробочной версии?

 

Пользователь 298451

Заглянувший

Сообщений: 24
Баллов: 2
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 06.12.2014

#16

0

07.06.2022 13:30:04

Цитата
написал:
Что бы проверить изменилось ли поле документа в БП, который запускается при изменении используйте конструкцию Условие, тип условия PHP, туда вставьте код, приведённый ниже, где PROPERTY_STATUS код вашего поля   in_array(‘PROPERTY_STATUS’, $ownerActivity->getRootActivity()->ModifiedDocumentField)

  ПС
Годы идут битрикс не меняется 🦿, ладно меняется но по капле, к году 2050 будет норм.)))

не работает такое условие, БП зависает. что-то поменялось в api?

 

Пользователь 107050

Заглянувший

Сообщений: 3
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 10.11.2011

#17

0

17.01.2023 12:12:54

Цитата
написал:
Что бы проверить изменилось ли поле документа в БП, который запускается при изменении используйте конструкцию Условие, тип условия PHP, туда вставьте код, приведённый ниже, где PROPERTY_STATUS код вашего поля   in_array(‘PROPERTY_STATUS’, $ownerActivity->getRootActivity()->ModifiedDocumentField)

  ПС
Годы идут битрикс не меняется 🦿, ладно меняется но по капле, к году 2050 будет норм.)))

у меня одного не работает такая конструкция?

Корректировка данных через запуск бизнес-процесса в разделе CRM


Автоматизируйте шаблонные и повторяющиеся сценарии работы при помощи бизнес-процессов (БП) по двум направлениям:

  1. работа всей компании – по заданной схеме оптимизации процессов из раздела Новости (Живая лента) или через блок RPA. Подходит для таких сценариев, как: согласование счета, заявление на отпуск, утверждение договоров.
  2. улучшение процессов коммерческого блока – автоматизация в модуле CRM. Подходит для работы с лидами, сделками и клиентами. Детальное описание схемы разобрали в отдельной статье.

С помощью автоматических процессов на портале реализуются разнообразные схемы, ежедневно помогающие работе сотрудников. Автоматизация:

  • экономит время пользователей портала;
  • регулирует порядок обработки документов;
  • собирает информацию из различных разделов портала;
  • взаимодействует с клиентами;
  • контролирует исполнение обязательных действий.

Не всегда использование бизнес-процессов внутри Битрикс24 связано с повторяющимися действиями. В статье расскажем о сценариях разового применения автоматизации и о ситуациях, когда это действительно оправдано. Приведенные примеры – это реальные случаи из нашей практики.

Вносим массовые правки в поля CRM
Меняем ответственного за сущность по заданному условию
Добавляем новые параметры в карточку CRM
Разбираем преимущества использования бизнес-процесса для изменения большого массива данных.

Массовое изменение полей элементов CRM

К нам обратился клиент с просьбой: помочь в наведении порядка в CRM. Его база содержала 600 контактов с ошибками в текстовых полях. В них менеджеры фиксировали:

  • город
  • номер договора

Ошибки были схожего характера. Так, Москва, в спешке и по невнимательности сотрудника, могла быть записана в таких вариациях: Моква, Мсква, Масква. Номер договора содержал буквенный префикс, который также иногда писали с ошибкой. Верная приставка – Дезрем искажалась:

Ошибки в текстовых полях

Клиент пробовал решить проблему самостоятельно, но при ручной редактуре тратилось много времени. Мы предложили выполнить правки через массовый запуск бизнес-процесса. С помощью БП изменение информации в текстовых строках каждой сущности CRM произойдет автоматически. Схема получилась несложной:

Схема бизнес-процесса

Сначала наши специалисты определили список ошибок, выбрав возможные вариации. Дальше протестировали сценарий работы процесса на одной сущности. После чего активировали массовое изменение. В результате отработки алгоритма в CRM, данные по заданным полям приняли корректные значения:

Корректные значения в полях

Для исключения подобных ошибок мы рекомендуем для повторяющихся значений использовать списочный формат данных. В таком случае сотрудник не будет заполнять поля вручную, а выберет уже занесенный в систему вариант. Однако не всегда эта рекомендация приемлема для пользователей и удобна на практике. Подробнее о типах полей читайте в отдельной статье.

Разное написание одного и того же параметра в полях сущностей приводит к невозможности выполнить фильтрацию по нужному критерию, создает бардак в данных. Запуск бизнес-процесса на изменение информации в полях можно выполнять периодически для поддержания порядка в CRM.

Массовая смена ответственного за контакт по условию

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

Смена ответственного за контакт

Но не по всем условиям можно проделать подобные действия.

Одному нашему клиенту требовалось сменить ответственного для всех контактов, по которым нет активных сделок (стадия сделки меньше Завершенной). Для таких сущностей – назначить нового ответственного Оператор Бот.

Ответственный - Оператор Бот

Для решения поставленной перед нами задачи использовали php-скрипт. Он нужен для разового запуска процесса через SSH с выборкой контактов (без активных сделок). Скрипт также отвечает за последующую смену ответственного. По итогам отработки агента изменения приняты к 9612 контактам.

Результат отработки скрипта

В истории контакта отображена информация о выполненном действии:

Информация о выполненном действии

Таким образом, заказчик проекта получил новый сегмент клиентов с заданным условием, по которому можно дальше проводить работу. Это отличный сценарий для повторных продаж. Хорошо сработает в том случае, если лида или сделку нужно снова прогнать по воронке продаж, вне зависимости от того, какой менеджер работал с ними раньше.

Массовое добавление данных в карточку CRM

Массовый запуск бизнес-процесса можно также использовать для распределения контрагентов на группы. Этот сценарий мы реализовали для компании, в которой уже была большая база данных. В названии карточек сущностей содержался признак для сегментации. Для того, чтобы этот признак можно было использовать в дальнейших автоматизациях, требовалось записать его в списочное поле внутри карточки.

В первую очередь мы создали новое поле «Принадлежность к холдингу» в карточке Компании, для возможности установить значение из созданного списка.

Принадлежность к холдингу

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

Отдельное поле для холдингов

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

Преимущества использования автоматического изменения данных в CRM

Обработка большого массива данных с помощью БП разово или системно вносит правки в уже созданную информацию CRM. Описанные выше задачи решаются в среднем за 3 часа работы наших специалистов и экономят от 10 и более часов времени ваших сотрудников, при этом:

  1. бизнес-процесс можно запустить вне рабочего времени портала, чтобы не мешать его производительности;
  2. автоматизация исключает ошибки ручного ввода – человеческий фактор;
  3. историю изменений всегда можно посмотреть по журналу бизнес-процесса или внутри сущности;
  4. вы экономите время сотрудников и увеличиваете скорость обработки данных;
  5. систематизированная информация помогает создать детальные сегменты для рекламных компаний.

Массовый бизнес-процесс настраивается внутри вашего портала по данным и параметрам, которые можно гибко задать для любого сценария изменения информации.

Обратитесь к менеджерам нашей компании для заказа оценки стоимости и способа реализации ваших задач с помощью Битрикс24 по телефону
+7 (495) 118-39-18 или через форму ниже.

Практический пример:

  • В карточке каталогов Компания и Контакт есть одноименные свои поля — «Является ли компания членом РАВИ»
  • Тип поля – Да/Нет
  • Это поле нужно для гибкого использования в фильтрах сущностей CRM
  • Изначально это поле заполняется только в сущности Компания, в сущности Контакты – это поле не заполнено

Для реализации поставленной задачи нужно создать два бизнес процесса (БП)

  • Создаем первый Бизнес-процесса #1 в сущности Компания, который автоматически запускается при изменении полей или сущности:
  • С помощью этого Бизнес-процесса #1, появляется возможность обновлять данные поля в Контакт при изменении данных поля Компания, как варианта «да», так и в вариантп «Нет».
  • Задача Бизнес-процесса #1 – открыть связанный с Компанией Контакт и запустить в нем второй шаблон Бизнес-процесса #2 в сущности Контакт.
  • Создаем второй БП2 в сущности Контакт.

Задачи Бизнес-процесса #2:

  • Выдернуть данные из сущности каталога Кампания, а именно ID Компании и узнать, что записано в поле — «Является ли компания членом РАВИ?», Да или Нет.
  • Эту информацию для контроля заносим в лог — отчет
  • Бизнес-процесс передает информацию из поля Компании в поле Контакт

Проверка работы Бизнес-процесса

  • Создаем тестовую компанию
  • Устанавливаем связь между новым контактом к Компаний
  • Заполняем поле (Член РАВИ) значением Да
  • Сохраняем изменения
  • Бизнес-процесса #1 и #2 автоматически обновляет поле (Член РАВИ) в Контактах и его значение одинаковое с содержимым поля в Компании.


Пакетное / групповое обновление данных полей Контактов

  • Включаем фильтры, выбираем Компании, отвечающие требования поиска все компании являющиеся членом РАВИ
  • Запускаем поиск по фильтру
  • Выделяем галочками все найденные компании
  • Вношу общее изменение, выбираю общую команду сделать доступными для всех, этого достаточно чтобы сработали БП1 и 2.

Результат:
Произошло групповое изменение значения полей в каталоге Контакты в соответствии со значениями полей в каталоге Компании.

Бизнес-процессы: как настроить журнал изменений объектов

Недавно у меня была такая задача: на портале настроить реестр объектов недвижимости и сделать так, чтобы любые изменения полей объектов автоматически фиксировались.

Описание и шаблоны бизнес-процессов как всегда по ссылке «Подробнее» :-)

Для создания простого реестра объектов недвижимости подходит функционал «Процессы в ленте»:

Для упрощения добавлю только 3 поля:

  1. Адрес — тип «Строка»
  2. Статус объекта (код STATUS_OBEKTA) — тип «Список» с опциями «Не сдан», «Сдан».
  3. Дата окончания договора (код DATA_OKONCHANIYA_DOGOVORA) — тип «Дата»

Вот так выглядит в итоге реестр с двумя заполненными объектами:

Поле «Адрес» настройками делаю недоступным для редактирования, так как адрес объекта недвижимости изменяться не должен. Поля «Статус объекта» и «Дата окончания договора» будут меняться. Изменение этих полей и нужно зафиксировать.

Для этого добавляю недоступное для редактирование поле «Журнал изменений» (код ZHURNAL_IZMENENIY) с типом «Строка»:

Теперь можно переходить к настройке бизнес-процессов, которые будут фиксировать изменения в поле «Журнал изменений».

Таких бизнес-процессов будет 2:

  1. Первый будет запускаться только на создание нового элемента процесса и записывать в «Журнал изменений» дату создания элемента и исходные значения полей.
  2. Второй будет запускаться только на изменение элемента и записывать в «Журнал изменений» дату редактирования и новые значения полей. 

Настройка процесса на создание элемента

В процесс добавляю служебную переменную «Журнал изменений» (log) с типом «Многострочный текст». Формировать запись для журнала изменений буду в ней, и в конце процесса запишу ее значение в поле «Журнал изменений».

В итоге первый процесс выглядит так:

Настройки действий:

Формирование переменной «Журнал изменений» 

Запись значения переменной «Журнал изменений» в аналогичное поле процесса.

Настройка процесса на изменение элемента

Со вторым процессом тоже всё просто.
Буду так же использовать служебную переменную «Журнал изменений».

Схема процесса выглядит так:

Настройки действий:

Запись даты/время изменений в переменную «Журнал изменений»:

Проверка поля «Статус объекта» на наличие изменений и добавление записи в переменную «Журнал изменений» в случае, если изменение было:

Далее идет аналогичная конструкция для поля «Дата окончания договора».

Остается добавить в переменную «Журнал изменений» то, что уже было в поле «Журнал изменений»:

и записать всё, что сформировано в переменной «Журнал изменений» в аналогичное поле:

Что у меня получилось в итоге после создания и двух изменений:

Скачать шаблоны бизнес-процессов можно по ссылкам:

  • https://drive.google.com/open?id=1uD3UDSwyylSX3PkOOGyhqXNNWupJe2lP
  • https://drive.google.com/open?id=1u5Ak17OKo1lw3yM1ffuYq0_BD1IGtRbq

Если создать процесс с точно такими же кодами полей и заимпортировать шаблоны бизнес-процессов, то всё должно подключиться.

Всем хорошего дня ! :-)

Популярные сообщения

Работа с файлами и папками в бизнес-процессах Битрикс24

Изображение

Относительно недавно в редакторе бизнес-процессов Битрикс24 появился раздел Диск : И я хочу показать практический пример использования новых действий для работы с файлами и папками :-)

Итератор: как работать с множественными переменными в бизнес-процессах

Изображение

Я долго ждала, и он появился! Итератор : для чего он нужен, как настраивать и пример использования — всё по ссылке «Подробнее» :-)

Бизнес-процессы: установка цвета поля в списке

Изображение

Всем привет! :-) Задача: На портале настроен процесс создания и обработки заявок на ремонт. У каждой заявки есть поле «Статус» , значения которого устанавливаются автоматически бизнес-процессом в ходе обработки заявки. Необходимо для разных статусов устанавливать разные цвета: Специальных средств для решения этой задачи в Битрикс24  нет. Но с помощью бизнес-процесса  реализовать установку цвета можно :-)

Действие приостанавливает исполнение процесса, пока пользователь вручную не выберет дальнейший вариант продолжения.

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

Параметры

Выполнить команду могут — кто будет выполнять команду.

Пример использования действия

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

Для этого ему нужно зайти в сам созданный элемент (все бизнес-процессы и их элементы можно найти на странице Процессы в ленте). И во вкладке Бизнес-процессы выбрать команду.

Команда реализация.png

Действие направляет бизнес-процесс по разным веткам в зависимости от выполнения условий.

Тип условия — Поле документа

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

Тип условия — Значение переменной

Ветка действий условия проверяет параметры и переменные бизнес-процесса.

Тип условия — Смешанное

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

Например, вы можете указать переменные, поля документа или константы и задать для них определенные условия.

2020.jpg

Тип условия — Истина

Эта ветка действий выполняется всегда. Ее удобно использовать как дежурный вариант, если ни одно из условий не будет выполнено.

Условия проверяются слева направо. Поэтому ставьте такую ветку самой правой в шаблоне бизнес-процесса.

Тип условия — PHP код

Только для коробочной версии.

В качестве условия указывается код.

В случае если указанный PHP код вернет значение true, то будет выполнена ветка действий условия, если возвратится false, то будет произведен переход к следующему условию.

Задавать PHP-код может только пользователь с правами администратора.

Тип условия — Было изменено

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

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

Как настроить этот тип условия (для разработчика)

Для того, чтобы можно было использовать данный тип условия, нужна реализация на стороне модуля, который работает с процессом. При старте процесса необходимо передавать массив изменившихся полей через параметр CBPDocument::PARAM_MODIFIED_DOCUMENT_FIELDS:

CBPDocument::StartWorkflow( $arDocumentState["TEMPLATE_ID"], BizProcDocument::getDocumentComplexId($arParams["IBLOCK_TYPE_ID"], $arResult["ELEMENT_ID"]), array_merge($arBizProcParametersValues[$arDocumentState["TEMPLATE_ID"]], array( CBPDocument::PARAM_TAGRET_USER => "user_".intval($GLOBALS["USER"]->GetID()), CBPDocument::PARAM_MODIFIED_DOCUMENT_FIELDS => $modifiedFields )), $arErrorsTmp ); 

А для того, чтобы новое условие появилось в редакторе для настройки, необходимо реализовать в документе его поддержку:

 public static function isFeatureEnabled($documentType, $feature) { return in_array($feature, array(CBPDocumentService::FEATURE_MARK_MODIFIED_FIELDS)); } 

Параллельное ожидание действия

Действие направляет бизнес-процесс по разным веткам в зависимости от того, какое событие наступит раньше.

Для выполнения ветки действий в этой конструкции первыми должны быть обязательно использованы действия Команда или Пауза в выполнении.

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

Действие настраивает одновременное выполнение веток действий. Если какая-либо из веток внутри конструкции не будет выполнена, то бизнес-процесс остановится и будет ожидать ее исполнения.

Действие переводит бизнес-процесс в другой статус.

Доступно только для бизнес-процессов со статусами.

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

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

В настройках действия укажите переменную, с которой вы планируете работать.

Итератор.png

После этого можно легко организовать выполнение целого ряда однотипных действий со всеми значениями множественной переменной. Например, у вас имеется переменная с типом Пользователь, представляющая собой список сотрудников. И вы хотите создать последовательно каждому их них задачу. Укажите в настройках Итератора переменную со списком, а в сам цикл добавьте действие Задача.

Пример работы с итератором.png

Для того, чтобы каждый раз в цикле использовать очередное значение переменной, нужно использовать пункт Значение из Дополнительных результатов Итератора.

Значение итератора.png

При тестировании цикла не используйте действие «Почтовое сообщение». Если возникнет ошибка и процесс зациклится, то почтовое сообщение отработает 1000 раз и вашему клиенту уйдет 1000 писем. Остановить их отправку будет нельзя.

Сначала убедитесь, что цикл работает правильно, а потом используйте его для отправки писем.

Цикл повторяется до тех пор, пока выполняется заданное условие.

Тип условия — Поле документа

Цикл будет проверять поля документа.

Тип условия — Значение переменной

Цикл проверяет указанные параметры и переменные бизнес-процесса.

Тип условия — Смешанное

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

Например, вы можете указать переменные, поля документа или константы и задать для них определенные условия.

2020.jpg

Тип условия — PHP код

Только для коробочной версии.

В качестве условия указывается код.

Задавать PHP-код может только администратор.

Тип условия — Истина

В этом случае цикл будет выполняться всегда.

Для облачной версии Битрикс24 количество повторений цикла ограничено 1000.

Спасибо, помогло!

Спасибо :)


Это не то, что я ищу


Написано очень сложно и непонятно


Есть устаревшая информация


Слишком коротко, мне не хватает информации


Мне не нравится, как это работает

Списки

На днях мне понадобилось настроить автозаполнение полей сделки на основе полей Компании. Я создала процесс при создании Сделки, настроила проверку заполненности полей и при пустом значении заполнила их из Компании. Вроде все просто, но вот поля типа Список заполняться отказались 🙁 

Пришлось искать варианты. Что же я сделала?

Рассмотрим на примере поля “Условия оплаты” со значениями: 

  • 100% предоплата 
  • Отсрочка 100% 
  • Частичная предоплата

Поле условия оплаты

Это поле создано как в Сделке, так и в Компании. Т.е. когда создается сделка, проверяем заполнено ли значение свойства и если оно пустое, смотрим аналогичное поле в Компании и устанавливаем такое же значение.

Содержание

Для начала создадим Бизнес-процесс при создании сделки. CRM – Настройки – Роботы и бизнес-процессы – Бизнес-процессы – Сделки – Список шаблонов – Добавить шаблон

БП в настройках

Список сущностей БП

Список шаблонов

Бизнес-процесс по заполнению поля «Условия оплаты» в Сделке из Компании

БП

Создание переменной

Создадим переменную с тем же названием и типом Список. Для это зайдем в Параметры шаблона, перейдем на вкладку Переменные и нажмем кнопку Добавить переменную.

Параметры

Добавить переменную

Переменная

  • Идентификатор – Название поля на английском или латинице;
  • Название – Условия оплаты;
  • Описание – Можете добавить на свое усмотрение;
  • Тип – Список;
  • Варианты значений – это самое интересное, рассмотрим ниже, пока оставляем пустым;
  • Значение по умолчанию – Не установлено.

Действия бизнес-процесса

Условия оплаты заполнены?

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

Условия оплаты заполнены

Условие да

Условие «Да»

  • Заголовок – Да 
  • Тип условия – Поле документа 
  • Поле документа – Условия оплаты 
  • Условие – заполнено
Условие «Нет»

  • Заголовок – Нет 
  • Тип условия – Истина 

 Т.к. условия проверяются слева направо, то в условии Нет можно просто выбрать истину.

Условие нет

Разветвление да

Разветвление. Заполнено

Логируем результат разветвления по условию. 

  • Заголовок – Разветвление 
  • Текст – Условия оплаты заполнены; {{Условия оплаты}}; {{Условия оплаты > select}} 
  • Загрузить отчет для доступа из бизнес-процесса – устанавливаем галочку
Разветвление. Не заполнено

  • Заголовок – Разветвление 
  • Текст – Условия оплаты не заполнены; В компании: {{Компания: Условия оплаты}}; {{Компания: Условия оплаты > select}} 
  • Загрузить отчет для доступа из бизнес-процесса – устанавливаем галочку

Разветвление нет

Эти логи как раз и помогут нам в заполнении значений переменной. Нам нужно определить идентификаторы значений списков полей Условия оплаты в Сделке и в Компании. Запускаем процесс в сделке, открываем вкладку Бизнес-процессы и смотрим журнал. Если запущенных процессов несколько, то определяем по названию и времени запуска.

Вкладка журнала

Журнал БП

3519fa98840a8b3a6c9ffecf5800529e — это и есть идентификатор значения “Частичная оплата” в поле “Условия оплаты” в Компании. Так нам нужно определить все идентификаторы в обоих списках.

Вот что получилось:

Компания

100% предоплата: bf86af927607e0eff8a54695236fd74f 

Отсрочка 100%: bab7184d8f5d3e7c197e79c3a571396c 

Частичная предоплата: 3519fa98840a8b3a6c9ffecf5800529e

Сделка 

100% предоплата: ea7d6da2d9158bbb31f02f24b9c76308 

Отсрочка 100%: 0908d72fe7fcf676e656b36ce9468eb8 

Частичная предоплата: 929f4e57547c4ef1e99f8f252a5e420b

Теперь возвращаемся к нашей переменной и заполняем значения списка в таком виде:

[Идентификатор Компании]Идентификатор Сделки

Например, значение “100% предоплата” будет выглядеть так:

[bf86af927607e0eff8a54695236fd74f] ea7d6da2d9158bbb31f02f24b9c76308

[bf86af927607e0eff8a54695236fd74f] ea7d6da2d9158bbb31f02f24b9c76308 [bab7184d8f5d3e7c197e79c3a571396c] 0908d72fe7fcf676e656b36ce9468eb8 [3519fa98840a8b3a6c9ffecf5800529e] 929f4e57547c4ef1e99f8f252a5e420b

Вставляем эти варианты значений в переменную.

Переменная

Изменение переменной

Изменение переменных

Присвоим переменной список значение аналогичного поля из Компании. Возьмем действие “Изменение переменных”.

  • Заголовок – Изменение переменных
  • Переменная – Условия оплаты
  • Значение – {{Компания: Условия оплаты > select}} 

Параметр select указывает на идентификатор.

Переменная

  • Заголовок – Переменная 
  • Текст – {=Variable:UslOpl}; {=Variable:UslOpl_printable} 
  • Загрузить отчет для доступа из бизнес-процесса – устанавливаем галочку

Посмотрим обновилась ли переменная и что в ней записано.

Лог переменной

Изменение поля

Внесение условий оплаты

  • Заголовок – Внесение условий оплаты
  • Поле документа – Условия оплаты
  • Значение – {=Variable:UslOpl_printable}
  • Изменять от имени – устанавливаем администратора или конкретного сотрудника

В значении указываем переменную с параметром printable.

Наш процесс готов! И поле типа Список теперь заполняется, главное не напутать с идентификаторами и их порядком 🙂

Читайте также

Обложка

Битрикс 24

Вера


24.12.2021


2 комментария

Фишки БП

Битрикс 24

Вера


12.11.2021


2 комментария

Фиксация согласований

Битрикс 24

Вера


25.09.2020


Комментариев нет

Контроль заполнения данных

Битрикс 24

Вера


25.06.2020


Комментариев нет

Эта статья может быть полезна тем, кто хочет научиться создавать бизнес-процессы (БП) на портале Битрикс24. В ней будет подробно и занудно описан каждый шаг при разработке бизнес-процесса в CRM на примере несложной автоматизации сделки.

Этапы разработки бизнес-процесса

  1. Постановка задачи
  2. Создание шаблона БП
  3. Тестирование
  4. Сдача в эксплуатацию

Постановка задачи и описание алгоритма

В нашем случае задача выглядит так: «Необходимо назначить руководителя Наблюдателем сделки, если сумма сделки 100 000 руб. или больше».

Теперь, когда у нас сформулирована задача, можно приступить к описанию алгоритма. Этот этап нужен для того, чтобы представить решение задачи в структурированном виде, состоящем из отдельных действий и их взаимосвязей. Вы можете разрабатывать алгоритм с помощью любых удобных вам инструментов, например, нарисовать схему на листе, или описать последовательность шагов, или воспользоваться каким-либо сервисом для визуализации блок-схем.

Для нашей задачи достаточно простого описания алгоритма:

Если сумма сделки равна или больше 100 000 руб., то назначаем руководителя Наблюдателем этой сделки.

Создание шаблона по шагам

Шаблон бизнес-процесса – это инструмент Битрикс24, посредством которого можно реализовать ваш алгоритм.

В Битрикс24 можно разрабатывать бизнес-процессы для разных объектов (лидов, компаний, элементов Списков…) и для каждого из них надо выбирать соответствующий шаблон. Мы будем создавать шаблон БП для сделок, поскольку наша задача касается автоматизации сделки.

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

Шаг 1. Добавляем шаблон БП для сделок

Переходим в раздел CRM – Настройки – Настройки CRM.

настройка crm

Если вы не можете найти раздел «Настройки» среди пунктов меню, то поищите его под пунктом «Еще» (крайний правый), может быть он прячется там.

Если и это не помогло, то обратитесь к администратору портала, может быть, у вас недостаточно прав для создания БП.

В Настройках выбираем Роботы и бизнес-процессы – Бизнес-процессы.

добавление БП

Добавляем шаблон для сделок. По умолчанию добавляется шаблон для последовательного бизнес-процесса, что нам и требуется в данном случае (и вообще требуется в 99,99% случаев).

добавление шаблона бизнес-процесса

Шаг 2. Настройка шаблона

В появившемся окне изменяем Название и добавляем Описание (это не обязательно, но хороший тон).

Обратите внимание на настройки автоматического запуска – «Автоматически запускать».

По умолчанию там указано «При добавлении». Убираем ее! Не стоит, чтобы при добавлении новых сделок запускался наш недоделанный бизнес-процесс (а недоделанным он будет всегда, пока не проведено тестирование).

настройка шаблона

В окне настроек шаблона мы видим несколько вкладок:

  • Основное (которую мы только что заполнили)
  • Параметры
  • Переменные
  • Константы

Параметры служат для добавления информации при запуске процесса и для передачи данных между разными БП.

Переменные нужны для временного хранения данных в ходе бизнес-процесса, и они очищаются после его завершения.

Практическое применение параметров и переменных будет описано в следующих статьях.

Константы нужны для хранения постоянной информации, которая не меняется в ходе БП.

Именно их мы будем использовать в нашем примере для хранения значения 100 000 руб. (минимальной суммы, достойной внимания руководителя) и самого руководителя.

Давайте добавим их на вкладку «Константы».

добавление константы

Для добавления суммы заполните поля:

  • Идентификатор – можно использовать только латинские символы, цифры и знак подчеркивания (не волнуйтесь, если вы ошибетесь, то система вам подскажет).
  • Название – здесь пишите, что и как вам угодно, но лучше, чтобы это было информативное название.
  • Описание – поле не обязательно заполнять, в данном примере и так все понятно, но давайте опишем для наглядности.
  • Тип – здесь выберите тип «Целое число»

добавление константы шаблона

При добавлении Руководителя заполните те же поля.

Для Типа выберите «Привязка к пользователю».

тип константы

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

Для выбора пользователя нажмите кнопку для вставки значения (запомните ее вид, она будет часто использоваться во время работы над шаблоном):

значение константы

Выберите пользователя из списка (в данном примере выбран «Тестовый Cотрудник»). Если вы не видите в списке нужного вам пользователя, то поищите его в разделе «Категории пользователей».

выбор пользователя

Теперь вкладка «Константы» будет выглядеть так:

список констант

Не забудьте нажать кнопку «Сохранить» для сохранения параметров шаблона!

Если вы немного утомились и хотите сделать перерыв, то давайте сохраним все что мы сделали с помощью кнопки «Применить»:

сохранение изменений в бизнес-процессе

Советую вам не забывать периодически нажимать на эту кнопку, чтобы не потерять промежуточные результаты своей работы.

Шаг 3. Добавление блок-схемы

Блок-схема формируется с помощью действий, сгруппированных по разделам.

список активити

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

Вспомним наш алгоритм: «Если сумма сделки равна или больше 100 000 руб., то назначаем руководителя Наблюдателем этой сделки.»

Нам потребуется действие «Условие» из раздела «Конструкции».

Раскроем раздел и перетащим «Условие» к серому треугольнику, как показано на скриншоте.

перенос активити

Есть еще один способ добавить действие.

Кликнув на треугольник, вы получите список с разделами и здесь уже из раздела «Конструкции» выберите действие «Условие».

добавление действия

Перейдем к настройке Условия.

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

Для изменения названия нажмите на шестеренку и введите свое название в поле «Заголовок».

setting_if_1.png

Теперь разберемся с ветками условия. По умолчанию их 2, как нам и надо для нашей задачи. Но в принципе можно добавить сколько угодно веток с помощью значка «+» справа от названия.

Настроим левую ветку.

Назовем ее «ДА».

Для «Типа условия» выберем «Поле документа», поскольку мы будем проверять поле сделки («документ» – это общее название элемента, на котором запускается БП).

В появившемся поле документа выберем «Сумма».

настройка условий в БП

В качестве условия выберем «не меньше», поскольку «равна или больше» означает «не меньше».

Для установки Значения нажмите кнопку для вставки значения:

проверка суммы

В окне «Вставка значения» раскройте «Константы» и выберите константу «Минимальная сумма».

вставка значения

Настройки левой ветки теперь выглядят так:

добавление условия в БП

Сохраните их.

Таким образом мы добавили в блок-схему проверку условия:

Если сумма сделки (то есть поле сделки «Сумма») равна или больше (то есть «не меньше») 100 000 руб. (значение нашей константы summa_min).

Теперь перейдем к условию в правой ветке.

Здесь достаточно ввести «НЕТ» в поле «Заголовок» и то, это надо только для наглядности нашего условия.

отрицательное условие

Сейчас, когда у нас готовы 2 ветки, давайте добавим в них действия для логирования.

Это надо для того, чтобы потом по записям в Журнале бизнес-процесса мы могли проверить, как он работает.

За добавление в лог отвечает действие «Запись в отчет» из раздела «Прочее».

добавление лога бизнес-процесса

Добавьте текст. В текст можно добавить поля, константы, переменные… В нашем примере в текст вставлены поле сделки «Сумма» и константа для минимальной суммы. Добавьте их с помощью кнопки для вставки значения, подобно тому, как мы это делали при добавлении условия в левой ветке.

изменение настроек логирования

Для добавления действия «Запись в отчет» в правую ветку условия скопируйте действие, перетаскивая его как показано на скриншоте при нажатой Ctrl. Если будете перетаскивать без Ctrl, то действие будет перемещено, а не скопировано.

копирование действия

Отредактируйте текст в новом действии, изменив «ДА» на «НЕТ».

логирование бп

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

Теперь в левую ветку добавим наблюдателя к сделке.

Для этого выберем действие «Изменение наблюдателей» из раздела «CRM».

добавление активити изменение наблюдателя

Здесь оставьте действие «добавить» и нажмите на кнопку «…» для выбора наблюдателя.

настройка активити изменение наблюдателя

Поскольку наблюдатель у нас находится в константе «Руководитель», то ее и выберем.

вставка значения

Теперь действие выглядит так:

настройка параметров действия

Итак, наш шаблон готов. Не забудьте его сохранить!

готовый шаблон бизнес-процесса

Запуск и Тестирование

Для тестирования создайте сделку c суммой больше 100 000 руб., например, 200 000 руб.

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

ручной запуск бизнес-процесса

Теперь давайте посмотрим Журнал на вкладке «Бизнес-процессы».

просмотр лога БП

Из журнала видно, что БП пошел по левой ветке, как и ожидалось.

отладка бизнес-процесса

Также мы видим, что в карточке сделки «Тестовый сотрудник» установлен как наблюдатель.

карточка сделки

Также надо провести тесты, когда сумма сделки < 100 000 руб. и когда сумма сделки = 100 000 руб.

Для этого можно создать новые тестовые сделки с этими суммами или менять сумму в нашей тестовой сделке, при этом не забывая очищать поле «Наблюдатели».

Если все тесты прошли успешно, то можно переходить к последнему этапу.

Сдача в эксплуатацию

Перед запуском БП в работу нам надо сделать 2 вещи.

Первое, это установить реального руководителя вместо Тестового сотрудника в константе «Руководитель».

Для этого выберите наш шаблон в Списке шаблонов для сделок

список шаблонов

и измените значение константы «Руководитель» на реального пользователя.

изменение константы

И второе, это установить автозапуск процесса.

Поскольку сумма сделки может быть указана и при добавлении сделки, и при ее изменении, то для автоматического запуска отмечаем 2 чекбокса «При добавлении» и «При изменении».

автозапуск бизнес-процесса

Теперь наш бизнес-процесс в работе!

Понравилась статья? Поделить с друзьями:
  • Бриллиантовая кладовая эрмитажа часы работы
  • Битрикс обмен с 1с дополнительные реквизиты
  • Бизнес план по ремонту топливной аппаратуры
  • Бристоль в раменском часы работы на гурьева
  • Битрикс24 ссылка на задание бизнес процесса