В соответствии с концепцией межпроцессного взаимодействия экземпляр бизнес-процесса может послать сообщение из одного узла экземпляра бизнес-процесса узлу другого экземпляра бизнес-процесса. Для посылки и получения сообщения используются элементы "Отправить сообщение" и "Получить сообщение"
Узел-отправитель посылает сообщение сразу после прихода в него точки управления, после этого точка управления перемещается в следующий узел, а узел-получатель ожидает сообщения, и точка управления может находиться в этом узле долго.
В сообщении содержится следующая информация:
В некоторых случаях одно сообщение может быть обработано несколькими получателями. Адресат сообщения может быть определен следующим образом:
Для задания этих параметров можно использовать:
Структура данных сообщения позволяет задавать соответствие между переменными отправителя и получателя
Если сообщение послано по названию бизнес-процесса (то есть, названию определения бизнес-процесса), а выполняющихся экземпляров этого бизнес-процесса не существует, то сообщение будет ждать появления первого экземпляра этого определения бизнес-процесса и передаст значения своих параметров первому появившемуся экземпляру в узле "Получить сообщение".
Если, наоборот, существует сразу несколько выполняющихся экземпляров этого бизнес-процесса, то сообщение будет передано сразу всем этим экземплярам.
В данном занятии рассматриваются бизнес-процессы, иллюстрирующие механизм межпроцессного взаимодействия: Бизнес-процесс "Пример 8-1" отправляет сообщение в бизнес-процесс "Пример 8-2". Используется маршрутизация "по названию процесса". В качестве данных, пересылаемых в сообщении, используется введённый пользователем текст, а также id экземпляра бизнес-процесса "Пример 8-1"
Бизнес-процесс "Пример 8-2" получает данные, пользователь изменяет полученное значение текстовой переменной, и высылает сообщение обратно в бизнес-процесс "Пример 8-1", при этом используется маршрутизация "по ID процесса".
Откройте среду разработки системы RunaWFE
1. Создайте новый проект - Занятие 8
2. Создайте новый процесс:
3. Введите название процесса – "Пример 8-1"
4. Добавьте элементы на схему бизнес-процесса в соответствии с рис. 13.1
(рис 13.1) Схема бизнес процесса "Пример 8-1"
В бизнес-процессе используется следующие элементы: "Начало", "Окончание", "Действие", "Задача сценария", узел "Отправить сообщение" и "Получить сообщение". Для изменения названий по-умолчанию, выделите элемент, кликнув на него, перейдите в свойства, введите новое значение в поле Название.
Для элемента "Задача сценария" используйте опцию компактный вид (см. пункт 1 раздела "Практическое занятие "Работа с Word-ботом". Порядок выполнения работы.", Замечание. рис. 10.2)
5. Создайте бизнес-процесс "Пример 8-2" в соответствии с рис. 13.2.
(рис 13.2) Схема бизнес процесса "Пример 8-2"
Здесь также как и в процессе "Пример 8-1" используются элементы отправки и принятия сообщений.
6. Создайте роли
В разрабатываемых процессах используются следующие Роли:
7. Создайте переменные
В процессе "Пример 8-1" используются следующие переменные:
В процессе "Пример 8-2" используются следующие переменные:
Для создания переменной перейдите на вкладку "Переменные" и нажмите "Создать" (См. рис. 13.3). В появившейся форме введите название переменной (См. рис. 13.4), нажмите "Далее" и выберите ее формат (См. рис. 13.5).
(рис 13.3) Создание переменных
(рис 13.4) Ввод названия переменной
(рис 13.5) Выбор формата переменной
(рис 13.6) Переменные бизнес-процесса "Пример 8-1"
(рис 13.7) Переменные бизнес-процесса "Пример 8-2"
8. Выберите класс обработчика в задачи сценария "Получение id экземпляра процесса"
В процессе "Пример 8-1" необходимо использовать обработчик "Выполнить формулу", в котором определить id данного экземпляра и проинициализировать полученным значением переменную "id отправителя". Для этого выделите на схеме элемент Задача сценария, перейдите в его свойства и кликните в поле "Класс обработчика" (См. рис. 13.8)
(рис 13.8) Задача сценария "Получение id экземпляра процесса"
В появившейся форме выберите из списка обработчик "Выполнить формулу" и нажмите ОК. Вернитесь в свойства задачи сценария, нажмите на поле "Конфигурация".
Добавьте конфигурацию следующего вида:
'id отправителя'=get_process_id();
Здесь используется функция get_process_id, которая возвращает номер текущего экземпляра процесса
(рис 13.9) Конфигурация обработчика "Выполнить формулу"
Замечание. Для вставки в конфигурацию переменных воспользуйтесь пунктом "Вставить переменную", соответственно для вставки функции используйте "Вставить функцию"
9. Создайте графические формы
Кликните на узел "Ввести сообщение для отправки" графа процесса "Пример 8-1" правой кнопкой мыши и выберите команду "Форма" > "Создать форму" (левой кнопкой мыши) - См. рис. 13.10.
(рис 13.10) Создание графической формы
Замечание. По умолчанию в качестве редактора форм используется CKEditor4. Однако, в случае если у вас в системе установлен браузер Microsoft Internet Explorer устаревшей версии - 6 (IE6) или 7 (IE7), формы могут отображаться некорректно. В этом случае следует переключить редактор на FCKEditor2 (как переключить редактор см. Практическое занятие "Изучение перспективы данных", Порядок выполнения работы, Пункт 6, рис. 8.9, рис. 8.10 )
В появившимся выпадающем списке выберите тип формы "Произвольная форма".
Поместите на форму компонент "Ввод переменной" для ввода значения переменной "отправленное сообщение" (См. рис. 13.11)
(рис 13.11) Форма "Ввести сообщение для отправки"
В процессе "Пример 8-2" также создайте форму в узле "Редактировать полученное сообщение", процесс создания аналогичен описанному примеру. На форме необходимо расположить компонент "Ввод переменной" для редактирования значения переменной "полученное сообщение" (См. рис. 13.12)
(рис 13.12) Форма "Редактирование полученного сообщения"
Создайте форму для отображения значения переменной после взаимодействия между процессами. Кликните на узел "Ознакомиться с полученным сообщением" графа процесса "Пример 8-1" правой кнопкой мыши и выберите команду "Форма" > "Создать форму" (левой кнопкой мыши), после чего расположите на форме компонент "Отобразить переменную" для "отправленное сообщение", в поле "Форма отображения" выберите "Как неактивный компонент ввода" (См. рис. 13.13)
(рис 13.13) Создание графической формы для узла "Ознакомиться с полученным сообщением"
10. Настройте межпроцессное взаимодействие
Настройка отправителя сообщения в процессе "Пример 8-1" Для настройки отправки кликните правой клавишей мыши на элементе "отправить сообщение", и выберите пункт "Конфигурация" (См. рис. 13.14)
(рис 13.14) Вызов диалога настройки отправителя сообщения в бизнес-процессе "Пример 8-1"
В свойствах маршрутизации укажите следующие настройки (См. рис. 13.15)
(рис 13.15) Настройка свойств маршрутизации сообщения в бизнес-процессе "Пример 8-1"
В области свойств маршрутизации нажмите на стрелку расположенную на кнопке "Добавить", выберите из выпадающего списка пункт "По названию процесса" для установки маршрутизации по названию бизнес-процесса.
В появившейся форме введите в поле "Значение" - Пример 8-2, поле "Название" оставьте неизменным. Нажмите "ОК"
Для добавления переменных используйте кнопку "Добавить", расположенную в области "Переменные в сообщении". В появившейся форме выберите переменную процесса, а также задайте название данной переменной.
Таким образом в соответствии с параметрами представленными на рис. 13.15, будут отправлены значения переменных "id отправителя" и "отправленное сообщение" экземпляра бизнес-процесса "Пример 8-1".
Настройка получателя в процессе "Пример 8-2".
Кликните правой клавишей мыши на элементе "получить сообщение", и выберите "Конфигурация" (См. рис. 13.16)
(рис 13.16) Вызов диалога настройки получателя сообщения в бизнес-процессе "Пример 8-2"
В свойствах маршрутизации укажите следующие настройки (См. рис. 13.17)
(рис 13.17) Настройка свойств маршрутизации сообщения в бизнес-процессе "Пример 8-2"
Используйте маршрутизацию по названию текущего определения процесса (currentDefinitionName), для этого в области свойств маршрутизации нажмите на стрелку расположенную на кнопке "Добавить", выберите из выпадающего списка пункт "По названию процесса". Добавьте переменные в сообщении в соответствии с рис. 13.17.
Таким образом, будут получены:
Настройка отправителя в процессе "Пример 8-2".
После получения и обработки сообщения, процесс "Пример 8-2" возвращает обработанные данные в экземпляр процесса "Пример 8-1", для этого используются следующие настройки (См. рис. 13.18, рис. 13.19, рис. 13.20, рис. 13.21, рис. 13.22):
(рис 13.18) Вызов диалога настройки отправителя сообщения в бизнес-процессе "Пример 8-2"
Добавьте свойство маршрутизации "по ID процесса", для этого нажмите на выпадающий список расположенный на кнопке "Добавить" в области свойств маршрутизации и выберите соответствующий пункт. В открывшемся окне введите параметры представленные на рис. 13.19:
(рис 13.19) Маршрутизация по ID процесса
Данная настройка задает выбор получателя по id экземпляра бизнес-процесса, значение id хранится в переменной "id отправителя"
Перейдите в область переменных в сообщении и нажмите "Добавить", в открывшемся окне введите "полученное сообщение" в качестве названия переменной в процессе и сообщении (См. рис. 13.20)
(рис 13.20) Добавление переменной
(рис 13.21) Итоговая конфигурация
Настройка получателя в процессе "Пример 8-1"
Обработанные в бизнес-процессе "Пример 8-2" данные возвращаются в "Пример 8-1", для принятия этих данных необходимо настроить элемент "Принять сообщение" следующим образом (См. рис. 13.22)
(рис 13.22) Переменные сообщения
Свойство маршрутизации задано как processId = ${currentProcessId}, то есть по id процесса, а соответствие переменных установлено как "отправленное сообщение"="полученное сообщение", то есть присланное в переменной "полученное сообщение" значение будет сохранено в переменную "отправленное сообщение"
11. Загрузите бизнес-процесс на RunaWFE сервер
Загрузите разработанные бизнес-процессы в систему, используя пункт меню "Файл/Экспорт процесса" (Подробнее см. "Практикум. Перспективы исполнимых бизнес-процессов.", практическое занятие "Изучение перспективы потока управления", Порядок выполнения работы, Пункт 11-14).
Войдите в web-интерфейс системы RunaWFE под пользователем Administrator.
После загрузки необходимо настроить обладателей полномочий на данные процессы.
Для "Пример 8-1" нужно добавить в обладатели полномочий группу "Сотрудники" с правами на чтение, чтение экземпляра и запуск, а для "Пример 8-2" группу "Отдел кадров", также с правами на чтение, чтение экземпляра и запуск (Подробнее см. "Практикум. Введение.", Вводное занятие, Порядок выполнения работы, Пункт 28-31).
12. Запустите бизнес-процессы и доведите экземпляры процессов до завершения.
Пользователь запускает экземпляр процесса "Пример 8-1", срабатывает обработчик, в котором определяется id данного экземпляра процесса. Пользователь вводит текст отправляемого сообщения в переменную "отправленное сообщение". Затем происходит отправка сообщения в экземпляр процесса "Пример 8-2", передаются значения переменных "отправленное сообщение" и "id отправителя". Процесс "Пример 8-1" переходит в следующий узел, ожидая сообщения с результатом обработки.
Пользователь, принадлежащий группе "Отдел кадров", запускает экземпляр процесса "Пример 8-2". Сразу после запуска экземпляра бизнес-процесса точка управления останавливается в узле "Получить сообщение", ожидая данные. После получения сообщения, происходит загрузка значений в переменные "полученное сообщение" и "id отправителя". Далее точка управления переходит в узел "Редактировать полученное сообщение", где пользователь редактирует значение переменной "полученное сообщение". Затем происходит отправка отредактированного значения обратно в экземпляр "Пример 8-1", при этом используется полученное ранее значение id этого экземпляра. Экземпляр бизнес-процесса "Пример 8-1" получает из сообщения значение "отправленное сообщение" и точка управления переходит в узел "Ознакомиться с полученным сообщением".
Для запуска процесса "Пример 8-1" войдите в систему под пользователем из группы "Сотрудники", например "Сверчков" и кликните на имя процесса в общем списке бизнес-процессов (См. рис. 13.23):
(рис 13.23) Список бизнес-процессов
Будет создан новый экземпляр бизнес-процесса, в котором точка управления перейдет в узел "Ввести сообщение для отправки" (См. рис. 13.24)
(рис 13.24) Задание, соответствующее узлу "Ввести сообщение для отправки"
В форме задания этого узла введите текст сообщения для отправки, например: "Hello" (См. рис. 13.25)
(рис 13.25) Ввод текста, который будет отправлен другому экземпляру бизнес-процесса
На следующем шаге бизнес-процесса произойдет определение id данного экземпляра процесса и отправка сообщения, содержащего переменные "отправленное сообщение" и "id отправителя" (См. рис. 13.26).
(рис 13.26) Фрагмент формы истории экземпляра бизнес-процесса, показывающий последовательность событий экземпляра бизнес-процесса
Управление перейдет в узел "Принять сообщение", в котором оно будет находиться до тех пор, пока не получит сообщение от процесса "Пример 8-2"
(рис 13.27) Ожидание сообщения экземпляром бизнес-процесса "Пример 8-1"
Запустите экземпляр бизнес-процесса "Пример 8-2".
Войдите в систему под пользователем, входящим в группу "Отдел кадров", например, Личинкин, и кликните на имени бизнес-процесса "Пример 8-2" (См. рис. 13.28).
(рис 13.28) Список бизнес-процессов
Будет запущен экземпляр бизнес-процесса, в котором точка управления остановится в узле ожидания сообщения, а после получения сообщения перейдет в узел "Редактирование полученного сообщения" (См. рис. 13.29, рис. 13.30, рис. 13.31).
(рис 13.29) Состояние экземпляра бизнес-процесса
(рис 13.30) История экземпляра бизнес-процесса
(рис 13.31) Список заданий
В форме задания узла дополните полученное сообщение (См. рис. 13.32, рис. 13.33)
(рис 13.32) Форма задания с исходным значением
(рис 13.33) Форма задания с измененным значением
После выполнения задания произойдет отправка сообщения (Hello World!!!), в экземпляр процесса выбранного по id, далее экземпляр бизнес-процесса "Пример 8-2" завершится (См. рис. 13.34)
(рис 13.34) История экземпляра бизнес-процесса "Пример 8-2"
Экземпляр бизнес-процесса "Пример 8-1" получит сообщение, содержащее переменную "полученное сообщение". Переменная "отправленное сообщение" будет проинициализирована значением "Hello World!!!" и ее значение будет выведено на форму узла "Ознакомиться с полученным сообщением" (См. рис. 13.35)
(рис 13.35) Список заданий
(рис 13.36) Форма задания
После выполнения задания бизнес-процесс завершится (См. рис. 13.37)
(рис 13.37) История экземпляра бизнес-процесса
Разработайте бизнес-процессы "Пример 8-3" и "Пример 8-4", схемы которых изображены на рис. 13.38 и рис. 13.39. "Пример 8-3" отправляет в сообщении введённые пользователем данные в процесс "Пример 8-4". Используется маршрутизация "по названию процесса". "Пример 8-4" получает данные и отображает их на форме.
(рис 13.38) Схема бизнес-процесса "Пример 8-3" для самостоятельной разработки
В "Пример 8-3", используйте элемент "Отправить сообщение" для отправки данных.
(рис 13.39) Схема бизнес-процесса "Пример 8-4" для самостоятельной разработки
В "Пример 8-4", используйте элемент "Получить сообщение" для получения данных.
В разрабатываемых процессах должны быть следующие Роли:
В процессе "Пример 8-3" используйте переменную формата Текст – "отправленное сообщение", которая предназначена для отправки в сообщении. Переменная инициализируется значением, введённым пользователем в узле "Ввести сообщение для отправки", а затем передаётся в процесс "Пример 8-4" с помощью механизма сообщений.
В процессе "Пример 8-4" используйте переменную "полученное сообщение" формата Текст. Переменная должна принимать значение в сообщении от процесса "Пример 8-3".
Замечание. По умолчанию в качестве редактора форм используется CKEditor4. Однако, в случае если у вас в системе установлен браузер Microsoft Internet Explorer устаревшей версии - 6 (IE6) или 7 (IE7), формы могут отображаться некорректно. В этом случае следует переключить редактор на FCKEditor2 (как переключить редактор см. Практическое занятие "Изучение перспективы данных", Порядок выполнения работы, Пункт 6, рис. 8.9, рис. 8.10 )
В процессе "Пример 8-3" создайте форму в узле "Ввести сообщение для отправки". Для ввода "отправленное сообщение" используйте компонент форм "Ввод переменной". В процессе "Пример 8-4" создайте форму в узле "Ознакомиться с полученным сообщением". На форме необходимо расположить компонент форм "Отобразить переменную" для вывода значения переменной "полученное сообщение".
В процессе "Пример 8-3" необходимо задать проверку переменной "отправленное сообщение", выбрав валидатор "Обязательное поле" и задав текст сообщения об ошибке (см. Практическое занятие "Изучение перспективы операций", Пункт 15, рис. 9.27, рис. 9.28).
Настройка отправителя.
В процессе "Пример 8-3" необходимо настроить отправку сообщения. Используйте отправку "По названию процесса", в качестве названия процесса используйте - Пример 8-4
Задайте переменные, которые будут отправлены в сообщении. Выберите переменную "отправленное сообщение".
Настройка получателя сообщения.
В процессе "Пример 8-4" настройте параметры получения сообщения, для этого кликните правой клавишей мыши на узле "Получить данные" и выберите пункт "Конфигурация".
В появившейся форме добавьте свойства маршрутизации, а также соответствие переменных для получения данных. Используйте получение "По названию процесса", для этого необходимо кликнуть на соответствующую кнопку, в результате в свойствах появится: processDefinitionName = ${currentDefinitionName}, где currentDefinitionName указывает на текущее название процесса.
Также необходимо добавить переменные принимаемые в сообщении, для этого нажмите кнопку "добавить" внизу формы и выберите название переменной "полученное сообщение". Затем в поле названия переменной в сообщении впишите "отправленное сообщение".
Таким образом будет установлено соответствие между посылаемой в сообщении переменной "отправленное сообщение" процесса "Пример 8-3" и переменной "полученное сообщение" в процессе "Пример 8-4". Загрузите бизнес-процессы в систему, установите на них необходимые права (выполняется аналогично процессам "Пример 8-1/8-2", см. Практическое занятие "Межпроцессное взаимодействие", пункт 11).
Описание действий пользователей.
Пользователь запускает экземпляр процесса "Пример 8-3", вводит текст отправляемого сообщения, после чего происходит отправка в экземпляры процесса "Пример 8-4". Процесс "Пример 8-3" переходит в состояние "завершения".
Пользователь, принадлежащий группе "Отдел кадров", запускает экземпляр процесса "Пример 8-4", после чего управление останавливается на узле "Получить данные", ожидая данные. Сообщение приходит во все экземпляры "Пример 8-4", где полученное значение переменной (текст сообщения) отображается на форме, после чего экземпляры "Пример 8-4" также завершаются.
1). Первый сценарий - "Один получатель"
Для запуска процесса "Пример 8-4" необходимо войти под пользователем из группы "Отдел кадров" (например Личинкин), и кликнуть на название данного процесса в общем списке процессов.
Запустится экземпляр процесса, и управление остановится на узле "Получить данные" ожидая сообщение. Далее пользователь, входящий в группу "Сотрудники", (например, Сверчков) запускает экземпляр процесса "Пример 8-3", вводит текст посылаемого сообщения.
Экземпляр процесса "Пример 8-3" завершается. При этом экземпляр процесса "Пример 8-4", получает сообщение и управление переходит в узел "Ознакомиться с полученным сообщением", пользователь Личинкин видит присланное сообщение на форме.
2). Второй сценарий - "Несколько получателей"
Реализуйте сценарий отправки сообщения сразу нескольким экземплярам "Пример 8-4".
Запустите экземпляры процесса "Пример 8-4" под всеми пользователями входящими в группу "Отдел кадров":
Далее запустите экземпляр процесса "Пример 8-3" под пользователем входящим в группу "Сотрудники". Проверьте, что сообщение придёт сразу во все ожидающие его экземпляры "Пример 8-4".
В качестве результата занятия должны быть представлены преподавателю отчет и файл с данными archive.datafile, полученный командой "Система/Выгрузить файл с данными/Экспортировать", содержащие разработанные на занятии бизнес-процессы.
В отчете должны содержаться следующие данные:
a. Элемент 
b. Элемент 
a. Точка управления сразу переходит в следующий узел
b. Точка управления ждет ответа на сообщение
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.