Системы управления бизнес-процессами и связанные с ними концепции
Часто в инструментальных решениях для управления бизнес-процессами пытаются построить систему замещения пользователей при помощи импорта организационной структуры предприятия и задания в ней функций замещения, основанных на положении сотрудников в административной системе управления предприятием. В некоторых случаях эта проблема решается при помощи вставки программного кода, реализующего перенаправление заданий, непосредственно в бизнес-процессы.
Оба этих решения неудобны: Организационная структура предприятия является отдельной сущностью и помещать ее в СУБП нежелательно, т.к. она также используется в других системах предприятия (ERP, CRM и т.п.). В случае использования программного кода бизнес-процесс становится неудобным для модификации, т.к. для изменения замещения, как правило, требуется привлекать программиста.
Но главное - такое решение неудобно управленцам, потому, что оно не соответствует их мышлению. В случае замещений исполнителей задач управленцам гораздо комфортнее думать "в терминах" людей, а не бизнес-процессов. Им удобнее не перебирать все бизнес-процессы, в которых теоретически может участвовать замещаемый пользователь и изменять в них настройки, а явно задать замещение в свойствах пользователя, может быть, указав при этом какие-то условия, при выполнении которых замещение будет выполнено.
Поэтому механизм замещения исполнителей заданий предлагается основывать на наборах правил замещения, относящихся не к бизнес-процессам, а к пользователям СУБП: Для каждого пользователя составляется упорядоченный набор правил замещения, которые последовательно просматриваются до тех пор, пока либо не будет найдено подходящее правило замещения, либо будет выяснено, что ни одного подходящего правила нет.
Описание правила назначения заместителя.
Правило содержит функцию над организационной структурой предприятия, которая возвращает заместителя.
Каждое правило имеет следующие параметры:
- Замещаемый Пользователь (Пользователь)
- Заместитель (Функция над оргструктурой, возвращающая Пользователя)
- Применимо ли правило (формула)
-
Пример правила назначения заместителя:
- Иванов
- Петров
- (Роль = "руководитель департамента") & (Бизнес-процесс= "оформление сделки")
Применение правил замещения Пользователя.
У пользователя может быть одно из двух состояний:
- Активен
- Не активен
Механизм замещения применяется только к пользователям, имеющим статус "не активен". В этом случае из списка правил будут выбраны все правила замещения, относящиеся к данному пользователю, далее из этих правил будет выбрано первое по порядку правило, которое применимо (выполняется формула в "Применимо ли правило") и заместитель в котором имеет статус "Активен". В список заданий этого пользователя (заместителя) и будет перенаправлено данное задание.
Замечание. Возможны ситуации, в которых у пользователя не будет заместителя.
Реализация механизма замещения одних исполнителей заданий другими
В системе в свойствах пользователя предлагается задать набор правил замещения. Для конкретного пользователя правило замещения будет состоять из двух частей:
- Заместитель (Функция над организационной структурой предприятия, возвращающая пользователя-заместителя)
- Условие применения правила (Критерий)
При формировании списка заданий правила замещения, относящиеся к данному пользователю, просматриваются сверху вниз до тех пор, пока либо не будет найдено первое по порядку подходящее правило замещения (в котором выполняется условие в "критерии" и заместитель имеет статус "Активен"), либо будет выяснено, что ни одного подходящего правила нет.
В список заданий этого пользователя (заместителя) и будет перенаправлено данное задание.
Бинарные отношения для инициализации ролей
Использование концепции бинарных отношений над множествами для упрощения процедуры инициализации ролей
Связывание узлов бизнес-процесса с исполнителями заданий производится при помощи ролей. При разработке бизнес-процесса создается роль и ставится в соответствие определенным узлам схемы. Во время выполнения экземпляра бизнес-процесса для ролей необходимо определить исполнителей.
Инициализация роли - это назначение на роль конкретного исполнителя. При переходе от моделирования бизнес-процессов на компьютере к исполнению бизнес-процессов в компьютерной среде появляется проблема выбора конкретных исполнителей, которым будет направлено задание.
Реализация компонентов-инициализаторов ролей бизнес-процессов является одной из самых неудобных и трудоемких проблем при внедрении систем управления бизнес-процессами на предприятиях.
Традиционных подходов к реализации инициализатора роли два:
- Внутри системы управления бизнес-процессами задается организационная структура предприятия и роли инициализируются при помощи указания параметров этой структуры
- Процедура инициализации роли выносится в какую-то другую информационную систему У обоих этих подходов есть существенные неудобства.
Организационная структура предприятия является отдельной сущностью и помещать ее в СУБП нежелательно. Кроме того, путем задания иерархической организационной структуры можно инициализировать роли, соответствующие иерархии управления - "руководитель сотрудника", "руководитель отдела", "председатель правления". Однако, сложно инициализировать роли, не относящиеся к административному управлению, например, "секретарь, отвечающий за корреспонденцию данного сотрудника".
Вынос инициализации роли в другую систему и организация удаленного вызова процедуры из другой информационной системы приводят к техническим сложностям, а также работам по настройкам, связанным с информационной безопасностью.
Использование математического понятия "бинарное отношение" для решения проблемы
Использование понятия чистой математики - "бинарного отношения" позволяет разработать очень простое, но весьма эффективное решение задачи построения инициализатора роли.
Бинарное отношение можно рассматривать как обобщение понятия функция.
Бинарным отношением между двумя конечными множествами A и B называется набор упорядоченных пар (a,b), в которых первый элемент принадлежит к множеству A, а второй к множеству B.
Некоторые (но не все) бинарные отношения соответствуют функциям. Можно определить функцию как такое бинарное отношение R, в котором каждому значению b в парах бинарного отношения соответствует лишь одно единственное значение a (но не наоборот).
Добавим возможность инициализации ролей при помощи бинарных отношений в случае, когда по уже известному исполнителю заданий надо определить исполнителя одного из последующих заданий. Например, это может быть непосредственный руководитель сотрудника, подавшего на что-то заявку, или сотрудник отдела кадров, отвечающий за ведение личного дела конкретного работника.
При использовании бинарных отношений над множеством исполнителей задач бизнес-процесса процедура назначения возможных исполнителей задания становится очень простой и ее легко реализовать прямо в СУБП. Кроме того, это дает возможность инициализировать роль сразу множеством возможных исполнителей заданий: Часто в бизнес-процессе задание направляется не одному исполнителю, а множеству возможных исполнителей задания. Выполняет это задание тот пользователь, который первым возьмет его на исполнение.
Принцип процедуры инициализации роли следующий: Берется уже известный исполнитель заданий. Находятся все пары бинарного отношения, в которых этот исполнитель находится в правой части. Рассматривается множество, состоящее из всех левых частей отобранных пар. Этим множеством и инициализируется роль.
Простота процедуры назначения следует из того, что любое отношение над исполнителями заданий можно задать множеством пар (Исполнитель1, Исполнитель2), при этом не требуется проверять каких-либо ограничений (как, например, для функции - существование только одного значения функции для одного аргумента).
Использование групп пользователей при задании отношений
Задавать отношения перечислением всех определяющих его пар пользователей неудобно, так как таких пар может быть очень много. Для уменьшения количества вводимых данных имеет смысл воспользоваться группами пользователей.
Группы пользователей служат для объединения пользователей по какому-либо признаку. Одни группы могут содержать в себе другие группы.
Зададим отношение в СУБП как множество пар (исполнитель1, исполнитель2), в которых исполнитель является пользователем или группой пользователей.
- Инициализацию роли при помощи данного отношения предлагается производить при помощи следующего алгоритма
- Из указанной в инициализаторе роли переменной бизнес-процесса берется ее значение-исполнитель - имя пользователя или группы пользователей. Это значение будет соответствовать правой части отношения.
- Строится множество значений всех левых частей отношения, соответствующих данному элементу правой части. Делается это так: Для исполнителя - значения правой части отношения находятся все группы, в которые он входит (хотя бы в одну из их подгрупп). Далее находятся все пары определенные в СУБП для данного отношения, у которых в правой части стоит исполнитель или одна из найденных групп. Далее рассматривается множество всех левых частей этих пар.
Если пар нет, то роль не инициализируется. Если множество состоит только из одного пользователя, то роль инициализируется им. В остальных случаях роль инициализируется множеством всех пользователей, попавших в левые части пар или принадлежащих какой-либо из групп попавших в левую часть, а также любой из их подгрупп.
Пример реализация концепции бинарных отношений
В главное меню СУБП RunaWFE был добавлен пункт - Отношения (в английской локализации - Relations).
В этом пункте можно посмотреть/добавить/удалить отношение, открыть отношение и отредактировать множество составляющих его пар.
Для каждого исполнителя в его свойствах добавлены два раздела:
- Отношения, в которых он может находиться в левой части
- Отношения, в которых он может находиться в правой части
Каждое отношение можно открыть и отредактировать множество исполнителей в другой части отношения
Работа с отношениями в веб-редакторе (среде разработки)
В веб среде разработки при редактировании инициализатора роли можно выбрать "задать роль с помощью отношения".
Далее отношение можно поставить в соответствие роли. В форме выбирается имя отношения и переменная или константа, соответствующая правой части отношения, задающая пользователя или группу пользователей.
Контрольные вопросы
- Какие интерфейсы используются в СУБП?
- Какие возможности предоставляет среда разработки?
- Как реализовано замещение исполнителей в системе RunaWFE?
- Как используются бинарные отношения при назначении исполнителей на роли?