Process-editor User guide ru

From RunaWFE
Jump to navigation Jump to search

RUNA WFE. Графический редактор бизнес-процессов. Руководство пользователя.

Версия 3.0


© 2004-2009, ЗАО “Руна ”. RUNA WFE является системой с открытым кодом и распространяется в соответствии с LGPL лицензией (http://www.gnu.org/licenses/lgpl.html).


Введение

RUNA GPD 3.0 – это графический редактор бизнес-процессов для открытой системы управления бизнес-процессами Runa WFE 3.0. RUNA GPD является частью открытого проекта Runa WFE, свободно распространяется под LGPL лицензией. Редактор можно свободно загрузить вместе с исходными кодами с портала sourceforge по адресу http://sourceforge.net/project/showfiles.php?group_id=125156&package_id=172067

В настоящем документе описывается как разрабатывать бизнес-процессы при помощи RUNA GPD 3.0[1].


Инструкция по установке

RUNA GPD распространяется в виде исходных кодов и как набор исполнимых файлов – каждый набор соответствует платформе (Linux, Windows и т.д.).

  1. == Необходимое программное обеспечение ==


Замечание. В случае операционной системы Linux и Web-браузера Mozilla Firefox для корректной работы встроенного в редактор конструктора форм в папке, в которую установлена мозилла надо найти файл конфигурации firefox.js (В случае дистрибутива AltLinux путь к файлу: usr/lib/firefox/defaults/pref/firefox.js). В этом файле надо установить:

Dom.disable_window_status_change - false


Установка и запуск RUNA GPD (случай набора исполнимых файлов)

  1. Установите JDK (http://java.sun.com/j2se/1.5.0/install.html)
  2. Разархивируйте runa-gpd-*.zip архив и перейдите в gpd-x.x.x папку
  3. Запустите runa-gpd (в случае Windows – runa-gpd.exe)

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

runa-gpd -data "ссылка

Например: ./runa-gpd -data "I:/MyProcesses


Сборка из исходных кодов

Необходимое программное обеспечение

Установка RUNA GPD

  • Установите JRE или JDK (http://java.sun.com/j2se/1.5.0/install.html)
  • Установите Eclipse IDE и WTP plug-ins
  • Скачайте исходные коды RUNA GPD
  • Запустите Eclipse
  • Поместите исходные коды RUNA GPD в Eclipse workspace
  • Запустите плагин RUNA GPD при помощи файла gpd.product из пакета org.jbpm.ui.

Создание нового проекта процессов

  1. Выберите пункт меню Файл > Создать > Новый проект - появится wizard заведения нового проекта процессов.

Process-editor User guide ru 1.png


Process-editor User guide ru 2.png


2. Введите имя проекта “HelloWorldProject”.


Process-editor User guide ru 3.png


Будет создан проект HelloWorldProject.


Process-editor User guide ru 4.png


Создание процесса HelloWorld[2]

Сценарий

  • При запуске процесса появляется стартовая форма HelloWorld.
  • После клика на команду “запустить” процесс запускается и тут же переходит в состояние завершения.

Разработка графа процесса

Откройте контекстное меню правой кнопкой мыши, кликнув на HelloWorldProject, затем кликните на «Новый процесс».


Process-editor User guide ru 5.png


Введите HelloWorldProcess в качестве имени процесса:


Process-editor User guide ru 6.png


и кликните «Finish». Будет создан процесс HelloWorldProcess.


Щелкните двойным кликом на HelloWorldProcess. Откроется диаграмма процесса:


Process-editor User guide ru 7.png


Кликните на свойства/показать сетку, появится сетка. Кликните на элементе “Начало” палитры, затем кликните на окне диаграммы. Стартовый узел процесса появится в окне диаграммы. Аналогично поместите на диаграмму завершающий узел процесса “Окончание”, кликните на элемент “Переход” и соедините узлы «Начало» и «Окончание».


Process-editor User guide ru 8.png


Кликните на свойства/показать сетку – сетка исчезнет, в соответствующих полях свойств введите краткое описание процесса (не обязательно) и пиктограмму изображения процесса (не обязательно). - Граф процесса готов.


Создание ролей

Введение

Swimlanes (роли) соответствуют ролям бизнес-процесса. В JBoss jBPM swimlane (роли) являются специальным видом переменных бизнес-процесса. Каждому узлу-действию в бизнес-процессе должна быть поставлена в соответствие роль. Начальный узел процесса (start state) имеет отличное от остальных узлов поведение в части инициализации ролей: Стартовый узел не использует инициализатор - роль, указанная в стартовом узле, инициализируется пользователем, запустившим бизнес-процесс. В отличие от этого остальные узлы-Действия используют роли для того, чтобы определить, кто может выполнять задание в данном узле-Действии.


Задание роли для процесса HelloWorld

Процесс состоит только из двух узлов: Начало и Окончание. Для состояния окончания процесса роль не нужна. Поэтому в процессе будет только одна роль.

Выбирите вкладку «Роли». Появится следующая форма:


Process-editor User guide ru 9.png


Кликните на кнопке “Создать”. В появившейся форме введите“requester”.


Process-editor User guide ru 10.png


Кликните на ОК.


Process-editor User guide ru 11.png


Кликните на закладке «Граф». На графе процесса кликните на узле «Начало», в свойствах узла кликните на поле, находящееся на пересечении Роль-Value, откройте появившейся список и выберите в нем строку requester:


Process-editor User guide ru 12.png


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


Process-editor User guide ru 13.png


Создание графической формы

Формы

Узлам-действиям, исполнителями заданий в которых являются сотрудники (не боты) должны быть поставлены в соответствие формы. Формы задаются в виде HTML- тегов с одним дополнительным тегом: <customtag>. Этот тег используется для отображения специфических элементов и отображения значений переменных бизнес-процесса в формах.

У тега <customtag> есть следующие атрибуты:

  • var – имя переменной бизнес-процесса
  • delegation – имя Java класса, использующегося для работы с переменной

Создание формы

У процесса HelloWorld нет переменных и есть только одна форма – стартовая форма. Кликните на узел «start» графа бизнес-процесса правой кнопкой мыши и выберите команду «Форма» → «Создать форму» (левой кнопкой мыши):


Process-editor User guide ru 14.png


В появившимся выпадающем списке выберите тип формы «fml».


После появления окна редакторвания кликните на вкладку дизайн:


Process-editor User guide ru 15.png


В окне конструктора форм введите Hello World!


Выберите соответствующие шрифт, размер, положение на странице:


Process-editor User guide ru 16.png


Замечание. Перейдя на вкладку «Код», можно увидеть страницу в виде HTML:


Process-editor User guide ru 17.png


Закройте вкладку формы, подтвердив ее сохранение в диалоге.


Создание файла-архива бизнес-процесса

Выберите HelloWorldProcess, выполните команду Файл/Экспорт to create .par process archive.


Process-editor User guide ru 18.png


В появившейся форме нажмите кнопку «Browse…», укажите каталог и введите имя файла архива бизнес-процесса:


Process-editor User guide ru 20.png


Выполните “finish”. В файловой системе будет сформирован файл-архив бизнес-процесса HelloWorldProcess: HelloWorldProcess.par.


Загрузка бизнес-процесса в систему управления бизнес-процессами

Войдите в систему управления бизнес-процессами RUNA WFE как Administrator (Пароль администратора по умолчанию - «wf», см. инструкцию по установке RUNA WFE 2.1).

Войдите в меню «Определения процессов».


Process-editor User guide ru 21.png


Кликните на ссылку «Загрузить определение процесса»[3]. В появившемся диалоге выберите в файловой системе сформированный в редакторе файл-архив бизнес-процесса - HelloWorldProcess.par, впишите тип процесса - «демо» и нажмите «выполнить».


Process-editor User guide ru 22.png


Процесс HelloWorldProcess будет загружен в систему:


Process-editor User guide ru 23.png


Выполнение процесса

Кликните на имя процесса. Вы увидите стартовую форму:


Process-editor User guide ru 24.png


Кликните на команду «Запустить». Процесс будет запущен и тут же завершится. Можно будет посмотреть экземпляр процесса в меню «Экземпляры процессов»:


Process-editor User guide ru 25.png


Кликните на экземпляр процесса – вы увидите свойства процесса:

Process-editor User guide ru 26.png


Создание процесса «Overtime Work»

Сценарий процесса

Руководитель предлагает сотруднику выйти на сверхурочную работу. Сотрудник соглашается или отказывается. Далее руководитель знакомится с решением сотрудника.


Предполагается, что руководитель является членом группы “manager”, а сотрудник является членом группы “staff”.


Разработка графа бизнес-процесса

Создайте новый проект «OwertimeWork», затем кликните левой кнопкой мыши на команду «Новый процесс». Введите в появившемся диалоге “over time work demo” в качестве имени процесса. Сделайте двойной клик на появившейся строке «over time work demo». Появится окно диаграммы бизнес-процесса. Выбирая элементы палитры, нарисуйте следующий граф бизнес-процесса:


Process-editor User guide ru 27.png


Для задания подписи элемента отличной от подписи по-умолчанию, выделите элемент кликнув на него, и еще раз кликните на элементе.

Для переходов, выходящих из узла исключающего выбора «Is accepted?» в их свойствах задайте явные имена «accepted» и «rejected»:


Создание ролей

Роли

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

Роль (или роль-дорожка) – это специальный тип переменной бизнес-процесса. Роль может быть инициализирована пользователем или группой пользователей в любой момент выполнения бизнес-процесса. К моменту перехода управления в некоторый узел роль, связанная с этим узлом, должна быть инициализирована. Если роль инициализирована пользователем, то после прихода управления в этот узел только этот пользователь получит задание. Если роль инициализирована группой пользователей, то после прихода управления в этот узел все члены группы получат задание. Однако выполнить задание сможет только один член группы, - тот, который первым кликнет на «выполнить». После этого будет произведена доинициализация роли этим пользователем и далее роль будет инициализирована уже не группой, а данным пользователем.

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

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


«Внутри» бизнес-процесса функции над организационной структурой (далее - оргфункции) должны быть определены в соответствии с используемым в системе RUNA WFE языком jPdl. Для работы с оргфункциями в редакторе бизнес-процессов разработаны соответствующие наборы форм.

Если параметрами оргфункций являются значения переменных бизнес-процесса, то имена этих переменных должны быть «окружены» следующей конструкцией: ${<имя переменной>}.


Задание ролей для процесса «over time work demo»

В бизнес-процессе есть две роли:

  • manager
  • staff

Описание ролей:


Роль Описание
manager Руководитель, которые запускает процесс
staff Сотрудник, которого руководитель выбирает в стартовой форме и которому направляется предложение о сверхурочной работе

Связь узлов графа бизнес-процесса и ролей:


Узел Роль
Offer an overtime work (предложить сверхурочные работы) manager
Make a decision (принять решение) staff
Notify for declining (ознакомиться с сообщением об отклонении) manager
Notify for acceptance (ознакомиться с сообщением о согласии) manager

Создание ролей

Кликните на вкладку «роли».


Process-editor User guide ru 28.png


На появившейся странице кликните на кнопку «Создать».


В появившейся форме введите название роли «manager» и кликните на «ОК», т.к данная роль-дорожка будет использована в стартовом состоянии – т.е. инициализирована пользователем, запустившим процесс. Поэтому роли-дорожке manager не требуется инициализатор.


Аналогично добавьте роль «staff».


Замечание. Примеры задания инициализаторов будут отдельно рассмотрены далее в данном документе.


Откройте опять вкладку «Граф», выберите стартовый узел-действие “Offer an overtime work”. В свойствах кликните на правую часть поля Роль/Value. В появившемся списке выберите “manager”.

Process-editor User guide ru 29.png


Аналогично задайте роли во всех остальных узлах-действиях.


Process-editor User guide ru 30.png


Создание переменных

Описание и инициализация переменных

В бизнес-процесе используются следующие переменные:


Переменная Тип Описание
since Дата-время Дата-время начала сверхурочных
till Дата-время Дата-время окончания сверхурочных
reason Строка Причина
comment Многострочный текст Комментарий
staffPersonDecision Логический Решение сотрудника
staffPersonComment Многострочный текст Комментарий сотрудника

Переменные

  • since
  • till
  • reason
  • comment

должны быть проинициализированы значениями в стартовом узле-действии “Offer an overtime work”.


Переменные

  • staffPersonDecision
  • staffPersonComment

должны быть проинициализированы в узле “Make a decision”


Создание переменных

Кликните на вкладке «Переменные». Кликните на кнопке «Создать»


Process-editor User guide ru 31.png


Введите название переменной – since, в качестве формата выберите DateTimeFormat.


Process-editor User guide ru 32.png


Аналогично заведите все остальные переменные бизнес-процесса.


Process-editor User guide ru 33.png


Задание формулы для элемента «Исключающий выбор»

Описание формулы

В случае, если значение переменной staffPersonDecision (решение сотрудника) - «истина», точка управления должна перейти в узел-действие «Notify for acceptance» (ознакомиться с сообщением о согласии). В противном случае точка управления должна перейти в узел-действие «Notify for declining» (ознакомиться с сообщением об отклонении).


Создание формулы в редакторе RUNA GPD

Выберите закладку «Граф», кликните на узел исключающего выбора «Is accepted?». В свойствах узла выберите поле, находящееся на пересечении Класс-Value. Кликните на командную кнопку, появившуюся в правой части этого поля. Откроется форма выбора обработчика для решения:


Process-editor User guide ru 34.png


Выберите BSFDecisionHandler и нажмите OK. Название обработчика появится в свойствах узла.


Process-editor User guide ru 35.png


Правой кнопкой мыши кликните на элементе и выберите пункт «Изменить».


В появившейся форме для перехода accepted выберите переменную staffPersonDecision, установите операцию сравнения «равно» и значение «true». Для перехода rejected выберите переменную staffPersonDecision, установите операцию сравнения «не равно» и значение «true». Для «если ни одно из условий не выполнено» установите переход «rejected»:


Process-editor User guide ru 36.png


Кликните «OK». Формула для узла исключающего выбора задана.


Замечание. При желании можно посмотреть код формулы. Для этого в данной форме выберите закладку «Код BSH»:


Process-editor User guide ru 37.png


Создание графических форм

Описание форм RUNA WFE

Узлам-действиям, исполнителями заданий в которых являются сотрудники (не боты) должны быть поставлены в соответствие формы. Каждая форма записывается в отдельном файле. Формы задаются в виде HTML- тегов с одним дополнительным тегом: <customtag>. Этот тег используется для отображения специфических элементов и отображения значений переменных бизнес-процесса в формах.

У тега <customtag> есть следующие атрибуты:

  • var – имя переменной бизнес-процесса
  • delegation – имя Java класса, использующегося для работы с переменной


В процессе Overtime Work используются следующие классы:


Class Description
GroupMembersComboboxVarTag Показывает список членов группы. Имя группы должно совпадать с именем некоторой переменной бизнес-процесса (и соответственно пареметром «var» тега). Возвращает ID выбранного члена группы. В процессе Overtime Work используется группа (и, соответственно, переменная) “staff”.
DateTimeInputVarTag Создается поле для ввода даты-времени
ActorFullNameDisplayVarTag Показывает имя пользователя. Параметр «var» тега должен ссылаться на переменную, содержащую ID пользователя.
DateTimeValueDisplayVarTag Выводит значение переменной типа дата-время (показывается в режиме «только чтение»).
VariableValueDisplayVarTag Выводит значение переменной типа строка или число (показывается в режиме «только чтение»).

Создание графических форм при помощи конструктора форм

Кликните на стартовый узел «Offer an overtime work» графа бизнес-процесса правой кнопкой мыши и выберите команду «Форма» → «Создать форму» (левой кнопкой мыши):


Process-editor User guide ru 38.png


Выберите тип формы «html».

Появится окно редактирования, в котором форму можно задать в виде HTML, расширенном на тег <customtag> (см. предыдущий раздел).


Однако гораздо удобнее создавать форму в графическом режиме. Для этого кликните на вкладке дизайн. Появится следующий интерфейс:


Process-editor User guide ru 39.png


Введите текст «Offer an overtime work», на следующей строке введите «Employee *» и кликните на элемент Process-editor User guide ru 40.png. В появившейся форме в качестве названия элемента формы введите «staff», в качестве элемента формы выберите «Члены группы»:


Process-editor User guide ru 41.png


Кликните на «ОК». На форме появится элемент «ФИО СОТРУДНИКА»:


Process-editor User guide ru 42.png


Аналогичным образом создайте элементы для ввода других переменных бизнес-процесса:

  • since
  • till
  • reason
  • comment

Process-editor User guide ru 43.png


Замечание. Перейдя на вкладку «Код», можно увидеть страницу в виде HTML:


Process-editor User guide ru 44.png


Аналогично создаются остальные формы для остальных узлов-действий


  • Make a decision
  • Notify for declining
  • Notify for acceptance

Форма для узла «Make a decision»:


Process-editor User guide ru 45.png


Задание проверок значений, введенных в элементы форм

Элементы форм могут быть обязательными или не обязательными для ввода. Также могут быть правила, относящиеся к нескольким элементам форм. Например - «дата с» не может быть позже, чем «дата по». Кроме того, могут быть специфические для типов ограничения: для чисел – менше или больше какого-то числа, для строк – ограничение на длину строки и т.д.


Для задания проверки значения полей формы «Offer an overtime work» кликните на узле правой кнопкой мыши, в появившейся форме выберите «Переменные формы (валидация)»:


Process-editor User guide ru 46.png


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

Для выбранного поля в окне «Валидаторы» будут находиться доступные типы проверок поля. При клике на конкретную проверку в нижнем окне можно будет посмотреть и отредактировать параметры этой проверки:


Process-editor User guide ru 47.png


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


Если требуется установить проверки на совместные значения нескольких полей, после установки всех проверок на одно поле кликните «Next».

В появившейся форме при помощи «мастера» можно установить совместные проверки значений полей. Например, что Дата Till не должна быть позже даты since:


Process-editor User guide ru 48.png


Создание файла-архива бизнес-процесса и загрузка его в систему

Последовательность действий полностью повторяет последовательность, описанную для процесса разработки бизнес-процесса «HelloWorldProcess».


Замечание. Для выполнения процесса «Overtime Work» необходимо создать в Workflow системе группы пользователей:

  • manager
  • staff
  • all

завести конкретных пользователей этих групп и раздать соответствующие права (см. руководство пользователя системы Runa WFE).


Работа с ActionHandler

В системе Runa WFE есть возможность вызвать выполнение java-кода при наступлении определенных событий в бизнес-процессе, например, проход точки управления по определенному переходу. Java код должен быть реализован в методе execute() класса, реализующего интерфейс ActionHandler. Этот класс должен быть загружен в систему.

Для привязывания к переходу класса, реализующего интерфейс ActionHandler в редакторе бизнес-процесов надо проделать следующее:

1. Выделить переход (transition).

2. По правому клике мыши на нем «Обработчики» → «Создать»

3. В свойствах созданного действия выбрать класс соответствующий ActionHandler-класс и указать (если необходимо) конфигурацию


Process-editor User guide ru 49.png


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

Поместите .jar-файлы, содержащие соответствующие классы в подкаталог /plugins/org.jbpm.core_3.0.1/lib каталога, содержащего редактор бизнес-процессов.


Задание инициализаторов для ролей-дорожек.

Первый пример

В качестве примера задания инициализатора при создании новой роли рассмотрим создание роли «human resource inspector» для демо-процесса «Vacation».

На закладке «Роли» кликните «Создать». В появившейся форме введите «human resource inspector» в качестве названия роли-дорожки. Кликните «ОК».


Process-editor User guide ru 50.png


Кликните по роли, нажмите кнопку «Изменить». В появившемся окне на вкладке «Код» выберите инициализатор «функция ExecutorByName» и в качестве параметра введите имя группы, содержащей сотрудников – инспекторов кадровой службы.


Process-editor User guide ru 51.png


Кликните «ОК». Инициализатор новой роли при этом будет определен.


Второй пример

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


Рассмотрим создание роли «boss» (руководитель) для демо-процесса «Vacation».

На закладке «Роли» кликните «Создать». В появившейся форме введите «boss» в качестве названия роли-дорожки. Кликните «ОК».

Кликните по роли, нажмите кнопку «Изменить». В появившемся окне на вкладке «Код» выберите инициализатор DemoChiefFunction (руководитель сотрудника в случае демо-процессов). В качестве параметра введите строку «${requester}» - значение переменной requester.


Process-editor User guide ru 52.png


Кликните «ОК». Инициализатор новой роли при этом будет определен.

Замечание. Для задания в качестве параметра значения переменной надо ввести в окно ввода параметра выражение: ${имя_переменной}.


Замещение имен java-классов русскоязычными названиями.

В системе Runa WFE и редакторе процессов можно заменить англоязычные названия java-классов русскоязычными названиями. Для этого надо сделать следующее:

1. Загрузите java-классы в редактор:

Поместите .jar-файлы, содержащие соответствующие классы в подкаталог /plugins/org.jbpm.core_3.0.1/lib каталога, содержащего редактор бизнес-процессов. Запустите редактор бизнес-процессов.

2. Запустите редактор, откройте пункт меню Свойства/Мапинг:

Process-editor User guide ru 53.png


3. В появившейся форме кликните «Проверить новые jar'ы»

4. «Снимите» галочки у тех классов, которые не должны присутствовать в редакторе

5. Для замещения имени класса выделите строку и кликните «Редактировать»


Process-editor User guide ru 54.png


6. В появившейся форме введите название для класса и кликните «OK»


Process-editor User guide ru 55.png


7. Кликните «OK» на форме «Мапинг названий java классов»

  1. RUNA GPD генерирует .par-фалы - архивы. Каждый .par файл содержит определение бизнес-процесса на языке jPdl. Ссылка на документацию по jPdl: http://www.jboss.com/products/jbpm/docs/jPdl.
  2. Процесс состоит только из двух узлов: Start-state и Stop-state
  3. Замечание:Для того, чтобы загрузить определение бизнес-процесса в систему в вас должны быть права «Загружать определение процесса» (могут быть даны в меню система).
  4. Несмотря на то, что Staff является ролью-дорожкой, ее можно инициализировать как обычную переменную.