Процессы являются одним из ключевых инструментов, автоматизирующих работу в системе. С помощью процессов пользователь может выполнять ряд операций с различными элементами системы.
Начало работы
Для работы с процессами в пользовательских сценариях необходимо иметь созданные и опубликованные процессы, не содержащие ошибок. С помощью сценариев можно работать с существующими процессами, экземплярами процессов и созданными для пользователей задачами.
Запуск процесса
Вы можете запустить бизнес-процесс с помощью пользовательского сценария. Для этого используется метод Process.run, который позволяет запустить опубликованный процесс. При запуске всегда используется последняя, опубликованная версия процесса. В частности, запуск из сценария необходим, когда в сценарии динамически создаются элементы приложения или другие данные, требуемые для запуска процесса, и выполнение должно начинаться без участия пользователя. Чтобы запустить процесс в пользовательском сценарии после его публикации, необходимо обратиться к его шаблону (ProcessTemplate). В первом примере рассмотрим запуск процесса «Отправка документа», созданного на уровне всей компании:
Мини урок «Как правильно начать бизнес-процесс»
Предположим, что процесс предназначен для отправки документа с некоторой информацией, относящейся к документу, во внешнюю систему. Для этого в контекст будут добавлены следующие поля:
- documentNumber — номер документа;
- documentContent — файл документа;
- authorName — имя автора.
Важно отметить, что в пользовательских сценариях получить доступ к процессу можно через его код. Пример сценария, запускающего такой процесс:
В результате работы такого сценария в «Мониторе процессов» можно найти запущенный процесс с созданным контекстом.
Процессы также могут быть привязаны к приложениям и разделам системы. Тогда для запуска необходимо выбрать процесс по пути его расположения. Ниже указан пример запуска процесса my_process из приложения process_app раздела process_workspace :
Поиск экземпляров процесса
С помощью пользовательских сценариев можно прервать процесс или изменить его инициатора. Чтобы вызвать соответствующие функции, необходимо обратиться к экземпляру процесса. Для этого необходимо иметь возможность найти экземпляры запущенных процессов. Поиск можно выполнить по всем полям, представленным в объекте ProcessInstanceItem. Например, найти запущенные процессы в рассмотренном ранее разделе можно с помощью полей ProcessInstanceItemRef.namespace, ProcessInstanceItemRef.code процесса:
// `_searchInstances()` — метод, позволяющий составить запрос на поиск процессов в системе по различным условиям const processess = await Global.processes._searchInstances().all();
В данном случае мы получим 10 последних процессов. С помощью метода where объекта ProcessInstanceSearch можно находить различные процессы в системе.
Поиск завершенных процессов
Пользовательские сценарии также помогают найти экземпляры процессов, которые уже завершились:
134 Бизнес процессы Пользователи
async function searchFinishedProcessess( ): Promisevoid> < // Выполняем поиск по процессам, которые завершены, используя константу `ProcessInstanceState.done` // Использование метода `where` позволяет фильтровать процессы по их состоянию const processTemplate = await Global.processes._searchInstances().where(q => q.__state.eq(ProcessInstanceState.done)).all(); >
Поиск последнего процесса с ошибкой
Используя константу ProcessInstanceState.error, можно получить процессы, которые завершились с ошибкой:
async function searchFinishedProcessess( ): Promisevoid> < // Выполняем поиск по экземплярам процессов, которые завершены с ошибкой, используя константу `ProcessInstanceState.error` // Использование метода `where` позволяет фильтровать экземпляры по их состоянию const processTemplate = await Global.processes._searchInstances().where(q => q.__state.eq(ProcessInstanceState.error)).all(); >
Для получения последнего процесса необходимо выполнить сортировку и вызвать метод first :
async function searchFinishedProcessess( ): Promisevoid> < // Выполняем поиск по экземплярам процессов, которые завершились с ошибкой, используя константу `ProcessInstanceState.error` // Использование метода `where` позволяет фильтровать экземпляры по их состоянию const processTemplate = await Global.processes._searchInstances() .where(q => q.__state.eq(ProcessInstanceState.error)) // Выбор состояния процесса .sort(‘__createdAt’, false) // Сортировка по дате создания .first() // Получение первого экземпляра из выборки >
Прерывание процессов
Для ситуаций, когда необходимо прервать выполнение бизнес-процесса, в объекте процесса существует метод ProcessInstanceItem.interrupt. Например, если необходимо прервать экземпляры устаревших версий всех процессов, необходимо найти их с помощью функции поиска и для каждого вызвать метод ProcessInstanceItem.interrupt:
async function interruptOldProcesses( ): Promisevoid> < const processTemplate = await Global.processes._searchInstances() .where(q => q.__createdAt.lt(/* Дата */)) .where(q => q.__state.in([ProcessInstanceState.exec, ProcessInstanceState.wait])).all() const interruptings = processTemplate.map(process => process.interrupt(‘истекло время выполнения’)) await Promise.all(interruptings); >
Смена ответственного
Для установки нового ответственного в системе существует метод ProcessInstanceItem.setResponsible. Данный метод можно использовать только для экземпляра процесса, который можно найти по различным фильтрам Processes._searchInstances. Метод можно использовать в тех случаях, когда процесс запускается одним пользователем, но в дальнейшем инициатора необходимо изменить. В частности, это можно использовать в процессе добавления новых сотрудников в систему, когда на этапе запуска процесса пользователь, который должен выполнить определенные действия, еще не существует в системе:
// `setResponsible` назначает процессы с `author` на `responsible` async function setResponsible(author: string, responsible: string): Promisevoid> < // Получение ссылки на нового инициатора процесса // В данном случае это пользователь, добавленный в систему с помощью процесса const responsibleRef = await System.users.search().where(q => q.__id.eq(responsible)).first() // Поиск процессов, выполняемых замещаемым пользователем const authorProcesses = await Global.processes._searchInstances() .where(q => q.__createdBy.eq(author)) .where(q => q.__state.in([ProcessInstanceState.exec, ProcessInstanceState.wait])) .all() // Запуск сценария переноса с автора на ответственного const replacements = authorProcesses.map(process => process.setResponsible(responsibleRef, ‘Переназначение’)) await Promise.all(replacements); >
Источник: tssdk.elma365.com
Пользовательское поле для запуска бизнес-процесса из карточки сделки
Оформите подписку Битрикс24.Маркет Плюс и используйте более 1 500 полезных приложений, представленных в каталоге.
Пользовательское поле для запуска бизнес-процесса из карточки сделки
Установить
Информация
Опубликовано : 09.08.2021
Установок : 217
Другие приложения разработчика
Поиск сделок с фильтром по дате
Для установки приложения нужен доступ к бизнес-процессам (Тариф «CRM+» и выше).
После установки приложения в карточке сделки появится возможность запускать любой бизнес-процесс не переходя по вкладкам.
Вы можете добавить несколько кнопок для запуска нескольких бизнес-процессов.
Есть возможность вывести свойство в любом разделе карточки сделки.
Версия 2
Изменен интерфейс вывода пользовательских полей: выводится название и код поля.
Версия 1
Добавляет пользовательское поле для запуска бизнес-процесса из карточки сделки.
- После установки добавить в карточке сделки поле «Запуск бизнес-процесса».
- Для настройки поля зайти на страницу приложения, сделать настройки кнопки (выбрать бизнес-процесс, который нужно запустить, настроить внешний вид кнопки (по желанию)).
- После сохранения настроек в карточке сделки будет доступна кнопка запуска бизнес-процесса.
Источник: www.bitrix24.ru
TrainingMaterialsCloud Introduction
Система RunaWFE является Системой управления бизнес-процессами и административными регламентами (СУБПиАР), реализующей исполняемые бизнес-процессы. RunaWFE (облачная версия RunaWFE) реализована как веб-приложение, не нуждается в предварительной установке и требует для своего запуска только компьютер с установленным браузером:
• Mozilla FF • Google Chrome • Microsoft Edge.
Браузер Microsoft Internet Explorer (IE) для работы с RunaWFE не пригоден.
RunaWFE доступна по адресу https://cloud.runawfe.ru/ . Пройдя по ней, вы попадаете на страницу входа/регистрации:
Рисунок 1.01. Начало регистрации в веб-приложении
Пройдите по ссылке «Зарегистрироваться» и задайте пароль администратора и название компании. Для учебных целей пароль администратора «wf», логин «Administrator» указывайте обязательно с большой буквы, это существенно. Название компании подойдёт любое:
Рисунок 1.02. Ввод регистрационных данных
Зафиксируйте у себя эти данные, они будут требоваться при каждом входе в веб-приложение RunaWFE. Далее нужно выбрать кнопку «Зарегистрироваться». Если регистрационные данные не входят в противоречие с данными, введёнными ранее в приложение другими пользователями, приложение их регистрирует и переходит на страницу входа, описанную в следующем разделе. С этого момента вход в приложение всегда будет осуществляться со страницы, изображённой в следующей главе на Рис.2.01.
Начало работы с системой RunaWFE
Зарегистрировавшись в качестве администратора в системе RunaWFE и пройдя по ссылке, указанной в предыдущем разделе, вы попадёте на страницу входа, на которой надо пройти аутентификацию:
Рисунок 2.01. Вход в приложение RunaWFE
Если вы правильно задали все 3 компонента аутентификации, приложение передаст управление на домашнюю страницу рабочего интерфейса:
Рисунок 2.02. Домашняя рабочая страница
Главное меню системы RunaWFE
После входа в систему на экране появляется страница, с левой стороны которой находится навигатор, содержащий меню системы. В зависимости от прав пользователя у него могут быть показаны не все пункты меню, изображенные на рисунке ниже:
Рисунок 3.01. Функциональное меню
Краткое описание пунктов меню системы RunaWFE
«Список заданий». При выполнении команды меню «Список заданий» открывается форма списка заданий для данного пользователя. Здесь пользователь может, выбрав ссылку на названии задания, открыть форму задания, ввести в нее данные, а также отметить выполнение задания. Также в списке заданий пользователь может искать, фильтровать задания, выводить в строках задания значения переменных бизнес-процессов.
«Запустить процесс». На странице, соответствующей пункту меню «Запустить процесс», находится список определений бизнес-процессов. Здесь пользователь может запустить бизнес-процесс, посмотреть схему и другие свойства бизнес-процесса, посмотреть описание бизнес-процесса. Если у пользователя есть соответствующие права, он может удалить бизнес-процесс, загрузить новый бизнес-процесс в систему или загрузить новую версию уже существующего процесса.
«Запущенные процессы». На странице, соответствующей пункту меню «Запущенные процессы», находится список запущенных экземпляров бизнес-процессов, доступных для чтения данному пользователю. Здесь пользователь может посмотреть состояния выполняющихся экземпляров бизнес-процессов, в частности – положение текущих точек управления на схеме бизнес-процесса, наличия ошибки в текущей точке управления, текущие значения переменных и ролей экземпляра бизнес-процесса, а также историю событий экземпляра бизнес-процесса. Если у пользователя есть соответствующие права, он может остановить выполнение экземпляра бизнес-процесса. Также в списке экземпляров бизнес-процессов пользователь может искать, группировать, фильтровать экземпляры бизнес-процессов, выводить в строках значения переменных бизнес-процессов.
«Исполнители». На странице, соответствующей пункту меню «Исполнители», находится список потенциальных исполнителей заданий (пользователей и групп пользователей), доступных для чтения данному пользователю. На этой странице можно завести или удалить исполнителя, завести или удалить группу исполнителей, включить исполнителя или группу исполнителей в другую группу и также исключить их из её состава. Для исполнителя можно установить статус (Активен / Не активен), настроить список заместителей. Также здесь задается список полномочий исполнителей на действия с системой, которые настраивает администратор.
«Редактор процессов». Редактор процессов является веб-реализацией среды разработки бизнес-процессов RunaWFE Developer Studio, далее DS. Редактор процессов является новой разработкой и на данный момент реализует лишь подмножество функционала, реализуемого DS. Редактор позволяет разрабатывать полноценные работоспособные бизнес-процессы, хотя и предлагает для этого меньший по сравнению с DS набор типов узлов, позволяет экспортировать эти процессы в файлы типов PAR и BPMN, а также непосредственно в раздел «Запустить процесс», производить импорт бизнес-процессов из файлов указанных типов и непосредственно с серверов, исполняющих бизнес-процессы.
«Отношения». Отношения используются в системе RunaWFE при инициализации ролей бизнес-процесса, при порождении экземпляров мультиподпроцесса базовым процессом и в некоторых других случаях. При разработке бизнес-процесса создается роль и ставится в соответствие определенным узлам схемы. Для исполнения экземпляра процесса требуется инициализация роли – то есть назначение на роль конкретного исполнителя. Отношения являются одним из используемых в системе RunaWFE способов инициализации ролей.
«Система». На странице, соответствующей пункту меню «Система», находится список полномочий исполнителей на действия с системой, которые настраивает администратор. Также здесь имеется возможность экспорта и загрузки файла с данными, добавления критериев замещения, просмотра ошибок, найденных в процессах. Начиная с версии 4.0, сюда был добавлен функционал работы со скриптами непосредственно в WFE.
«Настройки». На странице отображаются пункты с настройками веб-интерфейса, основными настройки, настройками прав доступа и т.д..
«Логи сервера». Данное меню ведет на страницу, отображающую лог работы системы. Здесь реализован удобный просмотрщик, снабжённый такими функциями как разделение на страницы, поиск, автоматическое обновление информации и т.д..
«Задания сотрудников». Позволяет пользователю Administrator и пользователям, имеющим достаточные на то права доступа, видеть все задания всех сотрудников. Каждый пользователь на этой странице может видеть свои задания, как и в меню «Задания».
Изучение интерфейса системы RunaWFE
Цель занятия
Целью занятия является ознакомление с веб-интерфейсом системы RunaWFE.
Источник: runawfe.ru