События могут возникать и посередине БП. В этом случае процесс будет течь дальше, только тогда, когда это событие произойдет. В нашей графике это будет нечасто. Вот несколько примеров таких событий (Рис. 2. Примеры промежуточных событий). Обратите внимание, что у промежуточных событий кружок с двойной границей.
Рисунок 2. Примеры промежуточных событий.
Любой БП – это движение к результату, другими словами, он завершается событием. При чтении графики это сильно облегчает восприятие. И в отношении конечных событий мы будем применять практически весь доступный арсенал. Так как они будут подробно закомментированы, а кроме того, в текстовой части БП вы всегда найдёте описание таких событий, приведу только несколько примеров (Рис. 3. Примеры конечных событий.)
Рисунок 3. Примеры конечных событий.
Единственное замечание, которое нам осталось сделать о событиях, это закомментированность этого элемента графики. На мой взгляд, крайне важно контролировать целостность восприятия графики. То есть смотря на схему, пользователь должен сразу же видеть (считывать) основную мысль. Именно поэтому я сам всегда комментирую события и всем рекомендую (Рис. 4. Пример комментированности события). Под значком события просто добавляю лаконичный текст. Если случай совсем сложный, то пользуюсь и выносками (комментарии, как на наших рисунках под квадратной скобкой или овалы, как на этом рисунке).
Рисунок 4. Пример закомментированности события.
Теперь, давайте познакомимся с Задачами – это прямоугольник, в котором написана задача. С этим элементом графики всё достаточно просто. Нам нужно уметь отличать Задачи, которые будут детализированы (являются отдельным БП), и те, которые далее уже не будут детализировать.
В вопросах детализации (декомпозиции – если придерживаться классической терминологии) есть один хитрый нюанс. По сути, можно детализировать любую Задачу, но главное не переборщить. Можно же при помощи графики описать и процесс набора текста на клавиатуре компьютера, но вот нужно ли это… Мы будем понимать под термином вложенный “бизнес-процесс” (см. Рис. 5) задачу, которая требует 2-го уровня детализации. Например, “Подписание рамочного договора с клиентом” – это вложенный БП. Чтобы его подписать, необходимо проверить благонадёжность клиента, оценить его влияние на рынок, выбрать оптимальные условия сотрудничества и т.д. (нужно ещё много чего сделать). Причем в этом случае может быть задействован руководитель отдела, который должен одобрить условия такого договора, может быть привлечена служба безопасности, юристы. Проще говоря, это работа не только менеджера, но и ряда коллег или смежных отделов.
Если же мы с вами имеем дело с такой задачей, как размещение заказа на складе, то дальнейшая детализация будет уже описывать его действия. То есть мы с вами выйдем на уровень инструкции. В этом случае мы не предполагаем детализации на уровне BPMN, а сразу начинаем описывать действия в нотации EPC.
Отличить простую задачу от вложенного процесса легко – у вложенного БП есть крестик. (Рис. 5. Простая задача и вложенный БП.)
Рисунок 5. Простая задача и вложенный БП.
В рамках этой нотации нам осталось разобраться только со “шлюзами” и сделать пару замечаний по поводу стрелок.
Шлюз – это один из самых важных элементов БП, так он показывает логику процесса работы. В полной версии BPMN порядка 6 видов шлюзов. Мы будем использовать только основные. Их я укажу ниже (Рис.6).
В зависимости от того, как расположен шлюз, он может немного менять логику. На этот момент нужно обращать особое внимание. Тут как в русском языке – неправильно поставили запятую и казнили человека, вместо того чтобы помиловать. Этот момент лучше осваивать на практических примерах, поэтому затронем его поверхностно. Кстати, те, кто помнит формальную логику (вузовский предмет), очень легко воспринимают “Шлюзы”. Так как по сути – это всё те же логические операции, только сильно упрощённые. Вот перечень основных шлюзов (Рис. 6 Основные шлюзы):
Рисунок 6. Основные шлюзы.
Если шлюз стоит перед задачей, то он управляет входом в эту задачу, если после, то расшифровывает логику выхода из этой задачи.
Например, нам нужно на графике отобразить такую ситуацию: Если «все требования выполнены» (товар оплачен, менеджер подтвердил отгрузку), то «совершить отгрузку» (нижняя часть графики). ИЛИ «Оплата товара не произведена» и «необходимо сообщить об этом менеджеру» (Рис. 7. Пример исключающего ИЛИ на выходе)
Рисунок. 7. Пример исключающего ИЛИ на выходе.