Бизнес-процессы: как настроить журнал изменений объектов
Недавно у меня была такая задача: на портале настроить реестр объектов недвижимости и сделать так, чтобы любые изменения полей объектов автоматически фиксировались.
Описание и шаблоны бизнес-процессов как всегда по ссылке "Подробнее" :-)
Для создания простого реестра объектов недвижимости подходит функционал "Процессы в ленте":
Для упрощения добавлю только 3 поля:
Со вторым процессом тоже всё просто.
Буду так же использовать служебную переменную "Журнал изменений".
Схема процесса выглядит так:
Далее идет аналогичная конструкция для поля "Дата окончания договора".
Остается добавить в переменную "Журнал изменений" то, что уже было в поле "Журнал изменений":
и записать всё, что сформировано в переменной "Журнал изменений" в аналогичное поле:
Описание и шаблоны бизнес-процессов как всегда по ссылке "Подробнее" :-)
Для создания простого реестра объектов недвижимости подходит функционал "Процессы в ленте":
- Адрес - тип "Строка"
- Статус объекта (код STATUS_OBEKTA) - тип "Список" с опциями "Не сдан", "Сдан".
- Дата окончания договора (код DATA_OKONCHANIYA_DOGOVORA) - тип "Дата"
Вот так выглядит в итоге реестр с двумя заполненными объектами:
Поле "Адрес" настройками делаю недоступным для редактирования, так как адрес объекта недвижимости изменяться не должен. Поля "Статус объекта" и "Дата окончания договора" будут меняться. Изменение этих полей и нужно зафиксировать.
Для этого добавляю недоступное для редактирование поле "Журнал изменений" (код ZHURNAL_IZMENENIY) с типом "Строка":
Теперь можно переходить к настройке бизнес-процессов, которые будут фиксировать изменения в поле "Журнал изменений".
Таких бизнес-процессов будет 2:
Настройка процесса на изменение элемента
Для этого добавляю недоступное для редактирование поле "Журнал изменений" (код ZHURNAL_IZMENENIY) с типом "Строка":
Таких бизнес-процессов будет 2:
- Первый будет запускаться только на создание нового элемента процесса и записывать в "Журнал изменений" дату создания элемента и исходные значения полей.
- Второй будет запускаться только на изменение элемента и записывать в "Журнал изменений" дату редактирования и новые значения полей.
Настройка процесса на создание элемента
В процесс добавляю служебную переменную "Журнал изменений" (log) с типом "Многострочный текст". Формировать запись для журнала изменений буду в ней, и в конце процесса запишу ее значение в поле "Журнал изменений".
В итоге первый процесс выглядит так:
Настройки действий:
Формирование переменной "Журнал изменений"
Запись значения переменной "Журнал изменений" в аналогичное поле процесса.
Со вторым процессом тоже всё просто.
Буду так же использовать служебную переменную "Журнал изменений".
Схема процесса выглядит так:
Настройки действий:
Запись даты/время изменений в переменную "Журнал изменений":
Проверка поля "Статус объекта" на наличие изменений и добавление записи в переменную "Журнал изменений" в случае, если изменение было:
Далее идет аналогичная конструкция для поля "Дата окончания договора".
Остается добавить в переменную "Журнал изменений" то, что уже было в поле "Журнал изменений":
Что у меня получилось в итоге после создания и двух изменений:
Скачать шаблоны бизнес-процессов можно по ссылкам:
- https://drive.google.com/open?id=1uD3UDSwyylSX3PkOOGyhqXNNWupJe2lP
- https://drive.google.com/open?id=1u5Ak17OKo1lw3yM1ffuYq0_BD1IGtRbq
Если создать процесс с точно такими же кодами полей и заимпортировать шаблоны бизнес-процессов, то всё должно подключиться.
Всем хорошего дня ! :-)
как в ветке условие, выбрать условие - Было изменено
ОтветитьУдалитьОно должно быть доступно в списке выбора, если настраиваете БП в процессах (не в CRM).
Удалитьнастраиваю в дизайнере БП, но такого варианта нет почему то
УдалитьЭто условие можно выбрать только если тип условия стоит "Поле документа", а не "Значение переменной".
УдалитьДа, в данном БП нужно, чтобы он реагировал на изменение каких-либо данных в элементе процесса пользователем, а уже в дизайнере проверяется, изменилось ли именно то поле, которое нужно по логике задачи.
Удалитьесть ли возможность запускать БП регулярно: 5 числа каждого месяца ?
ОтветитьУдалитьВижу простой, но не лучший вариант:
УдалитьСделать цикл и проверку 1 раз в сутки, наступило ли 5-ое число текущего месяца. Если да, то выполняется задание, если нет, то пауза в один день и снова проверка.
Не лучший - потому что циклы грузят систему. И если процессов будет много - может быть Хьюстон.
В обновлениях Битрикс24.Бостон ожидается функционал "Роботизация бизнеса" и в нем заявлены "Регулярные процессы". Возможно, что с помощью этого функционала получится решить Вашу задачу.
УдалитьНеплохо реализовано! Только поле "Журнал изменений", имхо, показывать в форме добавления ни к чему.
ОтветитьУдалитьДа, Вы правы - чекбокс "Показывать в форме добавления" в настройках поля "Журнал изменений" нужно снять.
Удалить