DesignerUserGuide

Материал из RunaWFE
Перейти к навигации Перейти к поиску

Среда разработки. Руководство пользователя

Версия 4.5.0

© 2015-2023, ООО "Процессные технологии"

Введение

Developer Studio – это "Среда разработки" для открытой системы управления бизнес-процессами RunaWFE. "Среда разработки" является частью открытого проекта RunaWFE, свободно распространяется под LGPL лицензией. "Среда разработки" может выполняться на различных платформах (Linux, Windows и т.д.).

Исходный код среды разработки можно свободно загрузить с https://github.com/processtech/runawfe-devstudio Специализированные дистрибутивы, а также варианты в виде исполнимых файлов java-машины можно загрузить с https://sourceforge.net/projects/runawfe/

В настоящем документе описывается как разрабатывать бизнес-процессы в Среде разработки.

Установка и запуск

Среда разработки распространяется как часть системы RunaWFE в следующих вариантах:

  1. В виде специализированных дистрибутивов для конкретных операционных систем
  2. В виде исполнимых файлов java-машины.
  3. В исходных кодах.

Подробно процесс установки и запуска описан в руководстве администратора.

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

  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

Процесс состоит только из двух узлов: Start-state и Stop-state

Сценарий

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

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

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


Process-editor User guide ru 5.png


Введите HelloWorldProcess в качестве имени процесса. В качестве языка доступны JPDL и BPMN, выберем JPDL.


Файл:Gpd guide ru 1.png

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


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


Файл:Gpd guide ru 2.png


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


Файл:Gpd guide ru 3.png


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

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

Роли в стартовом узле

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

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

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

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


Файл:Gpd guide ru 4 1.png


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


Process-editor User guide ru 10.png


Кликните на ОК. На символы в именах ролей и переменных существуют ограничения (см. ограничения на имена переменных и ролей в конце документа.)


Process-editor User guide ru 11.png


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


Файл:Gpd guide ru 4.png


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

Файл:Gpd guide ru 5.png

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

Формы

Узлам-действиям, исполнителями заданий в которых являются сотрудники (не боты), должны быть поставлены в соответствие формы. Начиная с версии среды разработки 4.0, можно создавать формы только вида HTML-страницы с расширением в виде freemarker тегов (FTL - тегов).

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

Описание FreeMarker можно найти, например, по данной ссылке - http://ru.wikipedia.org/wiki/FreeMarker

HTML-cтраницы с расширением в виде дополнительного тега: <customtag> поддерживаются для обратной совместимости бизнес-процессов, новые формы данного типа создавать нельзя.

При попытке создания такой формы будет выдано сообщение об ошибке:

Gpd guide ru 6.png

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

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

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

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


Файл:Gpd guide ru 7.png


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

Gpd guide ru 8.png


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


Файл:Gpd guide ru 16.png


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


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


Gpd guide ru 17.png


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


Gpd guide ru 18.png


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

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

Выберите HelloWorldProcess, выполните команду Файл/Экспорт чтобы создать файл .par с архивом процесса.


Gpd guide ru 19.png


Экспорт возможно выполнить как в файл, так и непосредственно на сервер WFE. В данном случае выполним экспорт в файл, второй вариант будет рассмотрен в дальнейших разделах этого документа.

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


Gpd guide ru 20.png


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

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

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

Войдите в меню «Запустить процесс».


Gpd guide ru 21.png


Кликните на ссылку «Загрузить определение процесса»

Замечание:Для того, чтобы загрузить определение бизнес-процесса в систему в вас должны быть права «Загружать определение процесса» (могут быть даны в меню система).

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


Gpd guide ru 22.png


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


Gpd guide ru 23.png

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

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


Gpd guide ru 24.png


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


Gpd guide ru 25.png


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


Gpd guide ru 26.png

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

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

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


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


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

Создайте новый проект, затем кликните левой кнопкой мыши на команду «Новый процесс». Введите в появившемся диалоге “Overtime Work” в качестве имени процесса. Данный демо-процесс разработаем с использованием языка BPMN, для этого необходимо в поле язык выбрать bpmn. Показывать роли на графе – Нет (отображение роли на графе будет рассмотрено в последующих разделах данного документа).

DevOvertimeWork ru 1.png

Сделайте двойной клик на появившейся строке «Overtime Work». Появится окно диаграммы бизнес-процесса. Выбирая элементы палитры, расположенной справа, нарисуйте следующий граф бизнес-процесса:


DevOvertimeWork ru 2.png


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

Для переходов, выходящих из узла «Make a decision» в их свойствах задайте явные имена «accepted» и «rejected».

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

Роли в узлах-действиях

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

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

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

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


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

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

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

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

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


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

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

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


DevOvertimeWork ru 3.png


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


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


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


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


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


DevOvertimeWork ru 4.png


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

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

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

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


Переменная Тип Описание
since Дата-время Дата-время начала сверхурочных
till Дата-время Дата-время окончания сверхурочных
reason Строка Причина
comment Текст Комментарий
staff_person_comment Текст Комментарий сотрудника

Переменные

  • since
  • till
  • reason
  • comment

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

Переменные

  • staff_person_comment

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

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

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


DevOvertimeWork ru 5.png


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

DevOvertimeWork ru 6.png

DevOvertimeWork ru 6 2.png


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

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

Описание форм RunaWFE

Узлам-действиям, исполнителями заданий в которых являются сотрудники (не боты) должны быть поставлены в соответствие формы. Каждая форма записывается в отдельном файле. Можно использовать формы вида HTML-cтраницы с расширением в виде FreeMarker тегов (или FTL-тегов). Новые HTML-cтраницы с расширением в виде дополнительного тега <customtag> начиная с версии "Среды разработки" 4.0 создавать нельзя.

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

Описание FreeMarker можно найти, например, по данной ссылке - http://ru.wikipedia.org/wiki/FreeMarker

В процессе Overtime Work используются HTML страницы с расширением в виде FreeMarker тегов (FTL).

В процессе Overtime Work используются следующие теги:
Freemarker тег Description
Выбор из членов группы, GroupMembers Показывает список членов группы. Имя группы может быть задано как с помощью переменной бизнес-процесса, так и в виде значения. Также задаётся роль, в которую будет возвращен ID выбранного члена группы. В процессе Overtime Work используется группа “staff”, заданная в виде значения. Результат выполнения возвращается в роль “staffrole”.
Ввод переменной, InputVariable Создается поле для ввода значения переменной на основе ее типа
Вывод переменной, DisplayVariable Выводит значение переменной (показывается в режиме «только чтение»).

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

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


DevOvertimeWork ru 7.png


В появившимся выпадающем списке выберите тип формы «HTML форма + freemarker теги»:

DevOvertimeWork ru 8.png


Появится следующий интерфейс:


DevOvertimeWork ru 9.png


Задайте разметку страницы на вкладке “Код”


DevOvertimeWork ru 10.png


Для добавления стилей формы, необходимо кликнуть на “пустой” области разрабатываемого процесса, и вызвать “CSS для форм”.


DevOvertimeWork ru 11.png


В появившемся окне будет открыт для редактирования файл form.css, задайте необходимые стили, например:


DevOvertimeWork ru 12.png


div.form-container {
    margin: 0px;
    padding: 10px;
    border: #888 1px solid;
    font: 100% Arial,Helvetica,sans-serif;
    color: #111;
    background-color: #f3f3f3;
}
p.legend {
    margin-bottom: 1em;
    margin-left: 10%;
    text-align: left;
    font-size: 1.2em;
}
div.form-container {
    margin: 0;
}
div.form-container fieldset {
    margin: 10px 0;
    padding: 10px;
}
div.form-container legend {
    color: #666;
}
div.form-container fieldset div {
    padding: 0.25em 0;
}
div.form-container label {
    margin-right: 10px;
    padding-right: 10px;
    width: 150px;
    display: block;
    float: left;
    text-align: right;
    position: relative;
}
div.form-container label em {
    position: absolute; right: 0;
    font-size: 120%;
    font-style: normal; color: #C00;
}
div.form-container input:focus, div.form-container textarea:focus {
    background-color: #FFC;
    border-color: #FC6;
}
div.form-container input {
    width: 300px;
    padding-left: 5px;
}
div.form-container select {
    width: 300px;
}
div.form-container textarea {
    width: 300px;
    height: 100px;
    padding: 5px;
    overflow: auto;
}
.readOnlyText {
    background-color: #f3f3f3;
}
div.form-container div.controlset label, div.form-container div.controlset input {
    display: inline;
    float: none;
    width: auto;
}
div.form-container div.controlset {
    margin-left: 170px;
}


Далее на странице вкладки “Дизайн” введите текст «Offer an overtime work»,


DevOvertimeWork ru 13.png


на следующей строке введите «Employee *» и кликните на элемент DemoOvertimeWork F.png. В появившейся форме в качестве тега выберете "Выбор из членов группы", в поле Актор вводим Роль staffrole, а группу задаем в виде значения staff (название группы):


DevOvertimeWork ru 14.png


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


DevOvertimeWork ru 15.png


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

  • since
  • till
  • reason
  • comment

DevOvertimeWork ru 16 1.png


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


DevOvertimeWork ru 17 2.png


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


  • Make a decision
  • Notify of rejection
  • Notify of acceptance


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


DevOvertimeWork ru 18 1.png


Форма для узла «Notify of rejection»:


DevOvertimeWork ru 19 1.png


Форма для узла «Notify of acceptance»:


DevOvertimeWork ru 20 1.png

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

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


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


DevOvertimeWork ru 21.png


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

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


DevOvertimeWork ru 22.png


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


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

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


DevOvertimeWork ru 23.png


Замечание. Если в правилах валидации (проверки формы) найдены ошибки - то процесс не экспортируеся. Если в правилах валидации есть только замечания – то процесс экспортируется.


Типы ошибок при работе с формами:

  • отсутствие файла валидации при наличии формы - error
  • отсутствие переменной формы в переменных процесса - error
  • отсутствие переменной формы в файле валидации - warning

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

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


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

  • manager
  • staff
  • all

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

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

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

Сотрудник подает заявку на отпуск. Непосредственный руководитель сотрудника подтверждает или отклоняет заявку. В случае если заявка отклонена - сотрудник получает об этом уведомление. Если же заявка подтверждена, то далее формируется задание в кадровую службу, где сотрудник данной службы проводит проверку правил и технологий. По результатам проверки – заявка либо снова направляется на рассмотрение руководителю, либо если выполнены все правила и технологии – бизнес-процесс переходит к оформлению официального заявления и подписанию приказа. Сотрудник получает задание «представить в отдел кадров заявление на отпуск» одновременно работнику отдела кадров направляется задание «получить подписанное заявление на отпуск», после завершения этого задания работник отдела кадров получает задание «подготовить и подписать приказ». После выполнения всех этих заданий бизнес-процесс завершается.

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

Создайте новый проект, затем кликните левой кнопкой мыши на команду «Новый процесс». Введите в появившемся диалоге “Vacation” в качестве имени процесса. Данный демо-процесс будем разрабатывать с использованием языка BPMN, для этого в поле язык необходимо выбрать bpmn.

DevVacation ru 1.png

Сделайте двойной клик на появившейся строке «Vacation». Появится окно диаграммы бизнес-процесса. Выбирая элементы палитры, нарисуйте следующий граф бизнес-процесса:

DevVacation ru 2.png

Используйте элементы: исключающие шлюзы, узлы действия, параллельные шлюзы, начало и окончание.

Для задания подписи элемента отличной от подписи по-умолчанию, выделите элемент кликнув на него,и измените название доступное в свойствах элемента. Для переходов, выходящих из исключающих шлюзов, задайте имена «approved»/«rejected» и «not correct»/«correct»

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

Задание ролей для процесса «Vacation»

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

  • requester
  • boss
  • human resource inspector


Описание ролей:
Роль Описание
requester Сотрудник подающий заявку на отпуск
boss Непосредственный руководитель сотрудника запустившего процесс
human resource inspector Один из сотрудников отдела кадров (группа human resource), который проводит проверку правил и технологий заявки, а также подготавливает и подписывает приказ


Связь узлов графа бизнес-процесса и ролей:
Узел Роль
Request for a vacation (подать заявку на отпуск) requester
Evaluate a request (принять решение по заявке) boss
Notify of rejection (ознакомиться с сообщением об отклонении) requester
Check rules and technologies (проверка правил и технологий) human resource inspector
Submit a hardcopy request (представить в отдел кадров заявление на отпуск) requester
Receive a hardcopy request (получить подписанное заявление на отпуск) human resource inspector
Make an official order (подготовить и подписать приказ) human resource inspector


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

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

DevVacation ru 3.png

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

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

Далее добавляем роль boss, для которой необходимо использовать инициализатор. Используем функцию над оргструктурой DemoChiefFunction – “Руководитель (демо)”, пользователь – requester.

DevVacation ru 4.png

Аналогично создаем роль human_resource_inspector. В качестве инициализатора задаём функцию ExecutorByNameFunction - “Исполнитель по имени”. Параметр “Имя группы или пользователя” – “human resource”.

DevVacation ru 5.png


DevVacation ru 6.png

Откройте снова вкладку «Граф», выберите стартовый узел-действие “Request for a vacation”. В свойствах кликните на правую часть поля Роль/Value. В появившемся списке выберите “requester”. Аналогично задайте роли во всех остальных узлах-действиях.

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

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

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


Переменная Тип Описание
since Дата Дата начала отпуска
till Дата Дата окончания отпуска
reason Строка Причина
comment Текст Комментарий
boss_comment Текст Комментарий руководителя
bossDecision Boolean Решение руководителя
human_resource_inspector_comment Текст Комментарий сотрудника отделов кадра
humanResourceInspectorCheckResult Boolean Результат проверки заявки сотрудником отдела кадров
official_order_number Строка Номер приказа
official_order_date Дата Дата приказа

Переменные

  • since
  • till
  • reason
  • comment

должны быть проинициализированы значениями в стартовом узле-действии “ Request for a vacation”.

Переменные

  • boss_comment
  • bossDecision

должны быть проинициализированы значениями в узле “ Evaluate a request ”

Переменные

  • human_resource_inspector_comment
  • humanResourceInspectorCheckResult

должны быть проинициализированы в узле “ Check rules and technologies”

Переменные

  • official_order_number
  • official_order_date

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

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

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

DevVacation ru 7.png

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

DevVacation ru 8 1.png

DevVacation ru 8 2.png

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

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

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

В данном процессе используются Исключающие шлюзы “Is approved?” и “ Is correct?”, для которых необходимо составить формулы.

Шлюз “Is approved?”: В случае, если значение переменной bossDecision (решение Руководителя) - «истина», точка управления должна перейти в узел-действие «Check rules and technologies» (проверка правил и технологии). В противном случае точка управления должна перейти в узел-действие «Notify of rejection» (ознакомиться с сообщением об отклонении).

Шлюз “ Is correct?”: В случае, если значение переменной humanResourceInspectorCheckResult (результат проверки на корректность) - «истина», точка управления должна перейти в параллельный шлюз (одновременное разделение на задания “ Submit a hardcopy request” и “ Receive a hardcopy request”). В противном случае точка управления должна перейти в узел-действие «Evaluate a request».

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

Выберите закладку «Граф», кликните на узел «Is approved?» правой клавишей мыши, и выберите пункт “Изменить”.

В появившейся форме для перехода rejected выберите переменную bossDecision, установите операцию сравнения «равно» и значение «false». В поле “Путь по умолчанию” выберите approved:

DevVacation ru 9.png

Кликните «OK».

Замечание. На вкладке Скрипт можно посмотреть полученный код формулы, при этом он доступен для редактирования.

DevVacation ru 10.png

Аналогичным образом создаётся формула для исключающего шлюза “Is correct?”

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

Описание форм RunaWFE

В процессе Vacation используются HTML страницы с расширением в виде FreeMarker тегов (FTL).

Теги:
Freemarker тег Description
Ввод переменной, InputVariable Создается поле для ввода даты-времени
Отобразить переменную, DisplayVariable Выводит значение переменной типа строка или число (показывается в режиме «только чтение»).

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

Кликните на стартовый узел «Request for a vacation» графа бизнес-процесса правой кнопкой мыши и выберите команду «Форма» > «Создать форму» (левой кнопкой мыши):

DevVacation ru 11.png

В появившимся выпадающем списке выберите тип формы «HTML форма + freemarker теги»:

DevVacation ru 12.png

Задайте разметку страницы на вкладке “Код”

DevVacation ru 13 1.png

Замечание: здесь также используется form.css, процесс подключения которого был рассмотрен ранее, в пункте разработки графических форм для процесса Overtime Work.

Далее на странице вкладки “Дизайн” введите текст «Request for a vacation», на следующей строке введите «since *» и кликните на элемент “Freemarker тег”. В появившейся форме в качестве тега выберете "Ввод переменной", в поле Название переменной выбираем since:

DevVacation ru 14.png

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

  • till
  • reason
  • comment

DevVacation ru 15 1.png

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

Vacation create ru pic14 1.png

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

  • Evaluate a request

DevVacation ru 16 1.png

Замечание: На форме выше, для выбора решения, используется элемент RadioButton

  • Check rules and technologies

DevVacation ru 17 1.png

  • Notify of rejection

DevVacation ru 18 1.png

  • Submit a hardcopy request

DevVacation ru 19 1.png

  • Receive a hardcopy request

DevVacation ru 20 1.png

  • Make an official order

DevVacation ru 21 1.png

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

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

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

DevVacation ru 22.png

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

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

DevVacation ru 23.png

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

Для загрузки процесса непосредственно на сервер можно воспользоваться функцией “Экспорт архива процесса” с установленной опцией “Экспорт на WFE сервер”:

DemoVacation create ru pic17.png

При этом необходимо настроить соединение, для этого выберите “Настройка соединения”, и введите параметры необходимые для подключения к серверу. После ввода, необходимо убедиться в успешности установки, для этого нажмите кнопку "Проверить соединение"

DemoVacation create ru pic17 1.png

Если все параметры подключения введены правильно, то можно приступить непосредственно к экспорту, для этого нажмите кнопку “Готово”, процесс будет загружен на сервер, при этом отпадает необходимость первоначального сохранения процесса в файл.

Создание процесса с подпроцессом

Для иллюстрации механизма работы подпроцессов созданы MainProcess и SubProcess.

Графы процессов (MainProcess слева, SubProcess справа):

DevSub ru 1.png


На графе основного процесса присутствует узел “process-state”, отмеченный специальным символом в нижнем углу элемента. Это отображения узла-подпроцесса. Для создания такого узла на графе используйте элемент «подпроцесс».

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

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

Один и тот же процесс может выступать подпроцессом в нескольких разных родительских процессах.

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

Для настройки передачи переменных необходимо с помощью правой клавиши мыши вызвать меню на узле подпроцесса и выбрать пункт «подпроцесс». Откроется диалог настройки подпроцесса:


DevSub ru 2.png


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

В качестве передаваемых параметров могут как переменные так роли.

Если выбрано использование для чтения (read), то значение переменной родительского процесса будет записано в переменную подпроцесса.

Если выбрано запись (write), то после завершения подпроцесса значение из переменной подпроцесса будет записано в переменную родительского процесса.

# Создание процесса с мультиподпроцессом

Демо-процесс MainMultiProcess и его подпроцесс SubMultiProcess созданы для иллюстрации работы с мультиподпроцессом. Графы процессов (MainMultiProcess слева, SubMultiProcess справа):

DevMultiSub ru1.png

Когда процесс MainMultiProcess доходит до узла мультиподпроцесс, то запускается несколько подпроцессов SubMultiProcess. Количество запускаемых подпроцессов определяется динамически.

Для настройки связи между родительским процессом MainMultiProcess и подпроцессом SubMultiProcess необходимо выбрать пункт контекстного меню “Подпроцесс” вызываемого на узле мультиподпроцесс, при этом в поле “Название подпроцесса” необходимо записать имя используемого подпроцеса:


DevMultiSub ru2.png

При этом отобразится окно конфигурации:

DevMultiSub ru3.png

Сначала необходимо выбрать тип мультидействия:

  • по переменной массиву;
  • по группе;
  • по отношению;

Каждому из перечисленных вариантов соответствует одна из представленных вкладок. Далее заполняется список соответствий переменных, для этого необходимо нажать кнопку “Добавить”, и выбрать переменные процесса и подпроцесса для связи:

Multi ru4.png

Тут же настраивается “Использование” переменных:

  • чтение;
  • запись;

Если при настройке выбран тип использования «запись», то после завершения подпроцессов значения соответствующих переменных будут записаны в массив переменной мультидействия. Добавленные соответствия переменных отображаются в списке в виде таблицы. Для управления соответствиями используются кнопки “Добавить”, “Редактировать”, “Удалить”

# Выбор типа мультиподпроцесса

Multi ru5.png

Установим выбранный тип мультидействия, для этого нажимаем кнопку “Установить тип мультидействия”

# Мультиподпроцесс по переменной списка

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


Например для демо процесса MainMultiProcess:

addressArray - переменная мультидействия, в подпроцессе ей соответсвует address. При запуске подпроцессов в узле «start suborder routine» будет запущено столько процессов, сколько адресов в массиве addressArray. В каждом процессе будет свое значение переменной address. Переменная operator будет продублирована для каждого созданного экземпляра подпроцесса.


Замечание: для перехода к свойствам экземпляра подпроцесса необходимо кликнуть на квадратике с цифрой на графе экземпляра родительского процесса. Количество квадратиков совпадает с количеством подпроцессов.

DevMultiSub ru4.png

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

# Мультиподпроцесс по группе

Если необходимо, чтобы в момент прихода управления в элемент-"мультиподпроцесс" для каждого пользователя - члена группы создался и запустился свой экземпляр подпроцесса, то используется мультиподпроцесс по группе. Для этого на вкладке "по группе" нужно задать имя группы. Можно использовать как константу, так и переменную (формата Строка или Группа), в которой во время выполнения бизнес-процесса будет содержаться имя группы. Данный параметр необходимо связать с переменной в подпроцессе.

Также возможно добавить в список соответствий и другие переменные передаваемые в подпроцесс. В случае использования переменной формата "Список", используется следующее правило: если количество элементов списка не будет совпадать с полученным количеством экземпляров подпроцессов, то в данном случае либо будут не использованы лишние элементы, либо переменные подпроцесса, на которые не хватило элементов не будут проинициализированными.

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

Рассмотрим пример мультиподпроцесса по группе:

Создаём бизнесс-процесс MuliOnGroup следующего вида (в данном случае используем язык BPMN):

DevMultiSub ru5.png

Создаем Роль - "requester", без инициализатора (будет проинициализирована исполнителем запустившим процесс)

Переменные:

DevMultiSub ru6 1.png

  • Str – строковая переменная
  • Arr - список(строка)
  • Group – переменная формата Группа


В узле действии "input data" создаем форму следующего вида:

DevMultiSub ru7 1.png

Используем теги "Ввод переменной", для переменных Str, Arr, Group

DevMultiSub ru8.png

Переходим к созданию подпроцесса MultiOnGroupSub:

DevMultiSub ru9.png

Создаем Роль - "operator", без инициализатора

Строковые переменные:

DevMultiSub ru10.png

  • Msg - сообщение переданное из основного процесса
  • Return - содержит значение переданного элемента списка (Arr) из основного процесса, доступна для редактирования на форме в подпроцессе (по окончании работы экземпляра подпроцесса, значение данной переменной будет скопировано в передаваемый из основного процесса элемент списка)

Создаём форму подпроцесса, на которой выводим значение переменной Msg, а также добавляем тег Ввод переменной для Return

DevMultiSub ru11 1.png

DevMultiSub ru12.png

Возвращаемся к основному процессу.

Выделяем узел мультиподпроцесса, вызываем пункт контекстного меню “Подпроцесс”. В качестве подпроцесса выбираем MultiOnGroupSub. Далее устанавливаем тип мультидействия - "По группе" и настраиваем соответствие переменных:

DevMultiSub ru13.png

Используется группа (переменная Group), передаётся строковый параметр Str и список Arr. При этом предполагается возврат значений из экземпляров подпроцессов в соответствующих элементах массива Arr, для этого выбрано “использование” типа "запись".

Для проверки правильности разработки такого процесса, выполним его.

Ход выполнения данного бизнесс-процесса:

-исполнитель, запустивший основной процесс, вводит значения параметров для передачи в подпроцессы (сообщение, а также список)

-выбирает группу пользователей

DevMultiSub ru14.png

-для каждого исполнителя из выбранной группы создаётся экземпляр подпроцесса, в который передаётся параметр строка и соответствующий элемент списка;

DevMultiSub ru15.png

-в подпроцессе на форме отображаются переданные параметры;

-каждый исполнитель редактирует текстовую область, тем самым изменяет значение переменной Return;

DevMultiSub ru16.png

-все изменения переписываются в соответствующие элементы списка Arr и возвращаются в основной процесс;

DevMultiSub ru17.png

# Мультиподпроцесс по отношению

При инициализации по отношению создается столько экземпляров подпроцесса сколько элементов в левой части отношения с заданными параметрами. Параметрами отношения являются название отношения и его правая часть. Можно задавать как переменные, содержащие необходимые значения, так и константы.

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

Рассмотрим применение мультиподпроцесса по отношению.

Cоздадим бизнесс-процесс MultiOnRelation на основе процесса рассмотренного в предыдущем примере (MultiOnGroup), отредактируем его следующим образом:

В конфигурации мультиподпроцесса выбираем вкладку "по отношению", в поле “Название отношения” вводим константу “Boss”, в поле “Параметр отношения” выбираем переменную Group, имя переменной в подпроцессе - operator. Эта переменная будет содержать одно из значений левой части отношения, свое для каждого подпроцесса.

DevMultiSub ru19.png

В качестве параметров передаются те же переменные, что и в предыдущем примере.

Для проверки правильности разработки такого процесса, экспортируем и выполним его.

Для начала добавим в отношение Boss следующие пары:

DevMultiSub ru18.png

Т.е. пользователи attila и cleopatra являются руководителями пользователей входящих в группу “all”

Запускаем процесс, в форме узла "input data" вводим передаваемые в подпроцесс параметры, в выпадающем списке выбираем группу "all"

DevMultiSub ru20.png

Т.к. множество пользователей удовлетворяющих параметрам отношения будет равно 2, то и список формируем из 2-х элементов. Выполняем задание.

DevMultiSub ru21.png


Как видно было создано 2 экземпляра подпроцесса, что соответствует выбранным параметрам по отношению. Выполним задания подпроцессов под пользователями attila и cleopatra, при этом отредактируем параметр Return. После завершения выполнения проверим возврат параметров в основной процесс:

DevMultiSub ru22.png

Как видно, отредактированные параметры вернулись в соответствующих элементах списка Arr.

# Создание процесса с мультидействием

Мультидействие – специальный вид дополнительного узла.

DevMultiTask r1 1.png

Аналогичен "Действию", однако в отличие от "Действия" порождает сразу несколько задач.

Если выбран режим "Все задания должны быть выполнены", то управление переходит к следующему узлу по исходящему переходу только после того как все задания "Мультидействия" выполнены. Также можно выбрать режим "Отменить остальные задания после выполнения первого".

DevMultiTask r1 2.png

Выбор режима доступен в контекстном меню вызванном на элементе.

Задания в зависимости от параметров могут быть назначены одному или нескольким исполнителям. Окно настроек множественных экземпляров вызывается из контекстного меню вызванного на элементе.

DevMultiTask r1 3.png

# Множественные экземпляры определенные по переменной

Множественные экземпляры мультидействия могут быть определены по переменной типа "Список", при этом доступны два варианта назначения задач:

  • одному исполнителю

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

Также есть возможность задать условие (используется синтаксис groovy) создания задачи.

DevMultiTask r1 5.png

В условии можно использовать индекс (index) или значение (item) элемента списка.


Например, на рисунке выше используем условие index<3 т.е. будут созданы задачи по элементам списка, индекс которых в списке (переменная "Список") не превышает 3-х. Выбран режим назначения задач одному исполнителю роли "Роль2"

DevMultiTask r1 6.png

Или пример, с условием создания задач item!=3 т.е. будут созданы задачи по элементам списка, значение которых не равно 3-м

DevMultiTask r1 7.png


  • исполнителям из выбранного списка, в этом случае переменная должна быть типа Список(Исполнитель), задачи создаются безусловно

DevMultiTask r1 4.png

Например,

DevMultiTask r1 8.png

# Множественные экземпляры определенные по группе

Необходимо выбрать переменную содержащую группу или ее название (допускается выбор переменных типа Исполнитель, Группа, Строка, Роль). Также название можно задать вручную.

DevMultiTask r1 9.png

Задачи создаются безусловно и будут назначены всем членам группы.

DevMultiTask r1 10.png


# Множественные экземпляры определенные по отношению

По умолчанию в мультидействии по отношению выбирается обратное отношение, т.е. создается столько экземпляров действия сколько элементов в правой части отношения с заданными параметрами. Параметрами отношения являются название отношения и его левая часть. Но также можно и использовать и не обратное отношение, для этого потребуется снять галочку с опции "Обратное отношение".

В качестве параметра отношения можно использовать переменную формата Группа, Пользователь, Исполнитель, а также Строка (переменная в этом случае должна содержать имя исполнителя)

DevMultiTask r1 11.png


Например, запустим мультидействие по обратному отношению "Преподаватель", с параметром "Исполнитель", проинициализированным исполнителем "Бабочкин"

DevMultiTask r1 12.png

DevMultiTask r1 13.png

# Сопоставление переменных

В разделе "Сопоставление переменных процесса и подпроцесса" можно определить название передаваемого в экземпляр мультидействия элемента массива. Под этим названием переменная может быть использована на файлах формы.

Например, элемент списка переменной "Список" сопоставлен переменной "Элемент списка"

DevMultiTask r1 14.png

который используется на форме в компоненте "Ввод переменной"

DevMultiTask r1 15.png

запущено два экземпляра мультидействия

DevMultiTask r1 16.png

Задание получили Мотыльков и Мухин.

Формы заданий с соответствующими переменными

DevMultiTask r1 17.png

DevMultiTask r1 18.png

Введенные значения переменных автоматически будут записаны в соответствующий элемент массива переменной "Список".

# Генерация текстовых регламентов 4.1.2+

Регламент - это один из способов описания бизнес-процесса в виде официального документа.


Для автоматической генерации текстового регламента вызовите контекстное меню и выберите действие "Create process regulation".

Замечание. Данный пункт доступен только в случае если процесс не содержит ошибок.

Regulation menu.png


Будет открыта новая вкладка, содержащая текстовое описание графа следующей структуры:

  • Название бизнес-процесса
  • Краткое описание бизнес-процесса (присутствует в документе только, если краткое описание заполнено)
  • Подробное описание бизнес-процесса (присутствует в документе только, если подробное описание заполнено)


Regulation descr1.png


  • Список ролей бизнес-процесса
  • Список переменных бизнес-процесса


Regulation descr2.png


  • Описание действий бизнес-процесса, выводятся в порядке в котором они были добавлены на диаграмму (за исключением элементов Начало и Окончание)


Regulation descr3.png

Работа с обработчиками (ActionHandler)

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


Для использования обработчиков в процессе на языке JPDL, в среде разработки необходимо выполнить следующее:

1.Убедиться, что в меню «Свойства» выбрана опция «Показать обработчики», при этом в палитре будет присутствовать элемент “обработчик”

2.Выбрать «обработчик» в палитре.

3. Поместить элемент на граф. При этом имеется возможность располагать обработчик как на переходах, так и непосредственно в узлах.

Наведите стрелку на нужный переход или узел и нажмите левую кнопку мышки. Появится иконка в виде кружка, отображающая обработчик.

GpdActionHandler ru1.png

4.Выбрать в палитре элемент Select. Кликнуть на созданный обработчик и перейти в его свойства, где выбрать соответствующий ActionHandler-класс.

5. Далее необходимо задать конфигурацию обработчика, в соответствующем свойстве данного элемента. Кроме этого, в случае если обработчик был добавлен в узел, а не на переход, то имеется возможность выбрать событие по которому будет срабатывать ActionHandler. Для этого имеется свойство “Событие”. Можно выбрать один из вариантов:

  • При создании задачи
  • При запуске задачи
  • При назначении задачи
  • При окончании задачи

GpdActionHandler ru2.PNG

В случае использования процесса на языке BPMN, в палитре имеется элемент “Задача сценария”

GpdActionHandler ru3.PNG

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


См. подробное описание обработчиков.

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

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

В качестве примера задания инициализатора при создании новой роли рассмотрим создание роли «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-классов русскоязычными названиями.

В "Среде разработки" можно заменить англоязычные названия 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


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

Замечание 1. Файлы, в которых хранится структура замещения, находятся в папке:

${RunaGPD}\workspace\.metadata\.plugins\org.jbpm.ui, рядом с dialog_settings.xml


Замечание 2. Файлы, из которых выбираются классы, находятся в папке:

${RunaGPD}\plugins\org.jbpm.core_3.0.1\lib

Выбор языка графа процесса, отображение роли на графе в случае BPMN

При создании нового процесса, предлагается выбрать язык: JPDL или BPMN.

Gpd guide ru 9.png


В случае выбора JPDL, роль будет отображаться в элементах графа, в случае же выбора BPMN, будет предоставлен выбор варианта отображения Роли:


Gpd guide ru 10.png


Если выбрать “Нет”, то роль будет отображаться непосредственно в элементах графа, т.е. также как и в JPDL:

Gpd guide ru 11.png


Для выбора роли можно воспользоваться как контекстным меню вызванным на графическом элементе, так и полем Роль в свойствах процесса.

Также имеется возможность отображения Роли на графе процесса, для этого предоставляется варианты “По горизонтали” и “По вертикали”. В этом случае нет необходимости создавать роль в ручную. Необходимо лишь расположить графический элемент Роль на графе, при этом Роль будет создана автоматически. Будет отображена либо вертикальная либо горизонтальная область, в зависимости от выбранного на этапе создания процесса, варианта.


Gpd guide ru 12.png


Gpd guide ru 13.png


В данных областях необходимо располагать графические элементы процесса, при этом Роль будет выбрана автоматически.


Gpd guide ru 14.png


Gpd guide ru 15.png


Начиная с версии 4.0, изменить нотацию созданного процесса уже нельзя.

Проблемы при работе со Средой разработки

Редактор форм представляет собой встроенный браузер (IE для Windows), активно использующий JavaScript.

В Windows

Рекурсивное появление диалоговых окон с сообщением об ошибке

Решается путем отключения отладки JavaScript в свойствах обозревателя IE.

Панель инструментов скрыта (пустое окно в режиме Дизайн)

Это связано с настройками безопасности обозревателя IE.

Нужно запустить "Среду разработки", открыть форму, затем запустить IE и перейти по адресу http://localhost:48780/fckeditor.html (в случае CKEditor 3: http://localhost:48780/ckeditor.html). Содержимое страницы должно быть идентично. Теперь необходимо изменить настройки обозревателя IE так, чтобы страница грузилась корректно. Причин может быть несколько (отключен JavaScript, не разрешено исполнение JavaScript в данной зоне и т.п.). После этого редактор форм должен заработать и в Среде разработки.


В Linux

Некоторые ответы есть на форуме:

BP Editor on Ubuntu 8.10

GPD HTML visual editor on Linux

Html form designer not loaded in Linux

# Соединение с WFE-сервером

Из Среды разработки можно выполнить некоторые операции:

  • импорт и экспорт процессов
  • импорт и экспорт ботов
  • импорт пользователей и групп для использования в инициализаторе роли
  • импорт отношений для использования в инициализаторе роли

Для всех операций используется единая настройка соединения с сервером (Настройки -> Интеграция -> RunaWFE сервер).

В зависимости от типа коннектора значения настроек немного отличаются.

Jboss4 по протоколу RMI (Соединяется с сервером RunaWFE, развернутом на сервере приложений Jboss4) Jboss4 используя веб сервисы (Соединяется с сервером RunaWFE, развернутом на сервере приложений Jboss4) Jboss7 используя веб сервисы (Соединяется с сервером RunaWFE, развернутом на сервере приложений Jboss7) Wildfly используя веб сервисы (Соединяется с сервером RunaWFE, развернутом на сервере приложений Wildfly)
Имя компьютера IP адрес или название компьютера
Порт порт RMI (по умолчанию настроен 10099) порт HTTP (по умолчанию настроен 8080)
Версия сервера не используется используется для формирования WSDL URL
Режим аутентификации
Логин
Пароль

Замечание. WSDL URL для Jboss4 используя веб сервисы: http://Имя компьютера:Порт/runawfe-wfe-service-Версия сервера/НазваниеСлужбыServiceBean?wsdl

Замечание. WSDL URL для Jboss7, Wildfly используя веб сервисы: http://Имя компьютера:Порт/wfe-service-Версия сервера/НазваниеСлужбыWebService/НазваниеСлужбыAPI?wsdl