Лабораторный практикум по дисциплине "Автоматизированные информационные системы в производстве"
Изучение методологии BPMN на примере программного продукта RunaWFE: Лабораторный практикум по дисциплине “Автоматизированные информационные системы в производстве”/ Уфимск. гос. авиац. техн. ун-т; Сост: Г.Г. Куликов, А.Г. Михеев, М. В. Орлов, Р.К. Габбасов, Д.В. Антонов.
Рассматриваются основные элементы и правила нотации BPMN, а также содержатся основные сведения, необходимые для работы с RunaWFE. Приводится порядок выполнения лабораторного практикума.
Предназначен для студентов старших курсов, обучающихся по направлениям подготовки 080801 – «Прикладная информатика (в экономике)» и 230102 – «Автоматизированные системы обработки информации и управления»
Практикум продемонстрирован на open-source версии RunaWFE Free.
Практикум можно аналогично пройти на RunaWFE Professional (скачать) или онлайн версии RunaWFE
Введение
BPMS — Business Process Management System/Suite — системы управления бизнес-процессами.
Одним из способов организации управления бизнес-процессами в компании является использование BPMS. Целями использования таких систем являются повышение качества исполнения бизнес-процессов, сокращение временных затрат, получение возможности контроля деятельности для повышения качества управления, а также непрерывное совершенствование внутренних бизнес-процессов c возможностью их изменения "на лету".
BPMS предназначена для автоматизации бизнес-процессов, но автоматизация бизнес-процессов не является основной целью внедрения системы. С внедрением BPM-системы у компании появляется инструмент для управления бизнес-процессами, что позволяет повысить исполнительскую дисциплину, заставить компанию работать по установленным правилам и непрерывно совершенствовать бизнес-процессы. Бизнес-процессы, без должного управления и контроля, склонны терять свою эффективность.
BPM System в обязательном порядке включает моделирование бизнес-процессов, их исполнение (process engine, процессный “движок”) и мониторинг/анализ. Опционально может включать имитационное моделирование, движок бизнес-правил и многое другое, но в этом случае она уже является BPM Suite.
Одной из информационных технологий реализации является RunaWFE - информационная система управления бизнес-процессами, позволяющая построить эффективное взаимодействие сотрудников компании и контролировать их деятельность с целью повышения качества работы всей компании с помощью ресурсов локальной вычислительной сети организации. То есть система RunaWFE реализует концепцию BPM, что позволяет строить гибкие адаптивные информационные системы, способные оперативно меняться вместе с изменением бизнес-процессов компании.
Система RunaWFE является свободным программным продуктом с открытым кодом. Ее дистрибутивы и исходный код можно скачать через интернет с сайта разработчиков свободного программного обеспечения sourceforge по адресу http://sourceforge.net/projects/runawfe/files. Систему можно свободно установить на любое количество компьютеров без каких-либо ограничений.
Лабораторная работа №1. Ознакомление с интерфейсом системы RunaWFE
Цель работы
Целью работы является ознакомление с интерфейсом и средствами разработчика и пользователя системы RunaWFE.
Теоретические сведения
RunaWFE - свободная, масштабируемая, ориентированная на конечного пользователя система проектирования управления бизнес-процессами предприятия и административными регламентами при их реализации.
Основная задача системы: проектировать модели бизнес-процессов, раздавать задания исполнителям и контролировать их выполнение. Последовательность заданий определяется графом бизнес-процесса, который менеджер или бизнес-аналитик может быстро изменять при помощи редактора бизнес-процессов.
При помощи переменных бизнес-процесса в системе происходит передача информации между исполнителями заданий. В случае хранения документов в переменных бизнес-процесса, систему можно использовать для автоматизации документооборота предприятия.
Система RunaWFE состоит из серверной и клиентской частей.
Компоненты, относящиеся к серверной части системы, это:
- RunaWFE – сервер;
- Бот-станция.
Серверная часть системы может быть установлена на уже существующий аппаратный сервер. Платформой, на которой разворачивается RunaWFE-сервер является сервер JBoss. Пример состава программного обеспечения на сервере показан на рисунке 1.1.

На одном сервере может располагаться несколько серверных сетевых приложений. Во избежание конфликтов на уровне сетевого адаптера каждому из приложений присваивается один или несколько портов. В результате сетевой адрес этих приложений выглядит так: IP-адрес:порт. Например, чтобы обратиться к веб-интерфейсу сервера JBoss нужно будет в поле адреса набрать http://192.168.0.1:8080. По умолчанию большинство браузеров (IE, Mozilla Firefox, Opera, Google Chrome и др.) обращаются на порт 80.
Компоненты, относящиеся к клиентской части системы:
- Клиент (web-интерфейс);
- Клиент-оповещатель о поступивших заданиях;
- Графический редактор бизнес-процессов;
- Симулятор бизнес-процессов.
Взаимодействие между клиентской и серверной частями системы производится посредством локальной вычислительной сети, как показано на рисунке 1.2.

При помощи Web-интерфейса системы пользователь может:
- Получать, фильтровать, выполнять задачи, генерируемые экземплярами бизнес-процессов;
- Запускать новые экземпляры бизнес-процессов;
- Просматривать состояния выполняющихся экземпляров бизнес-процессов;
- Загружать файлы-архивы, содержащие определения бизнес-процессов в систему.
При помощи web-интерфейса системы администратор может:
- Создавать-удалять пользователей и группы пользователей;
- Включать (исключать) пользователей в группы;
- Раздавать права на объекты системы пользователям и группам пользователей;
- Принудительно останавливать экземпляры бизнес-процессов.
При помощи графического редактора бизнес-процессов аналитик может разрабатывать бизнес-процессы и экспортировать их в файлы-архивы в файловую систему.
Основные возможности системы:
- Работа с определениями и экземплярами бизнес-процессов;
- Работа со списками заданий;
- Визуализация форм, соответствующих заданиям;
- Работа с системой через web-интерфейс;
- Предоставление возможности работы с системой приложениям специального вида (ботам);
- Авторизация и аутентификация пользователей.
Возможности графического редактора:
- Редактирование графа бизнес-процесса;
- Создание и редактирование графических форм заданий;
- Создание и назначение ролей;
- Создание переменных.
Порядок выполнения работы
'Создание и редактирование пользователей и групп пользователей'
Для начала запустите сервер JBoss, для этого дважды кликните по ярлыку «Start Simulation» на рабочем столе. Запустится сервер JBoss (рис 1.1).

Через минуту дважды кликните на ярлыке «Simulation Web Interface». Откроется окно браузера (рис 1.2).

В поле «Пользователь» введите Administrator, а в поле «Пароль» - wf и нажмите кнопку «Войти». Перед Вами откроется интерфейс администратора сервера RunaWFE (рис 1.3).

Перейдите к списку исполнителей кликнув по надписи «Исполнители» в левой части экрана.
Откроется список исполнителей (рис 1.4)

Создайте группу пользователей «Users». Для этого кликните «Создать группу», Откроется интерфейс создания группы (рис 1.5).

В поле «Имя» введите слово «Users», и добавьте какое-нибудь описание этой группы, после чего нажмите кнопку «Применить».
Далее перейдите на вкладку «Система», кликнув по надписи «Система» в нижней части меню. Откроется интерфейс «Обладатели полномочий» (рис 1.6).

Добавьте созданную Вами группу в этот список. Для этого кликните по надписи «Добавить». Откроется список (рис 1.7), в котором найдите группу «Users». Установите напротив этой группы галку и нажмите «Добавить».

Теперь необходимо выдать группе некоторые полномочия. Для этого кликните по надписи «Система», напротив группы «Users» поставьте галки в столбцах: «Читать», «Входить», «Загружать определение процесса», как показано на рисунке, и нажмите кнопку «Применить».

Далее создайте учетные записи пользователей «Студент» и «Преподаватель».
Для создания учетной записи «Преподаватель» откройте интерфейс «Исполнители» и кликните по надписи «Создать пользователя». Откроется форма для ввода данных пользователя. В поле «Имя» введите «Преподаватель», в поле «Код» введите любой код, например 12, остальные поля заполнять необязательно.

По окончании заполнения форм нажмите кнопку «Применить».
Для дополнительной правки учетной записи откройте меню «Исполнители». Найдите исполнителя «Преподаватель» и кликните по нему. Откроется интерфейс редактирования учетной записи (рис 1.10).

Графа «Свойства исполнителя» является стандартным для учетной записи пользователя, в нем содержится базовое описание пользователя.
В графе «Статус» устанавливается статус пользователя («Активен» или «Не активен»). Его изменяют в случае если сотрудник появляется на рабочем месте, либо не может на нем появиться в силу каких-либо обстоятельств.
В графе «Пароль» введите пароль для пользователя «Преподаватель», знать старый пароль пользователя при этом не требуется. Затем нажмите «Применить». В графе «Группы пользователя» кликните надпись «Добавить» и в открывшемся списке поставьте галку напротив группы «Users», после чего нажмите кнопку «Добавить».
Настройка учетной записи «Преподаватель» завершена.
Аналогичным образом создайте и настройте учетную запись «Студент».
'Разработка модели процесса сдачи лабораторной работы'
Дважды кликните по ярлыку «Process Designer». Загрузится оболочка редактора бизнес-процессов.

Создайте новый проект. Для этого в поле «Проводник» кликните правой кнопкой мыши и выберите в выпадающем списке «Новый проект».
В появившемся окне (рис 1.12) введите имя своего проекта и нажмите «Готово».

Кликните правой кнопкой мыши по значку Вашего проекта в проводнике. В выпадающем списке выберите «Новый процесс».
В появившемся окне (рис 1.13) введите имя процесса, в поле «Нотация» выберите «bpmn» и нажмите «Готово».

На палитре выберите элемент «Начало» и нанесите его на схему. Далее выберите элемент «Узел-действие». Разместите элементы на схеме как показано на рис 1.14.

Выберите элемент «Окончание» и добавьте его на схему, как показано на рис 1.15

Далее соедините компоненты схемы при помощи элемента «Переход», как показано на рисунке 1.16

Чтобы переименовать «Узел-действие» необходимо дважды по нему кликнуть и ввести текст.
Переименуйте узлы-действия как показано на рис 1.17 ниже.

Теперь необходимо задать роли каждому узлу. Для этого перейдите на вкладку «Роли», как показано на рисунке 1.18.

На вкладке «Роли» нажмите кнопку «Создать», как показано на рисунке 1.19

Появится окно создания новой роли, в поле «Название» напишите «Преподаватель-Роль» и нажмите кнопку «OK».

Далее на вкладке Роли нажмите кнопку «Изменить». В появившемся окне перейдите на вкладку «Группы и пользователи WF».

Кликните по ссылке «Настройки соединения». Появится окно настроек соединения с сервером (рис 1.22).

В поле URL сервера введите: jnp://127.0.0.1:1099, режим аутентификации выберите «По логину и паролю». В поле «Логин» введите Administrator, в поле «Пароль» – wf.
Нажмите кнопку «Проверить соединение» и, в случае успешной проверки, нажмите «Синхронизация», после чего нажмите «Готово».
Далее кликните по надписи «пользователь», потом по появившейся ссылке «Выбрать». В появившемся окне (рис 1.23) выберите пользователя «Преподаватель» и нажмите кнопку «OK».
Нажмите кнопку «OK» в поле «Редактирование инициализатора роли».
Аналогичным образом создайте роль «Студент-Роль».
В основном окне перейдите на вкладку «Граф».
Кликните правой кнопкой мыши на элемент «Начало», расположенный на схеме.

В выпадающем списке (рис 1.24) выберите «Роли» и «Преподаватель».
Аналогичным образом присвойте роли остальным блокам так, чтобы на первых двух блоках роль принадлежала учетной записи «Студент», а на остальных «Преподаватель» (рис 1.25).

Далее кликните правой кнопкой мыши на элемент «Начало», расположенный на схеме. В выпадающем списке (рис 1.26) выберите элемент «Форма» и «Проверка переменных формы».

В появившемся окне (рис 1.27) нажмите «Да».

В появившемся окне (рис 1.28) нажмите кнопку «Готово».

Повторите данную операцию для остальных элементов, кроме элемента «Окончание».
1.3.3 Создание форм для элементов.
Для того, чтобы создать форму кликните правой кнопкой мыши на элементе «Начало», в выпадающем списке (рис 1.29) и выберите «Форма» и «Создать форму».

В появившемся окне (рис 1.30) выберите тип @HTML форма + freemarker теги» и нажмите кнопку OK.

Откроется окно HTML редактора (рис 1.31). Напишите в нем «Выдать задание на лабораторную работу».

Закройте окно HTML редактора кликнув крестик в верхней части экрана (рис 1.32)

Система предложит Вам сохранить изменения (рис 1.33), нажмите Да.

Аналогичным образом создайте формы для каждого из элементов схемы, кроме элемента «Окончание».
В форме элемента «Получить задание на лабораторную работу» напишите: «Получить задание на лабораторную работу».
В форме элемента «Выполнить лабораторную работу» напишите: «Выполнить лабораторную работу».
В форме элемента «Проверить лабораторную работу» напишите: «Проверить лабораторную работу».
В форме элемента «Поставить отметку о сдаче лабораторной работы» напишите: «Поставить отметку о сдаче лабораторной работы».
Сохраните проект нажав кнопку «Сохранить» (рис 1.34) в верхней части экрана.

'Экспорт процесса'
Экспортируйте процесс в *.par файл. Для этого нажмите кнопку «Экспорт процессов» (рис 1.35) в верхней части экрана.

Откроется окно «Экспорт архива» (рис 1.36), нажмите кнопку «Обзор…»

В появившемся окне «Сохранить как» (рис 1.37) выберите путь сохранения и имя файла, после чего нажмите кнопку «Сохранить» и кнопку «Готово» в предыдущем окне.

'Загрузка процесса на сервер'
На рабочем столе откройте ярлык «Simulation Web Interface» и войдите в систему под логином «Преподаватель».
В меню кликните по надписи «Определения процессов», в открывшейся странице кликните по надписи «Загрузить определение процесса».
На открывшейся странице (рис 1.38) в качестве типа процесса выберите «Script». Затем нажмите кнопку «Выберите фай»л и в появившемся окне укажите созданный вами архив, после чего нажмите кнопку «Выполнить».

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

Процесс запустится после того, как на странице стартовой формы (рис 1.40) Вы нажмете кнопку «Запустить».

Запустите еще одно окно обозревателя и перейдите по адресу http://localhost:8080/wfe/. Войдите в систему под учетной записью студента.
У Вас появилась задача «Получить задание на лабораторную работу», щелкнув по ней вы можете изучить форму задания и выполнить его. Выполните все задания для учетной записи «Студент», после чего авторизуйтесь в системе под учетной записью «Преподаватель» и выполните все задания для учетной записи «Преподаватель».
Требования к содержанию и оформлению отчета
В результате выполнения лабораторной работы должен быть сформирован отчет.
В отчете должны содержаться следующие выходные данные:
1) Цель
2) Все созданные модели с пояснение и описанием
3) Скриншоты всех основных действий, совершенных в процессе выполнения задания с пояснениями
4) Список пользователей(ролей) с описанием их полномочий
5) Список использованных переменных в виде даталогической модели
6) Результаты исполнения
7) Выводы
Контрольные вопросы
-
- Что такое BPM?
- В чем отличие BPM от BPMN?
- Из каких компонентов состоит RunaWFE?
- Что такое Web-интерфейс?
- Какие вкладки содержит учетная запись Администратора на сервере?
- Что такое роль? Какими они бывают?
- Что такое форма?
Лабораторная работа №2. Построение Процесса сдачи лабораторной работы
Цель работы
Целью работы является освоение простейших приемов выполнения функций с элементами нотации BPMN, поддерживаемых конструктором процессов системы RunaWFE.
Теоретические сведения
В Workflow-системе деятельность организации представляется в виде множества взаимосвязанных бизнес-процессов. Бизнес-процесс – это упорядоченный по времени набор заданий, выполняемых как людьми, так и информационными системами предприятия, направленный на достижение заранее заданной бизнес цели за известное время.
Бизнес-процесс можно представить в виде математического графа – набора вершин, называемых «узлами-действиями» и «маршрутными узлами», соединенных между собой возможными переходами. По этим переходам перемещаются точки исполнения (управления). При переходе точки исполнения (управления) в конкретный узел-действие соответствующему исполнителю направляется задание.
Порядок выполнения работы
Откройте Редактор процессов. Приведите построенную вами ранее схему к схеме, указанной на рис 2.5.
Обратите внимание на разницу между элементами, обозначающими Разделение и Слияние, а также, что один из элементов имеет таймер (рис 2.1)

Элемент с таймером делается следующим образом: Кликните по элементу правой кнопкой мыши и в выпадающем списке выберите Добавить таймер.
Значение таймера задается в свойствах элемента (рис 2.2).
Имена переходов также задаются в их свойствах.
Для редактирования элемента Ветвление необходимо иметь в системе хотя бы одну переменную. Для этого перейдите на вкладку Переменные в нижней части экрана.

Нажмите кнопку Создать, в появившемся окне введите наименование кнопки, например Оценка_Отчета, в качестве формата укажите StringFormat.
Далее вернитесь на вкладку Граф и кликните правой кнопкой мыши по верхнему элементу Ветвление, откроется окно редактора Bean Shell (рис 2.4).


Напротив каждого из путей выберите переменную Оценка_Отчета и соответствующее для данного пути значение этой переменной.
Аналогично редактируется и второй элемент ветвления, только в качестве пути по умолчанию укажите Хорошо (рис 2.6).

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

Используя элемент Кнопка выбора приведите форму к виду, указанному на рисунке выше.
При размещении этого элемента на форме появляется окно его настроек (рис 2.8).

В качестве имени выберите Оценка_Отчета. В поле Значение введите Хорошо для одной кнопки и Плохо для другой.
Аналогичным образом создайте и приведите к следующему виду (рис 2.9) форму элемента Принять решение.

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

Аналогичную операцию произведите с формой Принять решение.
Далее, пользуясь знаниями, полученными на предыдущем занятии экспортируйте Ваш проект в архив и загрузите этот архив на сервер. Затем запустите процесс на выполнение и проиграйте его.
Требования к содержанию и оформлению отчета
В результате выполнения лабораторной работы должен быть сформирован отчет.
В отчете должны содержаться следующие выходные данные:
1) Цель;
2) Все созданные модели с пояснение и описанием;
3) Скриншоты всех основных действий, совершенных в процессе выполнения задания с пояснениями;
4) Список пользователей(ролей) с описанием их полномочий;
5) Список использованных переменных в виде даталогической модели;
6) Результаты исполнения;
7) Выводы;
Контрольные вопросы
- Какие компоненты нотации BPMN используются в RunaWFE?
- Что такое валидация?
- Какие компоненты можно поместить на форму?
- Где можно просмотреть ход исполнения модели?
Лабораторная работа №3. Декомпозиция: подпроцессы и мульти-действия
Цель работы
Целью работы является освоение простейших приемов выполнения функций декомпозиции BPM-моделей процессов в среде RunaWFE.
Теоретические сведения
При построении модели процесса зачастую требуется описать ряд сложно-структурированных процессов, при этом требуется избегать перегрузки основного графа. Для решения данной задачи применяется метод декомпозиции, который заключается в разложении текущей задачи на части. В спецификации нотации BPM и, в частности, в редакторе RunaWFE используются два метода декомпозиции, это Подпроцессы и Мульти-действия.
Подпроцессом называется элемент, внутренняя структура которого была смоделирована с использованием элементов BPM нотации, таких как блоки, переходы, события, последовательные потоки и пр. Подпроцесс отображается в виде графического объекта в составе процесса, но также он может быть отображен «раскрытым» для отображения процесса более низкого уровня внутри данного подпроцесса.
Мульти-действием (или множественным действием) называется элемент, который позволяет создавать множественные экземпляры подпроцесса. Экземпляры могут запускаться как последовательно, так и параллельно. В редакторе RunaWFE реализован только параллельный запуск экземпляров подпроцесса.
Порядок выполнения работы
Откройте Редактор Процессов и перейдите в нем к проекту из предыдущей лабораторной работы.
Создайте в нем новый процесс, кликнув правой кнопкой мыши в Проводнике по проекту и выбрав в выпадающем меню Новый процесс (рис 3.1).

В появившемся окне укажите имя для данного процесса и установите нотацию bpmn (рис 3.2), после чего нажмите Готово.

Перейдите к процессу из предыдущей лабораторной работы. Выделите при помощи нажатой клавиши Ctrl на схеме процесса блоки Задать дополнительные вопросы, Ответить на вопросы и Принять решение (рис 3.3).

Кликните правой кнопкой мыши о одному из выделенных блоков и выберите пункт Копировать (рис 3.4).

Перейдите к новому процессу. Кликните правой кнопкой мыши по области редактирования и нажмите Вставить. К появившимся элементам добавьте элементы начала и окончания процесса (рис 3.5).

Кликните правой кнопкой мыши по блоку Задать дополнительные вопросы и выберите Удалить (рис 3.6). Далее присвойте элементу начала процесса роль Преподаватель, создайте для него форму и файл валидации (данные действия рассматривались в предыдущих лабораторных работах). Обратите внимание, что переменные процесса скопировались вместе с блоками.

Перейдите к основному процессу. Удалите скопированные блоки и на их месте создайте элемент типа Подпроцесс и укажите переходы к нему как показано на рис. В свойствах перехода tr1 укажите наименование Плохо. Задайте блоку название Проверить знания студента (рис 3.7).

Далее зайдите в свойства элемента Ветвление. Для перехода tr1 или Плохо восстановите условия перехода.
Кликните правой кнопкой мыши по блоку Проверить знания студента и выберите Подпроцесс (рис 3.8).

В появившемся окне выберите в выпадающем списке Название процесса процесс, который создали. Далее требуется добавить переменную для связи процесса с подпроцессом, для этого внизу того же окна нажмите кнопку Добавить. В появившемся окне в обоих списках выберите переменную Оценка_Отчета (названия переменных совпадают из-за переноса блоков из одного процесса в другой). В группе Использование поставьте галочки напротив полей чтение и запись (рис 3.9).

Далее сохраните и экспортируйте оба процесса.
Запустите сервер-симулятор процессов. Авторизуйтесь в системе под администратором и перейдите к списку процессов (пункт Меню Запустить процесс). Если в списке присутствуют процессы, созданные в прошлых работах, то удалите их.
Загрузите экспортированные процессы на сервер (рис 3.10).

Запустите основной процесс и проиграйте его таким образом, чтобы задействовать подпроцесс. Перейдите к списку запущенных процессов. Обратите внимание, что было запущено два процесса (рис_3.11).

Завершив процесс, откройте редактор процессов и перейдите в нем к графу основного процесса. Выделите на графе блоки Ответить на контрольные вопросы и Выполнить лабораторную работу вместе с элементами Разделение и Слияние (рис 3.12) и удалите их.

Выберите на палитре элемент Мульти-действие (рис 3.12) и разместите его на месте удаленных элементов (рис 3.13)

Соедините новый элемент мульти-действия с остальными элементами схемы, как показано на рис 3.14. Задайте данному элементу имя Выполнить лабораторную работу

Создайте новый процесс в том же проекте, в котором находится основной (рис 3.15).

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

Перейдите на вкладку Роли и создайте там новую роль, назовите ее Студент-Роль (рис 3.17).

Перейдите на вкладку Переменные и создайте новую переменную, задайте ей имя QuestNum и формат StringFormat (рис_3.18). Эта переменная будет определять номер задания.

Перейдите к графу процесса и присвойте роль Студент-Роль элементу начала и блоку Выполнить задание (рис 3.19).

Создайте форму для элемента начала. Добавьте на форму текст «Изучить теорию по заданию №». Далее добавьте вывод переменной, нажав кнопку [[Image:]], помеченную как Вывод переменной. Задайте этой переменной имя QuestNum и установите формат Однострочный (рис 3.20.

Результат должен получиться как на рис 3.21.

Перейдите к основному процессу и откройте вкладку Переменные. Добавьте переменную с названием NumberOfQuests, задайте ей формат StringFormat (рис 3.22).

Также добавьте переменную с названием QuestArray и задайте ей тип StringArrayFormat (рис 3.23).

Откройте редактирование формы для элемента начала процесса (рис 3.24).

Добавьте на форму текст Выберите число задач в работе и добавьте на форму элемент Список, обозначенный символом .
В появившемся окне, в поле Имя выберите переменную NumberOfQuests, размер поля установите в одну линию, в поле Доступные варианты установите значения полей Текст и Значение как показано на рис 3.25. Число доступных вариантов должно быть не менее пяти.

В результате форма должна выглядеть как на рис. 3.26.

Далее требуется передать блоку Выполнить лабораторную работу массив строковых значений. Для каждого элемента данного массива будет создан отдельный экземпляр процесса. Переменная массива уже создана, это QuestArray, остается передать в нее массив значений. Для создания и передачи массива используем обработчики. Убедитесь, что у вас установлена галочка в поле Вид->Показать обработчики (рис 3.27).

Создайте обработчик для блока Получить задание на лабораторную работу (рис 3.28).

Выделите созданный обработчик, в нижней части редактора процессов задайте значение свойству Класс обработчика, для этого нажмите кнопку с символом многоточия (рис 3.29).

В окне Выбор типа выберите ExecuteFormulaActionHandler (рис_3.30).

Нажмите на кнопку с символом многоточия напротив свойства Конфигурация. Введите в поле конфигурации следующий код:
QuestArray = “”
Данным кодом производится инициализация массива (рис_3.31).

Создайте в том же блоке еще один обработчик (рис 3.32).

Укажите ему тип BSHActionHandler (рис 3.33).

В конфигурации обработчика введите следующий код:
int n = Integer.parseInt(NumberOfQuests);
String[] array = new String[n];
for (int i=0; i < n; i++){
array[i] =" "+(i+1);
};
QuestArray = array;
При помощи данного кода производится заполнение массива QuestArray.
Вызовите окно настройки подпроцесса для блока Выполнить лабораторную работу (рис 3.34).

В списке Название подпроцесса выберите подпроцесс, для которого создавали переменную QuestNum.
Нажмите кнопку Добавить для добавления новой переменной. В появившемся окне установите имя переменной в процессе QuestArray и имя переменной в подпроцессе – QuestNum, режим использования - установите чтение (рис 3.35).

Далее добавьте еще одну переменную, для нее установите имя переменной в процессе Студент и имя переменной в подпроцессе –Студент-Роль, режим использования - установите чтение (рис 3.36). Это требуется для делегирования роли в подпроцесс.

Сохраните проект и экспортируйте оба процесса на сервер. Проиграйте несколько вариантов сценариев и убедитесь в отсутствии ошибок в работе.
Требования к содержанию и оформлению отчета
В результате выполнения лабораторной работы должен быть сформирован отчет.
В отчете должны содержаться следующие выходные данные:
1) Цель;
2) Все созданные модели с пояснением и описанием;
3) Скриншоты всех основных действий, совершенных в процессе выполнения задания с пояснениями;
4) Список пользователей(ролей) с описанием их полномочий;
5) Список использованных переменных в виде даталогической модели;
6) Результаты исполнения;
7) Выводы.
Контрольные вопросы
- Чем отличается подпроцесс от мульти-действия?
- Чем определяется количество процессов, запущенных при помощи мульти-действия?
- В каком формате хранится массив данных, передаваемых в мульти-действие?
- Для чего требуется передавать роль участника процесса в качестве переменной?
Лабораторная работа №4. Моделирование собственного процесса
Цель работы
Целью работы является закрепление знаний о создании BPM-моделей процессов в среде RunaWFE.
Теоретические сведения
Веб-сервис – это метод платформонезависимого взаимодействия систем. Может осуществлятся по протоколу HTTP и обменивается информацию в формате XML. Для реализации удаленного вызова команд используется SOAP-протокол. Данный протокол используется поверх протокола HTTP.
SOAP (Simple Object Access Protocol – простой протокол доступа к объектам) – протокол обмена структурированными сообщениями в распределённой вычислительной среде. Используется для обмена произвольными сообщениями в формате XML (рис 4.1).

Для каждого веб-сервиса есть уникальный документ WSDL, описывающий web-сервис. Он определяет расположение сервиса и операции (или методы), предоставляемые им.
WSDL (Web Services Description Language) – язык описания веб-сервисов и доступа к ним, основанный на языке XML.
При запуске RunaWFE–сервера, автоматически происходит запуск веб-сервисов. Веб-сервисы находятся в двух подсистемах: подсистеме авторизации и подсистеме workflow.
Доступ к веб-сервисам из подсистемы авторизации осуществляется с помощью запросов, идентифицируемых строкой: http://host:port/af.webservice/Имя_веб-сервиса. Для доступа к веб-сервисам из подсистемы workflow используется следующий URI: http://host:port/wf.webservice/Имя_веб-сервиса.
Порядок выполнения работы
Согласно одной из тем из списка разработайте модель веб-сервиса и реализуйте ее в пакете Runa:
- Монтаж видеоролика;
- Редактирование фотографии;
- Экзамен по вождению;
- Продажа товара;
- Написание программы;
- Посадка самолета;
- Взлет самолета;
- Прибытие поезда на вокзал;
- Поиск информации в Интернете и ее применение;
- Настройка межсетевого экрана;
- Выбор комплектующих к ПК и его сборка;
- Ремонт в квартире;
- Получение допуска к сессии;
- Получение допуска к экзамену;
- Приготовление пищи;
- Перевод текста при помощи программы-переводчика;
- Обмен шифрованными сообщениями (асимметричное шифрование RSA);
- Конвейерная сборка;
- Сборка авиамодели;
- Лечение болезни;
- Составление маршрута;
- Сканирование документов;
- Покупка билетов в кино;
- Строительство дома.
Также можно использовать свою тему, предварительно согласовав ее с преподавателем.
Модель должна содержать как минимум один подпроцесс, одно мульти-действие и одно ветвление.
Полученную модель процесса загрузите на сервер Runa, либо на сервер-симулятор и продемонстрируйте ее работоспособность преподавателю.
Требования к содержанию и оформлению отчета
В результате выполнения лабораторной работы должен быть сформирован отчет.
В отчете должны содержаться следующие выходные данные:
1) Цель;
2) Все созданные модели с пояснением и описанием;
3) Список пользователей(ролей) с описанием их полномочий;
4) Список использованных переменных в виде даталогической модели;
5) Результаты исполнения;
6) Выводы;
Контрольные вопросы
- Что такое веб-сервис?
- Что такое SOAP?
- Что такое WSDL?
- Каким образом запускаются сервисы в системе Runa?