Модифицировать элемент для OpenSource BPMS-системы

Андрей17 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
04.10.2011

Задача:

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

Описание:

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

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

Надо добавить возможность в редакторе бизнес-процессов в свойствах элемента-"мультидействие" указать группу или отношение с параметром.

Случай группы:

Имя группы надо будет указать (в левой части строки mapping'а параметров - "Имя переменной в процессе") как константу, или как имя переменной, в которой во время выполнения бизнес-процесса будет содержаться имя группы. В правой части строки mapping'а параметров - "имя переменной в подпроцессе" надо будет указать имя переменной в подпроцессе, в которую будет передано значение кода соответствующего члена группы.

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

Замечание1. Технически проще всего будет в момент прихода управления в узел действие создать для группы временный массив строк, заполнить его членами группы и далее использовать уже существующий код. Потом (по завершению мультидействия) этот временный массив можно удалить.

Замечание2. Можно попробовать для задания группы в мультидействии использовать уже существующий код, при помощи которого инициализируется оргфункция в инициализаторе ролей (оргфункция - executorByName или в русской локализации - "исполнитель по имени").

Случай отношения:

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

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

Инфраструктура проекта, включая репозиторий исходных кодов, находится на сайте разработчиков свободного программного обеспечения sourceforge по адресу: http://sourceforge.net/projects/runawfe

Документация (пользовательская, разработческая и документация администратора) находится на сайте проекта - http://wf.runa.ru/rus/doc/Документация

С предметной областью систем управления бизнес-процессами и административными регламентами можно ознакомиться здесь - http://www.bpms.ru

Для RunaWFE существует OmLine demo - http://wfdemo.runa.ru/wfe

Заявки фрилансеров