Практика процессного управления на свободном программном обеспечении
Михеев Андрей Геннадьевич

Содержание


Лекция 1. Введение. Процессный подход к организации управления предприятием

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

Введение

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

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

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

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

Исполнимые бизнес-процессы, напротив, предполагают перемещение точек управления по схеме бизнес-процесса в компьютерной среде в точном соответствии с выполняемыми на предприятии действиями. Реализуют такие компьютерные среды - системы управления бизнес-процессами и административными регламентами. Далее будем называть их - СУБПиАР. Фактически СУБПиАР раздают задания исполнителем в соответствии с перемещением точек управления по схеме бизнес-процесса и контролируют выполнение этих заданий.

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

Появление исполнимых бизнес-процессов принесло процессному подходу много новых преимуществ. Основные из них - это:

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

В настоящем курсе рассматриваются в основном исполнимые бизнес-процессы. В курсе приведены определение и основные характеристики исполнимых бизнес-процессов, описаны системы управления бизнес-процессами и административными регламентами и их основные компоненты. Изложены основы разработки бизнес-процессов предприятия. Предполагается что в рамках настоящего курса студенты изучат теорию исполнимых бизнес-процессов, основные компоненты типичных СУБПиАР, познакомятся с графическими нотациями описания бизнес-процессов, получат практический опыт разработки и исполнения бизнес-процессов.

Описание основных элементов систем управления бизнес-процессами дано на примере свободной системы с открытым кодом – RunaWFE. RunaWFE свободно распространяется вместе со своими исходными кодами на условиях открытой лицензии LGPL. Система бесплатная, ее можно свободно установить на любое количество компьютеров и использовать без каких-либо ограничений. Скачать дистрибутивы и исходный код ее можно через интернет с портала разработчиков свободного программного обеспечения sourceforge.net по адресу: http://sourceforge.net/projects/runawfe.

Адрес сайта проекта RunaWFE - http://www.runawfe.org/rus.

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

Уровни процессного управления

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

На первом уровне рассматривается общее стратегическое управление предприятием. На этом уровне используются бизнес-процессы для аналитического моделирования. Задача бизнес-процессов данного уровня – формирование общих представлений об основных бизнес-процессах предприятия и обмен этими представлениями между управленцами. Этот уровень не предполагает реальное исполнение разработанных бизнес-процессов. На первом уровне удобно изображать бизнес-процессы в графических нотациях IDEF0, IDEF3, DFD, EPC, и родственных им. Также на этом уровне можно использовать некоторые конструкции нотации BPMN 2.0. В качестве программных средств для работы с бизнес-процессами на первом уровне можно использовать, например, такие программы, как Business Studio, Microsoft Visio или ARIS.

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

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

На следующем уровне стратегические бизнес-процессы предприятия переводятся в исполнимые бизнес-процессы. На этом уровне схемы бизнес-процессов принято изображать в нотациях BPMN, UML (Диаграмма деятельности) и родственных им. На втором уровне текущая деятельность предприятия представляется в виде множества выполняющихся экземпляров бизнес-процессов. На этом уровне используются СУБПиАР. Основная задача данных систем - раздавать задания исполнителям и контролировать их выполнение. Вместе с заданием исполнителю передается требующаяся для его выполнения информация. Последовательность заданий определяется схемой бизнес-процесса, которую можно разработать и в дальнейшем быстро модифицировать при помощи графического дизайнера. Эта схема похожа на блок-схему алгоритма. По схеме перемещаются точки управления. В определенных узлах схемы генерируются задания исполнителям.

Есть определенное сходство между исполнимым бизнес-процессом и компьютерной программой. В основе и исполнимого бизнес-процесса и компьютерной программы лежат алгоритмы. Для компьютерных программ, так же как для бизнес-процессов для аналитического моделирования, существуют графические нотации (Например, диаграмма классов UML), которые программисты и программные архитекторы используют для объяснения различных программных и архитектурных решений. Однако, сами компьютерные программы пока все-таки массово не разрабатываются в форме графических объектов, они в основном пишутся в виде текстов на языках программирования. В чем ситуация для исполнимых бизнес-процессов отличается от компьютерных программ? В отличие от компьютерной программы, команды которой выполняет компьютер, часть действий бизнес-процесса выполняют люди. Они делают это существенно дольше компьютера, поэтому экземпляры бизнес-процессов выполняется относительно долго, их состояние меняется медленно. Более того, в отличие от компьютерной программы, во время выполнения бизнес-процессов менеджмент предприятия может заметно влиять на их выполнение, например, увеличивать или уменьшать количество работников, выполняющих те, или иные действия.

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

Третий уровень соответствует бизнес-объектам предприятия. Состояние всего предприятия на текущий момент времени определяется состоянием всех бизнес-объектов предприятия на этот момент времени. Процессный подход предполагает, что состояния бизнес-объектов изменяются экземплярами бизнес-процессов второго уровня при выполнении соответствующих заданий. Для этого слоя в качестве хранилищ традиционно используются системы управления контентом (ECM-системы), или системы управления базами данных. Также возможно на этом уровне использовать ERP-системы (например, можно использовать систему 1С, или Галактика).

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

Преимущества процессного подхода

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

Использование исполнимых бизнес-процессов дает следующие преимущества:

Рассмотрим эти преимущества более подробно.

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

Все необходимое возникает перед работником на экране компьютера. Последовательность выполнения элементов работ определяется схемой бизнес-процесса. В узлах схемы СУБПиАР раздает задания исполнителям и контролирует их выполнение.

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

На современном российском предприятии, как правило, уже эксплуатируется несколько разнородных автоматизированных систем, которые участвуют в каких-либо бизнес-процессах предприятия. Так как бизнес-процессы пронизывают все предприятие, в процессе исполнения им придется взаимодействовать со всеми автоматизированными системами. Таким образом, задача внедрения СУБПиАР оказывается частным случаем задачи интеграции компьютерных приложений масштаба предприятия. Иными словами, при внедрении СУБПиАР на предприятии должны появиться приложения, обеспечивающие ее интеграцию с уже имеющимися системами.

СУБПиАР является центральной частью современных систем масштаба предприятия. Если в корпоративной информационной системе (КИС) отсутствует СУБПиАР, то логика бизнес-процессов оказывается рассеянной по различным элементам системы — базам данных, отдельным приложениям и т. д., такие системы сложно сопровождать и развивать дальше.

На предприятиях с устойчивыми повторяющимися цепочками операций внедрение, настройка и сопровождение систем на основе СУБПиАР оказывается быстрее и дешевле традиционной автоматизации, при которой для различных задач и подразделений разрабатываются отдельные компоненты приложения. СУБПиАР позволяют:

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

Эти преимущества (быстрее, дешевле, легче в поддержке и сопровождении) совпадают c преимуществами парадигмы объектно-ориентированного программирования по сравнению с почти вытесненной ей из практики парадигмой процедурного программирования. По аналогии автоматизацию на основе исполнимых бизнес-процессов можно интерпретировать как новую парадигму высокоуровневого программирования и ожидать существенного увеличения масштабов ее использования по сравнению с традиционной автоматизацией.

Исполнимые бизнес-процессы и СУБПиАР

Управление бизнес-процессами — активно развивающаяся область и многие термины в ней еще не до конца устоялись. Различные авторы прибегают к таким понятиям, как СУБПиАР, системы управления потоками работ (Workflow), системы управления документооборотом (Docflow), системы интеграции масштаба предприятия (EAI - Enterprise Application Integration) и т. п.

Мы будем использовать термин управление потоками работ (Workflow) применительно к случаям, когда исполнителями заданий бизнес-процесса являются только люди. Термин СУБПиАР мы будем рассматривать в качестве более общего по отношению к управлению потоками работ: исполнителями заданий бизнес-процесса или регламента в СУБПИАР являются как люди, так и компьютерные приложения. Как правило, СУБПиАР координирует работу всех исполнителей единообразно, не выделяя специальным образом работы, выполняемые человеком или компьютерными системами.

Кроме СУБПиАР большое распространение получили системы управления документооборотом, или DocFlow-системы. Вместо точек управления системы управления документооборотом используют "поток документов". DocFlow-системы описывают деятельность предприятия в виде документов, путешествующих между их редакторами по определенным маршрутам в соответствии с заданными правилами.

DocFlow-системы являются наследниками бумажного документооборота. Отсюда следуют их естественные ограничения: с документом можно совершить ограниченный набор действий: одобрить/отказать, визировать, удалить, внести правку и т. п. Обычно системы документооборота дополняются системами хранения образов бумажных документов и системами версионного контроля. Основным преимуществом систем документооборота является возможность их быстрого внедрения на предприятии, если там уже на хорошем уровне налажен документооборот.

В системах документооборота, так же как и в СУБПиАР, существуют схемы на основе графов, которые состоят из узлов, соединенных возможными переходами. Однако по этим графам перемещаются не точки управления, а "корзины" документов. В DocFlow-системах, как правило, данные содержатся внутри документов, которые непосредственно перемещаются по схеме документооборота.

В СУБПиАР данные не перемещаются вместе с точкой управления, а содержатся в глобальных (соответствуют всему бизнес-процессу) и локальных (соответствуют одному узлу) переменных.

В настоящее время СУБПиАР и системы документооборота представляют собой системы разных типов, однако постепенно системы документооборота по функциональности приближаются к СУБПиАР. При помощи современных DocFlow-систем можно моделировать многие виды бизнес-процессов, а при помощи СУБПиАР — автоматизировать элементы документооборота.

Исполнимые бизнес-процессы

Эволюция развития СУБПиАР привела к использованию в современных системах таких понятий, как определение бизнес-процесса и экземпляр бизнес-процесса. Иногда определение бизнес-процесса также называют шаблоном бизнес-процесса. Определение бизнес-процесса содержит схему бизнес-процесса, роли бизнес-процесса, правила назначения исполнителей на роли. Во время выполнения бизнес-процесса по схеме перемещаются точки управления. Проще всего представлять себе точки управления и их перемещения по аналогии с перемещением фишек в настольной детской игре с кубиком.

Также определение бизнес-процесса содержит описание структур хранения данных. Во время выполнения бизнес-процесса в этих структурах находятся конкретные данные. Еще в современных СУБПиАР определение бизнес-процесса содержит описание средств взаимодействия бизнес-процесса с исполнителем задания. Обычно это графическая форма для взаимодействия с пользователем, или программный интерфейс для взаимодействия с информационной системой. Еще одним элементом определения бизнес-процесса являются бизнес-правила, которые используются для выбора конкретного пути дальнейшего движения точки управления в точках разветвления маршрутов.

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

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

Дадим формальное определение исполнимого бизнес-процесса, основу которого составляют идеи С. Яблонского и С. Бусслера:

Исполнимый бизнес-процесс определяется при помощи задания следующих перспектив (точек зрения или слоев/уровней рассмотрения):

Рассмотрим подробно все уровни формального определения исполнимого бизнес-процесса. При этом в качестве примера будем использовать бизнес-процесс "Оплата счета поставщика". С его помощью постараемся пояснить все перспективы формального определения бизнес-процесса.

Перспектива потока управления

Перспектива потока управления соответствует схеме бизнес-процесса. Изначально схема определялась как математическое понятие — направленный граф: множество узлов, соединенных между собой переходами (стрелочками). Узлы бизнес-процесса могли быть двух типов — узлы, соответствующие шагам процесса, и маршрутные узлы. По переходам перемещается точка управления (указатель на активный узел процесса), руководствуясь бизнес-правилами в маршрутных узлах (бизнес-правила также относятся к перспективе потока управления).

В узле, соответствующем шагу процесса, находится узел-действие (Activity). Если точка управления пришла в узел-действие, то СУБПиАР дает задание исполнителю (сотруднику или информационной системе) и ждет ответа (сообщения, что работа выполнена). После ответа исполнителя точка управления движется по переходу к следующему узлу бизнес-процесса. К узлу, соответствующему узлу-действию, может примыкать только один входящий и один исходящий переход.

Маршрутный узел соответствует появлению, удалению, разветвлению-слиянию точек управления или выбору перехода, по которому точка управления будет перемещена дальше. В таких узлах СУБПиАР выбирает на основании содержащихся в маршрутных узлах бизнес-правил следующий узел (узлы), в который будет передано управление. Часто с этими узлами связано более одного входящего или исходящего перехода.

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

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

Позже, с появлением различных связанных с бизнес-процессами стандартов и спецификаций, данное определение было расширено:

  1. Были добавлены комбинированные узлы, представляющие собой слияние шага процесса с одним или несколькими маршрутными узлами. Например, при слиянии узла-действия с находящимся за ним маршрутным узлом, осуществляющим выбор одного из нескольких возможных направлений, в схему помещается только узел-действие и прямо к нему присоединяются переходы, которые должны выходить из маршрутного узла.
  2. Были добавлены дополнительные конструкции, элементы которых не являются элементами графа (далее – дополнительные конструкции), однако к этим элементам могут быть присоединены переходы и маршрутные узлы или же переходы могут пересекать эти элементы. Например, были введены события и области с прерыванием, объемлющие шаги бизнес-процесса. При нахождении точки управления внутри области с прерыванием может произойти событие (клиент может передумать делать заказ, во время действия договора могут возникнуть форс-мажорные обстоятельства и т.п.). В этом случае точка управления может из любого находящегося внутри области узла сразу переместиться в присоединенный к области маршрутный узел и уже из него продолжить движение по присоединенному к нему переходу.
  3. Были добавлены узлы, соответствующие шагу процесса, но не являющиеся узлами-действиями. Например, узлы-ожидания, в которых не дается заданий исполнителям процесса, СУБПиАР просто ожидает в этих узлах наступления определенного события, после которого точка управления идет дальше. Также были добавлены узлы-подпроцессы. Для этих узлов не определен конкретный исполнитель, в этих узлах СУБПиАР запускает другой бизнес-процесс в качестве подпроцесса текущего процесса и передает ему соответствующие данные.

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

Перспектива потока управления представляет собой схему бизнес-процесса Схема бизнес-процесса состоит из направленного графа и, возможно, дополнительных конструкций. Узлы бизнес-процесса могут быть трех типов — узлы, соответствующие шагам процесса, маршрутные узлы и комбинированные узлы, представляющие собой слияние шага процесса с одним или несколькими маршрутными узлами.

Шаги процессов являются узлами-действиями или дополнительными узлами. По переходам перемещаются точки управления. В момент прихода точки управления в узел-действие СУБПиАР дает задание исполнителю. После выполнения задания исполнителем точка управления движется по переходу к следующему узлу процесса. К узлу, соответствующему узлу-действию, может примыкать только один входящий и один исходящий переход.

Маршрутный узел соответствует появлению, удалению, разделению, слиянию точек управления или выбору перехода. Эти узлы могут содержать в себе бизнес-правила, на основании которых выбираются дальнейшие пути точек управления. В маршрутных узлах СУБПиАР выбирает следующий узел (узлы), в который будет передано управление.

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

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

Обозначения узлов: а – начало; б – завершение потока; в – окончание; г – действие


Рис. 1.1.  Обозначения узлов: а – начало; б – завершение потока; в – окончание; г – действие

Узел "завершение потока" должен иметь одно или более входящих ребер и ни одного исходящего. При попадании какой-либо точки управления в этот узел она удаляется. Экземпляр бизнес-процесса, в котором не осталось ни одной точки управления, считается завершившимся. Может существовать несколько узлов "завершение потока", но обязательно должен быть хотя бы один такой узел. Обозначается "жирной" окружностью (рис. 1.1 б).

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

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

Узел "исключающий шлюз" может иметь несколько входящих и несколько исходящих ребер. Для каждой пришедшей в него точки управления выбирается, по какому из исходящих ребер она будет перемещена далее. Обозначается ромбом, в котором изображен "крестик" (рис. 1.2 а).

Обозначения узлов: а – исключающий шлюз; б – параллельный шлюз


Рис. 1.2.  Обозначения узлов: а – исключающий шлюз; б – параллельный шлюз

Узел "параллельный шлюз" обозначается ромбом, в котором изображен "плюс" (рис. 1.2 б). Может иметь несколько входящих и несколько исходящих ребер. Для каждого входящего ребра пришедшая по нему в параллельный шлюз точка управления ставится в очередь. Если для всех входящих ребер их очереди заполнены хотя бы одной точкой управления, то все точки управления, находящиеся на первой позиции очереди каждого входящего ребра, удаляются, а на каждом исходящем ребре генерируется точка управления.

Пример схемы бизнес-процесса "Оплата счета поставщика" (BPMN - нотация)


Рис. 1.3.  Пример схемы бизнес-процесса "Оплата счета поставщика" (BPMN - нотация)

На рис. 1.3 приведен пример графа бизнес-процесса "Оплата счета поставщика". Шаги процесса изображены в виде прямоугольников со скругленными краями, началу процесса соответствует окружность, завершению — окружность с кружком внутри. Элемент "Оплатить счет" является комбинированным узлом, представляющим собой композицию маршрутного узла соединения переходов и узел-действие. Остальные прямоугольники со скругленными краями являются узлами-действиями. Элементы в виде ромбов соответствуют маршрутным узлам — местам разветвления маршрутов точек управления.

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

Бизнес-процессу "Оплата счета поставщика" соответствуют следующие бизнес- правила:

  1. Если внешнее приложение, вызванное в узле "получить данные из бюджета", вернуло значение "нет" в переменную "Превышен ли бюджет подразделения", то следует перейти к проверке лимита, в противном случае — перейти в узел завершения бизнес-процесса.
  2. Если значение переменной "сумма счета" меньше значения константы "лимит разового платежа", нужно перейти к узлу "оплата счета", в противном случае — к узлу "подтвердить платеж".
  3. Если исполнитель, принадлежащий к роли "Финансовый директор", заполняя поля в соответствующей форме, вернул значение "да" в переменную "утвердил ли руководитель", то перейти к узлу "оплата счета", в противном случае — к узлу завершения бизнес-процесса.

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

Пример соответствует этапу оформления очередного отпуска сотрудником предприятия .

Схема бизнес-процесса рассмотрения заявления об уходе в отпуск (BPMN - нотация)


Рис. 1.4.  Схема бизнес-процесса рассмотрения заявления об уходе в отпуск (BPMN - нотация)

Данный пример иллюстрирует следующее:

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

Перспектива данных

Перспектива данных соответствует набору внутренних переменных бизнес-процесса. Переменные бизнес-процесса могут являться входящими и исходящими параметрами при взаимодействии СУБПиАР с информационными системами предприятия. При помощи переменных происходит обмен информацией между шагами процесса и, как следствие, между внешними информационными системами, т. е. бизнес-процесс может переносить информацию в корпоративной информационной среде между разнородными информационными системами. Переменные бизнес-процесса также используются при выборе конкретного внутреннего перемещения точки управления между узлами по какому-либо из возможных переходов.

Таблица 1.1. Список глобальных переменных, соответствующих бизнес-процессу "Оплата счета", схема которого изображена на рис. 1.1
Название переменнойТип переменной
Номер счетаСтрока
дата счетаДата
Сумма счетаЧисло
Id (идентификационный номер) фирмы— контрагента (юридического лица, на которое выписан счет)Число — уникальный идентификатор
Id фирмы — агента (юридического лица, которое будет осуществлять платеж)Число — уникальный идентификатор
комментарийМногострочный текст
превышен ли бюджет подразделенияЛогический (да/нет)
Лимит разового платежаЧисло
утвердил ли руководительЛогический (да/нет)

Перспектива ресурсов

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

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

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

Данная перспектива плотно связанна с организационной моделью и моделью информационных систем предприятия.

Бизнес-процесс "Оплата счета поставщика" предполагает следующую структуру исполнителей, объединенных в соответствующие группы:

Сотрудники:

Информационные системы предприятия:

Таблица 1.2. Описание перспективы ресурсов бизнес-процесса "Оплата счета поставщика"
ШагРольИсполнитель шага
Разместить счетменеджерКонкретный менеджер поставок
Получить данные из бюджетасистемаКомпьютерная система контроля бюджета
Подтвердить платежруководительФинансовый директор предприятия
Оплатить счетбухгалтерБухгалтер, ответственный за платежи.

Перспектива операций

Перспективе операций бизнес-процесса соответствует список элементарных действий, совершаемых исполнителями в рамках узла-действия.

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

Таблица 1.3. Перспектива операций бизнес-процесса "Оплата счета поставщика".
ШагОперацияИсполнитель операции
Разместить счетЗаполнить форму размещения счета и запустить экземпляр бизнес-процессаМенеджер поставок
Получить данные из бюджетаПровести авторизацию. Получить остаток средств, доступных для закупок по департаментуКомпьютерная система контроля бюджета
Подтвердить платежЗаполнить форму подтверждения/не подтверждения платежаФинансовый директор
Оплатить счетПровести платеж на указанную сумму и отметить это в формеБухгалтер, ответственный за платежи

Процессное управление

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

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

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

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

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

Можно предложить следующую аналогию для процессного управления1) : Управление предприятием можно образно сравнить с управлением автомобилем. В этом случае КПЭ являются аналогом того, что видит водитель - вид через лобовое стекло автомобиля и значения показателей датчиков (скорость, давление масла, количество оборотов двигателя, количество бензина и т.п.). При этом бизнес-процессы будут выполнять роль руля, педалей (газ, тормоз, сцепление) и рычага переключения передач автомобиля.

На уровне исполнимых бизнес-процессов предприятия под процессным управлением различные авторы также имеют в виду совершенно различную деятельность:

  1. Можно считать, что предприятие переведено на процессное управление, если на предприятии бизнес-процессы выделены, построены в исполнимом виде и внедрены в эксплуатацию путем загрузки в СУБПиАР. Процессное управление в этом случае является результатом:
    1. Действий бизнес-аналитиков, разработавших исполнимые бизнес-процесс, в частности - схемы бизнес-процессов
    2. Принятия управленческих решений менеджерами в узлах схемы экземпляра бизнес-процесса, имеющих различные возможные варианты дальнейшего движения точек управления
    3. Принятия управленческих решений менеджерами при вводе в экземпляр бизнес-процесса данных (от которых существенно зависит его дальнейшее поведение).
  2. Иногда под процессным управлением подразумевают один из видов ситуационного управления – оперативное изменение схемы, а также элементов других перспектив определения бизнес-процесса в ответ на изменение условий бизнеса предприятия.
  3. Существуют работы, в которых под процессным управлением авторы подразумевают косвенное административное влияние на выполнение конкретных экземпляров бизнес-процессов. Например, влияние по "человеческим ресурсам" - менеджмент предприятия может увеличивать или уменьшать количество работников, выполняющих определенные операции, или изменять требования к квалификации работников, выполняющих некоторые действия, а также принимать конкретные кадровые решения, назначая сотрудников на те, или иные роли. Также менеджеры могут анализировать состояния исполняющиеся экземпляров бизнес-процессов, проводить разбор возникающих коллизий и принимать различные административные решения, влияющие на эффективность исполнения экземпляров бизнес-процессов, не изменяя при этом схемы бизнес-процессов.

Также термин "процессное управление" применим в случае процессной автоматизации, описанной в одном из предыдущих разделов.

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

Контрольные вопросы

  1. Для каких предприятий эффективен процессный подход к управлению?
  2. Что такое бизнес-процессы для аналитического моделирования и как они используются?
  3. Что такое исполнимые бизнес-процессы и для чего они используются?
  4. Назовите три уровня процессного управления
  5. Поэтому такое важное значение имеют графические представления моделируемых и исполняемых бизнес-процессов?
  6. Что такое системы имитационного моделирования и как они используются в процессном управлении?
  7. Опишите преимущества процессного подхода на уровне стратегического управления предприятием
  8. Опишите преимущества исполнимых бизнес-процессов
  9. Опишите преимущества процессной автоматизации
  10. Что такое перспектива потока управления?
  11. Что такое перспектива данных?
  12. Что такое перспектива ресурсов?
  13. Что такое перспектива операций?
  14. Как осуществляется процессное управление на уровне стратегического управления предприятием?
  15. Что такое реинжиниринг бизнес-процессов?
  16. Как осуществляется процессное управление на уровне исполнимых бизнес-процессов?

Лекция 2. Системы управления бизнес-процессами и административными регламентами

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

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

СУБПиАР и их основная задача

Первые компьютерные системы, автоматизирующие управление бизнес-процессами появились давно, в начале 90-х годов прошлого века. Развитие СУБПиАР систем за прошедший 20-летний период, в частности, заимствование одними системами различных решений, примененных в других системах, привело к появлению у этого класса программного обеспечения большого количества общих черт. Например, современные СУБПиАР поддерживают такие понятия, как определение бизнес-процесса и экземпляр бизнес-процесса, определение бизнес-процесса обязательно содержит графическую схему бизнес-процесса, состоящую из узлов и переходов между ними. Также все современные СУБПиАР используют роли бизнес-процесса и правила назначения исполнителей на роли.

Основной задачей СУБПиАР является генерация заданий исполнителям и контроль за их выполнением. (Задание генерируется в момент прихода точки управления в узел-действие). Современные СУБПиАР поддерживают связанный с основной задачей набор функций, который примерно одинаков во всех распространенных СУБПиАР. Эти функции реализуются при помощи графических интерфейсов, которые тоже примерно одинаковы в различных СУБПиАР.

В настоящем разделе показаны структура, основные компоненты и графические интерфейсы типичной СУБПиАР, описано взаимодействие между ними, кратко пояснена работа пользователей с интерфейсами системы.

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

Компоненты СУБПИАР

Современная СУБПиАР должна обеспечивать разработку бизнес-процессов в графической среде, исполнение экземпляров бизнес-процессов, мониторинг состояний экземпляров, ведение истории событий экземпляров бизнес-процессов, интеграцию приложений при помощи используемых бизнес-процессами коннекторов, администрирование пользователей, а также возможность замещения исполнителей заданий.

Для выполнения этих функций в СУБПиАР служат следующие графические интерфейсы:

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

Типичная СУБПиАР состоит из следующих основных компонентов:

Также СУБПиАР может содержать симулятор бизнес-процессов.

Среда исполнения бизнес-процессов – это основной компонент СУБПиАР. Она реализует исполнение экземпляра бизнес-процесса в соответствии с его определением. Этот компонент содержит определения загруженных в него бизнес-процессов и выполняющиеся экземпляры бизнес-процессов. Генерирует списки заданий и визуальные формы, соответствующие заданиям. Как правило, среда исполнения бизнес-процессов позволяет создавать и изменять свойства пользователей, а также дает возможность устанавливать различные права на объекты системы.

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

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

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

Компонент-коннектор к другим информационным системам в различных СУБПиАР реализован по-разному. В настоящем курсе описание дано на примере реализации данного компонента в системы RunaWFE. Компонент представляет собой набор специальных приложений - бот-станций. Каждая бот-станция должна располагаться на отдельном сервере, одна из бот-станций (локальная бот-станция) может располагаться на том же сервере, что и среда исполнения. Бот-станции содержат специальные сущности - ботов, которые периодически опрашивают среду исполнения. Боты представляют собой автоматических исполнителей, чем-то напоминающих человека. Подробнее про них будет рассказано в следующих разделах. Если выполняющиеся в среде исполнения экземпляры бизнес-процессов содержат задачи для ботов, загруженных в бот-станцию, то боты выполняют эти задачи и возвращают результаты работы в среду исполнения. В частности, при этом боты могут обращаться к другим информационным системам. Таким образом бот-станция может служить средством интеграции автоматизированных систем предприятия.

При помощи интерфейсов для работы с заданиями исполнителей пользователь может:

Пример интерфейса, отображающего список задач пользователя


увеличить изображение

Рис. 2.1.  Пример интерфейса, отображающего список задач пользователя

Пример интерфейса, в котором можно запускать новые экземпляры бизнес-процессов и загружать новые определения бизнес-процессов


увеличить изображение

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

При помощи интерфейсов для администрирования системы администратор может:

Пример интерфейса, в котором можно просматривать состояния выполняющихся экземпляров бизнес-процессов


увеличить изображение

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

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

Пример интерфейса, в котором можно разрабатывать бизнес-процессы


увеличить изображение

Рис. 2.4.  Пример интерфейса, в котором можно разрабатывать бизнес-процессы

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

Описание работы пользователей и компонентов СУБПиАР

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

На клиентских компьютерах пользователей запускается клиент-оповещатель о поступивших заданиях или браузер, в котором открывается web-интерфейс СУБПиАР.

На клиентских компьютерах аналитиков запускается Среда разработки бизнес-процессов и связанных с ними объектов. Также на клиентских компьютерах аналитиков запускается симулятор бизнес-процессов.

В среде исполнения выполняются экземпляры бизнес-процессов.

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

Web-интерфейсы и клиенты-оповещатели периодически обращаются к среде исполнения и отображают задачи пользователей.

Пользуясь web-интерфейсом СУБПиАР пользователи:

Пользуясь web-нтерфейсом СУБПиАР администраторы:

При помощи среды разработки бизнес-аналитики

Для разработки бизнес-процесса бизнес-аналитику надо:

После того, как бизнес-процесс разработан, он загружается в Среду исполнения СУБПиАР. После этого можно запускать экземпляры данного бизнес-процесса и выполнять генерируемые ими задания.

При помощи симулятора бизнес-процессов бизнес-аналитики тестируют разработанные бизнес-процессы на условной конфигурации перед загрузкой их в СУБПиАР.

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

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

Где скачать исходные файлы системы RunaWFE

RunaWFE распространяется в следующих вариантах:

Проще всего установить RunaWFE при помощи специализированного дистрибутива для конкретной операционной системы. Например, в случае операционной системы Windows для того, чтобы скачать специализированный дистрибутив через интернет, надо зайти на страницу скачивания файлов проекта RunaWFE на портале разработчиков свободного программного обеспечения sourceforge - http://sourceforge.net/projects/runawfe/files, выбрать папку "Distributives", потом подпапку "Distributives for Windows", далее выбрать версию системы 4.2.0, войти в папку этой версии и скачать файл-дистрибутив системы. В случае, если у вас установлена 32-разрядная ОС Windows, то скачать надо файл RunaWFE-Installer_i586.exe, если 64-разрядная, то - RunaWFE-Installer_x64.exe.

Запуск на выполнение файла-дистрибутива запустит на компьютере с ОС Windows диалог установки системы RunaWFE. Если вам удобнее устанавливать систему с DVD-диска, то из той же папки надо скачать файл "runawfe-x.x.iso" и скопировать его на DVD-диск. При вставке этого диска в дисковод компьютера запустится диалог установки системы RunaWFE для ОС Windows. Один и тот же DVD-диск используется как в случае 32-разрядной, так и в случае 64-разрядной ОС Windows.

Вариант распространения в виде исполняемых файлов java-машины используется, если в проекте RunaWFE нет специализированного дистрибутива для ОС, которую вы используете на своем компьютере. В этом случае надо обратиться к документации проекта RunaWFE (например, на сайте runawfe.org/rus) и установить на компьютер непосредственно исполняемые файлы java. Вариант распространения в виде исходных кодов предназначен для разработчиков программного обеспечения. Используя исходные коды, они могут модифицировать систему или встраивать ее в какое-то другое программное обеспечение.

Установка системы RunaWFE при помощи специализированного дистрибутива для операционной системы Windows

Перечислим компоненты дистрибутива системы, которые можно установить при помощи дистрибутива.

Компоненты дистрибутива, относящиеся к клиентской части системы:

Компоненты дистрибутива, относящиеся к серверной части системы:

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

Порядок установки системы в случае ОС Windows

Вставьте диск в дисковод (в случае дистрибутива на DVD-диске) или запустите на выполнение файл RunaWFE-Installer***.exe (в случае дистрибутива в виде исполняемого файла). Появится экран мастера установки системы:

Экран мастера установки системы


Рис. 2.5.  Экран мастера установки системы

Нажмите "Установить". В следующем мастере установки появится текст свободной лицензии LGPL (Лицензия LGPL разрешает свободное использование, изменение кода и распространение программного продукта. На использование кода программы под LGPL лицензией разработчиками программного обеспечения в других коммерческих проприетарных программах налагаются некоторые ограничения), под которой распространяется система RunaWFE.

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

Лицензионное соглашение


Рис. 2.6.  Лицензионное соглашение

После утвердительного ответа на вопрос о принятии условий лицензии появится выбор – установить на компьютер клиентские или серверные компоненты RunaWFE

Выбор вариантов установочного пакета системы


Рис. 2.7.  Выбор вариантов установочного пакета системы

Выберите клиентские приложения и нажмите "Далее". Появится страница выбора конкретных клиентских компонентов.

Выбор компонентов системы


Рис. 2.8.  Выбор компонентов системы

Отметьте все компоненты кроме компонента "Интернет ссылка" и нажмите "Далее".

Выбор папки для установки


Рис. 2.9.  Выбор папки для установки

Выберите папку для установки RunaWFE и нажмите "Далее". В появившемся окне мастера установите самую верхнюю галочку:

Дополнительные параметры мастера установки


Рис. 2.10.  Дополнительные параметры мастера установки

Нажмите "Далее".

Мастер настройки точек доступа


Рис. 2.11.  Мастер настройки точек доступа

В следующем окне мастера оставьте настройки, появившиеся по умолчанию, и нажмите "Далее". – Начнется процесс копирования файлов системы. После того, как система будет установлена, появится следующее окно мастера:

Завершение установки


Рис. 2.12.  Завершение установки

Нажмите "Готово". Процесс установки будет завершен.

Замечание. В случае если в системе отсутствует J2SE SDK JDK 7.0, инсталлятор предложит его установить, кроме того будет предложено установить переменную среды JAVA_HOME.

Начало работы с системой RunaWFE

Работать с системой можно через системное меню ( Пуск / Программы / RunaWFE) или через расположенные на рабочем столе иконки.

Запуск программы


Рис. 2.13.  Запуск программы

Для начала работы с системой RunaWFE:

1. Запустите RunaWFE симулятор. Это можно сделать, например, командой меню Пуск / Программы / RunaWFE / Start Simulation.

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

Запуск сервера JBoss


увеличить изображение

Рис. 2.14.  Запуск сервера JBoss

Строки "…JBoss AS 7.1.1.Final "Brontes" started in …" "…INFO [org.jboss.as.server] … Deployed "runawfe.ear" означают, что симулятор запущен.

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

2. Запустите web-интерфейс системы RunaWFE. Для этого надо выполнить команду Пуск / Программы / RunaWFE / Simulation Web Interface. Появится окно ввода логина и пароля пользователя.

Окно ввода учётной записи


Рис. 2.15.  Окно ввода учётной записи

В этом окне введите логин администратора "Administrator" (существенно, что с большой буквы) и пароль администратора – "wf".

Главное меню системы RunaWFE

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

Функциональное меню Simulation web interface


Рис. 2.16.  Функциональное меню Simulation web interface

Дадим краткое описание пунктов меню системы RunaWFE. Меню "Список заданий". При выполнении команды меню "Список заданий" открывается форма списка заданий для данного пользователя. Здесь пользователь может, кликнув на задание, открыть форму задания, ввести в нее данные, а также отметить выполнение задания. Также в списке заданий пользователь может искать, фильтровать задания, выводить в строках задания значения переменных бизнес-процессов.

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

Меню "Запущенные процессы". На странице, соответствующей пункту меню "Запущенные процессы", находится список экземпляров бизнес-процессов, доступных для чтения данному пользователю. Здесь пользователь может посмотреть состояния выполняющихся экземпляров бизнес-процессов, в частности – положение текущих точек управления на схеме бизнес-процесса, текущие значения переменных и ролей экземпляра бизнес-процесса, а также историю событий экземпляра бизнес-процесса. Если у пользователя есть соответствующие права, он может остановить выполнение экземпляра бизнес-процесса. Также в списке экземпляров бизнес-процессов пользователь может искать, группировать, фильтровать экземпляры бизнес-процессов, выводить в строках значения переменных бизнес-процессов.

Меню "Исполнители". На странице, соответствующей пункту меню "Исполнители", находится список потенциальных исполнителей заданий (пользователей и групп пользователей), доступных для чтения данному пользователю. На этой странице можно завести или удалить исполнителя, завести или удалить группу исполнителей, включить (исключить) исполнителя или группу исполнителей в другую группу. Также для исполнителя можно установить статус (Активен / Не активен) настроить список замещений.

Меню "Отношения". Отношения используются в системе RunaWFE при инициализации ролей бизнес-процесса. При разработке бизнес-процесса создается роль и ставится в соответствие определенным узлам схемы. Инициализация роли – это назначение на роль конкретного исполнителя. Отношения соответствуют одному из используемых в системе RunaWFE способов инициализации ролей.

Меню "Бот станции". Боты в системе RunaWFE – это специальные компьютерные приложения, которые также как и люди могут быть исполнителями заданий. Бот-станция – это компьютерная среда, в которой функционируют боты. Находящиеся в бот-станции боты периодически опрашивают RunaWFE - сервер. Если выполняющиеся на сервере экземпляры бизнес-процессов содержат задачи для исполнителей - ботов, то боты выполняют эти задачи и возвращают результаты работы на RunaWFE - сервер. На странице, соответствующей пункту меню "Бот станции", находится список зарегистрированных бот-станций. Здесь пользователь может посмотреть свойства бот-станций состояния бот-станций, свойства входящих в бот-станцию ботов, а также задач, которые они могут выполнять. Также в меню "Бот станции" можно завести новую бот-станцию, изменить параметры бот-станции, запустить/остановить периодическую активацию бот-станции, а также изменять свойства входящих в бот-станцию ботов. В частности можно добавить новое задание боту, или изменить/удалить уже существующее задание.

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

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

Лекция 3. Стандарты и концепции, связанные с СУБПиАР

Цель лекции: Рассказать про некоторые связанные с СУБПиАР стандарты, а также про роли и их инициализацию, замещение исполнителей заданий и другие используемые в курсе понятия.

Графические нотации BPMN и UML Activity Diagram.

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

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

Наиболее известными графическими нотациями изображения бизнес-процессов являются:

В работе Stephen A. White Process Modeling Notations and Workflow Patterns1), посвященной сравнению выразительной мощи UML AD и BPMN нотаций, основанной на реализациях с помощью этих нотаций типичных конструкций бизнес-процессов, содержится вывод, что выразительная мощь основных конструкций обеих нотаций примерно одинакова. Позже этот результат был подтвержден в более полном исследовании: Lauri Eloranta, Eero Kallio, Ilkka Terho A Notation Evaluation of BPMN and UML Activity Diagrams2).

Рассмотрим базовые элементы обеих нотаций, относящиеся к перспективе управления потоком.

Базовые элементы нотации UML AD, относящиеся к перспективе управления потоком:

Узел-Действие:

 Узел-Действие


Рис. 3.1.  Узел-Действие

Маршрутные узлы.

Ветвление - Узел выбора направления дальнейшего движения точки управления:

Ветвление


Рис. 3.2.  Ветвление

Разделение - Разделение точки управления на несколько точек управления:

Разделение


Рис. 3.3.  Разделение

Слияние - Слияние точек управления в одну точку управления:

Слияние


Рис. 3.4.  Слияние

Базовые элементы нотации BPMN, относящиеся к перспективе управления потоком:

Узел-Действие:

Узел-действие


Рис. 3.5.  Узел-действие

Маршрутные узлы.

В BPMN существует единая форма для маршрутного узла, представляющая собой ромбик:

Маршрутный узел


Рис. 3.6.  Маршрутный узел

Конкретные маршрутные узлы отличаются изображенными внутри этой формы иконками.

Ветвление - Узел выбора направления дальнейшего движения точки управления:

Ветвление


Рис. 3.7.  Ветвление

Внутри ромбика содержится иконка – "крестик".

Разделение - Разделение точки управления на несколько точек управления:

Разделение


Рис. 3.8.  Разделение

Внутри ромбика содержится иконка – "плюсик".

Слияние - Слияние точек управления в одну точку управления:

Слияние


Рис. 3.9.  Слияние

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

Сравнение графических нотаций

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

Однако UML AD нотация проще для изучения неподготовленным пользователем, она интуитивно понятна. UML AD нотация использует хотя и не универсальные, но широко известные графические элементы. Например, в ней для выбора одного из нескольких направлений используется "ромбик". А параллельно выполняющиеся узлы-действия в UML AD нотации как правило соединены с элементами – разделениями-слияниями параллельными линиями, что интуитивно соответствует одновременно выполняющимся действиям.

В UML AD нотации изображение процессов очень похоже на блок-схемы, которые изучаются в российских технических ВУЗах и техникумах. В начальной школе при изучении математики в некоторых учебниках также активно используются те же блок-схемы . То есть многим российским пользователям изображения в UML AD нотации сразу будут интуитивно понятны, а для понимания изображений в BPMN нотации придется потратить время и усилия на ее изучение.

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

Пример процесса "заявка на платеж" в UML-нотации:

Пример процесса "заявка на платеж" в UML-нотации


Рис. 3.10.  Пример процесса "заявка на платеж" в UML-нотации

Пример процесса "заявка на платеж" в BPMN-нотации:

Пример процесса "заявка на платеж" в BPMN-нотации


Рис. 3.11.  Пример процесса "заявка на платеж" в BPMN-нотации

Для того чтобы объяснять схемы несложных бизнес-процессов, нарисованные в UML AD нотации не требуется много усилий. В случае же BPMN нотации требуются учебные курсы и различные консультации.

Кратко преимущества нотаций можно сформулировать так:

Преимущества UML нотации относительно BPMN для российских пользователей.

Преимущества BPMN нотации.

Замещение исполнителей заданий

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

В таких случаях используется замещение пользователей – задание перенаправляется другому пользователю. Используя замещение пользователей можно добиться того, что надежность работы СУБПиАР будет выше надежности работы составляющих ее элементов (людей).

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

Оба этих решения неудобны: Организационная структура предприятия является отдельной сущностью и помещать ее в СУБПиАР нежелательно, т.к. она также используется в других системах предприятия (ERP, CRM и т.п.). В случае использования программного кода бизнес-процесс становится неудобным для модификации, т.к. для изменения замещения, как правило, требуется привлекать программиста.

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

Поэтому механизм замещения исполнителей заданий предлагается основать на наборах правил замещения, относящихся не к бизнес-процессам, а к пользователям СУБПиАР: Для каждого пользователя составляется упорядоченный набор правил замещения, которые последовательно просматриваются до тех пор, пока либо не будет найдено подходящее правило замещения, либо будет выяснено, что ни одного подходящего правила нет.

Описание правила назначения заместителя.

Правило содержит функцию над организационной структурой предприятия, которая возвращает заместителя.

Каждое правило имеет следующие параметры:

Применение правил замещения Пользователя.

У пользователя может быть одно из двух состояний:

Механизм замещения применяется только к пользователям, имеющим статус "не активен". В этом случае из списка правил будут выбраны все правила замещения, относящиеся к данному пользователю, далее из этих правил будет выбрано первое по порядку правило, которое применимо (выполняется формула в "Применимо ли правило") и заместитель в котором имеет статус "Активен". В список заданий этого пользователя (заместителя) и будет перенаправлено данное задание.

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

Реализация механизма замещения одних исполнителей заданий другими

В системе в свойствах пользователя предлагается задать набор правил замещения. Для конкретного пользователя правило замещения будет состоять из двух частей:

Интерфейс работы с правилами замещения


увеличить изображение

Рис. 3.12.  Интерфейс работы с правилами замещения

При формировании списка заданий правила замещения, относящиеся к данному пользователю, просматриваются сверху вниз до тех пор, пока либо не будет найдено первое по порядку подходящее правило замещения (в котором выполняется условие в "критерии" и заместитель имеет статус "Активен"), либо будет выяснено, что ни одного подходящего правила нет.

В список заданий этого пользователя (заместителя) и будет перенаправлено данное задание.

Использование концепции бинарных отношений над множествами для упрощения процедуры инициализации ролей

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

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

Реализация компонентов-инициализаторов ролей бизнес-процессов является одной из самых неудобных и трудоемких проблем при внедрении систем управления бизнес-процессами и административными регламентами на предприятиях.

Традиционных подходов к реализации инициализатора роли два:

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

У обоих этих подходов есть существенные неудобства.

Использование математического понятия "бинарное отношение" для решения проблемы

Использование понятия чистой математики — "бинарного отношения" позволяет разработать очень простое, но весьма эффективное решение задачи построения инициализатора роли.

Бинарное отношение можно рассматривать как обобщение понятия функция.

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

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

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

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

При использовании бинарных отношений над множеством исполнителей задач бизнес-процесса процедура назначения возможных исполнителей задания становится очень простой и ее легко реализовать прямо в СУБПиАР. Кроме того, это дает возможность инициализировать роль сразу множеством возможных исполнителей заданий: Часто в бизнес-процессе задание направляется не одному исполнителю, а множеству возможных исполнителей задания. Выполняет это задание тот пользователь, который первым возьмет его на исполнение.

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

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

Использование групп пользователей при задании отношений

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

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

Зададим отношение в СУБПиАР как множество пар (исполнитель1, исполнитель2), в которых исполнитель является пользователем или группой пользователей.

Инициализацию роли при помощи данного отношения предлагается производить при помощи следующего алгоритма:

  1. Из указанной в инициализаторе роли переменной бизнес-процесса берется ее значение-исполнитель – имя пользователя или группы пользователей. Это значение будет соответствовать правой части отношения.
  2. Строится множество значений всех левых частей отношения, соответствующих данному элементу правой части. Делается это так: Для исполнителя – значения правой части отношения находятся все группы, в которые он входит (хотя бы в одну из их подгрупп). Далее находятся все пары определенные в СУБПиАР для данного отношения, у которых в правой части стоит исполнитель или одна из найденных групп. Далее рассматривается множество всех левых частей этих пар.

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

Пример реализация концепции бинарных отношений

В главное меню СУБПиАР RunaWFE был добавлен пункт - Отношения (в английской локализации - Relations).

Интерфейс работы с бинарными отношениями


Рис. 3.13.  Интерфейс работы с бинарными отношениями

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

Для каждого исполнителя в его свойствах добавлены два раздела:

Интерфейс работы с бинарными отношениями в свойствах пользователя


Рис. 3.14.  Интерфейс работы с бинарными отношениями в свойствах пользователя

Каждое отношение можно открыть и отредактировать множество исполнителей в другой части отношения

Интерфейс работы с бинарным отношением


Рис. 3.15.  Интерфейс работы с бинарным отношением

Работа с отношениями в среде разработки

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

Интерфейс работы с бинарными отношениями в редакторе бизнес-процессов


Рис. 3.16.  Интерфейс работы с бинарными отношениями в редакторе бизнес-процессов

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

Задание параметра отношения


Рис. 3.17.  Задание параметра отношения

Концепция ботов и бот-станций

Исполнителями заданий в современных СУБПиАР могут быть как люди, так и компьютерные приложения.

Часто в инструментальных решениях для управления бизнес-процессами узлы, в которых задание выполняет компьютерное приложение, отмечаются на схеме бизнес-процесса специальным образом (отличным от узлов, в которых задание выполняет человек), а роль в таких узлах всегда задается одинаково, например - "система".

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

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

Введем понятие бота для СУБПиАР. Бот соответствует элементу логической группировки заданий, выполняемых компьютерными системами. Используя ботов при работе с бизнес-процессами управленец может мыслить в терминах автоматических исполнителей и их областях компетенции.

Для ботов вводится понятие прав на выполняемые действия (аналогичные правам людей-пользователей). Поэтому боты, также как люди, во время своей работы аутентифицируются в СУБПиАР, после чего СУБПиАР проводит их авторизацию при совершении операций.

Для работы ботов была предложена специальная среда - бот-станция, которая организует их взаимодействие с СУБПиАР. Как правило, бот-станция соответствует серверу, на котором размещены боты. Находящиеся в бот-станции боты обращаются к среде исполнения бизнес-процессов СУБПиАР. Если выполняющиеся на сервере экземпляры бизнес-процессов содержат задачи для ботов, то боты выполняют эти задачи и возвращают результаты работы в среду исполнения бизнес-процессов.

Пример реализации концепции ботов и бот-станций в системе RunaWFE

Настройка бот-станций и ботов производится через меню "Бот станции".

Интерфейс работы с бот-станциями


увеличить изображение

Рис. 3.18.  Интерфейс работы с бот-станциями

Пользователь имеет доступ к меню "Бот станции", если у него есть права на чтение бот-станций. Если прав на чтение бот-станций у пользователя нет, то пункт меню "Бот станции" интерфейсе пользователя будет отсутствовать. Для изменения настроек бот-станций необходимо иметь права "Конфигурировать бот-станцию".

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

Интерфейс работы с ботами


увеличить изображение

Рис. 3.19.  Интерфейс работы с ботами

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

Интерфейс работы с задачами ботов


увеличить изображение

Рис. 3.20.  Интерфейс работы с задачами ботов

Проблема "взрывного" роста количества точек управления в экземпляре бизнес-процесса

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

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

Появление последовательно движущихся точек управления


Рис. 3.21.  Появление последовательно движущихся точек управления

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

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

На рис. 3.22 показан пример участка схемы бизнес-процесса с быстро возрастающим количеством точек управления.

Участок схемы с быстро возрастающим количеством точек управления


Рис. 3.22.  Участок схемы с быстро возрастающим количеством точек управления

Возможные подходы к решению проблемы

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

А. Можно попытаться разработать критерии, применение которых к схеме бизнес-процесса на этапе его проектирования (в редакторе бизнес-процессов) приведет к одному из следующих значений критерия:

  1. В данной схеме не возможна ситуация с бесконечно возрастающим количеством точек управления
  2. В данной схеме обязательно возникнет ситуация с бесконечно возрастающим количеством точек управления
  3. В данной схеме может (но не обязательно) возникнуть ситуация с бесконечно возрастающим количеством точек управления в зависимости от значений задаваемых данных

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

Б. Можно разработать критерии, применение которых на этапе исполнения позволит определить "опасные" экземпляры бизнес-процессов. Тогда СУБПиАР сможет автоматически остановить выполнение этих экземпляров и таким образом не допустить прекращения работы системы от недопустимой нагрузки.

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

В качестве примера критерия подхода Б можно предложить следующую процедуру: На этапе проектирования для каждого определения бизнес-процесса устанавливается максимально возможное количество точек управления в экземпляре бизнес-процесса. Если во время исполнения экземпляра эта величина будет превышена, то СУБПиАР автоматически остановит выполнение этого экземпляра и даст сигнал администратору системы о возникновении нештатной ситуации.

У данного критерия мы видим два недостатка.

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

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

Пример схемы с парными разделениями и слияниями без взаимной однозначности


Рис. 3.23.  Пример схемы с парными разделениями и слияниями без взаимной однозначности

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

Бизнес-процесс организации конференции


увеличить изображение

Рис. 3.24.  Бизнес-процесс организации конференции

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

Лекция 4. Разработка исполнимых бизнес-процессов - появление новой парадигмы программирования

Цель лекции: Обосновать возможность подхода к разработке исполнимых бизнес-процессов как к новой парадигме программирования. Рассказать о приемах, применяемых при разработке исполнимых бизнес-процессов.

Новая парадигма программирования

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

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

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

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

Эти преимущества (быстрее, дешевле, легче в поддержке и сопровождении) совпадают c преимуществами парадигмы объектно-ориентированного программирования по сравнению с парадигмой процедурного программирования. По аналогии мы можем назвать деятельность по проектированию исполнимых бизнес-процессов новой парадигмой программирования относительно традиционного подхода.

Понятие парадигма рассматривается в данном случае в терминах концепции парадигм программирования Роберта Флойда , которая является расширением концепции парадигм Томаса Куна, предложенной в работе "Структура научных революций" .

Внедрение СУБПиАР на предприятии приводит к появлению единого для всех менеджеров предприятия языка для работы с бизнес-процессами, основанного на графических диаграммах. После освоения этого языка работники предприятия могут быстро читать существующие определения бизнес-процессов, разбираться в состояниях выполняющихся экземпляров бизнес-процессов, бизнес-аналитики могут производить быстрые изменения и разработку новых бизнес-процессов.

В последние годы исполнимые бизнес-процессы активно внедряются как в бизнесе, так и в государственных организациях. Однако, автоматизация на основе исполнимых бизнес-процессов требует от специалистов процессного мышления, отличающегося от мышления ИТ-специалистов по традиционной автоматизации предприятий. Кроме знания нотаций описания бизнес-процессов и интерфейсов СУБПиАР, бизнес-аналитики должны уметь реализовывать в виде исполнимых бизнес-процессов типичные ситуации в бизнесе. Всвязи с этим появляется задача обучения специалистов как экономических специальностей, так и специальностей, связанных с информационными технологиями, процессному подходу, разработке исполнимых бизнес-процесов и работе с СУБПиАР.

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

Правила разработки исполнимых бизнес-процессов

Формулировки, используемые в названиях узлов схемы бизнес-процессов, соответствующих действиям исполнителей

Наименование узла, в котором дается задание исполнителю, в большинстве СУБП также является названием задания, которое отображается пользователю. Задания нужно формулировать так, чтобы они были максимально понятны исполнителю. Если задание непонятно, то у исполнителя уйдет много усилий и времени на его интерпретацию, возможно задание будет исполнено не так, как планировал разработчик бизнес-процесса.

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

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

Размер схемы бизнес-процесса

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

Направления движения точек управления по схеме бизнес-процесса

Бизнес-аналитику комфортно анализировать перемещения точек управления по схеме бизнес-процесса, когда общее движение точек управления соответствует перемещению области, на которую смотрит человек при чтении текстов. Поэтому желательно так располагать узлы схемы бизнес-процессов, чтобы общее движение точек управления по ним было слева-направо или сверху-вниз. Пример общего движения точек управления слева-направо приведен на рис. 4.2. Пример общего движения точек управления сверху-вниз приведен на рис. 4.8.

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

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

 Схема с движением точек управления слева-направо - сверху-вниз


Рис. 4.1.  Схема с движением точек управления слева-направо - сверху-вниз

Отказ от использования ролей в виде дорожек на схеме бизнес-процесса

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

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

Нотация BPMN позволяет не рисовать дорожки на схеме. Однако при анализе схемы бизнес-процесса информация о связанной с узлом роли очень важна. Поэтому предлагается помещать название роли на графический элемент узла-действия схемы бизнес-процесса. Графическая нотация UML AD позволяет помещать название роли над именем узла-действия в круглых скобках. В нотации BPMN такой возможности нет, однако мы предлагаем даже в случае BPMN нотации располагать название роли в круглых скобках в верхней части графического элемента узла-действия и считать его префиксом названия узла. Этот прием будет использован в приведенных в настоящей лекции схемах бизнес-процессов.

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

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

 "Интуитивная" реализация действия, выполняемого одновременно двумя лицами


Рис. 4.2.  "Интуитивная" реализация действия, выполняемого одновременно двумя лицами

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

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

Если же сотрудник, подписывающий документ, сначала пойдет к сотруднику, у которого находится документ, то задание у второго сотрудника появится только после того, как первый сотрудник вернется на свое рабочее место и отметит выполнение задания. Это может произойти через длительное время после реального выполнения задания и второй сотрудник может уже не помнить, получил ли он подпись на документ от первого сотрудника. Кроме того, в момент прихода первого сотрудника, второй сотрудник не будет уверен, должен ли оно вообще что-то давать подписывать первому сотруднику, т. к. у него не будет никакого относящегося к этому задания. Поэтому предлагается использовать другое решение: На схеме бизнес-процесса узлы, в которых даются задания двум исполнителям, располагаются не последовательно, а параллельно, то есть они находятся в параллельных ветках (см. рис. 4.3).

Правильная реализация действия, выполняемого одновременно двумя лицами


Рис. 4.3.  Правильная реализация действия, выполняемого одновременно двумя лицами

Вынесение второстепенных действий в параллельную ветку

Рассмотрим случай, когда несколько действий подряд должны быть выполнены одновременно двумя исполнителями. Практика работы с исполнимыми бизнес-процессами показывает, что роли должностных лиц, такие как "Бухгалтер" или "Кассир", соответствуют "ответственным" сотрудникам, а роли "Сотрудник" или "Подавший заявку" - гораздо менее "ответственным" сотрудникам, которые могут неделями не отмечать выполнение заданий.

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

Неправильная реализация бизнес-процесса со второстепенными действиями


Рис. 4.4.  Неправильная реализация бизнес-процесса со второстепенными действиями

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

Правильная реализация бизнес-процесса со второстепенными действиями


увеличить изображение

Рис. 4.5.  Правильная реализация бизнес-процесса со второстепенными действиями

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

Нотация BPMN позволяет использовать в схемах бизнес-процессов элементы разделения без парных им элементов - слияний. В этом случае для удаления выполнивших свою задачу точек управления можно использовать элемент - событие завершения потока управления. (На рис. 4.6 приведен пример такой схемы, эквивалентной схеме, представленной на рис. 4.5 Однако, по нашему мнению, предпочтительной схемой является схема с парными разделениями и слияниями, так как такие схемы, несмотря на большее число содержащихся в них элементов, являются более понятными.

Другая реализация бизнес-процесса со второстепенными действиями


Рис. 4.6.  Другая реализация бизнес-процесса со второстепенными действиями

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

Пример схемы бизнес-процесса с тремя вложенными парами разделений - слияний


увеличить изображение

Рис. 4.7.  Пример схемы бизнес-процесса с тремя вложенными парами разделений - слияний

Расположение парных разделений-слияний и переходов, их соединяющих

Разделения и парные им слияния удобно располагать на одной горизонтальной или вертикальной линии, чтобы на схеме бизнес-процесса для одного элемента можно было бы легко найти парный ему элемент. Примеры таких расположений представлены, например, на рис. 4.5, рис. 4.7. На рис. 4.8 линии, на которых расположены парные разделения – слияния, выделены желтым цветом.

Схема бизнес-процесса на которой линии расположения парные разделений – слияний, выделены желтым цветом


Рис. 4.8.  Схема бизнес-процесса на которой линии расположения парные разделений – слияний, выделены желтым цветом

Желательно, чтобы линии переходов, соответствующих одновременно выполняющимся потокам действий, были параллельными. Это увеличивает понятность схемы, так как бизнес-аналитику проще представить параллельно расположенные на схеме последовательности действий как "параллельно" выполняющиеся. Примеры таких расположений также представлены на рис. 4.5, рис. 4.7, рис. 4.8.

Решения с непарными разделениями - слияниями

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

Он состоит из следующих действий:

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

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

Использование элемента "окончание бизнес-процесса"

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

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

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

Схема бизнес-процесса, реализующая согласование документа


Рис. 4.9.  Схема бизнес-процесса, реализующая согласование документа

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

Пример "компромиссного" решения по разделениям-слияниям и использованию элемента "завершение потока управления"

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

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

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

В случае, если данные верифицированы, далее задание "Определить риски" выполняет Сотрудник скорингового центра. В форме задания он выбирает один из двух вариантов - Риски приемлемы / Риски не приемлемы. В случае, если риски не приемлемы, Операционист знакомится с информацией об отказе в оформлении данного кредита, SMS-шлюз выполняет задание "Уведомить об отказе", после этого бизнес-процесс завершается.

В случае, если риски приемлемы, далее задание "Произвести проверку СБ" выполняет сотрудник службы безопасности. В форме задания он вводит результат проверки - один из четырех вариантов: "Отлично", "Хорошо", "Удовлетворительно", "Не удовлетворительно". В случае неудовлетворительного результата далее Операционист знакомится с информацией об отказе в оформлении данного кредита, SMS-шлюз выполняет задание "Уведомить об отказе".

Если результат не равен "Не удовлетворительно", то далее задание "Принять решение по кредиту" выполняет кредитный менеджер. Если он принял положительное решений, то

Оператор колл-центра информирует клиента о положительном решении по кредиту, одновременно Операционист выполняет задание "Оформить кредит", далее Бухгалтер выполняет задание "Зачислить средства". После этого бизнес-процесс завершается.

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

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

На рис. 4.10 приведено "компромиссное" решение данной задачи. Оно содержит как парные разделения и слияния, так и непарное разделение, а также как узел окончания бизнес-процесса, так и два узла завершения потоков управления. Так получается потому, что в случае отказа кредитного менеджера появляется еще один исполнитель, которого надо проинформировать об отказе.

Схема бизнес-процесса розничного кредитования банка


увеличить изображение

Рис. 4.10.  Схема бизнес-процесса розничного кредитования банка

Использование алгоритмов в схеме бизнес-процесса

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

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

Схема бизнес-процесса, решающего задачу об игре в камешки


увеличить изображение

Рис. 4.11.  Схема бизнес-процесса, решающего задачу об игре в камешки

Лекция 5. Изучение интерфейса системы RunaWFE

Цель занятия: целью занятия является ознакомление с Web-интерфейсом системы RunaWFE и графическим редактором бизнес-процессов.

Порядок выполнения работы

1. Запустите RunaWFE симулятор, для этого дважды кликните по ярлыку "Start Simulation" на рабочем столе, или выполните команду меню Пуск / Программы / RunaWFE / Start Simulation. Появится консольное окно (рис. 5.1).

Окно RunaWFE симулятора


увеличить изображение

Рис. 5.1.  Окно RunaWFE симулятора

Строки "…JBoss AS 7.1.1.Final "Brontes" started in …" "…INFO [org.jboss.as.server] … Deployed "runawfe.ear" означают, что симулятор запущен.

2. После того, как RunaWFE симулятор запустится, кликните на ярлыке "Simulation Web Interface" (Или выполните команду Пуск / Программы /RunaWFE / Simulation Web Interface). Откроется окно браузера (рис. 5.2).

Форма аутентификации пользователя


Рис. 5.2.  Форма аутентификации пользователя

3. В поле "Пользователь" введите Administrator, а в поле "Пароль" - wf и нажмите кнопку "Войти". Появится web-интерфейс системы RunaWFE (рис. 5.3).

Замечание. Web-интерфейс - это графический интерфейс пользователя, доступ к которому осуществляется через окно браузера.

Web-интерфейс системы RunaWFE


увеличить изображение

Рис. 5.3.  Web-интерфейс системы RunaWFE

4. Перейдите к списку исполнителей кликнув по ссылке "Исполнители" в левой части экрана. Откроется список исполнителей (рис. 5.4).

Список исполнителей


увеличить изображение

Рис. 5.4.  Список исполнителей

5. Создайте группу пользователей "Сотрудники". Для этого кликните "Создать группу", Откроется интерфейс создания группы (рис. 5.5).

Интерфейс создания группы пользователей


увеличить изображение

Рис. 5.5.  Интерфейс создания группы пользователей

6. Введите в поле "Имя" слово "Сотрудники", также добавьте описание этой группы, после чего нажмите кнопку "Применить"

7. Далее перейдите на вкладку "Система", кликнув по надписи "Система" в нижней части меню. Откроется интерфейс "Обладатели полномочий" (рис. 5.6).

Форма распределения полномочий


увеличить изображение

Рис. 5.6.  Форма распределения полномочий

8. Добавьте созданную Вами группу в этот список. Для этого кликните по ссылке "Добавить". Откроется список (рис. 5.7), в котором найдите группу "Сотрудники". Установите напротив этой группы галочку и нажмите "Добавить".

Форма добавления пользователей в список для установления полномочий


увеличить изображение

Рис. 5.7.  Форма добавления пользователей в список для установления полномочий

9. Теперь необходимо выдать группе полномочия. Для этого кликните по надписи "Система", напротив группы "Сотрудники" и поставьте галочки в столбцах: "Читать", "Входить", "Загружать определение процесса", как показано на рис. 5.8, после чего нажмите кнопку "Применить".

Форма распределения полномочий с добавленными пользователями


увеличить изображение

Рис. 5.8.  Форма распределения полномочий с добавленными пользователями

10. Далее создайте учетные записи пользователей "Сверчков" и "Паучков". Для создания учетной записи "Сверчков" откройте интерфейс "Исполнители" и кликните по надписи "Создать пользователя". Откроется форма для ввода данных пользователя. В поле "Имя" введите "Сверчков", в поле "Полное имя" введите "Сверчков Иван Иванович", остальные поля заполнять необязательно (рис. 5.9).

Форма создания учетной записи пользователя


Рис. 5.9.  Форма создания учетной записи пользователя

11. По окончании заполнения полей формы нажмите кнопку "Применить". Для правки учетной записи откройте меню "Исполнители". Найдите исполнителя "Сверчков" и кликните по нему. Откроется интерфейс редактирования учетной записи (рис. 5.10).

Расширенная форма правки учетной записи пользователя


Рис. 5.10.  Расширенная форма правки учетной записи пользователя

В разделе "Свойства исполнителя" содержится базовое описание пользователя.

В графе "Статус" устанавливается статус пользователя ("Активен" или "Не активен"). Его изменяют в случае, если сотрудник должен быть на рабочем месте, либо не может на нем появиться в силу каких-либо обстоятельств.

В графе "Пароль" введите пароль для пользователя "Сверчков" (например - 123), знать старый пароль пользователя при этом не требуется. Затем нажмите "Применить". В разделе "Группы пользователя" кликните надпись "Добавить" и в открывшемся списке поставьте галочку напротив группы "Сотрудники", после чего нажмите кнопку "Добавить".

12. Кликните на ссылку "Обладатели полномочий" в верхней части формы (рис. 5.11).

Ссылка "Обладатели полномочий"


Рис. 5.11.  Ссылка "Обладатели полномочий"

13. Добавьте в список обладателей полномочий группу "Сотрудники" с правами только на чтение (рис. 5.12).

Установка прав на чтение группе "Сотрудники" на пользователя "Сверчков"


увеличить изображение

Рис. 5.12.  Установка прав на чтение группе "Сотрудники" на пользователя "Сверчков"

Настройка учетной записи пользователя "Сверчков" завершена.

14. Аналогичным образом создайте и настройте учетную запись "Паучков" (Паучков Петр Петрович).

15. Запустите компонент системы RunaWFE - "Среда разработки". Для этого кликните на ярлык "Process Designer" на рабочем столе, или выполните команду меню Пуск / Программы / RunaWFE / Process designer. Появится окно среды разработки (рис. 5.13).

Среда разработки


Рис. 5.13.  Среда разработки

16. Создайте новый проект - "Вводное занятие" (рис. 5.14).

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


Рис. 5.14.  Создание нового проекта

17. Создайте простейший бизнес-процесс (рис. 5.15).

Создание нового бизнес-процесса


Рис. 5.15.  Создание нового бизнес-процесса

18. Введите название процесса – Процесс1, в качестве языка выберите BPMN (рис. 5.16)

Форма создания нового процесса


Рис. 5.16.  Форма создания нового процесса

19. Поместите на схему бизнес-процесса узел - начало бизнес-процесса, узел-действие и узел-окончание. Кликните на элемент "Выбрать" в палитре. Будет установлен режим выбора. В этом режиме каждый узел надо поместить на схему при помощи клика на элемент, расположенный в палитре и последующего клика на место в схеме, в которое требуется поместить новый элемент (рис. 5.17).

Создание схемы бизнес-процесса


увеличить изображение

Рис. 5.17.  Создание схемы бизнес-процесса

Для удобства расположения объектов можно использовать "сетку" (устанавливается в меню вид - показать сетку).

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

Создание переходов


Рис. 5.18.  Создание переходов

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

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


Рис. 5.19.  Изменение формы перехода

21. Создайте роль (которая будет в дальнейшем связана с узлом-началом и узлом "Действие 1"). Для этого кликните на вкладку роли, в появившемся окне выполните команду "создать", далее в появившейся форме введите "Роль1". Нажмите "OK" (рис. 5.20).

Создание роли без инициализатора


увеличить изображение

Рис. 5.20.  Создание роли без инициализатора

22. Свяжите роль "Роль1" с узлом-началом и с узлом "Действие 1". Для этого кликните правой кнопкой мыши на каждый узел и выберите "Роли/Роль1" (рис. 5.21).

Связывание узла с ролью исполнителя задания


увеличить изображение

Рис. 5.21.  Связывание узла с ролью исполнителя задания

23. Простейший бизнес-процесс готов. Экспортируйте его в файл-архив командой "Файл/Экспорт процесса" (См. рис. 5.22) и поместите в папку "рабочий стол".

Экспорт бизнес-процесса в файл-архив


увеличить изображение

Рис. 5.22.  Экспорт бизнес-процесса в файл-архив

24. Войдите в web-интерфейс системы RunaWFE под пользователем Administrator.

Загрузите разработанный бизнес-процесс на RunaWFE сервер:

25. Кликните на пункт меню "Запустить процесс", затем кликните на ссылку "Загрузить определение процесса" (рис. 5.23).

Команда "Загрузить определение процесса"


Рис. 5.23.  Команда "Загрузить определение процесса"

26. В появившейся форме кликните на "Загрузить файл" и выберите файл "Процесс1.par", который был сохранен на рабочий стол. В поле "создайте свой тип" введите "Занятие1" (рис. 5.24).

Окно команды "Загрузить определение процесса"


Рис. 5.24.  Окно команды "Загрузить определение процесса"

27. Кликните на "Загрузить определение процесса". Разработанный бизнес-процесс "Процесс1" будет загружен на RunaWFE сервер (рис. 5.25).

Бизнес-процесс загружен на RunaWFE сервер


увеличить изображение

Рис. 5.25.  Бизнес-процесс загружен на RunaWFE сервер

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

28. Кликните на поле "Свойства" в строке бизнес-процесса. В появившемся окне кликните на ссылку "Обладатели полномочий" (рис. 5.26).

Форма свойств бизнес-процесса


увеличить изображение

Рис. 5.26.  Форма свойств бизнес-процесса

29. Кликните на ссылку "Добавить", в появившемся окне обладателей полномочий на определение разработанного бизнес-процесса (рис. 5.27).

Окно обладателей полномочий на определение бизнес-процесса


увеличить изображение

Рис. 5.27.  Окно обладателей полномочий на определение бизнес-процесса

30. В появившейся форме поставьте в списке исполнителей галочки рядом с пользователем "Паучков" и группой "Сотрудники" и кликните на кнопке "Добавить" (рис. 5.28).

Окно добавления полномочий на определение бизнес-процесса


увеличить изображение

Рис. 5.28.  Окно добавления полномочий на определение бизнес-процесса

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

Окно обладателей полномочий на определение бизнес-процесса


увеличить изображение

Рис. 5.29.  Окно обладателей полномочий на определение бизнес-процесса

32. Кликните на кнопке "Применить".

Войдите на RunaWFE сервер под разными пользователями и исполните бизнес-процесс:

33. Кликните на ссылке выход в правой верхней части экрана (рис. 5.30).

Ссылка "Выход"


Рис. 5.30.  Ссылка "Выход"

34. Войдите в систему как пользователь "Сверчков" (рис. 5.31).

Вход в систему


Рис. 5.31.  Вход в систему

35. Кликните на пункт меню "Запустить процесс" (рис. 5.32).

Окно для работы с определениями процессов и запуска экземпляров процессов


увеличить изображение

Рис. 5.32.  Окно для работы с определениями процессов и запуска экземпляров процессов

36. Проверьте, что в появившейся форме содержится разработанный бизнес-процесс "Процесс1", который нельзя запустить (его иконка и ссылка в поле "Имя" неактивны), но можно посмотреть его свойства, кликнув по ссылке в поле "Свойства". Так происходит потому, что мы установили права на процесс "Процесс1" для группы "сотрудники", в которую входит пользователь "Сверчков" только на чтение. Для самого пользователя "Сверчков" или для каких-то других содержащих его групп права на "Процесс1" не установлены.

37. Кликните на ссылке выход. Войдите в систему под пользователем "Паучков" (рис. 5.33).

Вход в систему


Рис. 5.33.  Вход в систему

38. Проверьте, что у пользователя "Паучков" есть права на запуск бизнес-процеса "Процесс1". (иконка процесса и ссылка в поле "Имя" активны).

39. Кликните на иконке бизнес-процесса. - В верхней части экрана появится надпись "Экземпляр процесса запущен, рядом с которой будет находиться номер запущенного бизнес-процесса (рис. 5.34).

Запуск бизнес-процесса на исполнение


увеличить изображение

Рис. 5.34.  Запуск бизнес-процесса на исполнение

40. Кликните на пункт меню "Запущенные процессы". Найдите в появившемся окне строку, соответствующую запущенному экземпляру бизнес-процесса - в ней число в поле номер должно совпадать с тем, которое было отображено в сообщении о запуске экземпляра процесса (рис. 5.35).

Незавершенный экземпляр бизнес-процесса (нет даты завершения)


увеличить изображение

Рис. 5.35.  Незавершенный экземпляр бизнес-процесса (нет даты завершения)

41. Кликните в этой строке на номер бизнес-процесса. - Откроется форма экземпляра бизнес-процесса. В этой форме будет показано, что в процессе есть единственная точка управления, которая находится в узле "Действие 1", задание этого узла назначено пользователю "Паучков". Пользователь Паучков является исполнителем роли "Роль1". Также в форме находится схема экземпляра бизнес-процесса с отмеченными на ней маршрутами точек управления. Переходы и узлы, по которым прошли точки управления выделены зеленым, узлы-Действия, в которых находятся текущие точки управления, выделены жирной рамкой (рис. 5.36).

Форма экземпляра бизнес-процесса


увеличить изображение

Рис. 5.36.  Форма экземпляра бизнес-процесса

42. Кликните на строку меню "Список заданий". В появившейся форме найдите задание "Действие 1" (рис. 5.37)

Список заданий


увеличить изображение

Рис. 5.37.  Список заданий

43. Кликните на задание "Действие 1" в поле "Имя". Появится форма, содержащая сообщение "Форма задания не определена" (что означает - "для узла Действие 1 не была определена графическая форма") (рис. 5.38).

Форма задания (в случае отсутствия формы, подготовленной в среде разработки)


увеличить изображение

Рис. 5.38.  Форма задания (в случае отсутствия формы, подготовленной в среде разработки)

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

45. Войдите в меню "Запущенные процессы". Проверьте, что у экземпляра бизнес-процесса появилась дата завершения (рис. 5.39).

46. Войдите в форму экземпляра бизнес-процесса. Проверьте, что путь точки управления отмечен до узла-окончания бизнес-процесса.

Завершенный экземпляр бизнес-процесса (есть дата завершения)


увеличить изображение

Рис. 5.39.  Завершенный экземпляр бизнес-процесса (есть дата завершения)

Требования к содержанию и оформлению отчета

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

В отчете должны содержаться следующие выходные данные:

  1. Скриншоты основных действий, совершенных на занятии, с пояснениями
  2. Описание возникших при выполнении задания проблем и найденных путей их решения (не обязательно, только если возникли проблемы при выполнении задания)

Контрольные вопросы

  1. Из каких компонентов состоит система RunaWFE?
  2. Что такое Web-интерфейс? Обладает ли компонент "Среда разработки" системы RunaWFE Web-интерфейсом?
  3. Какие права нужны пользователю, чтобы он
    1. Мог запускать экземпляры данного бизнес-процесса
    2. Мог выполнять задания данного бизнес-процесса

Лекция 6. Изучение перспективы потока управления

Цель занятия: целью занятия является изучение перспективы потока управления

Теоретические сведения

Необходимые теоретические сведения изложены в лекциях 1 – 4.

Порядок выполнения работы

1. Запустите среду разработки. Для этого кликните на ярлык "Process Designer" на рабочем столе, или выполните команду меню Пуск / Программы / RunaWFE / Process designer. Появится окно среды разработки (см. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункт 15, рис. 5.13).

2. Создайте новый проект - "Занятие 1" (Подробнее см. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункт 16, рис. 5.14).

3. Создайте новый бизнес-процесс. Название процесса Пример 1-1. (Подробнее см. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункт 17, рис. 5.15).

4. Поместите на схему бизнес-процесса узел - начало бизнес-процесса, три узла-действия и узел-окончание: Кликните на элемент "Выбрать" в палитре. Будет установлен режим выбора. В этом режиме каждый узел надо поместить на схему при помощи клика на элемент, расположенный в палитре и последующего клика на место в схеме, в которое требуется поместить новый элемент (Подробнее см. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункт 19, рис. 5.17)

Создание схемы бизнес-процесса


увеличить изображение

Рис. 6.1.  Создание схемы бизнес-процесса

5. Поместите на схему бизнес-процесса линии-переходы, соединяющие начало, узлы - действия и окончание. Для этого надо кликнуть на элемент "Переход" в палитре. Будет установлен режим рисования переходов. В этом режиме создания каждого перехода надо сначала кликнуть в центр узла, в котором должен начаться переход, потом кликнуть в центр узла, в который должен закончиться переход. (Подробнее см. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункт 20, рис 5.18)

Замечание. Для того, чтобы "изогнуть" линии-переходы, надо в режиме "Выбрать" выделить кликом переход, найти в середине прямолинейного участка точку (см. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункт 20, рис. 5.19) и далее "тащить" ее мышкой в нужном направлении.

Добавление переходов


Рис. 6.2.  Добавление переходов

6. Введите названия для переходов из узла, в котором будет осуществляться выбор: Выделите переход, кликнув на него мышью, далее в окне свойства замените значение имени перехода по умолчанию ("tr1") на значение "Выбор1" (рис. 6.3). Выделите второй переход, выходящий из узла, в котором будет осуществляться выбор, замените значение имени перехода по умолчанию на значение "Выбор2"

Замечание. Метки с именами переходов на графе можно перемещать, для этого выделите название перехода и "перетащите" в необходимое место.

Изменение имени перехода


Рис. 6.3.  Изменение имени перехода

7. Создайте роль: Кликните правой кнопкой мыши на узел - Начало, в появившемся контекстном меню выберите "Роли / Создание роли без инициализатора" (рис. 6.4).

Создание роли без инициализатора


Рис. 6.4.  Создание роли без инициализатора

В появившейся форме ввода название роли оставьте без изменения предлагаемое по умолчанию название роли ("Роль1") и кликните "ОК" (рис. 6.5).

Форма ввода названия роли


Рис. 6.5.  Форма ввода названия роли

8. Свяжите роль "Роль1" со всеми узлами-действиями. Для этого кликните правой кнопкой мыши на каждый узел и выберите "Роли/Роль1" (Подробнее см. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункт 22, рис. 5.21)

9. Бизнес-процесс готов. Запустите RunaWFE симулятор, для этого сделайте двойной клик на ярлыке "Start Simulation" на рабочем столе, или выполните команду меню Пуск / Программы / RunaWFE / Start Simulation. (Подробнее см. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункт 1)

10. Войдите в web-интерфейс системы RunaWFE под пользователем Administrator. (см. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункт 2, рис. 5.2) Замечание. По умолчанию пароль пользователя Administrator - "wf".

11. Загрузите разработанный бизнес-процесс на RunaWFE сервер. Для этого войдите в среду разработки, кликните на разработанный бизнес-процесс, в меню выберите команду "Файл / Экспорт процесса" (рис. 6.6).

Команда экспорта бизнес-процесса


Рис. 6.6.  Команда экспорта бизнес-процесса

12. В появившейся форме выберите "экспорт на WFE сервер", затем кликните "Настройки соединения" (рис. 6.7).

Экспорт на WFE сервер


увеличить изображение

Рис. 6.7.  Экспорт на WFE сервер

13. В появившейся форме проверьте, что в поле "Имя компьютера" стоит "localhost", в поле "порт" - 8080, в поле "Логин" - "Administrator", в поле "Пароль" - "wf". Кликните на "Проверить соединение". После получения сообщения "Соединение проверено" кликните на "ОК". (рис. 6.8).

Настройки соединения с сервером


Рис. 6.8.  Настройки соединения с сервером

14. Кликните на ссылку "Синхронизация", потом кликните на "Готово" - бизнес-процесс "Пример 1-1" будет загружен на RunaWFE сервер

15. Войдите в Веб-интерфейс системы под пользователем Administrator, кликните на пункт меню "Запустить процесс", найдите в списке процессов бизнес-процесс "Пример 1-1" (рис. 6.9).

Бизнес-процесс "Пример 1-1" загружен на RunaWFE сервер


увеличить изображение

Рис. 6.9.  Бизнес-процесс "Пример 1-1" загружен на RunaWFE сервер

16. Запустите на бизнес-процесс "Пример 1-1" кликнув на имя, или иконку слева от него. - В верхней части экрана появится надпись "Экземпляр процесса запущен, рядом с которой будет находиться номер запущенного бизнес-процесса (см. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункт 39, рис. 5.34)

17. Кликните на пункт меню "Запущенные процессы". Найдите в появившемся окне строку, соответствующую запущенному экземпляру бизнес-процесса - в ней число в поле номер должно совпадать с тем, которое было отображено в сообщении о запуске экземпляра процесса (Подробнее см. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункт 40, рис. 5.35).

18. Кликните в этой строке на номер бизнес-процесса. - Откроется форма экземпляра бизнес-процесса. В этой форме будет показано, что в процессе есть единственная точка управления, которая находится в узле "Действие 1", задание этого узла назначено пользователю "Administrator". Пользователь "Administrator" является исполнителем роли "Роль1". Также в форме находится схема экземпляра бизнес-процесса с отмеченными на ней маршрутами точек управления. Переходы и узлы, по которым прошли точки управления выделены зеленым, узлы-Действия, в которых находятся текущие точки управления, выделены жирной рамкой (рис. 6.10). См. также Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункт 41, рис. 5.36.

Схема выполняющегося экземпляра бизнес-процесса "Пример 1-1"


Рис. 6.10.  Схема выполняющегося экземпляра бизнес-процесса "Пример 1-1"

19. Кликните на строку меню "Список заданий". В появившейся форме найдите задание "Действие 1" (См. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункт 42, рис. 5.37)

20. Кликните на задании "Действие 1" в поле "Имя". Появится форма, содержащая сообщение "Форма задания не определена", что означает - "для узла Действие 1 не была определена графическая форма".

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

Выбор исходящего перехода


увеличить изображение

Рис. 6.11.  Выбор исходящего перехода

21. Кликните на кнопку "Выбор1". - В верхней части экрана появится сообщение "Задание выполнено". После этого точка управления перейдет в узел "Действие 2", а в списке заданий появится задание "Действие 2" (рис. 6.12)

Задание следующего узла


увеличить изображение

Рис. 6.12.  Задание следующего узла

22. Войдите в меню "Запущенные процессы". Найдите в появившемся окне строку, соответствующую запущенному экземпляру бизнес-процесса. Кликните на номере бизнес-процесса. Откроется форма экземпляра бизнес-процесса. В этой форме будет показано, что в процессе есть единственная точка управления, которая находится в узле "Действие 2", задание этого узла назначено пользователю "Administrator". Пользователь "Administrator" является исполнителем роли "Роль1". Также в форме находится схема экземпляра бизнес-процесса с отмеченными на ней маршрутами точек управления. Переходы и узлы, по которым прошли точки управления выделены зеленым, узлы-Действия, в которых находятся текущие точки управления, выделяются жирной рамкой (рис. 6.13)

Схема выполняющегося экземпляра бизнес-процесса "Пример 1-1"


Рис. 6.13.  Схема выполняющегося экземпляра бизнес-процесса "Пример 1-1"

23. Кликните на строку меню "Список заданий". В появившейся форме найдите задание "Действие 2", кликните на поле "Имя" этого задания. Появится форма, содержащая сообщение "Форма задания не определена" (что означает - "для узла Узел-Действие 2 не была определена графическая форма"). Кликните на кнопку "Задание исполнено". - В верхней части экрана появится сообщение "Задание выполнено". После этого точка управления перейдет в конечный узел бизнес-процесса и экземпляр бизнес-процесса будет завершен

24. Проверьте, что у экземпляра бизнес-процесса появилась дата завершения (Подробнее см. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункт 46, рис. 5.39)

25. Войдите в форму экземпляра бизнес-процесса. Проверьте, что путь точки управления отмечен до узла-окончания бизнес-процесса (рис. 6.14).

Схема завершенного экземпляра бизнес-процесса "Пример 1-1"


увеличить изображение

Рис. 6.14.  Схема завершенного экземпляра бизнес-процесса "Пример 1-1"

26. Запустите и доведите до конца еще один экземпляр бизнес-процесса. В форме выбора направления дальнейшего движения точки управления (Действие 1) выберите "Выбор2". После окончания экземпляра бизнес-процесса откройте свойства экземпляра и проследите путь точки управления по схеме бизнес-процесса.

Задания для самостоятельной работы

На основе бизнес-процесса "Пример 1-1" разработайте бизнес-процесс "Пример 1-2", схема которого изображена на рис. 6.15.

Схема бизнес-процесса "Пример 1-2" для самостоятельной разработки


Рис. 6.15.  Схема бизнес-процесса "Пример 1-2" для самостоятельной разработки

Бизнес-процесс "Пример 1-2" получается из бизнес-процесса "Пример 1-1" путем копирования, добавления элементов "Разделение" и "Слияние" и еще одного узла-действия. Обратите внимание на разницу между элементами, обозначающими Разделение и Слияние. "Разделение" всегда имеет больше одного исходящего перехода, "Слияние" же всегда имеет только один исходящий переход.

Для копирования бизнес-процесса "Пример 1-1":

1. Откройте среду разработки. Кликните правой кнопкой мыши на бизнес-процесс "Пример 1-1". В контекстном меню выберите "Копировать" (рис. 6.16)

Копирование бизнес-процесса


Рис. 6.16.  Копирование бизнес-процесса

2. В появившейся форме в качестве имени копии бизнес-процесса введите "Пример 1-2", выберите проект "Занятие 1". Кликните "Готово" (рис. 6.17)

Копирование бизнес-процесса "Пример 1-1" в "Пример 1-2"


Рис. 6.17.  Копирование бизнес-процесса "Пример 1-1" в "Пример 1-2"

3. Закройте бизнес-процесс "Пример 1-1" и откройте "Пример 1-2".

Внесите изменения в бизнес-процесс "Пример 1-2" в соответствии со схемой, изображенной на рис. 6.15. Загрузите бизнес-процесс "Пример 1-2" на RunaWFE сервер. Войдите в Веб-интерфейс системы под пользователем Administrator, запустите экземпляр бизнес-процесса "Пример 1-2" и выполните все задания (сделайте выбор "Выбор2" в узле "Действие 1"). Проверьте, что задания узлов "Действие 3" и "Действие 4" появятся в списке заданий одновременно.

На основе бизнес-процесса "Пример 1-2" разработайте бизнес-процесс "Пример 1-3", схема которого изображена на рис. 6.18.

Схема бизнес-процесса "Пример 1-3" для самостоятельной разработки


Рис. 6.18.  Схема бизнес-процесса "Пример 1-3" для самостоятельной разработки

4. Создайте данный процесс путем копирования процесса "Пример 1-2" и последующего удаления элементов схемы, согласно рис. 6.18

На основе бизнес-процесса "Пример 1-3" разработайте бизнес-процесс "Пример 1-4", схема которого изображена на рис. 6.19.

Схема бизнес-процесса "Пример 1-4" для самостоятельной разработки


Рис. 6.19.  Схема бизнес-процесса "Пример 1-4" для самостоятельной разработки

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

Ответьте на вопрос - Отличается ли поведение бизнес-процесса "Пример 1-4" от процесса "Пример 1-3" и чем?

На основе бизнес-процесса "Пример 1-4" разработайте бизнес-процесс "Пример 1-5", схема которого изображена на рис. 6.20.

Схема бизнес-процесса "Пример 1-5" для самостоятельной разработки


Рис. 6.20.  Схема бизнес-процесса "Пример 1-5" для самостоятельной разработки

Создайте данный процесс путем копирования процесса "Пример 1-4", замените элемент "Окончание" на "Завершение потока" согласно рис. 6.20

Ответьте на вопрос - Отличается ли поведение бизнес-процесса "Пример 1-5" от процесса "Пример 1-3" и чем?

На основе бизнес-процесса "Пример 1-5" разработайте бизнес-процесс "Пример 1-6", схема которого изображена на рис. 6.21.

Схема бизнес-процесса "Пример 1-6" для самостоятельной разработки


Рис. 6.21.  Схема бизнес-процесса "Пример 1-6" для самостоятельной разработки

Создайте данный процесс путем копирования процесса "Пример 1-5", измените элементы в соответствии с рис. 6.21.

Задайте конфигурацию исключающего шлюза. Для этого кликните на шлюз правой кнопкой мыши и выберите в появившемся контекстном меню пункт "Конфигурация". В открывшемся окне установите путь по умолчанию - "tr2", а для пути "tr1" используйте конфигурацию "Роль1" не равно null как показано на рис. 6.22.

Конфигурация исключающего шлюза в бизнес-процессе "Пример 1-6"


Рис. 6.22.  Конфигурация исключающего шлюза в бизнес-процессе "Пример 1-6"

Ответьте на вопрос - Отличается ли поведение бизнес-процесса "Пример 1-6" от процесса "Пример 1-3" и чем?

Разработайте бизнес-процесс "Пример 1-7", схема которого изображена на рис. 6.23.

Схема бизнес-процесса "Пример 1-7" для самостоятельной разработки


Рис. 6.23.  Схема бизнес-процесса "Пример 1-7" для самостоятельной разработки

Будет удобно создать его путем копирования процесса "Пример 1-3". Поместите на схему 2 элемента "Завершение потока", разместите их в соответствии с рис. 6.23.

Ответьте на вопрос - Отличается ли поведение бизнес-процесса "Пример 1-7" от процесса "Пример 1-3" и чем?

Обратите внимание, что при разработке бизнес-процессов такую конструкцию как в "Пример 1-7" использовать нежелательно. Предпочтительной схемой является схема с парными разделениями и слияниями, так как такие схемы являются более понятными, потому что участок схемы между разделением и парным ему слиянием можно мысленно декомпозировать (заменить подпроцессом) и таким образом разделить схему бизнес-процесса на две более простых.

Требования к представлению результатов занятия

В результате выполнения лабораторной работы должны быть представлены преподавателю отчет и файлы "Пример1-1.par" и "Пример1-2.par", содержащие разработанные на занятии бизнес-процессы.

В отчете должны содержаться следующие выходные данные:

  1. Скриншоты основных действий, совершенных на занятии, с пояснениями
  2. Описание возникших при выполнении задания проблем и найденных путей их решения (не обязательно, только если возникли проблемы при выполнении задания)

Контрольные вопросы

  1. Какой из элементов соответствует разделению потока управления на два параллельных потока?

    А. Элемент

    Б. Элемент

  2. Что такое экземпляр бизнес-процесса?
  3. Может ли в один и тот же момент времени

    А. Одному экземпляру бизнес-процесса соответствовать несколько заданий?

    Б. Одному заданию соответствовать несколько экземпляров бизнес-процесса?

Лекция 7. Изучение перспективы ресурсов

Цель занятия: целью занятия является изучение перспективы ресурсов

Теоретические сведения

Необходимые теоретические сведения изложены в следующих разделах:

Порядок выполнения работы

1. Запустите RunaWFE симулятор, для этого сделайте двойной клик на ярлыке "Start Simulation" на рабочем столе, или выполните команду меню Пуск / Программы / RunaWFE / Start Simulation. (Подробнее см. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункт 1)

2. Войдите в web-интерфейс системы RunaWFE под пользователем Administrator. (Подробнее см. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункт 2, рис. 5.2).

Замечание. По умолчанию пароль пользователя Administrator - "wf".

3. Перейдите к списку исполнителей, кликнув по ссылке "Исполнители" в левой части экрана.

4. Создайте следующих пользователей: (см. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункты 10 - 11, рис. 5.9, 5.10)

Пример учётных записей пользователей представлен на рис. 7.1.

Учётные записи созданных пользователей в системе RunaWFE (Simulation web interface)


увеличить изображение

Рис. 7.1.  Учётные записи созданных пользователей в системе RunaWFE (Simulation web interface)

5. Задайте для каждого пользователя пароль (предлагается задать для всех пользователей пароль "123"). Для этого надо кликнуть на имя пользователя - откроются свойства пользователя. Далее в разделе "Пароль" надо ввести пароль в поле "Новый пароль", повторить ввод пароля в поле "Повторите пароль" и кликнуть в этом же разделе на командной кнопке "Применить" (См. рис. 7.2).

Ввод пароля пользователя


увеличить изображение

Рис. 7.2.  Ввод пароля пользователя

6. Создайте группы:

(см. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункт 5, рис. 5.5).

Добавьте всех созданных пользователей в группу "Кафедра", добавьте пользователей

в группу "Преподаватели".

Добавьте пользователей

в группу " Группа МИБ-1"

7. Дайте полномочия группе "Кафедра" на вход в систему (см. Вводное занятие. Изучение интерфейса системы RunaWFE, пункты 7-9, рис. 5.6- 5.8 )

Добавление полномочий группе "Кафедра" на вход в систему


увеличить изображение

Рис. 7.3.  Добавление полномочий группе "Кафедра" на вход в систему

8. Дайте полномочия группе "Кафедра"на чтение на всех созданных пользователей, а также на чтение и просмотр на группы "Группа МИБ-1" и "Преподаватели". (см. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункты 12-13, рис. 5.11-5.12)

Добавление полномочий группе "Кафедра" на чтение и просмотр на группу "Группа МИБ-1"


увеличить изображение

Рис. 7.4.  Добавление полномочий группе "Кафедра" на чтение и просмотр на группу "Группа МИБ-1"

9. Перейдите к пункту меню "Отношения" по ссылке "Отношения" в левой части экрана (см. раздел "Стандарты и концепции, связанные с СУБПиАР", пункт "Использование бинарных отношений для упрощения инициализации ролей")

10. Создайте отношение "Преподаватель". Кликните на ссылке (рис. 7.5).

Команда создания отношения


увеличить изображение

Рис. 7.5.  Команда создания отношения

11. В появившейся форме введите имя отношения ("Преподаватель") и необязательное описание (рис. 7.6). После этого кликните на "Создать"

Создание отношения


Рис. 7.6.  Создание отношения

12. Кликните на имени появившейся записи (рис. 7.7).

Редактирование отношения


Рис. 7.7.  Редактирование отношения

13. В появившейся форме кликните на "Создать пару". В левой части пары выберите пользователя "Бабочкин", в правой части пары выберите пользователя "Мотыльков" (См. рис. 7.8). Это будет означать, что пользователь Бабочкин является преподавателем, ответственным за студента Мотылькова.

Создание пары (Преподаватель-Студент)


Рис. 7.8.  Создание пары (Преподаватель-Студент)

14. Создайте пары, соответствующие следующей таблице ответственных за студентов преподавателей (См. рис. 7.9).

ПреподавательСтудент
БабочкинМотыльков
БабочкинМухин
СтрекозинГусеницын
СтрекозинЛичинкин

Все пары отношения "Преподаватель"


Рис. 7.9.  Все пары отношения "Преподаватель"

15. Кликните на ссылку "Обладатели полномочий" в верхней части формы (рис. 7.8). Добавьте группу "Кафедра" с правами на чтение в список обладателей полномочий на отношение "Преподаватель" (См. рис. 7.10)

Добавление полномочий на отношение "Преподаватель"


Рис. 7.10.  Добавление полномочий на отношение "Преподаватель"

16. Дайте права на чтение на пункт меню "Отношения" группе "Кафедра".

Кликните на пункт меню "Отношения". Кликните на "Обладатели полномочий" (См. рис. 7.11).

Установка прав на доступ к пункту меню "Отношения"


увеличить изображение

Рис. 7.11.  Установка прав на доступ к пункту меню "Отношения"

Добавьте в список группу "Кафедра" (См. рис. 7.12).

Добавление прав на чтение на пункт меню "Отношения" для группы "Кафедра"


увеличить изображение

Рис. 7.12.  Добавление прав на чтение на пункт меню "Отношения" для группы "Кафедра"

Отношение "Преподаватель" создано, значения отношения заданы, права на отношение установлены.

17. Запустите среду разработки. Для этого кликните на ярлык "Process Designer" на рабочем столе, или выполните команду меню Пуск / Программы / RunaWFE / Process designer. Появится окно окно среды разработки (см. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункт 15, рис. 5.13).

18. Создайте новый проект - "Занятие 2" (Подробнее см. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункт 16, рис. 5.14).

19. Создайте новый бизнес-процесс. Название процесса Пример 2-1. (Подробнее см. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункт 17, 18 рис. 5.15, 5.16).

20. Поместите на схему бизнес-процесса узел - начало бизнес-процесса, узлы-действия и узел-окончание согласно (Подробнее см. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункт 19) . Назовите узел-начало - "Направить просьбу о зачете", остальные узлы – в соответствии с рис. 7.13.

Бизнес-процесс будет соответствовать принятию решения Преподавателем о зачете/не зачете (Роль преподавателя будет задаваться отношением Преподаватель(студент)).

Схема бизнес-процесса "Пример 2-1"


Рис. 7.13.  Схема бизнес-процесса "Пример 2-1"

21. Поместите на схему бизнес-процесса линии-переходы, соединяющие начало, узел - действие и окончание. Для этого надо кликнуть на элемент "Переход" в палитре. Будет установлен режим рисования переходов. В этом режиме создания каждого перехода надо сначала кликнуть в центр узла, в котором должен начаться переход, потом кликнуть в центр узла, в который должен закончиться переход (Подробнее см. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункт 20).

Замечание. Если требуется "изогнуть" линии-переходы, то надо в режиме "Выбрать" выделить кликом переход, найти в середине прямолинейного участка точку и далее "тащить" ее мышкой в нужном направлении. Линия будет "изгибаться" (см. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, рис. 5.19).

22. Введите названия для переходов из узла "Рассмотреть просьбу о зачете", в котором будет осуществляться выбор: Выделите переход, кликнув на него мышью, далее в окне свойства замените значение имени перехода по умолчанию ("tr1") на значение "Удовлетворить". Выделите второй переход, выходящий из узла, в котором будет осуществляться выбор, замените значение имени перехода по умолчанию на значение "Отказать" (Подробнее см. Практическое занятие "Изучение перспективы потока управления", Порядок выполнения работы, Пункт 6, рис. 6.3).

23. Создайте две роли - "Студент" и "Преподаватель" (См. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункт 21, рис. 5.20)

Роли бизнес-процесса "Пример 2-1"


Рис. 7.14.  Роли бизнес-процесса "Пример 2-1"

24. Роль "Студент" оставьте без инициализатора, эта роль будет инициализирована узлом-началом, то есть на роль "Студент" в экземпляре бизнес-процесса будет назначен пользователь, запустивший этот экземпляр бизнес-процесса.

25. Запустите RunaWFE симулятор, для этого сделайте двойной клик на ярлыке "Start Simulation" на рабочем столе, или выполните команду меню Пуск / Программы / RunaWFE / Start Simulation. (Подробнее см. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункт 1). Запуск симулятора нужен для последующего задания инициализатора роли для роли "Преподаватель" при помощи отношения.

26. Инициализируйте роль "Преподаватель" отношением "Преподаватель", примененным к роли "Студент":

Выделите роль "Преподаватель" в списке ролей на вкладке "Роли" и кликните "Изменить" (См. рис. 7.14).

В появившейся форме кликните на вкладке "Задать роль с помощью отношения" (См. рис. 7.15).

Выбор вкладки "Задать роль с помощью отношения" для инициализатора роли


увеличить изображение

Рис. 7.15.  Выбор вкладки "Задать роль с помощью отношения" для инициализатора роли

В появившейся форме раскройте "Отношения" и кликните на ссылке "Настройки соединения" (См. рис. 7.16).

Выбор настроек соединения при задании инициализатора роли с помощью отношения


увеличить изображение

Рис. 7.16.  Выбор настроек соединения при задании инициализатора роли с помощью отношения

В появившейся форме введите URL RunaWFE симулятора, а также логин и пароль пользователя, под которым будет установлено соединение. Если Вы не меняли установки по умолчанию, то можно использовать значения, которые установлены в форме (См. рис. 7.17).

Настройки соединения с RunaWFE симулятором


увеличить изображение

Рис. 7.17.  Настройки соединения с RunaWFE симулятором

Проверьте соединение, кликнув на кнопку "Проверить соединение" (См. рис. 7.17). Если соединение будет установлено, то появится сообщение об этом (См. рис. 7.18).

Сообщение об установке соединения


Рис. 7.18.  Сообщение об установке соединения

Если появится сообщение об ошибке соединения, проверьте что RunaWFE симулятор запущен (См. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункт 1).

Кликните на "ОК". В появившейся форме кликните на "Синхронизация". Затем кликните на "Выбрать" (См. рис. 7.19)

Ссылка для выбора отношения


увеличить изображение

Рис. 7.19.  Ссылка для выбора отношения

В появившемся окне выберите отношение "Преподаватель" и кликните "ОК" (См. рис. 7.20)

Окно выбора отношения


Рис. 7.20.  Окно выбора отношения

В поле "Код сотрудника" откройте список и выберите роль "Студент" (См. рис. 7.21). Кликните "ОК".

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

Выбор роли, к которой будет применено отношение "Преподаватель" при инициализации роли "Преподаватель"


увеличить изображение

Рис. 7.21.  Выбор роли, к которой будет применено отношение "Преподаватель" при инициализации роли "Преподаватель"

27. Свяжите роль "Студент" с узлом-началом, а также узлами "Ознакомиться с положительным решением преподавателя" и "Ознакомиться с отрицательным решением преподавателя". Свяжите роль "Преподаватель" с узлом-действием "Рассмотреть просьбу о зачете" в соответствии с рисунком 7.13 (Подробнее см. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункт 22)

28. Бизнес-процесс готов. Загрузите разработанный бизнес-процесс на RunaWFE сервер. Это можно сделать прямо из среды разработки (См. Практическое занятие "Изучение перспективы потока управления", Порядок выполнения работы, Пункты 11-14), или используя файловую систему (См. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункты 23-27)

29. Войдите в web-интерфейс системы RunaWFE под пользователем Administrator.

(см. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункт 2)

30. Кликните на пункт меню "Запустить процесс", проверьте, что бизнес-процесс "Пример 2-1" появился в системе (рис. 7.22).

Загруженный в систему бизнес-процесс "Пример 2-1"


увеличить изображение

Рис. 7.22.  Загруженный в систему бизнес-процесс "Пример 2-1"

31. Дайте группе "Группа МИБ-1" права на чтение, запуск и чтение экземпляра, а группе "Кафедра" - права на чтение и чтение экземпляра на бизнес-процесс Пример 2-1.

Для этого кликните на ссылку "Свойства" бизнес-процесса. В появившейся форме кликните ссылку "Обладатели полномочий". Добавьте в список обладателей полномочий группы "Группа МИБ-1" и "Кафедра", установите для них соответствующие требующимся правам галочки (См. рис. 7.23). Подробнее см. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункты 28-31.

Права на бизнес-процесс "Пример 2-1"


увеличить изображение

Рис. 7.23.  Права на бизнес-процесс "Пример 2-1"

32. Кликните на ссылке выход в правой верхней части экрана (рис. 7.24).

Ссылка "Выход"


увеличить изображение

Рис. 7.24.  Ссылка "Выход"

33. Войдите в систему как пользователь "Мухин" (рис. 7.25).

Замечание. При заведении пользователя "Мухин" было предложено установить для него пароль - "123"

Вход в систему под пользователем "Мухин"


Рис. 7.25.  Вход в систему под пользователем "Мухин"

34. Кликните на пункт меню "Запустить процесс". Проверьте, что в появившейся форме содержится разработанный бизнес-процесс ""Пример 2-1" (рис. 7.26).

Запуск бизнес-процесса "Пример 2-1" под пользователем "Мухин"


увеличить изображение

Рис. 7.26.  Запуск бизнес-процесса "Пример 2-1" под пользователем "Мухин"

35. Запустите экземпляр бизнес-процесса под пользователем "Мухин". - Кликните на иконке или имени бизнес-процесса (См. рис. 7.26). - В верхней части экрана появится надпись "Экземпляр процесса запущен, рядом с которой будет находиться номер запущенного бизнес-процесса. (Подробнее см. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункт 39)

36. Кликните на пункт меню "Запущенные процессы". Найдите в появившемся окне строку, соответствующую запущенному экземпляру бизнес-процесса - в ней число в поле номер должно совпадать с тем, которое было отображено в сообщении о запуске экземпляра процесса. (Подробнее см. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункт 40)

37. Кликните в этой строке на номер бизнес-процесса. Откроется форма экземпляра бизнес-процесса (См. рис. 7.27, 7.29).

В верхней части формы видно, что на роль "Студент" назначен пользователь "Мухин", а на роль "Преподаватель" назначен пользователь "Бабочкин".

Свойства запущенного экземпляра бизнес-процесса "Пример 2-1" (верхняя часть)


Рис. 7.27.  Свойства запущенного экземпляра бизнес-процесса "Пример 2-1" (верхняя часть)

На роль "Студент" был назначен пользователь "Мухин" при запуске бизнес-процесса, т.к. экземпляр был запущен из под пользователя "Мухин", а узел-начало бизнес-процесса связан с ролью "Студент" (См. рис. 7.28).

Задание роли "Студент" для узла-начала бизнес-процесса "Пример 2-1" в среде разработки


Рис. 7.28.  Задание роли "Студент" для узла-начала бизнес-процесса "Пример 2-1" в среде разработки

На рис. 7.29 (нижней части свойств запущенного экземпляра) видно, что точка управления находится в узле "Рассмотреть просьбу о зачете".

Свойства запущенного экземпляра бизнес-процесса "Пример 2-1" (нижняя часть)


Рис. 7.29.  Свойства запущенного экземпляра бизнес-процесса "Пример 2-1" (нижняя часть)

В форме свойств запущенного экземпляра процесса содержится информация, что в данный момент времени в экземпляре процесса существует единственная точка управления, которая находится в узле "Рассмотреть просьбу о зачете", задание этого узла назначено пользователю "Бабочкин", который является исполнителем роли "Преподаватель". Также в форме находится схема экземпляра бизнес-процесса. На схеме экземпляра бизнес-процесса отмечаются маршруты точек управления. Переходы и узлы, по которым прошли точки управления выделены цветом (красным или зеленым, в зависимости от настроек системы), узлы-Действия, в которых находятся текущие точки управления, выделены жирной рамкой (рис. 7.29). Подробнее см. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункт 41.

38. Кликните на ссылке выход (см. рис. 7.24). Войдите в систему под пользователем "Бабочкин" (При заведении пользователя было предложено установить для него пароль - "123"). В появившейся форме найдите задание "Рассмотреть просьбу о зачете".

Список заданий пользователя "Бабочкин"


увеличить изображение

Рис. 7.30.  Список заданий пользователя "Бабочкин"

39. Кликните на задании "Рассмотреть просьбу о зачете" в поле "Имя". Появится форма, содержащая сообщение "Форма задания не определена: Рассмотреть просьбу о зачете" (что означает - "для узла " Рассмотреть просьбу о зачете" не была определена графическая форма"). Форма также содержит две кнопки: "Отказать" и "Удовлетворить", соответствующие выбору исходящего из узла перехода (См. рис. 7.31).

Задание "Рассмотреть просьбу о зачете"


увеличить изображение

Рис. 7.31.  Задание "Рассмотреть просьбу о зачете"

40. Кликните на кнопку "Удовлетворить" (Примете решение -удовлетворить просьбу студента). - В верхней части экрана появится сообщение "Задание выполнено". После этого точка управления перейдет в следующий узел бизнес-процесса.

41. Войдите в меню "Запущенные процессы". Найдите запущенный экземпляр процесса и кликните на его номере. Откроется форма экземпляра бизнес-процесса (См. рис. 7.32). В форме содержится информация, что в экземпляре процесса его единственная точка управления находится в узле "Ознакомиться с положительным решением преподавателя", задание этого узла назначено пользователю "Мухин", который является исполнителем роли "Студент", на роль "Преподаватель" назначен пользователь "Бабочкин". Переходы и узлы, по которым прошла точка управления выделены цветом, узел-Действие, в котором находится точка управления, выделен жирной рамкой

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


увеличить изображение

Рис. 7.32.  Свойства запущенного экземпляра бизнес-процесса

42. Кликните на ссылке выход (см. рис. 7.24). Войдите в систему под пользователем "Мухин". Выполните задание "Ознакомиться с положительным решением преподавателя" (рис. 7.33). После этого точка управления перейдет в узел-окончание и экземпляр бизнес-процесса будет завершен.

43. Войдите в меню "Запущенные процессы". Проверьте, что у экземпляра бизнес-процесса появилась дата завершения (Подробнее см. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункт 46)

Задание "Ознакомиться с положительным решением преподавателя"


Рис. 7.33.  Задание "Ознакомиться с положительным решением преподавателя"

44. Кликните на номере экземпляра бизнес-процесса. Откроются его свойства. Проверьте, что путь точки управления отмечен до узла-окончания бизнес-процесса (рис. 7.34)

Свойства экземпляра бизнес-процесса


увеличить изображение

Рис. 7.34.  Свойства экземпляра бизнес-процесса

45. Войдите в систему как пользователь "Личинкин" (При заведении пользователя было предложено установить пароль - "123")

46. Запустите экземпляр бизнес-процесса "Пример 2-1" под этим пользователем

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

48. Войдите в систему как пользователь "Стрекозин". В форме задания "Рассмотреть просьбу о зачете" выберите "Отказать". Проверьте, что точка управления данного экземпляра бизнес-процесса перемещается по маршруту, отличающемуся от маршрута точки управления в экземпляре, запущенном под пользователем "Мухин".

49. Опять войдите в систему как пользователь "Личинкин". Выполните задание "Ознакомиться с отрицательным решением преподавателя".

50. Войдите в меню "Запущенные процессы". Проверьте, что у экземпляра бизнес-процесса появилась дата завершения. Откройте свойства экземпляра бизнес-процесса. Проверьте, что путь точки управления отмечен до узла-окончания.

Задание для самостоятельной работы

На основе бизнес-процесса "Пример 2-1" разработайте бизнес-процесс "Пример 2-2", схема которого изображена на рис. 7.35.

Бизнес-процесс "Пример 2-2" надо получить из бизнес-процесса "Пример 2-1" путем копирования, добавления элементов "Разделение" и "Слияние" и еще одного узла-действия. (Подробнее см. Практическое занятие "Изучение перспективы потока управления", Задание для самостоятельной работы)

Схема бизнес-процесса "Пример 2-2" для самостоятельной разработки


Рис. 7.35.  Схема бизнес-процесса "Пример 2-2" для самостоятельной разработки

В рамках этой работы заведите в системе пользователя

с паролем "123". Cоздайте группу "Администрация курса". Дайте права группе "Кафедра" на чтение на пользователя "Бражникова", а также на чтение и просмотр на группу "Администрация курса". Добавьте пользователя "Бражникова" в группы "Кафедра" и "Администрация курса".

В бизнес-процессе "Пример 2-2" заведите роль "Инспектор курса", инициализируйте эту роль группой "Администрация курса". Для этого войдите на вкладку "Роли", выберите роль "Инспектор курса", кликните на "Изменить", в появившейся форме выберите тип "исполнитель по имени", в поле "Имя группы или пользователя" введите "Администрация курса" (См. рис. 7.36). Кликните "ОК".

Загрузите разработанный бизнес-процесс на RunaWFE сервер.

Дайте группе "Группа МИБ-1" права на чтение, запуск и чтение экземпляра, группам "Кафедра" и "Администрация курса" - права на чтение и чтение экземпляра на бизнес-процесс Пример 2-2.

Запустите несколько экземпляров этого бизнес-процесса под разными пользователями и доведите их до завершения. Обязательно реализуйте хотя бы в одном случае вариант выбора "Удовлетворить" для узла "Рассмотреть просьбу о зачете", проверьте правильность инициализации роли "Инспектор курса".

Инициализация роли группой "Администрация курса"


увеличить изображение

Рис. 7.36.  Инициализация роли группой "Администрация курса"

Разработайте бизнес-процесс "Пример 2-3", схема которого изображена на рис. 7.37.

. Схема бизнес-процесса "Пример 2-3" для самостоятельной разработки


увеличить изображение

Рис. 7.37.  . Схема бизнес-процесса "Пример 2-3" для самостоятельной разработки

Для этого выполните следующие шаги.

Создайте в проекте "Задание 2" новый процесс с именем "Пример 2-3", при этом в качестве языка используйте BPMN, в выпадающем списке "Показывать роли на графе" выберите значение "По вертикали" (См. рис. 7.38). Кликните "Finish".

Форма создания бизнес-процесса "Пример 2-3"


Рис. 7.38.  Форма создания бизнес-процесса "Пример 2-3"

Расположите на форме роли-дорожки, для этого выделите в палитре элемент "Роль", и перетяните его на форму (См. рис. 7.39)

Вертикально расположенные роли-дорожки


увеличить изображение

Рис. 7.39.  Вертикально расположенные роли-дорожки

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

Изменение ширины элемента роли-дорожки


Рис. 7.40.  Изменение ширины элемента роли-дорожки

Переименуйте созданные по умолчанию названия "Роль1" в "Инспектор курса", "Роль2" в "Преподаватель" и "Роль3" в "Студент". Для этого перейдите на вкладку Роли, выделите название и нажмите кнопку "Переименовать", в появившейся форме введите новое название (См. рис. 7.41).

Переименование роли-дорожки


Рис. 7.41.  Переименование роли-дорожки

Далее расположите на форме узел Начало, узлы Действия, Слияние/Разделение и Окончание в соответствии со схемой бизнес-процесса изображенного на рис. 7.37.

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

В остальном процесс разработки "Пример 2-3" ничем не отличается от "Пример 2-2".

Инициализируйте роль "Преподаватель" с помощью отношения как было показано в "Пример 2-1" (Практическое занятие "Изучение перспективы ресурсов". Порядок выполнения работы. Пункт 26), а роль "Инспектор курса" с помощью оргфункции "Исполнитель по имени", как описано в "Пример 2-2" (см. рис. 7.36)

Загрузите разработанный бизнес-процесс на RunaWFE сервер.

Дайте группе "Группа МИБ-1" права на чтение, запуск и чтение экземпляра, группам "Кафедра" и "Администрация курса" - права на чтение и чтение экземпляра на бизнес-процесс Пример 2-3.

Проверьте правильность его работы, выполнив те же действия что и для "Пример 2-2".

Возможное усложнение задание для самостоятельной работы

Разработайте бизнес-процесс "Пример 2-4", отличающийся от "Пример 2-2" тем, что роль "Инспектор курса" инициализируется не группой, а отношением "Инспекторы курсов". В этом отношении левая часть каждой пары должна содержать пользователя - инспектора курса, а правая часть - группу, состав которой соответствует группе студентов. Например, для группы "МИБ-1" правая часть пары будет содержать группу "Группа МИБ-1", а левая часть - пользователя "Бражникова".

Требования к представлению результатов занятия

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

В отчете должны содержаться следующие выходные данные:

  1. Скриншоты основных действий, совершенных на занятии, с пояснениями
  2. Скриншоты, содержащие маршруты точек управления для экземпляров бизнес-процессов, доведенных до завершения.
  3. Описание возникших при выполнении задания проблем и найденных путей их решения (не обязательно, только если возникли проблемы при выполнении задания)

Контрольные вопросы

  1. Что такое инициализация роли?
  2. В чем отличие инициализации роли для узла-начала и для узлов-действий бизнес-процесса?
  3. Как происходит исполнение задания, если роль для узла-действия инициализирована группой?
  4. Что такое отношение, как оно используется для инициализации роли?
  5. Как производится инициализация роли отношением, если правые части пар отношения содержат группы пользователей?

Лекция 8. Изучение перспективы данных

Цель занятия: целью занятия является изучение перспективы данных

Теоретические сведения

Необходимые теоретические сведения изложены в первой части лабораторного практикума в пункте "Перспектива данных" раздела "Исполнимые бизнес-процессы и административные регламенты".

Порядок выполнения работы

1. Запустите среду разработки

2. Создайте новый проект - "Занятие 3"

3. Создайте новый бизнес-процесс "Пример 3-1".

4. Создайте роли, добавьте элементы на схему бизнес-процесса в соответствии с рис. 8.1

Схема бизнес процесса "Пример 3-1"


увеличить изображение

Рис. 8.1.  Схема бизнес процесса "Пример 3-1"

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

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

5. Создайте переменные бизнес-процесса

Должны быть созданы следующие переменные:

Имя переменнойТип
КомментарийТекст
Оценка за теориюЦелое
Оценка за практикумЦелое
Итоговая оценкаЦелое
МИБГруппа

Для создания переменной перейдите на вкладку "Переменные" и кликните "Создать" (См. рис. 8.2).

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


увеличить изображение

Рис. 8.2.  Создание переменных

В появившейся форме в поле "Название" введите "Комментарий" (См. рис. 8.3), нажмите Далее, в поле "Формат" выберите "Текст" (См. рис. 8.4).

Создание переменной "Комментарий". Ввод названия переменной


Рис. 8.3.  Создание переменной "Комментарий". Ввод названия переменной

Создание переменной "Комментарий". Выбор формата переменной


Рис. 8.4.  Создание переменной "Комментарий". Выбор формата переменной

Кликните "Готово". Создайте следующую переменную "Оценка за теорию", в поле "Формат" для нее выберите "Целое число" (См. рис. 8.5, рис. 8.6).

Создание переменной "Оценка за теорию". Ввод названия переменной


Рис. 8.5.  Создание переменной "Оценка за теорию". Ввод названия переменной

Создание переменной "Оценка за теорию". Выбор формата переменной


Рис. 8.6.  Создание переменной "Оценка за теорию". Выбор формата переменной

Создайте остальные переменные. Для переменной МИБ используйте формат "Группа", для остальных "Целое число" (См. рис. 8.7).

Переменные бизнес процесса "Пример 3-1"


Рис. 8.7.  Переменные бизнес процесса "Пример 3-1"

Для переменной "МИБ" необходимо использовать значение по умолчанию, для этого выделите созданную переменную и нажмите "Изменить", затем "Далее"

Переключитесь на строку "Использовать значение по умолчанию", после чего в текстовое поле введите "Группа МИБ-1" (см. рис. 8.8).

Ввод значения по умолчанию переменной


Рис. 8.8.  Ввод значения по умолчанию переменной

6. Задайте ввод значений для переменных бизнес-процесса и роли "Студент"

Замечание. В системе RunaWFE роли являются специальным типом переменных, поэтому им можно присваивать значения так же, как и остальным типам переменных.

Задайте ввод значения переменной "Комментарий" и роли "Студент" на форме узла-начала (стартовой форме) бизнес-процесса.

Перед созданием формы, стоит обратить внимание на следующие важные замечания.

Замечания по редактору форм.

По умолчанию в качестве редактора форм используется редактор CKEditor4. Однако, в случае если у вас в системе установлен браузер Microsoft Internet Explorer устаревшей версии - 6 (IE6) или 7 (IE7), формы могут некорректно отображаться. Поэтому в этом случае следует переключить редактор форм на FCKEditor2. Для переключения на FCKEditor2 откройте "Свойства->Настройки" среды разработки (см. рис. 8.9).

Вызов настроек среды разработки


Рис. 8.9.  Вызов настроек среды разработки

Выберите "Редактор форм" и переключите редактор на версию FCKEditor2 так как показано на рис. 8.10.

Переключение редактора форм


Рис. 8.10.  Переключение редактора форм

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

Перейдите на вкладку "Граф", кликните правой кнопкой мыши на узле-начале бизнес-процесса и выберите в появившемся контекстном меню "Форма/Создать форму" (См. рис. 8.11)

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


увеличить изображение

Рис. 8.11.  Создание формы для узла-начала

Выберите из списка - "Произвольная форма" и нажмите "ОК" (См. рис. 8.12)

Окно выбора типа формы и редактора форм


Рис. 8.12.  Окно выбора типа формы и редактора форм

Будет создана новая форма, при этом автоматически откроется панель "Компоненты формы", содержащая список доступных для использования компонентов. Наберите на форме строку "Студент:" и расположите напротив компонент "Выбор из членов группы". Для этого выделите его в списке компонентов и с помощью мыши перетащите в окно формы (См. рис. 8.13)

Замечание. Альтернативным способом добавления может быть двойной клик левой клавишей мыши по компоненту, после чего он будет добавлен в текущее положение курсора на форме.

Панель "Компоненты формы"


увеличить изображение

Рис. 8.13.  Панель "Компоненты формы"

Вызов окна параметров компонента осуществляется с помощью соответствующего пункта контекстного меню (См. рис. 8.14)

Вызов окна для редактирования параметров компонента формы


увеличить изображение

Рис. 8.14.  Вызов окна для редактирования параметров компонента формы

Кроме того, получить доступ к параметрам добавленного на форму компонента можно выделив компонент и открыв панель "Свойства" (См. рис. 8.15)

Свойства компонента формы


увеличить изображение

Рис. 8.15.  Свойства компонента формы

Задайте следующие параметры данного компонента:

Вызов окна редактирования параметра "Группа"


Рис. 8.16.  Вызов окна редактирования параметра "Группа"

Группу можно задать как с помощью переменной, так и ввести непосредственное название. Кроме того, значение можно получить с сервера RunaWFE, выполнив синхронизацию. В данном случае используйте переменную "МИБ" (которая проинициализирована значением по умолчанию - "Группа МИБ-1"). Для этого нажмите на ссылку "Выберите переменную" (См. рис. 8.17)

Выбор переменной в качестве параметра


Рис. 8.17.  Выбор переменной в качестве параметра

Выделите в списке переменную "МИБ" и нажмите ОК (См. рис. 8.18)

Выбор переменной "МИБ"


Рис. 8.18.  Выбор переменной "МИБ"

В качестве параметра "внешний вид" - выберите из списка "Полный список" (См. рис. 8.19). Во время выполнения на форме будет показан список членов группы "Группа МИБ-1", выбранный из этого списка пользователь будет назначен на роль "Студент".

Инициализация роли членом группы при помощи компонента графической формы


Рис. 8.19.  Инициализация роли членом группы при помощи компонента графической формы

В следующей строке формы наберите строку "Комментарий:", перейдите в панель "Компоненты форм", и выделите компонент "Ввод переменной" (см. рис. 8.20)

Компонент "Ввод переменной"


увеличить изображение

Рис. 8.20.  Компонент "Ввод переменной"

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

Компонент "Ввод переменной" для переменной "Комментарий"


Рис. 8.21.  Компонент "Ввод переменной" для переменной "Комментарий"

Сохраните разработанную форму при помощи иконки сохранения (См. рис. 8.22).

Замечание. Кроме того для сохранения можно воспользоваться комбинацией клавиш CTRL + S, меню "Файл/Сохранить все". Также при попытке закрыть измененную форму, будет предложено сохранить изменения.

Сохранение графической формы узла при помощи иконки сохранения


Рис. 8.22.  Сохранение графической формы узла при помощи иконки сохранения

Закройте графическую форму узла-начала, в окне бизнес-процесса "Пример 3-1", перейдите на вкладку "Граф", кликните правой кнопкой мыши на узле "Поставить оценку за теоретический курс" и выберите в появившемся контекстном меню "Форма/Создать форму" (также как и для узла начала на рис. 8.11).

В форме напишите "Студент:" и перейдите в список компонентов формы (см. рис. 8.13).

Выделите компонент "Отобразить переменную" и перетащите его на форму (см. рис. 8.23), вызовите свойства компонента, в списке "Название переменной" выберите роль "Студент", форма отображения - "Как строку" (см. рис. 8.24). Этот компонент поместит на форму студента, выбранного из списка в узле-начале.

Замечание. Альтернативным способом добавления может быть двойной клик левой клавишей мыши по компоненту, после чего он будет добавлен в текущее положение курсора на форме.

Компонент формы для отображения значения переменной


Рис. 8.23.  Компонент формы для отображения значения переменной

Отображение роли "Студент" на графической форме


Рис. 8.24.  Отображение роли "Студент" на графической форме

В следующей строке напишите "Комментарий зав. кафедрой:", перетащите на форму компонент "Отобразить переменную", в качестве переменной выберите - "Комментарий", форма отображения - "Как неактивный компонент ввода"(см. рис. 8.25).

Этот компонент поместит на форму значение переменной "Комментарий" (в виде неактивного компонента ввода), введенное в узле-начале.

Отображение значения переменной "Комментарий" в графической форме


Рис. 8.25.  Отображение значения переменной "Комментарий" в графической форме

В следующей строке напишите "Оценка за теоретический курс:", добавьте на форму компонент "Ввод переменной" (См. рис. 8.21), в поле "Название переменной" выберите "Оценка за теорию". Должна получиться форма, изображенная на рис. 8.26.

Форма узла "Поставить отметку за теоретический курс"


Рис. 8.26.  Форма узла "Поставить отметку за теоретический курс"

Сохраните и закройте разработанную форму.

Далее необходимо создать графическую форму для узла "Поставить оценку за практикум". Данная форма будет незначительно отличаться от формы в узле "Поставить оценку за теоретический курс", поэтому воспользуйтесь функцией создания формы на основе существующей. Для этого сделайте клик правой клавишей мыши на узле и выберите "Создать форму на основе существующей" (см. рис. 8.27)

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


увеличить изображение

Рис. 8.27.  Создание формы на основе существующей

В открывшемся окне выберите из списка форму "Поставить оценку за теоретический курс", нажмите "OK" (см. рис. 8.28)

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


Рис. 8.28.  Выбор формы на основе которой создается форма "Поставить оценку за практикум"

Далее внесите изменения в созданную форму. Строку "Оценка за теоретический курс" измените на "Оценка за практикум". Выделите добавленный на форму компонент "Ввод переменной" и удалите его (используйте клавишу delete).

Кликните на иконку ввода значения переменной из списка возможных значений. (См. рис. 8.29)

Иконка ввода значения переменной из списка возможных значений


Рис. 8.29.  Иконка ввода значения переменной из списка возможных значений

В появившемся окне в поле Имя введите "Оценка за практикум" (См. рис. 8.30).

Форма ввода значения переменной из списка возможных значений


Рис. 8.30.  Форма ввода значения переменной из списка возможных значений

В средней части формы добавьте строки:

ТекстЗначение
Пятерка5
Четверка4
Тройка3
Двойка2

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

Замечание. В связи с тем, что при создании формы "Поставить оценку за практикум" на основе существующей формы "Поставить оценку за теоретический курс" был автоматически скопирован и файл валидации, то в него попала переменная "Оценка за теорию", которая в данной форме после изменений уже не используется. При этом на вкладке Замечания будет выведено соответствующее сообщение "Переменная Оценка за теорию существует в форме валидации но отсутствует в форме". Чтобы исправить эту проблему необходимо убрать из файла валидации проверку переменной "Оценка за теорию", для этого сделайте клик правой клавишей мыши на узле "Поставить оценку за практикум" и выберите пункт "Проверка переменных формы" (см. рис. 8.31). Далее снимите галочку у переменной "Оценка за теорию" (см. рис. 8.32) и нажмите "Готово", сохраните процесс.

Проверка переменных формы. Вызов


увеличить изображение

Рис. 8.31.  Проверка переменных формы. Вызов

Валидаторы переменных формы


увеличить изображение

Рис. 8.32.  Валидаторы переменных формы

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

Создайте графическую форму для узла "Ознакомиться с итоговой оценкой за экзамен". Поместите на форму текст "Ваша итоговая оценка за экзамен:" и вставьте компонент "Отобразить переменную". Выберите переменную "Итоговая оценка" (См. рис. 8.33).

Вывод значения переменной


Рис. 8.33.  Вывод значения переменной

7. Задайте свойства узла "Исключающий шлюз" (См. рис. 8.34).

Узел "Исключающий шлюз" на схеме бизнес-процесса " Пример 3-1"


Рис. 8.34.  Узел "Исключающий шлюз" на схеме бизнес-процесса " Пример 3-1"

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

Задание свойств исключающего шлюза бизнес-процесса "Пример 3-1"


увеличить изображение

Рис. 8.35.  Задание свойств исключающего шлюза бизнес-процесса "Пример 3-1"

8. Задайте значение переменной "Итоговая оценка" как среднее значение переменных "Оценка за теорию" и "Оценка за практикум".

Среднее значение надо задать при помощи обработчика-формулы. Обработчик - это специальный элемент бизнес-процесса, который может быть присоединен к переходу или узлу-действию в случае использования jPDL, в случае же BPMN - в графе используется элемент "Задача сценария". С обработчиком связывается набор настроек и алгоритм, который будет выполнен при прохождении точки управления через элемент.

Выделите на графе элемент задача сценария - "Расчет итоговой оценки за экзамен", перейдите на вкладку "Свойства" и задайте параметр "класс обработчика" (См. рис. 8.36) Из списка обработчиков выберите "Выполнить формулу" (См. рис. 8.37)

Свойства сценария


увеличить изображение

Рис. 8.36.  Свойства сценария

Выбор класса обработчика


Рис. 8.37.  Выбор класса обработчика

В свойствах сценария "Расчет итоговой оценки за экзамен" кликните на кнопку в поле значение для строки "Конфигурация". В появившемся окне кликните на ссылку "Вставить переменную" выберите в списке "Итоговая оценка" (См. рис. 8.38).

Выбор переменной в конфигурации обработчика-формулы


увеличить изображение

Рис. 8.38.  Выбор переменной в конфигурации обработчика-формулы

Далее поставьте знак равенства и кликните на "Вставить функцию", из появившегося списка выберите функцию round_down (округление в меньшую сторону) - См. рис. 8.39. В аргументе функции используя ссылку "Вставить переменную", знак плюс, знак деления и скобки поместите среднее арифметическое переменных "Оценка за теорию" и "Оценка за практикум" (См. рис. 8.40).

Выбор функции округления в меньшую сторону в конфигурации обработчика-формулы


увеличить изображение

Рис. 8.39.  Выбор функции округления в меньшую сторону в конфигурации обработчика-формулы

Среднее арифметическое переменных "Оценка за теорию" и "Оценка за практикум", округленное в меньшую сторону


Рис. 8.40.  Среднее арифметическое переменных "Оценка за теорию" и "Оценка за практикум", округленное в меньшую сторону

9. Инициализируйте роли

Роль "Студент" уже явно задана в форме стартового узла бизнес-процесса (См. Пункт 6 настоящего занятия). Роль "Заведующий_кафедрой" инициализируется самим стартовым узлом бизнес-процесса (См. Пункт 6 настоящего занятия). Теперь надо проинициализировать остальные роли.

Роль "Преподаватель" проинициализируйте отношением "Преподаватель", примененным к роли "Студент" (См. "Практическое занятие "Изучение перспективы ресурсов"", Порядок выполнения работы, Пункт 26). Отношение "Преподаватель" уже было создано в рамках Занятия 2.

Роль "Старший преподаватель" проинициализируйте группой "Преподаватели" (Подробнее про инициализацию группой см. Практическое занятие "Изучение перспективы ресурсов", Задание для самостоятельной работы).

Для задания роли "Лектор" запустите симулятор, войдите в систему RunaWFE под пользователем Administrator (По умолчанию пароль - "wf". Подробнее см. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункт 1) и создайте отношение "Лектор", содержащее одну пару, в левой части которой находится пользователь "Стрекозин", а в правой - группа "Группа МИБ-1" (См. рис. 8.41).

Отношение "Лектор"


Рис. 8.41.  Отношение "Лектор"

Кликните на "Обладатели полномочий", дайте права на чтение на отношение "Лектор" группе "Группа МИБ-1" (Подробнее см. Практическое занятие "Изучение перспективы ресурсов", Порядок выполнения работы, Пункт 15, рис. 7.10).

Далее проинициализируйте в бизнес-процессе "Пример 3-1" роль "Лектор" отношением "Лектор", примененным к роли "Студент" (Подробнее см. Практическое занятие "Изучение перспективы ресурсов", Порядок выполнения работы, Пункт 26).

10. Бизнес-процесс готов. Загрузите разработанный бизнес-процесс на RunaWFE сервер. Для этого войдите в среду разработки, кликните на разработанный бизнес-процесс, в меню выберите команду "Файл / Экспорт процесса" (Подробнее см. Практическое занятие "Изучение перспективы потока управления", Порядок выполнения работы, Пункты 11-14)

11. Войдите в web-интерфейс системы RunaWFE под пользователем Administrator. (См. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункт 2).

Создайте пользователя "Жуков" (Жуков Иван Ильич) с паролем "123". Создайте группу "ЗавКафедрой". Включите пользователя "Жуков" в группы "Кафедра" и "ЗавКафедрой". Дайте права группе "Кафедра" на чтение на пользователя "Жуков", а также на чтение и просмотр на группу "ЗавКафедрой" (Подробнее см. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункты 6, 9-13).

12. Дайте права группе "Кафедра" на чтение бизнес-процесса "Пример 3-1" и его экземпляров. Дайте права группе "ЗавКафедрой" на запуск бизнес-процесса (Подробнее см. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункты 28-32).

13. Войдите в систему под пользователем Жуков (пароль - 123). Запустите несколько экземпляров бизнес-процесса "Пример 3-1" (См. рис. 8.42). "Проиграйте" запущенные экземпляры под разными пользователями таким образом, чтобы в экземплярах бизнес-процесса был реализован как варианта перехода "Оценка за теорию выше", так и "Оценка за теорию не выше".

Запуск бизнес-процесса " Пример 3-1" под пользователем "Жуков"


увеличить изображение

Рис. 8.42.  Запуск бизнес-процесса " Пример 3-1" под пользователем "Жуков"

Задание для самостоятельной работы

На основе бизнес-процесса "Пример 3-1" разработайте бизнес-процесс "Пример 3-2", схема которого изображена на рис. 8.43.

Бизнес-процесс "Пример 3-2" надо получить из бизнес-процесса "Пример 3-1" путем копирования, добавления элемента "Исключающий шлюз" и одного узла-действия.

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

Схема бизнес-процесса "Пример 3-2" для самостоятельной разработки


увеличить изображение

Рис. 8.43.  Схема бизнес-процесса "Пример 3-2" для самостоятельной разработки

Замечание. При выполнении данной работы, обязательно обратите внимания на замечания в пункте "Практическое занятие "Изучение перспективы данных", Порядок выполнения работы, Пункт 6, рис. 8.9, 8.10.

Требования к представлению результатов занятия

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

В отчете должны содержаться следующие выходные данные:

  1. Скриншоты основных действий, совершенных на занятии, с пояснениями
  2. Скриншоты, содержащие маршруты точек управления для экземпляров бизнес-процессов, доведенных до завершения.
  3. Описание возникших при выполнении задания проблем и найденных путей их решения (не обязательно, только если возникли проблемы при выполнении задания)

Контрольные вопросы

  1. Что такое переменная бизнес-процесса?
  2. Как используются переменные бизнес-процесса?
  3. В каких случаях имеет смысл использовать

    А. Элемент "Ветвление":

    Б. Неявное ветвление в узле-действии:

Лекция 9. Изучение перспективы операций

Цель занятия: целью занятия является изучение перспективы операций.

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

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

Теоретические сведения

Необходимые теоретические сведения изложены в лекции 1 в разделе "Перспектива операций", а также в лекции 3 в разделе "Концепция ботов и бот-станций".

Порядок выполнения работы

1. Запустите среду разработки

2. Создайте новый проект - "Занятие 4"

3. Создайте новый бизнес-процесс "Пример 4-1" (Бизнес-процесс соответствует рассмотрению заявки на покупку услуги).

4. Создайте роли "Сотрудник", "Директор" и "Бот работы с данными", добавьте элементы на схему бизнес-процесса в соответствии с рис. 5.1

Схема бизнес-процесса рассмотрения заявки на покупку услуги ("Пример 4-1")


Рис. 9.1.  Схема бизнес-процесса рассмотрения заявки на покупку услуги ("Пример 4-1")

5. Свяжите с начальным узлом бизнес-процесса роль "Сотрудник", с остальными узлами свяжите роли в соответствии с рисунком 9.1

6. Создайте переменные бизнес-процесса в соответствии с рисунком 9.2

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


Рис. 9.2.  Переменные бизнес-процесса рассмотрения заявки на покупку услуги

7. Запустите RunaWFE симулятор (Подробнее см. Вводное занятие, Порядок выполнения работы, Пункт 1)

8. Войдите в web-интерфейс системы RunaWFE под пользователем Administrator. (Подробнее см. Вводное занятие, Порядок выполнения работы, Пункт 2, рис. 5.2). По умолчанию пароль пользователя Administrator - "wf".

9. Перейдите к списку исполнителей, кликнув по ссылке "Исполнители" в левой части экрана.

Создайте группы:

(см. Вводное занятие, Порядок выполнения работы, Пункт 5, рис. 5.5)

Добавьте пользователей

в группу "Сотрудники"

Добавьте пользователя "Стрекозин" в группу "Директор".

Создайте пользователя:

Задайте для него пароль (предлагается задавать для созданных пользователей пароль "123"). Добавьте пользователя "Бот данных" в группу "Bots". Дайте группе "Bots" права на вход в систему.

Дайте полномочия группам "Сотрудники" и "Директор" на вход в систему.

Подробнее см. Вводное занятие, Порядок выполнения работы, Пункты 4 - 13.

10. Создайте бот станцию и бота.

Замечание. Если в системе уже существует бот станция localbotstation, то либо пропустите действия данного раздела, либо удалите ее командой "Удалить".

Кликните на меню "Бот станции" в левой части экрана. Кликните на ссылке "Добавить бот станцию" (См. рис. 9.3).

Создание новой бот станции


увеличить изображение

Рис. 9.3.  Создание новой бот станции

В появившейся форме (См. рис. 9.4) в поле "Название" введите "localbotstation", в поле "Адрес" введите "localhost:10099", кликните на "Добавить бот станцию".

Создание бот станции "localbotstation"


увеличить изображение

Рис. 9.4.  Создание бот станции "localbotstation"

Будет создана бот станция localbotstation, правами на которую будет обладать "Administrator".

Замечание. С бот станцией должен быть связан один из пользователей. От имени этого пользователя бот станция будет обращаться к RunaWFE серверу для того, чтобы прочитать свои параметры. Логин и пароль этого пользователя вводится в специальном конфигурационном файле (botstation.properties). По умолчанию в системе в качестве пользователя с правами на работу с бот станцией указан Administrator.

В появившейся форме кликните на бот-станцию "localbotstation" (См. рис. 9.5).

Список бот-станций


увеличить изображение

Рис. 9.5.  Список бот-станций

В появившейся форме кликните "Добавить бота" (См. рис. 9.6).

Форма бот-станции


увеличить изображение

Рис. 9.6.  Форма бот-станции

В открывшейся форме создания бота (См. рис. 9.7) выберите из списка пользователя "Бот данных", в поле "Пароль бота" введите пароль этого пользователя ("123"). Опцию "Последовательное выполнение" не устанавливайте.

Создание бота "Бот данных"


Рис. 9.7.  Создание бота "Бот данных"

Будет создан бот, который будет обращаться к RunaWFE симулятору от имени пользователя "Бот данных".

11. Создайте задание бота

Кликните на созданного бота (См. рис. 9.8).

Список ботов


Рис. 9.8.  Список ботов

В появившейся форме кликните на "Добавить" в разделе "Задания" (См. рис. 9.9).

Добавление задания боту


увеличить изображение

Рис. 9.9.  Добавление задания боту

В появившейся строке введите в поле "Задание" строку "Ввести данные о заявке в учетную систему" (в данном случае уже без опечатки), в поле "Обработчик задания" выберите обработчик "DoNothingTaskHandler" (См. рис. 9.10), в поле "Конфигурация" ничего вводить не надо. Кликните "Применить".

Задание "Ввести данные о заявке в учетную систему"


увеличить изображение

Рис. 9.10.  Задание "Ввести данные о заявке в учетную систему"

Замечание. Данное применение бота является условным. Обработчик "DoNothingTaskHandler" автоматически сообщает бизнес-процессу, что задание выполнено, при этом никаких реальных действий не производит. Предполагается, что на этом примере (без реальной интеграции) студенты знакомятся с общим механизмом реализации интеграции СУБПиАР с другими информационными системами.

Для реальной организации взаимодействия экземпляров бизнес-процессов с информационными системами предприятия используются другие обработчики, например, "DatabaseTaskHandler" (обработчик для взаимодействия с реляционными базами данных) или "WebServiceTaskHandler" (обработчик для взаимодействия с веб-сервисами). Для этих обработчиков в конфигурации заданий задаются параметры коннекторов к информационным системам (ссылки на источники данный, типы протоколов, URL-адреса и т.п.). Работа конкретных ботов будет подробно рассмотрена в следующих занятиях.

12. Запустите периодическую активацию бот-станции

Войдите в меню "Бот станции", кликните на бот-станции "localbotstation", в открывшейся форме выполните команду "Запустить периодическую активацию ботов" (См. рис. 9.11)

Запуск периодической активации бот-станции


увеличить изображение

Рис. 9.11.  Запуск периодической активации бот-станции

13. Инициализируйте роли

Войдите в среду разработки, откройте вкладку "Роли" бизнес-процесса "Пример 4-1". Роль "Сотрудник" оставьте без инициализатора, эта роль будет инициализирована узлом-началом, то есть на роль "Сотрудник" в экземпляре бизнес-процесса будет назначен пользователь, запустивший этот экземпляр бизнес-процесса.

Инициализируйте роль "Директор" группой "Директор", для этого кликните на командной кнопке "Изменить" (См. рис. 9.12).

В появившейся форме кликните на нижней вкладке "Задать роль с помощью оргфункции" и верхней вкладке "Группы и пользователи WF" (См. рис. 9.13).

Редактирование инициализатора роли "Директор"


Рис. 9.12.  Редактирование инициализатора роли "Директор"

Форма редактирование инициализатора роли "Директор"


увеличить изображение

Рис. 9.13.  Форма редактирование инициализатора роли "Директор"

Кликните на ссылку "Настройки соединения" (Подробнее см. Практическое занятие "Изучение перспективы ресурсов", Порядок выполнения работы, Пункт 26, рис. 7.16).

В появившейся форме введите URL RunaWFE симулятора, а также логин и пароль пользователя, под которым будет установлено соединение. Если Вы не меняли установки по умолчанию, то можно использовать значения, которые установлены в форме (Подробнее см. Практическое занятие "Изучение перспективы ресурсов", Порядок выполнения работы, Пункт 26, рис. 3.17).

Проверьте соединение, кликнув на кнопку "Проверить соединение". Если соединение будет установлено, то появится сообщение об этом (См. рис. 3.18).

Если появится сообщение об ошибке соединения, проверьте что RunaWFE симулятор запущен (См. Вводное занятие, Порядок выполнения работы, Пункт 1).

Кликните на "ОК". В появившейся форме кликните на "Синхронизация". Затем кликните на "Группа" и ссылку "Выбрать" (См. рис. 9.14)

Инициализация роли группой пользователей


увеличить изображение

Рис. 9.14.  Инициализация роли группой пользователей

В открывшемся окне выберите группу "Директор". Кликните "ОК".

Перейдите к редактированию инициализатора роли "Бот работы с данными". В форме редактирования инициализатора кликните на нижней вкладке "Задать роль с помощью оргфункции" и верхней вкладке "Группы и пользователи WF" (См. рис. 9.13).

Затем кликните на "пользователь" и ссылку "Выбрать". В появившейся форме выберите пользователя "Бот данных" (См. рис. 9.15) Кликните на "ОК".

Инициализация роли пользователем


увеличить изображение

Рис. 9.15.  Инициализация роли пользователем

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

Перейдите на вкладку "Граф". Кликните правой кнопкой мыши на узле-начале. В появившемся контекстном меню выберите Форма/Создать форму (См. рис. 9.16).

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


увеличить изображение

Рис. 9.16.  Создание графической формы узла-начала

Будет создана новая форма, при этом автоматически откроется панель "Компоненты формы", содержащая список доступных для использования компонентов. В появившейся форме введите текст "Название услуги" и расположите напротив компонент "Ввод переменной". Для этого выделите его в списке компонентов и с помощью мыши перетащите в окно формы (См. рис. 9.17)

Замечание. Альтернативным способом добавления может быть двойной клик левой клавишей мыши по компоненту, после чего он будет добавлен в текущее положение курсора на форме.

Добавление компонента форм


Рис. 9.17.  Добавление компонента форм

Сделайте двойной клик мышью по добавленному на форму компоненту "Ввод переменной" или вызовите на нем контекстное меню и выберите пункт "Параметры компонента". Будет открыто окно для редактирования параметров компонента. Выберите переменную "Название услуги" (См. рис. 9.18).

Ввод переменной "Название услуги"


Рис. 9.18.  Ввод переменной "Название услуги"

Аналогично добавьте на форму ввод переменных: "Поставщик услуги", "Дата начала действия услуги", "Дата окончания действия услуги", "Стоимость услуги" и "Комментарий" (См. рис. 9.19).

Стартовая форма "Подать заявку на покупку услуги"


Рис. 9.19.  Стартовая форма "Подать заявку на покупку услуги"

Сохраните форму стартового узла.

Создайте форму узла-действия "Рассмотреть заявку на покупку услуги" (См. рис. 9.16). В форме введите текст "Название услуги" и расположите напротив компонент "Отобразить переменную". Для этого выделите его в списке компонентов и с помощью мыши перетащите в окно формы (См. рис. 9.20)

Замечание. Альтернативным способом добавления может быть двойной клик левой клавишей мыши по компоненту, после чего он будет добавлен в текущее положение курсора на форме.

Компонент форм - "Отобразить переменную"


Рис. 9.20.  Компонент форм - "Отобразить переменную"

Дважды кликните по добавленному компоненту, будет открыто окно параметров, в поле "Название переменной" выберите "Название услуги", форма отображения - "Как строку" (См. рис. 5.21).

Параметры компонента "Отобразить переменную"


Рис. 9.21.  Параметры компонента "Отобразить переменную"

Аналогичным образом поместите на форму элементы для отображения переменных "Поставщик услуги", "Дата начала действия услуги", "Дата окончания действия услуги" и "Стоимость услуги" (См. рис. 9.22).

Отображение переменных "Поставщик услуги", "Дата начала действия услуги", "Дата окончания действия услуги" и "Стоимость услуги"


Рис. 9.22.  Отображение переменных "Поставщик услуги", "Дата начала действия услуги", "Дата окончания действия услуги" и "Стоимость услуги"

Также добавьте вывод переменной "Комментарий", т.к. данная переменная представляет собой многострочный текст, то используйте форму отображения - "Как неактивный компонент ввода" (См. рис. 9.23).

Отобразить переменную "Комментарий" как неактивный компонент ввода


Рис. 9.23.  Отобразить переменную "Комментарий" как неактивный компонент ввода

Далее поместите на форму текст "Подавший заявку", после чего используя компонент "Отобразить переменную" добавьте вывод роли "Сотрудник" (См. рис. 9.24)

Вывод значения роли "Сотрудник"


Рис. 9.24.  Вывод значения роли "Сотрудник"

Далее введите "Комментарий директора" и поместите компонент "Ввод переменной" для "Комментарий директора" (См. рис. 9.25).

Ввод переменной "Комментарий директора"


увеличить изображение

Рис. 9.25.  Ввод переменной "Комментарий директора"

В результате форма должна выглядеть как на рис. 9.26.

Форма "Рассмотреть заявку на покупку услуги"


Рис. 9.26.  Форма "Рассмотреть заявку на покупку услуги"

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

Замечание. Из одной формы в другую можно переносить графические элементы путем выделения, копирования и вставки. Кроме того, формы "Ознакомиться с одобрением заявки" и "Ознакомиться с отказом" будут отличаться лишь заголовками, поэтому удобно воспользоваться созданием формы на основе существующей (Подробнее см. Практическое занятие "Изучение перспективы данных", Порядок выполнения работы, Пункт 6, рис. 8.27, рис. 8.28).

15. Установите ограничения на вводимые в графические элементы форм данные

Кликните на узле-начале правой кнопкой мыши, выполните команду "Форма / Проверка переменных формы" (См. рис. 9.27).

Вызов формы задания ограничений на значения переменных


Рис. 9.27.  Вызов формы задания ограничений на значения переменных

В появившейся форме кликните на строку, соответствующую переменной "Название услуги". Установите галочку для строки "Обязательное поле". В появившееся внизу поле впишите текст сообщения об ошибке (См. рис. 9.28).

Признак обязательности заполнения поля


увеличить изображение

Рис. 9.28.  Признак обязательности заполнения поля

При запуске экземпляра бизнес-процесcа система проверит, что в поле "Название услуги" введено значение. Если значение не введено, то система не будет запускать экземпляр бизнес-процесса и выведет сообщение об ошибке, текст которого помещен в поле "Сообщение об ошибке".

Далее кликните на строку, соответствующую переменной "Поставщик услуги". Установите галочку для строки "Обязательное поле". Введите текст сообщения об ошибке.

Кликните на строку, соответствующую переменной "Дата начала действия услуги". Установите галочку для строки "Обязательное поле". Введите текст сообщения об ошибке. Установите галочку для строки "Диапазон даты относительно текущей", установите возможный сдвиг в прошлое - 0 дней и в будущее - 30 дней, в поле "Рабочее время" выберите значение false. Введите текст сообщения об ошибке "Дата не может быть в прошлом, или более, чем на 30 дней превышать текущую" (См. рис. 9.29).

Ограничение на вводимую дату


увеличить изображение

Рис. 9.29.  Ограничение на вводимую дату

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

Для переменной "Стоимость услуги" установите признак обязательности ввода значения и разрешенный диапазон значений от нуля до 25 000. Введите текст сообщения об ошибке (См. рис. 9.30).

Ограничение на вводимое числовое значение


увеличить изображение

Рис. 9.30.  Ограничение на вводимое числовое значение

Для переменной "Комментарий" не устанавливайте признак обязательности ввода значения, но задайте ограничение на максимальный размер вводимого текста (См. рис. 9.31).

Ограничение на длину вводимого текста


Рис. 9.31.  Ограничение на длину вводимого текста

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

В конструкторе проверяемого соотношения в нижней части формы выберите две переменные: "Дата_окончания_действия_услуги" и "Дата_начала_действия_услуги" и установите между ними соотношение "не раньше" (См. рис. 9.32).

Кликните на "Finish".

Ограничение на соотношение дат


увеличить изображение

Рис. 9.32.  Ограничение на соотношение дат

Кликните на узле-действии "Рассмотреть заявку на покупку услуги" правой кнопкой мыши, выполните команду "Форма / Проверка переменных формы" (См. рис. 9.27).

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

Ограничение на длину комментария директора


увеличить изображение

Рис. 9.33.  Ограничение на длину комментария директора

16. Бизнес-процесс готов. Загрузите его на RunaWFE сервер.

Для этого кликните на разработанный бизнес-процесс, в меню выберите команду "Файл / Экспорт процесса" (Подробнее см. Практическое занятие "Изучение перспективы потока управления", Порядок выполнения работы, Пункты 11-14)

17. Войдите в web-интерфейс системы RunaWFE под пользователем Administrator. (Подробнее см. Вводное занятие, Порядок выполнения работы, Пункт 2, рис. 5.2. По умолчанию пароль пользователя Administrator - "wf".

18. Перейдите к списку бизнес-процессов, кликнув по ссылке "Запустить процесс" в левой части экрана.

19. Найдите бизнес-процесс в списке "Пример 4-1" и перейдите в его свойства, кликнув по одноименной ссылке "Свойства" напротив процесса.

20. Дайте полномочия группам "Сотрудники" и "Директор" на чтение определения и экземпляров разработанного бизнес-процесса. Дайте полномочия группе "Сотрудники" на запуск бизнес-процесса (Подробнее см. Практическое занятие "Изучение перспективы ресурсов", Порядок выполнения работы, Пункт 31, рис. 3.23).

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

Перейдите к списку исполнителей, кликнув по ссылке "Исполнители" в левой части экрана.

Перейдите к свойствам исполнителя "Бот данных", кликнув по "Бот данных"

Измените имя "Бот данных" на "Бот даных" и нажмите "Применить"

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

21. Войдите в web-интерфейс системы RunaWFE под пользователем входящим в группу "Сотрудники", например пользователь "Паучков".

22. Запустите бизнес-процесс, для этого перейдите по ссылке "Запустить процесс" и кликните по строке "Пример 4-1"

23. Введите данные на стартовой форме процесса

Проверьте работу всех заданных ограничений на ввод данных в стартовой форме.

Например, на следующем рисунке видно как сработал валидатор для "Дата начала действия услуги"

Ограничение на диапазон для "Дата начала действия услуги"


Рис. 9.34.  Ограничение на диапазон для "Дата начала действия услуги"

24. Запустите бизнес-процесс с помощью соответствующей кнопки, расположенной на стартовой форме

Пользователь, входящий в группу "Директор" получит задание "Рассмотреть заявку на покупку услуги"

25. Войдите в web-интерфейс системы RunaWFE под пользователем "Стрекозин".

26. Выполните задание "Рассмотреть заявку на покупку услуги", одобрив заявку.

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

Одобрение директором заявки на покупку услуги


Рис. 9.35.  Одобрение директором заявки на покупку услуги

Сотрудник "Паучков" будет проинформирован о решении директора с помощью соответствующего задания.

27. Войдите в web-интерфейс системы RunaWFE под пользователем "Паучков".

28. Выполните задание "Ознакомиться с одобрением услуги"

Параллельно с созданием задачи "Ознакомиться с одобрением услуги", должна была быть назначена задача и для "Бот работы с данными"

29. Проверьте, выполнил ли "Бот работы с данными" задачу внесения данных о заявке в учетную систему.

Для этого перейдите в раздел "Запущенные процессы" и кликните по текущему запущенному экземпляру бизнес-процесса "Пример 4-1"

Запущенные процессы


увеличить изображение

Рис. 9.36.  Запущенные процессы

Прокрутите окно со свойствами экземпляра процесса "Пример 4-1" до отображения графа,

Граф выполнения бизнес-процесса "Пример 4-1"


Рис. 9.37.  Граф выполнения бизнес-процесса "Пример 4-1"

Как видите, "Бот работы с данными" до сих пор не выполнил задание. Это произошло потому, что мы переименовали пользователя "Бот данных" в "Бот даных", вследствие чего, не может быть назначена роль 'Бот работы с данными'.

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

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

Нажмите на "Бот работы с данными", будет открыто окно с техническим подробностями данной проблемы.

Сообщение об ошибке


Рис. 9.38.  Сообщение об ошибке

Кроме того, сообщение об ошибках в процессах и конфигурациях заданий ботов можно наблюдать в разделе "Система" (доступен только Администратору).

30. Войдите в web-интерфейс системы RunaWFE под пользователем "Administrator" (пароль wf).

31. Перейдите по ссылке "Система" в левой части экрана.

Прокрутите окно вниз, как видите, здесь тоже имеется сообщение об ошибке при выполнении бизнес-процесса "Пример 4-1"

Ошибки в процессах


увеличить изображение

Рис. 9.39.  Ошибки в процессах

32. Откройте список исполнителей, кликнув по ссылке "Исполнители" в левой части экрана.

Перейдите в свойства исполнителя "Бот даных

Измените имя исполнителя "Бот даных" на правильное "Бот данных"

Войдите в меню "Бот станции", кликните на бот-станции "localbotstation", в открывшейся форме выполните команду "Остановить периодическую активацию ботов", затем выполните "Запустить периодическую активацию ботов"

33. Повторите шаги 21-29 для нового экземпляра бизнес-процесса "Пример 4-1". Удостоверьтесь, что теперь "Бот работы с данными" выполняет задачу "Ввести данные о заявке в учетную систему", процесс выполняется без ошибок и успешно завершается.

Задача "Ввести данные о заявке в учетную систему" успешно выполнена ботом


Рис. 9.40.  Задача "Ввести данные о заявке в учетную систему" успешно выполнена ботом

Задание для самостоятельной работы

Разработайте бизнес-процесс сдачи экзамена "Пример 4-2", схема которого изображена на рис. 9.40.

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

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

Переменные типа "Строка":

Переменные типа "Текст":

Переменные типа "Дата-время":

Переменные типа "Целое":

Схема бизнес-процесса сдачи экзамена ("Пример 4-2") для самостоятельной разработки


увеличить изображение

Рис. 9.41.  Схема бизнес-процесса сдачи экзамена ("Пример 4-2") для самостоятельной разработки

В стартовой форме бизнес-процесса должны быть введены следующие переменные:

Переменная "Предмет" должна быть обязательной, Комментарий - не обязательной. На длину переменной "Предмет" должно быть наложено ограничение в 50 символов, на длину переменной Комментарий - в 200 символов.

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

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

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

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

На переменную "Место экзамена" должны быть наложены следующие ограничения: поле должно быть обязательно для ввода, длина вводимого в переменную текста не может превышать 100 символов.

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

Форма узла-действия "Сформулировать задачу" должна быть подобна форме узла-действия "Сформулировать теоретический вопрос", только вместо переменной "Вопрос по теории" на форме должна вводиться переменная "Задача".

В формах узлов-действий "Написать ответ на теоретический вопрос" и "Написать решение задачи" должны быть введены соответственно переменные "Ответ на вопрос по теории" и "Решение задачи". Вывод переменных и ограничения должны быть аналогичны ранее описанным формам.

В формах узлов-действий "Написать ответ на теоретический вопрос" и "Написать решение задачи" должны быть введены соответственно переменные "Ответ на вопрос по теории" и "Решение задачи". Вывод переменных и ограничения должны быть аналогичны ранее описанным формам.

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

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

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

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

Узел-действие "Внести данные в учетную систему" и соответствующая задача боту настраиваются аналогично тому, как это было сделано в бизнес-процессе "Пример 4-1".

После разработки бизнес-процесса "Пример 4-2" загрузите его на RunaWFE сервер и выполните под разными пользователями. Добейтесь прохождения точек управления по всем возможным маршрутам. Проверьте выполнение ограничений и работу бота.

Требования к представлению результатов занятия

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

В отчете должны содержаться следующие выходные данные:

  1. Скриншоты основных действий, совершенных на занятии, с пояснениями
  2. Скриншоты, содержащие маршруты точек управления для экземпляров бизнес-процессов, доведенных до завершения.
  3. Описание возникших при выполнении задания проблем и найденных путей их решения (не обязательно, только если возникли проблемы при выполнении задания)

Контрольные вопросы

  1. Что такое перспектива операций?
  2. Что такое бот-станция?
  3. Как используется в бизнес-процессе определенное в бот-станции задание для бота?
  4. Можно ли в форме бизнес-процесса ввести ограничение, в соответствии с которым одна вводимая в форму дата обязательно должна быть больше другой?

Лекция 10. Работа с MS Word-ботом

Цель занятия: целью занятия является изучение работы с Word-ботом.

Теоретические сведения

Необходимые теоретические сведения изложены в первой части лабораторного практикума в пункте "Концепция ботов и бот-станций" раздела "Стандарты и концепции, связанные с СУБПиАР".

Порядок выполнения работы

1. Запустите среду разработки

Создайте новый проект - Занятие 5

Создайте новый бизнес-процесс "Пример 5-1".

Используйте следующие элементы для создания бизнес-процесса в соответствии с рис. 10.1

Схема бизнес процесса "Пример 5-1"


Рис. 10.1.  Схема бизнес процесса "Пример 5-1"

Замечание: для "Задача сценария" используйте компактный вид, кликните на элементе правой клавишей мыши и выберите пункт "Опции - Компактный вид" (см. рис. 10.2), после чего элемент примет вид изображенный на рис. 10.1. Используйте данную опцию для всех 4 задач сценариев.

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


Рис. 10.2.  Компактный вид для задач сценариев

Создайте роли:

Далее выберите для узлов роли в соответствии с рис. 10.1

Замечание. Роль "Руководитель" инициализируется в стартовом узле бизнес-процесса.

2. Запустите симулятор. Войдите в web-интерфейс системы RunaWFE под пользователем Administrator.

3. Создайте отношение "Руководитель" (См. пример создания отношения в пунктах 10-11 раздела "Практическое занятие "Изучение перспективы ресурсов", рис. 3.5, 3.6)

Откройте отношение "Руководитель" и создайте пару "Паучков " - "Сверчков" (см. рис. 10.3)

Отношение Руководитель


Рис. 10.3.  Отношение Руководитель

Таким образом, Паучков руководитель Сверчкова.

4. Создайте группы

(см. Вводное занятие. Пункт 5, рис. 5.5).

5. Инициализирйте роли "Директор", "Отдел кадров" и "Бухгалтер" с помощью соответствующих групп (директор, отдел кадров, бухгалтеры)

Для этого вернитесь в среду разработки к разрабатываемому процессу, перейдите на вкладку Роли, выделите роль и нажмите на "Изменить". Используйте инициализацию с помощью групп (подробнее см. Практическое занятие "Изучение перспективы операций", Порядок выполнения работы, Пункт 13, рис. 9.13-9.14)

6. Создайте переменные в соответствии с рис. 10.4

Переменные бизнес-процесса


увеличить изображение

Рис. 10.4.  Переменные бизнес-процесса

Для переменной "Отношение" необходимо использовать значение по умолчанию, для этого выделите переменную и нажмите "Изменить", затем "Далее" Переключитесь на строку "Использовать значение по умолчанию", после чего в текстовое поле введите "Руководитель" (см. рис. 2.5).

Ввод значения по умолчанию переменной


Рис. 10.5.  Ввод значения по умолчанию переменной

Список переменных в случае установленного IE11


Рис. 10.6.  Список переменных в случае установленного IE11

7. Создайте форму для стартового узла "Подать заявку на премию"

Замечание. По умолчанию в качестве редактора форм используется CKEditor4. Однако, в случае если у вас в системе установлен браузер Microsoft Internet Explorer устаревшей версии - 6 (IE6) или 7 (IE7), формы могут отображаться некорректно. В этом случае следует переключить редактор на FCKEditor2, Практическое занятие "Изучение перспективы данных", Пункт 6, рис. 8.9, рис. 8.10

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

Форма стартового узла


Рис. 10.7.  Форма стартового узла

Напротив строки "Сотрудник" расположите компонент форм "Выбрать пользователя по отношению с параметром". Данный компонент формирует список выбора пользователя по отношению, отфильтрованного по параметру отношения (при этом группы в список не попадают).

Дважды кликните по добавленному на форму компоненту, далее в поле "Пользователь" выберите роль "Сотрудник".

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

В поле "Название отношения" выберите строковую переменную "Отношение", в качестве параметра выберите роль "Руководитель".

Кроме того, используйте обратное отношение (см. рис. 10.9).

Выбор переменной в качестве названия отношения


увеличить изображение

Рис. 10.8.  Выбор переменной в качестве названия отношения

Выбор пользователя по обратному отношению "Руководитель"


Рис. 10.9.  Выбор пользователя по обратному отношению "Руководитель"

Таким образом будет сформирован список выбора пользователя по отношению "Руководитель", при этом используем обратное отношение т.е. параметр роль "Руководитель" соответствует "левой" части в паре, в список же попадут пользователи из "правой части" (подробнее об отношениях см. в "Стандарты и концепции, связанные с СУБПиАР. Использование бинарных отношений для упрощения инициализации ролей").

Напротив строки "Сумма" расположите компонент для ввода переменной "Размер премии" (см. рис. 10.10). Также разместите компонент для ввода переменной "Описание выполненных работ".

Ввод переменной "Размер премии"


Рис. 10.10.  Ввод переменной "Размер премии"

Сохраните и закройте форму.

8. Задайте валидацию для переменных и роли стартовой формы

Для переменных "Размер премии" и "Описание выполненных работ" добавьте валидатор "обязательное поле" (см. Практическое занятие "Изучение перспективы операций", Пункт 15, рис. 9.27, 9.28).

В форме валидации перейдите на вкладку Роли, и таким же образом, как и для переменных, добавьте валидатор "обязательное поле" для роли "Сотрудник" (см. рис. 10.11)

Валидатор для роли "Сотрудник"


Рис. 10.11.  Валидатор для роли "Сотрудник"

Нажмите Finish и сохраните процесс.

9. Настройте задачи сценариев

Выделите первую задачу сценария, перейдите в свойства, здесь введите название - "ФИО сотрудника". Кликните на выбор класса обработчика и выберите из списка - обработчик "Получить информацию об исполнителе", нажмите ОК (см. рис. 10.12, рис. 10.13)

Задача сценария "определение ФИО Сотрудника"


Рис. 10.12.  Задача сценария "определение ФИО Сотрудника"

Выбор класса обработчика


Рис. 10.13.  Выбор класса обработчика

Далее вызовите конфигурацию данного обработчика, выберите параметры "Исполнитель", "Формат", "Результат" в соответствии с рис. 10.14

Конфигурация обработчика "Получить информацию об исполнителе"


Рис. 10.14.  Конфигурация обработчика "Получить информацию об исполнителе"

Данный обработчик определяет полное имя (ФИО) Сотрудника и сохраняет результат в строковую переменную "ФИО сотрудника", однако в служебной записке и приказе на премирование должно использоваться ФИО в "Дательном" падеже.

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

'ФИО сотрудника 3'=FIO_case_ru('ФИО сотрудника', 3, "F i o")

'ФИО сотрудника 3' - переменная, в которую будет сохранено ФИО в дательном падеже,

FIO_case_ru(fio, caseNumber, mode) - функция склоняющая ФИО, имеет параметры:

Символы F, I и O заменяются на фамилию, имя или отчество в соответствующем падеже.
Символы f, i и o заменяются на первую букву фамилии, имени или отчества.

т.е. данный обработчик сформирует Фамилию в дательном падеже, первую букву Имени и первую букву Отчества, например Иванову И.И.

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

Получение ФИО сотрудника в дательном падеже


увеличить изображение

Рис. 10.15.  Получение ФИО сотрудника в дательном падеже

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

'Текущая дата' = current_date();

функция current_date определяет текущую дату и сохраняет результат в переменную "Текущая дата"

Определение текущей даты


Рис. 10.16.  Определение текущей даты

Следующая задача сценария будет генерировать файл служебной записки. Выделите задачу, дайте ей название "Генерации служебной записки", в качестве класса обработчика выберите - "Word: Формирование документа DOCX используя шаблон" (см. рис. 10.17)

Задача "Генерировать служебную записку"


Рис. 10.17.  Задача "Генерировать служебную записку"

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

Конфигуратор docx обработчика


Рис. 10.18.  Конфигуратор docx обработчика

Для создания шаблона в процессе кликните "Создать", затем "Изменить", будет открыт редактор Word, в котором необходимо создать шаблон вида, изображенного на рис. 10.19.

Шаблон служебной записки на премирование


Рис. 10.19.  Шаблон служебной записки на премирование

При выполнении обработчик заменит выражения вида ${Переменная} на значения переменных из процесса в формате, определенном в среде разработки. Кроме ранее рассмотренных переменных, тут также используется поле fullName, определяющее ФИО пользователя (в именительном падеже) роли Руководитель.

Сохраните шаблон и закройте редактор word файлов.

10. Создайте форму для узла "Подписать служебную записку и отдать ее в отдел кадров"

Отобразите файловую переменную "Служебная записка"

Форма "Подписать служебную записку и отдать ее в отдел кадров"


Рис. 10.20.  Форма "Подписать служебную записку и отдать ее в отдел кадров"

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

11. Создайте форму для узла "Рассмотреть заявку на премию"

Форма "Рассмотреть заявку на премию"


Рис. 10.21.  Форма "Рассмотреть заявку на премию"

Здесь расположите компоненты "Отобразить переменную". Для отображение роли "Руководитель" (будет выведены ФИО Руководителя), переменных "ФИО сотрудника", "размер премии" - используйте форму отображения "Как строку". Для отображения переменной "Описание выполненных работ" используйте в качестве формы отображения вариант "Как неактивный компонент ввода"

Также добавьте компонент для ввода переменной "Комментарий директора"

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

Для переменной "Комментарий директора" добавьте валидатор "обязательное поле"

12. Создайте форму для узла "Ознакомиться с сообщением об отказе"

Форма "Ознакомиться с сообщением об отказе"


увеличить изображение

Рис. 10.22.  Форма "Ознакомиться с сообщением об отказе"

Сделайте отображение значений переменных "ФИО сотрудника", "Размер премии", "Описание выполненных работ", "Комментарий директора". При этом для строковых переменных используйте отображение "Как строка", для текстовых переменных - "Как неактивный компонент ввода"

13. Создайте форму для узла "Ознакомиться с сообщением о согласии"

Т.к. данная форма отличается от формы "Ознакомиться с сообщением об отказе" лишь заголовком, то можно воспользоваться функцией создания формы на основе существующей (Подробнее см. Практическое занятие "Изучение перспективы данных", Порядок выполнения работы, Пункт 6, рис. 8.27, рис. 8.28).

Форма "Ознакомиться с сообщением о согласии"


увеличить изображение

Рис. 10.23.  Форма "Ознакомиться с сообщением о согласии"

14. Создайте композицию "Издание приказа и начисление премии"

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

Выделите на схеме элемент подпроцесс, дайте ему название "Издание приказа и начисление премии", затем кликните на данном элементе правой клавишей мыши и выберите "Использовать композицию. Новый подпроцесс" (см. рис. 10.24)

Вызов функции создание композиции


Рис. 10.24.  Вызов функции создание композиции

В появившемся окне введите название "Издание приказа и начисление премии"

Форма создания композиции


Рис. 10.25.  Форма создания композиции

15. Создайте композицию вида изображенного на рис. 10.26.

Схема композиции "Издание приказа и начисление премии"


Рис. 10.26.  Схема композиции "Издание приказа и начисление премии"

Проинициализируйте задачи ролями в соответствии с рисунком. При этом для задач у которых роль - "Отдел кадров" (Издать приказ о премировании, Получить подпись сотрудника об ознакомлении с приказом) используйте опцию "Переинициализация роли" (см. рис. 10.27)

Переинициализация роли Отдел кадров


Рис. 10.27.  Переинициализация роли Отдел кадров

16. Создайте форму для узла "Издать приказ о премировании"

Расположите здесь компонент для ввода переменной "номер приказа"

Форма "Издать приказ о премировании"


Рис. 10.28.  Форма "Издать приказ о премировании"

Для переменной "номер приказа" добавьте валидатор "обязательное поле" (см. рис. 10.29)

Валидатор для переменной "Номер приказа"


Рис. 10.29.  Валидатор для переменной "Номер приказа"

17. Настройте задачи сценария

В задаче сценария "ФИО директора" используя класс обработчика "Получить информацию об исполнителе" определите фамилию, имя и отчество Директора (см. рис. 10.30)

Определение ФИО директора


увеличить изображение

Рис. 10.30.  Определение ФИО директора

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

Задача "Сформировать текст приказа"


Рис. 10.31.  Задача "Сформировать текст приказа"

Используйте следующую конфигурацию для данного обработчика:

'Текст приказа о премировании'="Начислить сотруднику " + 'ФИО сотрудника 3' + " премию за высокие достижения в работе в сумме " + 'Размер премии' + " руб."

Здесь используются переменные: 'Текст приказа о премировании', 'ФИО сотрудника 3' и 'Размер премии'

Сохраните и закройте процесс с композицией.

18. Разработайте Word бота и задачу бота "Сгенерировать приказ" непосредственно в среде разработки

Откройте вкладку "Боты" (см. рис. 10.32)

Замечание. ОБЯЗАТЕЛЬНО (!) удалите все ботстанции из среды разработки, иначе создание ботов и задач будет приводить к ошибкам и некорректной работе. Для этого выделите ботстанцию правой клавишей мыши и выберите пункт "Удалить"

Вкладка "Боты"


увеличить изображение

Рис. 10.32.  Вкладка "Боты"

Сделайте импорт бот станции с wfe (была создана ранее в "Практическое занятие "Изучение перспективы операций"), для этого кликните правой клавишей мыши в окне боты, и выберите пункт "Импорт бот станции" (см. рис. 10.33)

Меню вызова импорта бот станции


Рис. 10.33.  Меню вызова импорта бот станции

В появившемся окне переключитесь на "Импорт с сервера WFE" и нажмите "Синхронизация". Выделите бот станцию localbotstation и нажмите "Готово" (см. рис. 10.34)

Импорт бот localbotstation с WFE сервера


Рис. 10.34.  Импорт бот localbotstation с WFE сервера

localbotstation будет добавлена в среду разработки. Перейдем к созданию бота Word бот.

Сделайте клик правой клавишей мыши на localbotstation и выберите пункт "Новый бот"

Создание нового бота


Рис. 10.35.  Создание нового бота

Введите имя бота - "Word бот" и нажмите "Готово" (см. рис. 10.36)

Форма создания нового бота


Рис. 10.36.  Форма создания нового бота

Теперь создайте задачу бота "Сгенерировать приказ". Для этого кликните правой клавишей мыши по "Word бот" и воспользуйтесь пунктом "Новая задача бота" (см. рис. 10.37)

Меню для создания задачи бота


Рис. 10.37.  Меню для создания задачи бота

Введите название задания - "Сгенерировать приказ" и нажмите "Готово"

Создание задачи бота


Рис. 10.38.  Создание задачи бота

Будет создана расширенная задача с формальными параметрами. Нажмите "Выбрать" для показа списка обработчиков (см. рис. 10.39)

Вызов списка обработчиков


увеличить изображение

Рис. 10.39.  Вызов списка обработчиков

Выделите обработчик "Word: формирование документа DOCX используя шаблон" и нажмите ОК (см. рис. 10.40)

Список обработчиков


Рис. 10.40.  Список обработчиков

Нажмите кнопку "Добавить" в окне "Входные параметры" (см. рис. 10.41)

"Добавить" входные параметры


Рис. 10.41.  "Добавить" входные параметры

Откроется форма в которой необходимо ввести название параметра и выбрать его тип (см. рис. 10.42)

Форма создания входного параметра


Рис. 10.42.  Форма создания входного параметра

Выходные параметры создаются аналогично.

Создайте входные и выходные параметры согласно рис. 10.43

Параметры задачи "Сгенерировать приказ"


Рис. 10.43.  Параметры задачи "Сгенерировать приказ"

Сохраните задачу.

Перейдем к созданию шаблона для приказа. Запустите редактор для Word файлов и создайте "Шаблон приказа.docx" следующего вида:

Шаблон приказа


Рис. 10.44.  Шаблон приказа

Сохраните файл "Шаблон приказа.docx" в корне диска C:\

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

Замечание: обратите внимание, в представленном шаблоне допущена ошибка. Вместо формального параметра с названием "полное имя директора" используется "имя директора". Причина этого будет объяснена при описании выполнения данного бизнес-процесса.

Вернитесь в среду разработки, к задаче "Сгенерировать приказ". Вызовите окно конфигуратора обработчика docx, для этого нажмите на кнопку "Изменить" в окне конфигурации (см. рис. 10.45)

Вызов конфигуратора обработчика


Рис. 10.45.  Вызов конфигуратора обработчика

Входной файл шаблона задайте с помощью пути к файлу, для выходного файла используйте файловую переменную параметр "Файл приказа", в поле "имя выходного файла" введите "Приказ.docx" (см. рис. 10.46)

Конфигурация обработчика docx файлов


Рис. 10.46.  Конфигурация обработчика docx файлов

Нажмите OK, и сохраните задачу.

Вернитесь к процессу "Пример 5-1", здесь необходимо инициализировать роль Word бот. Перейдите на вкладку "Роли", выделите Word бот, нажмите "Изменить".

На вкладке "Бот" выберите исполнителя по имени "Word бот" (см. рис. 10.47)

Инициализатор роли Word бот


Рис. 10.47.  Инициализатор роли Word бот

Нажмите ОК, сохраните процесс.

Перейдите к композиции "Издание приказа и начисление премии", здесь необходимо привязать Word бота к задаче. Кликните правой клавишей мыши на узле "Сгенерировать приказ" и выберите пункт "Привязать"

Вызов списка задач бота


Рис. 10.48.  Вызов списка задач бота

В списке выберите "Сгенерировать приказ" (см. рис. 10.49)

Список доступных для привязки задач


Рис. 10.49.  Список доступных для привязки задач

Нажмите ОК, будет открыта форма редактирования параметров задачи, выберите параметры в соответствии с рис. 10.50

Выбор параметров для задачи Word бота


Рис. 10.50.  Выбор параметров для задачи Word бота

19. Создайте форму "Ознакомиться с приказом" (см. рис. 10.51)

Отобразите на ней файловую переменную "Приказ" с помощью компонента "Отобразить переменную" как строку.

Форма "Ознакомиться с приказом"


Рис. 10.51.  Форма "Ознакомиться с приказом"

Создайте форму для узла "Начислить премию сотруднику", выведите значения переменных "ФИО сотрудника", "Размер премии", "Описание выполненных работ", "Приказ", при этом для текстовых переменных используйте форму отображения "как неактивный компонент ввода" (см. рис. 10.52)

Форма "Начислить премию сотруднику"


Рис. 10.52.  Форма "Начислить премию сотруднику"

Форма для узла "Ознакомиться с начислением премии" (см. рис. 10.53)

Форма "Ознакомиться с начислением премии"


Рис. 10.53.  Форма "Ознакомиться с начислением премии"

20. Экспортируйте разработанный процесс и Word бот с задачей на сервер WFE

Кликните на разработанный бизнес-процесс, в меню выберите команду "Файл / Экспорт процесса" (Подробнее см. Практическое занятие "Изучение перспективы потока управления", Порядок выполнения работы, Пункты 11-14).

Для экспорта бота с задачей, перейдите на вкладку "Боты", кликните правой клавишей мыши на Word бот, и выберите "Экспорт бота" (см. рис. 10.54) В появившемся окне выберите "Экспорт на WFE сервер", далее нажмите Готово (см. рис. 10.55).

Экспорт бота с задачей


Рис. 10.54.  Экспорт бота с задачей

Экспорт бота с задачей на WFE сервер


увеличить изображение

Рис. 10.55.  Экспорт бота с задачей на WFE сервер

21. Войдите на сервер под пользователем Administrator

Выберите пункт "Бот станции", и перейдите в ранее созданную бот станцию "localbotstation" (см. рис. 10.56)

Бот станции


увеличить изображение

Рис. 10.56.  Бот станции

Будет открыт список ботов входящих в бот станцию "localbotstation", проверьте присутствие в списке "Word бот" (см. рис. 10.57)

Word бот


Рис. 10.57.  Word бот

Процесс "Пример 5-1" должен запускать "Руководитель", поэтому дайте права на чтение и запуск для пользователя "Паучков" (который является руководителем Сверчкова). Подробнее см. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункты 28-32.

Также дайте право на чтение процесса для Word бота. (см. рис. 10.58)

Обладатели полномочий на процесс "Пример 5-1"


Рис. 10.58.  Обладатели полномочий на процесс "Пример 5-1"

Добавьте в группу "Бухгалтеры" пользователей "Жуков" и "Бражникова".

Добавьте в группу "Отдел кадров" пользователей "Личинкин" и "Гусеницын".

Добавьте в группу "Сотрудники" пользователей: Жуков, Бражникова, Личинкин, Гусеницын, а также Сверчков и Паучков.

Разрешите для группы "Сотрудники" вход в систему (см. Вводное занятие. Изучение интерфейса системы RunaWFE, пункты 7-9, рис. 5.6- 5.8).

Дайте полномочия группе "Сотрудники" на чтение на всех созданных пользователей (см. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункты 12-13, рис. 5.11-5.12).

Дайте на отношение "Руководитель" право на чтение для группы "Сотрудники" (см. Практическое занятие "Изучение перспективы ресурсов", Пункт 15)

22. Запустите периодическую активацию ботов (см. Практическое занятие "Изучение перспективы операций", Пункт 12)

23. Выполните процесс "Пример 5-1"

Войдите в систему под пользователем "Паучков", запустите процесс.

Введите данные на стартовой форме, и нажмите "Запустить" (см. рис. 10.59)

Стартовая форма процесса "Пример 5-1"


увеличить изображение

Рис. 10.59.  Стартовая форма процесса "Пример 5-1"

"Паучков" получит задачу "Подписать служебную записку и передать ее в отдел кадров", откройте задание, и нажмите на ссылку "служебная записка о начислении премии.docx", скачайте/откройте сформированную с помощью обработчика DocxHandler на основе шаблона, служебную записку (см. рис. 10.60).

Служебная записка о начислении премии


Рис. 10.60.  Служебная записка о начислении премии

Распечатайте служебную записку. Выполните задание.

Параллельно, "Отдел кадров" получает задание "Получить подписанную служебную записку на премию сотруднику".

Войдите в систему под пользователем входящем в группу "отдел кадров", например "Личинкин". Возьмите задачу на выполнение, и исполните ее (см. рис. 10.61).

Задание "Получить подписанную служебную записку на премию сотруднику"


Рис. 10.61.  Задание "Получить подписанную служебную записку на премию сотруднику"

Член группы "Директор" (в нашем случае это пользователь Стрекозин) получает задание "Рассмотреть заявку на премию".

Войдите в систему под пользователем "Стрекозин", возьмите задание на выполнение, введите комментарий и одобрите заявку на премию (см. рис. 10.62)

Задание "Рассмотреть заявку на премию"


Рис. 10.62.  Задание "Рассмотреть заявку на премию"

Руководитель (Паучков) получит задание "Ознакомиться с сообщением о согласии", параллельно с этим будет запущена композиция "Издание приказа и начисление премии", в которой "Отделу кадров" поступит задание "Издать приказ о премировании".

Войдите в систему под пользователем "Паучков", выполните активное задание (см. рис. 10.63).

Задание "Ознакомиться с сообщением о согласии"


Рис. 10.63.  Задание "Ознакомиться с сообщением о согласии"

Т.к. в узле "Издание приказа и начисление премии" была настроена переинициализация для роли "Отдел кадров", то соответствующее задание снова поступит всем членам группы "отдел кадров".

Войдите в систему под пользователем "Гусеницын", входящим в группу "Отдел кадров", возьмите на выполнение задание, введите "Номер приказа" и выполните задачу (см. рис. 10.64)

Задание "Издание приказа и начисление премии"


Рис. 10.64.  Задание "Издание приказа и начисление премии"

Проверьте, выполнил ли Word бот задание "Сгенерировать приказ"

Для этого войдите в систему под Administrator, в меню "Запущенные процессы".

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

Параметры отображения запущенных экземпляров процессов


увеличить изображение

Рис. 10.65.  Параметры отображения запущенных экземпляров процессов

Выбор типа сортировки - "по убыванию" поля "Номер"


увеличить изображение

Рис. 10.66.  Выбор типа сортировки - "по убыванию" поля "Номер"

Ввод названия и сохранение профиля


увеличить изображение

Рис. 10.67.  Ввод названия и сохранение профиля

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

Отображение запущенных процессов с сортировкой по убыванию номера


увеличить изображение

Рис. 10.68.  Отображение запущенных процессов с сортировкой по убыванию номера

Вернемся к проверке, выполнил ли Word бот задание "Сгенерировать приказ"

Найдите соответствующий экземпляр бизнес-процесса "Пример 5-1" в меню "Запущенные процессы" и кликните на его номер.

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

Найдите узел композицию "Издание приказа и начисление премии" (см. рис. 10.70), и кликните на него.

Граф выполнения экземпляра бизнес процесса "Пример 5-1"


увеличить изображение

Рис. 10.69.  Граф выполнения экземпляра бизнес процесса "Пример 5-1"

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

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

Граф выполнения композиции "Издание приказа и начисление премии". Задание "Сгенерировать приказ" не выполнено


Рис. 10.70.  Граф выполнения композиции "Издание приказа и начисление премии". Задание "Сгенерировать приказ" не выполнено

Закройте граф выполнения композиции, и вернитесь к свойствам экземпляра бизнес-процесса "Пример 5-1", прокрутите страницу вверх. Обратите внимание на сообщение "Ошибки в процессе". Кликните по строке "Сгенерировать приказ" - будет открыто окно с техническими подробностями ошибки (см. рис. 10.71).

Ошибки при выполнении бизнес-процесса "Пример 5-1"


увеличить изображение

Рис. 10.71.  Ошибки при выполнении бизнес-процесса "Пример 5-1"

Кроме того, сообщение об ошибках в процессах и конфигурациях заданий ботов можно наблюдать в разделе "Система" (доступен только Администратору).

Информация об ошибках в процессах, представленная на странице "Система"


увеличить изображение

Рис. 10.72.  Информация об ошибках в процессах, представленная на странице "Система"

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

Исправьте эту ошибку. Для этого откройте шаблон приказа ("Шаблон приказа.docx" в корне диска C:) и измените конструкцию ${имя директора} на ${полное имя директора} т.е. используем существующий формальный параметр (см. рис. 10.73). Сохраните шаблон.

Исправленный шаблон приказа


увеличить изображение

Рис. 10.73.  Исправленный шаблон приказа

Откройте веб интерфейс системы RunaWFE и перейдите по ссылке "Бот станции", расположенной в меню. Откройте ботстанцию localbotstation, остановите и заново запустите периодическую активацию ботов (см. Практическое занятие "Изучение перспективы операций", Пункт 12).

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

Узел "Сгенерировать приказ" должен быть отмечен как выполненный (см. рис. 10.74).

Граф выполнения композиции "Издание приказа и начисление премии"


Рис. 10.74.  Граф выполнения композиции "Издание приказа и начисление премии"

Войдите в систему под пользователем "Сверчков", откройте задание "Ознакомиться с приказом".

Нажмите ссылку на сгенерированный с помощью Word бота файл "Приказ.docx"

Задание "Ознакомиться с приказом"


Рис. 10.75.  Задание "Ознакомиться с приказом"

Сгенерированный приказ


Рис. 10.76.  Сгенерированный приказ

Распечатайте сгенерированный ботом документ. Завершите запущенный экземпляр бизнес-процесса, последовательно выполнив соответствующие задания под пользователями Личинкин (входит в группу Отдел кадров), Бражникова (входит в группу Бухгалтеры), и Сверчков (сотрудник которому начисляется премия).

Задание для самостоятельной работы

Разработайте бизнес-процесс "Пример 5-2", схема которого изображена на рис. 10.77 Для генерации приказа на отпуск используйте того же Word бота с задачей "Сгенерировать приказ" что и в процессе "Пример 5-1", и тот же шаблон для документа "приказ".

Замечание. Задача "Сгенерировать приказ" бота "Word бот" имеет формальные параметры, поэтому переменные в процессе "Пример 5-2" могут иметь отличные названия от переменных из "Процесс 5-1", но также в шаблоне приказа используется и непосредственно переменная "Номер приказа", поэтому она должна существовать в процессе "Пример 5-2".

"Заявление на отпуск" должно формироваться в задаче сценария с помощью обработчика "Word: Формирование документа DOCX используя шаблон". При этом создайте новый шаблон для документа "Заявление на отпуск" непосредственно в процессе.

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

Замечание. По умолчанию в качестве редактора форм используется CKEditor4. Однако, в случае, если у вас в системе установлен браузер Microsoft Internet Explorer устаревшей версии - 6 (IE6) или 7 (IE7), формы могут отображаться некорректно. В этом случае следует переключить редактор на FCKEditor2. (Подробнее см. Практическое занятие "Изучение перспективы данных", Порядок выполнения работы, Пункт 6, рис. 8.9, рис. 8.10).

В компоненте форм "Выбор из членов группы" в качестве параметра "Группа" можно использовать предварительно созданную переменную формата "Группа", проинициализированную значением "Директор и заместители" (подобный пример см. в Практическое занятие "Изучение перспективы данных", Порядок выполнения работы, Пункт 6, рис. 8.16)

Используйте задачи сценария для определения и формирования:

Схема бизнес-процесса "Пример 5-2" для самостоятельной разработки


увеличить изображение

Рис. 10.77.  Схема бизнес-процесса "Пример 5-2" для самостоятельной разработки

В бизнес-процессе "Пример 5-2" должны быть автоматически сгенерированы документы "Заявление на отпуск" и "Приказ на отпуск".

Документ "Заявление на отпуск" должен содержать:

Документ "Приказ" должен содержать

Замечание. В отличии от приказа из процесса "Пример 5-1", в приказе на отпуск используется дата совпадающая с датой ввода номера приказа сотрудником отдела кадров, а не с датой запуска бизнес-процесса.

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

Требования к представлению результатов занятия

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

В отчете должны содержаться следующие выходные данные:

  1. Скриншоты основных действий, совершенных на занятии, с пояснениями
  2. Скриншоты, содержащие маршруты точек управления для экземпляров бизнес-процессов, доведенных до завершения.
  3. Описание возникших при выполнении задания проблем и найденных путей их решения (не обязательно, только если возникли проблемы при выполнении задания)

Контрольные вопросы

  1. В каком месте шаблона документа ставится в соответствие переменная бизнес-процесса?
  2. Где задается имя файла, в который будет помещен сгенерированный документ?

Лекция 11. Работа с MS Excel-ботом

Цель занятия: целью занятия является изучение работы с MS Excel - ботом.

Теоретические сведения

Необходимые теоретические сведения изложены в пункте "Концепция ботов и бот-станций" лекции 3.

Порядок выполнения работы

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

1. Запустите среду разработки

2. Создайте новый проект - "Занятие 6"

3. Создайте новый бизнес-процесс "Пример 6-1".

(Подробнее см. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункт 16, рис. 5.14).

4. Добавьте элементы на схему бизнес-процесса в соответствии с рис. 11.1

Схема бизнес-процесса "Пример 6-1"


Рис. 11.1.  Схема бизнес-процесса "Пример 6-1"

Используйте элементы Начало, Действие, Задача сценария, Окончание.

Замечание. Для элемента Задача сценария используйте компактный вид.

(Подробнее см. Практическое занятие "Работа с MS Word-ботом", Порядок выполнения работы, Пункт 1, Замечание, рис. 10.2).

Элемент "Начало" назовите "Ввести данные для сохранения в Excel документ", задачу сценария - "Определение даты создания документа", остальные элементы в соответствии с рис. 11.1

5. Создайте роли

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

Выберите для узлов роли в соответствии с рис. 11.1

6. Создайте переменные для бизнес-процесса "Пример 6-1" согласно рис. 11.2

Переменные бизнес-процесса "Пример 6-1"


Рис. 11.2.  Переменные бизнес-процесса "Пример 6-1"

Замечание. Обратите внимание на переменную "перечень дисциплин" имеющую формат Список(Строка). При создании этой переменной, на форме выбора формата также необходимо будет выбрать и формат элементов (см. рис. 11.3)

Выбор формата переменной "перечень дисциплин" бизнес-процесса "Пример 6-1"


Рис. 11.3.  Выбор формата переменной "перечень дисциплин" бизнес-процесса "Пример 6-1"

7. Создайте формы

Замечание. По умолчанию в качестве редактора форм используется CKEditor4. Однако, в случае если у вас в системе установлен браузер Microsoft Internet Explorer устаревшей версии - 6 (IE6) или 7 (IE7), формы могут отображаться некорректно. В этом случае следует переключить редактор на FCKEditor2. (как переключить редактор см. в Практическое занятие "Изучение перспективы данных", Порядок выполнения работы, Пункт 6, рис. 8.9, рис. 8.10 )

Создайте стартовую форму "Ввод данных" вида представленного на рис. 11.4.

(Подробнее см. Практическое занятие "Изучение перспективы данных", Порядок выполнения работы, Пункт 6, рис. 8.11-8.12).

Стартовая форма "Ввести данные для сохранения в Excel документ" бизнес-процесса "Пример 6-1"


увеличить изображение

Рис. 11.4.  Стартовая форма "Ввести данные для сохранения в Excel документ" бизнес-процесса "Пример 6-1"

Напротив строки "Специальность", расположите компонент "Ввод переменной" для переменной - "Специальность" (Подробнее см. Практическое занятие "Изучение перспективы данных", Порядок выполнения работы, Пункт 6, рис. 8.21-8.22).

Аналогично добавьте компонент для ввода переменной "номер курса".

Используйте компонент "Редактировать связанные списки" для переменной "перечень дисциплин" (см. рис. 11.5)

"Редактировать связанные списки" для переменной "перечень дисциплин"


Рис. 11.5.  "Редактировать связанные списки" для переменной "перечень дисциплин"

Добавьте валидаторы для переменных:

Для этого кликните на стартовом узле правой клавишей мыши и выберите пункт "Форма > Проверка переменных формы", в появившейся форме выделяйте переменные и устанавливайте необходимые валидаторы. (см. Практическое занятие "Изучение перспективы операций", Пункт 15, рис. 7.27, рис. 7.28).

Создайте форму для задания "Просмотреть данные перед сохранением в Excel документ" вида представленного на рис. 11.6.

Форма "Просмотреть данные перед сохранением в Excel документ"


увеличить изображение

Рис. 11.6.  Форма "Просмотреть данные перед сохранением в Excel документ"

На этой форме отображаются данные введенные в стартовой узле. Для переменных "Специальность" и "Номер курса" используется компонент "Отобразить переменную" как строку (см. рис. 11.7)

Отобразить как строку переменную "Специальность"


Рис. 11.7.  Отобразить как строку переменную "Специальность"

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

Отобразить связанные списки


Рис. 11.8.  Отобразить связанные списки

Создайте форму "Получить созданный Excel документ" на которой отобразите ссылку для скачивания созданного Excel файла. Используйте компонент "Отобразить переменную" для файловой переменной "полученный Excel файл"

Форма "Получить созданный Excel документ"


увеличить изображение

Рис. 11.9.  Форма "Получить созданный Excel документ"

8. Создайте обработчик

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

(см. Практическое занятие "Изучение перспективы данных", Порядок выполнения работы, Пункт 8,рис. 8.33, рис. 8.34)

В качестве конфигурации используйте:

'дата создания документа'=current_date();

Таким образом с помощью функции current_date будет определена текущая дата и сохранена в переменную "дата создания документа"

9. Создайте бота "Excel бот" с задачей "Записать данные в файл"

Замечание. Перед выполнением следующих пунктов ОБЯЗАТЕЛЬНО (!) удалите все ботстанции из среды разработки, иначе создание ботов и задач будет приводить к ошибкам и некорректной работе. Для этого выделите ботстанцию правой клавишей мыши и выберите пункт "Удалить".

10. Запустите симулятор

Вернитесь в среду разработки и перейдите на вкладку "Боты" и сделайте импорт бот станции с сервера (Подробнее см. Практическое занятие "Работа с MS Word-ботом", Порядок выполнения работы, Пункт 18, рис. 10.32 - 10.34).

Создайте нового бота с именем "Excel бот" (Подробнее см. Практическое занятие "Работа с MS Word-ботом", Порядок выполнения работы, Пункт 18, рис. 10.35 - 10.36).

Создайте задачу с формальными параметрами "Записать данные в файл" (Подробнее см. Практическое занятие "Работа с MS Word-ботом", Порядок выполнения работы, Пункт 18, рис. 10.37 - 10.38).

Excel бот с задачей "Записать данные в файл"


Рис. 11.10.  Excel бот с задачей "Записать данные в файл"

Нажмите "Выбрать" и в появившемся окне выберите из списка обработчик "Excel: Сохранить данные в файл" (ExcelSaveHandler) (см. рис. 11.11)

Выбор обработчика "Excel: Сохранить данные в файл"


Рис. 11.11.  Выбор обработчика "Excel: Сохранить данные в файл"

Создайте входные параметры:

Создайте Выходной параметр:

(Подробнее см. Практическое занятие "Работа с MS Word-ботом", Порядок выполнения работы, Пункт 18, рис. 10.41 - 10.42)

Формальные параметры задачи "Записать данные в файл"


Рис. 11.12.  Формальные параметры задачи "Записать данные в файл"

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

Вызовите окно конфигуратора обработчика, для этого нажмите на кнопку "Изменить" (см. рис. 11.13)

Вызов конфигуратора


Рис. 11.13.  Вызов конфигуратора

Используйте конфигурацию приведенную на рис. 11.14.

Конфигуратор обработчика "Excel: Сохранить данные в файл"


Рис. 11.14.  Конфигуратор обработчика "Excel: Сохранить данные в файл"

Здесь:

Нажмите ОК, сохраните и закройте задачу.

10. Создайте файл шаблона

Далее необходимо создать файл шаблона C:\xls_tmp.xlsx, следующего вида:

Входной файл Excel


Рис. 11.15.  Входной файл Excel

11. Добавьте инициализатор для роли Excel бот

Вернитесь в бизнес-процесс "Пример 6-1", перейдите на вкладку роли, выделите роль "Excel бот" и нажмите "Изменить" В появившейся форме перейдите вкладку Бот, где из выпадающего списка выберите "Excel бот" (см. рис. 11.16)

Инициализация роли бота


Рис. 11.16.  Инициализация роли бота

Нажмите ОК, сохраните процесс.

12. Выполните привязку бота к задаче

Перейдите на граф процесса, щелкните правой клавишей мыши на узле "Сохранить данные в Excel файл", выберите пункт "Задача бота > привязать" (см. рис. 11.17)

Вызов привязки задачи


Рис. 11.17.  Вызов привязки задачи

Появится форма со списком задач с формальными параметрами бота "Excel бот", выделите задачу "Записать данные в файл" и нажмите ОК (см. рис. 11.18)

Привязка задачи


Рис. 11.18.  Привязка задачи

Будет вызвана форма конфигурации задачи. Установите соответствие между параметрами задачи и переменными процесса согласно рис. 11.19

Конфигурация задачи Excel "Сохранить данные в файл"


Рис. 11.19.  Конфигурация задачи Excel "Сохранить данные в файл"

Сохраните процесс.

13. Экспортируйте процесс на сервер

(Подробнее см. "Практикум. Перспективы исполнимых бизнес-процессов", Практическое занятие "Изучение перспективы потока управления", Порядок выполнения работы, Пункт 11-14).

14. Экспортируйте Excel бот с задачей на сервер

(Подробнее см. Практическое занятие "Работа с MS Word-ботом", Порядок выполнения работы, Пункт 20, рис. 2.54 - 2.57).

15. Войдите в систему под пользователем Administrator, пароль –wf

16. Дайте полномочия группе "Преподаватели" на запуск, чтение и чтение экземпляра процесса "Пример 6-1"

17. Запустите периодическую активацию ботов

(Подробнее см. Практическое занятие "Изучение перспективы операций", Порядок выполнения работы, Пункт 12, рис. 6.11).

18. Войдите в систему под пользователем, входящим в группу "Преподаватели", например "Стрекозин", пароль - 123

19. Запустите экземпляр бизнес-процесса "Пример 6-1" и доведите его до завершения.

Введите данные на стартовой форме, например:

Ввод данных на стартовой форме


увеличить изображение

Рис. 11.20.  Ввод данных на стартовой форме

Нажмите Запустить, выполните полученное задание "Просмотреть данные перед сохранением в Excel документ"

Задание "Перед записью в файл"


увеличить изображение

Рис. 11.21.  Задание "Перед записью в файл"

Excel бот выполнит задачу "Записать данные в файл"

Граф выполнения процесса "Пример 6-1"


Рис. 11.22.  Граф выполнения процесса "Пример 6-1"

Будет получено задание, со ссылкой на созданный Excel файл, нажмите на ссылку

Ссылка на созданный Excel файл


Рис. 11.23.  Ссылка на созданный Excel файл

Будет загружен file.xlsx, сохраните его на C:\ Откройте файл.

Созданный с помощью Excel бота file.xlsx


Рис. 11.24.  Созданный с помощью Excel бота file.xlsx

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

20. Завершите процесс

21. Запустите среду разработки.

22. Создайте новый бизнес-процесс "Пример 6-2":

23. Добавьте элементы на схему бизнес-процесса в соответствии с рис. 11.25

Схема бизнес-процесса "Пример 6-2"


Рис. 11.25.  Схема бизнес-процесса "Пример 6-2"

Здесь используются те же элементы что и в процессе "Пример 6-1". Задаче сценария дайте название "Прочесть данные из файла", используйте опцию "компактный вид".

24. Создайте роль Студент

Выберите данную роль для стартового узла и действий.

25. Создайте переменные

В данном процессе используются те же переменные что и в "Пример 6-1", за исключением переменной "полученный Excel файл".

Откройте процесс "Пример 6-1", перейдите на вкладку переменные, выделите переменные (за исключением полученный excel файл") и нажмите кнопку "Копировать" (см. рис. 11.26).

Копирование переменных


Рис. 11.26.  Копирование переменных

Затем откройте процесс "Пример 6-2", перейдите на вкладку "Переменные" и нажмите кнопку "Вставить", переменные добавятся в список (см. рис. 11.27).

Вставка переменных


Рис. 11.27.  Вставка переменных

26. Создайте формы

Создайте форму "Выполнить задание перед чтением из Excel документа" вида представленного на рис. 11.28.

Форма "Выполнить задание перед чтением из Excel документа"


Рис. 11.28.  Форма "Выполнить задание перед чтением из Excel документа"

Создайте форму "Просмотреть данные считанные из Excel документа" вида представленного на рис. 11.29.

Форма "Просмотреть данные считанные из Excel документа"


Рис. 11.29.  Форма "Просмотреть данные считанные из Excel документа"

Используйте компонент "Отобразить переменную" для переменных: "специальность", "номер курса", "дата создания документа".

Используйте компонент "Отобразить связанные списки" для переменной "перечень дисциплин".

27. Создайте обработчик

Выберите класс обработчика "Excel: Прочесть данные из файла" в задаче сценария "Прочесть данные из файла"

Выбор класса обработчика


Рис. 11.30.  Выбор класса обработчика

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

Используйте конфигурацию, представленную на рис. 11.31.

Конфигурация "Чтение из файла Excel"


Рис. 11.31.  Конфигурация "Чтение из файла Excel"

Т.е. предполагается чтение из файла C:\file.xlsx, который был создан при выполнении бизнес-процесса "Пример 6-1" использующего задачу Excel бота - "Записать данные в файл".

Считанные по соответствующим адресам значения будут сохранены непосредственно в переменные бизнес-процесса "Пример 6-2".

Замечание. Во время выполнения экземпляра бизнес-процесса потребуется обязательное наличие файла для чтения/записи данных в указанной в конфигурации папке - C:\file.xlsx

28. Сохраните бизнес-процесс

29. Экспортируйте бизнес-процесс на сервер

30. Войдите в систему под пользователем Administrator, пароль –wf

31. Дайте права "Чтение", "Запуск", "Чтение экземпляра" на процесс "Пример 6-2" для группы "Группа МИБ-1"

32. Войдите в систему под пользователем входящим в группу "Группа МИБ-1", например Гусеницын

33. Запустите экземпляр бизнес-процесса "Пример 6-2" и доведите его до завершения.

В задании "Просмотреть данные считанные из Excel документа" будут выведены считанные из файла C:\file.xlsx в переменные процесса данные (см. рис. 11.32)

Задание "Просмотреть данные, считанные из Excel документа"


Рис. 11.32.  Задание "Просмотреть данные, считанные из Excel документа"

Считанные значения соответствуют введенным данным во время выполнения процесса "Пример 6-1".

Задание для самостоятельной работы

Создайте новую задачу Excel бота - "Прочитать данные из файла" с формальными параметрами.

В качестве обработчика в данной задаче используйте "Excel: Прочесть данные из файла".

Добавьте формальные параметры задачи в соответствии с рис. 11.33

Формальные параметры задачи "Прочитать данные из файла" Excel бота


Рис. 11.33.  Формальные параметры задачи "Прочитать данные из файла" Excel бота

Используйте конфигурацию, представленную на рис. 11.34.

Конфигурация обработчика "Excel: Прочесть данные из файла" в задаче


Рис. 11.34.  Конфигурация обработчика "Excel: Прочесть данные из файла" в задаче

Создайте на основе процесса "Пример 6-2" новый процесс "Пример 6-3", в соответствии с рис. 11.35

Можно воспользоваться функцией копирования процесса (см. Практическое занятие "Изучение перспективы потока управления", Задание для самостоятельной работы, рис. 6.16, рис. 6.17)

Схема бизнес-процесса "Пример 6-3"


Рис. 11.35.  Схема бизнес-процесса "Пример 6-3"

В отличии от "Пример 6-2", вместо задачи сценария "Прочесть данные из файла" используется элемент Действие, с выбранной ролью "Excel бот".

Создайте Роли:

Замечание. Если использовалась функция копирования процесса, то "Студент" уже будет в списке ролей, и ее создавать не требуется.

Создайте переменные:

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

В узле "Прочесть данные из файла" сделайте привязку к задаче "Прочитать данные из файла" Excel бота (см. Практическое занятие "Работа с MS Excel-ботом ", рис. 11.17).

Установите соответствие между переменными процесса и задачей (см. рис. 11.36)

Привязка параметров задачи к переменным процесса "Пример 6-3"


Рис. 11.36.  Привязка параметров задачи к переменным процесса "Пример 6-3"

Сохраните и экспортируйте процесс "Пример 6-3".

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

Дайте на процесс "Пример 6-3" права на запуск, чтение и чтение экземпляра для "Группа МИБ-1".

Запустите периодическую активацию ботов.

Запустите новый экземпляр процесса под пользователем входящим в "Группа МИБ-1". Доведите его до завершения.

Проверьте, что Excel бот выполнил задание "Прочесть данные из файла", и значения выведенные на форму в задании "Вывод данных" соответствуют данным из файла C:\file.xlsx

Замечание. Все действия аналогичны действиям при создании и выполнении процессов "Пример 6-1" и "Пример 6-2"

Требования к представлению результатов занятия

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

В отчете должны содержаться следующие данные:

  1. Скриншоты основных действий, совершенных на занятии, с пояснениями
  2. Скриншоты, содержащие маршруты точек управления для экземпляров бизнес-процессов, доведенных до завершения.
  3. Скриншоты, содержащие созданные на занятии переменные и основные формы

Контрольные вопросы

  1. Где задается имя Excel-файла, в который обработчик будет записывать данные?
  2. Где задается путь к Excel-файлу, в который обработчик будет записывать данные?
  3. Где задается имя и путь к Excel-файлу, из которого обработчик будет читать данные?
  4. Как создается задача бота с формальными параметрами

Лекция 12. Задания для самостоятельной работы

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

Теоретические сведения

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

Порядок выполнения работы

Ниже представлено десять описаний условных бизнес-процессов. Требуется в соответствии с описанием разработать бизнес-процесс в среде разработки системы RunaWFE, отладить разработанный бизнес-процесс в симуляторе RunaWFE и сдать бизнес-процесс преподавателю.

Общие замечания для всех заданий.

Замечание 1.

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

Замечание 2.

Рассмотрим ситуацию, в которой действие должно быть выполнено одновременно двумя пользователям - например, сотрудник должен расписаться в документе должностного лица. Интуитивная реализация такого сценария обычно соответствует последовательному расположению двух узлов на схеме бизнес-процесса, при этом исполнителем в первом узле является сотрудник, а во втором — должностное лицо. Практика показывает, что такое решение является неудачным, так как в этом случае в момент выполнения действия соответствующие задания не могут находиться в списках заданий обоих сотрудников. Поэтому на схеме бизнес-процесса узлы, в которых даются задания двум исполнителям, в данном случае должны располагаться не последовательно, а параллельно, то есть они должны находиться в параллельных ветках (см. рис. 12.1)

Пример действия, выполняемого одновременно двумя лицами


Рис. 12.1.  Пример действия, выполняемого одновременно двумя лицами

Замечание 3.

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

Замечание 4.

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

Замечание 5.

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

Замечание 6.

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

Замечание 7.

Практика эксплуатации СУБП на предприятиях показывает, что роли должностных лиц (например, Бухгалтер, Инспектор кадровой службы) соответствуют ответственным сотрудникам, а роли "Сотрудник" и "Подавший заявку" - гораздо менее ответственным сотрудникам, которые могут неделями не отмечать выполнение заданий. Поэтому требуется так составить схему бизнес-процесса, чтобы в таких случаях задание типа "ознакомиться с ..." у этих сотрудников было, но чтобы его невыполнение не останавливало дальнейшее выполнение бизнес-процесса. То есть эта задача и остальные шаги бизнес-процесса должны выполняться в параллельных ветках.

Пример неправильной схемы


Рис. 12.2.  Пример неправильной схемы

На рис. 12.2 показан пример неправильной схемы, в котором задача (в меньшем овале) останавливает выполнение блока действий (в большем овале).

На рис. 12.3 также показан пример неправильной схемы, в котором задача "Ознакомиться с положительным решением" в некоторых случаях останавливает издание приказа.

Пример неправильной схемы


Рис. 12.3.  Пример неправильной схемы

Пример правильной схемы


Рис. 12.4.  Пример правильной схемы

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

Замечание 8.

В заданиях настоящего занятия используется страница описания бизнес-процесса. Если эта страница задана в определении бизнес-процесса, то она открывается при клике на строку описания бизнес-процесса в web-интерфейсе системы (см. рис. 12.5)

Строка описания бизнес-процесса (при клике на нее открывается форма описания бизнес-процесса)


увеличить изображение

Рис. 12.5.  Строка описания бизнес-процесса (при клике на нее открывается форма описания бизнес-процесса)

Форма описания бизнес-процесса


увеличить изображение

Рис. 12.6.  Форма описания бизнес-процесса

Задать форму описания бизнес-процесса можно в среде разработки. Делается это следующим образом:

В свойствах определения бизнес-процесса заполняется поле "Значение" для свойства "Описание" (см. рис. 12.7)

Поле "Значение" свойства "Описание" бизнес-процесса


Рис. 12.7.  Поле "Значение" свойства "Описание" бизнес-процесса

Далее надо кликнуть правой кнопкой мыши на белом фоне на схеме бизнес-процесса. - Откроется контекстное меню, в котором надо кликнуть на команду "Описание" (см. рис. 12.8). После этого откроется форма редактирования страницы описания бизнес-процесса (см. рис. 12.9).

Команда "Описание" контекстного меню


Рис. 12.8.  Команда "Описание" контекстного меню

Форма для редактирования страницы "Описание" бизнес-процесса


Рис. 12.9.  Форма для редактирования страницы "Описание" бизнес-процесса

Задание по разработке бизнес-процесса "Ежегодный отпуск"

Содержание страницы описания бизнес-процесса

Оплачиваемый отпуск предоставляется ежегодно.

Описание последовательностей действий в бизнес-процессе

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

После клика на команду "выполнить" будет создан новый экземпляр бизнес-процесса.

Следующее задание "Рассмотреть заявку на отпуск" получит руководитель сотрудника (руководитель определяется отношением "Руководитель"). Руководитель одобряет или не одобряет заявку. Подавший заявку знакомится с положительным или отрицательным решением руководителя. Если решение руководителя было отрицательным, то далее процесс завершается.

Если решение руководителя было положительным, то следующее задание "Проверить соблюдение технологий и законов" получит инспектор кадровой службы (определяется членством в группе "Инспекторы КС"). В содержащейся в задании форме он отмечает, соблюдены ли законы и технологии (то есть, положен ли сотруднику ежегодный отпуск в соответствии с договором, заключенным с предприятием, не отгулял ли уже сотрудник все положенные дни отпуска за текущий год и т.п.).

Если законы или технологии не соблюдены, то бизнес-процесс сообщает руководителю сотрудника и подавшему заявку (то есть - самому сотруднику) о несоблюдении технологий. Далее процесс завершается. Если законы и технологии соблюдены, то сотрудник получает задание "Ознакомиться с подтверждением ежегодного отпуска", инспектору кадровой службы направляется задание "Издать приказ". В форме задания "Издать приказ" инспектор кадровой службы вводит номер приказа (значение типа строка). После выполнения задания инспектором кадровой службы Word-бот получает задание "Сгенерировать приказ на ежегодный отпуск". Роль Word-бот инициализируется оргфункцией "исполнитель по имени", имя исполнителя в данном случае совпадает с именем роли - "Word-бот" (См. Практическое занятие "Работа с MS Word-ботом").

Приказ должен содержать:

  1. В верхней части листа - название условной компании
  2. Фразу "Приказ номер"
  3. Справа от этой фразы - значение "номер приказа", введенное инспектором кадровой службы"
  4. слово "от"
  5. Справа от этого слова - дату запуска экземпляра бизнес-процесса
  6. Далее - "Предоставить сотруднику" ФИО сотрудника "ежегодный основной оплачиваемый отпуск"
  7. Далее - "с" дата начала отпуска, введенная на стартовой форме
  8. Далее - "по" дата окончания отпуска, введенная на стартовой форме
  9. Далее - место для подписи Генерального директора (несколько знаков подчеркивания), ФИО условного генерального директора компании, дата запуска экземпляра бизнес-процесса
  10. Внизу - "С приказом ознакомлен", место для подписи сотрудника (несколько знаков подчеркивания), ФИО сотрудника, дата запуска экземпляра бизнес-процесса

Далее Word-бот получает задание "Сгенерировать заявление на ежегодный отпуск"

Заявление должно содержать:

  1. В верхней части листа "Генеральному директору" - название условной компании, ФИО услоАя­ZQVАя­ZQVРOҐZQVЂµtZQV(®ZQVая­ZQV@ая­ZQVаявление"
  2. На следующей строке "Прошу предоставить мне ежегодный основной оплачиваемый отпуск с", дата начала отпуска, введенная на стартовой форме, "по", дата окончания отпуска, введенная на стартовой форме
  3. Внизу - ФИО сотрудника, место для подписи сотрудника (несколько знаков подчеркивания), дата запуска экземпляра бизнес-процесса

После выполнения этих заданий Word-ботом сотруднику должна быть направлена задача "Сдать в КС заявление и подписать приказ". В форме этого задания должна быть ссылка для загрузки сформированного ботом документа "Заявление на ежегодный отпуск". Инспектору кадровой службы направляется задача "Получить заявление и подпись на приказе". В форме этого задания должна быть ссылка для загрузки сформированного ботом документа "Приказ на ежегодный отпуск". После выполнения этого задания бизнес-процесс должен дождаться момента времени за две недели до начала отпуска, после этого задание "выплатить отпускные" получает бухгалтер (определяется членством в группе "Бухгалтеры").

После выполнения всех заданий бизнес-процесс завершается.

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

Задание по разработке бизнес-процесса "Больничный"

Содержание страницы описания бизнес-процесса:

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

Описание последовательностей действий в бизнес-процессе

Если сотрудник заболел, то он или какой-то другой сотрудник запускает на выполнение бизнес-процесс "больничный".

В появившейся стартовой форме он вводит данные: выбирает из списка (список соответствует членам группы "Все сотрудники") заболевшего сотрудника, вводит дату начала болезни, причину и комментарий.

После клика на команду "выполнить" создается новый экземпляр бизнес-процесса "больничный".

Следующее задание получает инспектор кадровой службы (определяется членством в группе "Инспекторы КС"). Задание называется "Проверить соблюдение технологий и законов". В содержащейся в задании форме он отмечает, соблюдены ли законы и технологии (то есть, положен ли больничный сотруднику в соответствии с договором, заключенным с предприятием).

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

Если законы и технологии соблюдены, то подавший заявку уведомляется о регистрации заявки на больничный, руководитель сотрудника (руководитель определяется отношением "Руководитель") уведомляется о болезни сотрудника, сотруднику направляется задание "Сообщить о выздоровлении и выходе на работу". Бухгалтер (определяется членством в группе "Бухгалтеры") получает задание "отразить факт болезни сотрудника в бухучете".

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

После выполнения задания "Получить от сотрудника больничный" инспектором кадровой службы Word-бот получает задание "Сгенерировать справку о болезни сотрудника". Роль Word-бот инициализируется оргфункцией "исполнитель по имени", имя исполнителя в данном случае совпадает с именем роли - "Word-бот" (См. Практическое занятие "Работа с MS Word-ботом").

Справка должна содержать:

  1. В верхней части листа - название условной компании
  2. Фразу "Справка о болезни сотрудника"
  3. Далее - ФИО сотрудника
  4. Далее - "Начало болезни" дата начала болезни, введенная на стартовой форме
  5. Далее - "Окончание болезни" дата окончания болезни, введенная инспектором КС в задании "Получить от сотрудника больничный"
  6. Далее - место для подписи бухгалтера (несколько знаков подчеркивания)

После выполнения задания Word-ботом, задание "рассчитать больничный" получает бухгалтер. Форма задания должна содержать сгенерированный Word-ботом файл.

После выполнения всех заданий бизнес-процесс завершается.

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

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

Содержание страницы описания бизнес-процесса:

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

Описание последовательностей действий в бизнес-процессе

Бизнес-процесс начинается с того, что пользователь в стартовой форме заполняет данные, относящиеся к командировке:

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

После клика на команду "выполнить" создается новый экземпляр бизнес-процесса.

Далее задание "рассмотреть заявку на командировку" направляется непосредственному руководителю отправляемого в командировку сотрудника (руководитель определяется отношением "Руководитель"). Руководитель одобряет или не одобряет командировку. В случае неодобрения заявки Подавший заявку знакомится с отрицательным решением руководителя, после чего бизнес-процесс завершается.

Если командировка одобрена, то Подавший заявку знакомится с положительным решением руководителя, инспектор кадровой службы (определяется членством в группе "Инспекторы КС") получает задание "издать приказ".

В форме задания "Издать приказ" инспектор кадровой службы вводит номер приказа (значение типа строка). После выполнения задания инспектором кадровой службы Word-бот получает задание "Сгенерировать приказ на командировку". Роль Word-бот инициализируется оргфункцией "исполнитель по имени", имя исполнителя в данном случае совпадает с именем роли - "Word-бот" (См. Практическое занятие "Работа с MS Word-ботом").

Приказ должен содержать:

  1. В верхней части листа - название условной компании
  2. Фразу "Приказ о направлении в командировку номер"
  3. Справа от этой фразы - значение "номер приказа", введенное инспектором кадровой службы"
  4. слово "от"
  5. Справа от этого слова - дату запуска экземпляра бизнес-процесса
  6. Далее - "Направить в командировку сотрудника" ФИО сотрудника "ежегодный основной оплачиваемый отпуск"
  7. "в г." город, введенный на стартовой форме
  8. "в организацию:" организация, введенная на стартовой форме
  9. "с целью:" организация, введенная на стартовой формеДалее - "с" дата начала командировки, введенная на стартовой форме
  10. Далее - "по" дата окончания командировки, введенная на стартовой форме
  11. Далее - место для подписи Генерального директора (несколько знаков подчеркивания), ФИО условного генерального директора компании, дата запуска экземпляра бизнес-процесса
  12. Внизу - "С приказом ознакомлен", место для подписи сотрудника (несколько знаков подчеркивания), ФИО сотрудника, дата запуска экземпляра бизнес-процесса

Далее Word-бот получает задание "Сгенерировать командировочное удостоверение"

Командировочное удостоверение должно содержать:

  1. В верхней части листа - название условной компании
  2. Фразу "Командировочное удостоверение"
  3. ФИО сотрудника
  4. Организация
  5. Внизу:
  6. "Генеральный директор", название условной компании, место для подписи Генерального директора (несколько знаков подчеркивания), ФИО условного генерального директора компании
  7. "Работник", место для подписи сотрудника (несколько знаков подчеркивания), ФИО сотрудника
  8. Дата запуска экземпляра бизнес-процесса

На следующей (обороте) странице:

  1. "Отметки о выбытии в служебную поездку, прибытии в пункты назначения и выбытии из них и прибытии в место постоянной работы
  2. Далее содержится таблица из четырех блоков



(из двух строк и двух колонок)

После выполнения этих заданий Word-ботом сотрудник получает задание "подписать приказ", инспектор кадровой службы получает задание "получить подпись на приказе" (в форме этого задания должна быть ссылка для загрузки сформированного ботом документа "Приказ на командировку").

После выполнения задания "получить подпись на приказе" инспектором кадровой службы, инспектор кадровой службы выдает сотруднику командировочное удостоверение: Инспектор получает задачу "выдать командировочное удостоверение" (в форме этого задания должна быть ссылка для загрузки сформированного ботом документа "Командировочное удостоверение"), Сотрудник получает задачу "получить командировочное удостоверение" .

После выполнения задания "выдать командировочное удостоверение" инспектором кадровой службы бухгалтер (определяется членством в группе "Бухгалтеры") получает задание "Ознакомиться с данными для бухгалтера", в этом задании бухгалтер знакомится с данными, которые были введены на стартовой форме (это требуется бухгалтеру, чтобы рассчитать сумму денег, которую ему надо будет выдать сотруднику).

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

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

После выполнения всех заданий бизнес-процесс завершается.

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

Задание по разработке бизнес-процесса "Местная командировка"

Содержание страницы описания бизнес-процесса:

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

Описание последовательностей действий в бизнес-процессе

Бизнес-процесс начинается с того, что пользователь в стартовой форме заполняет данные, относящиеся к командировке: выбирает из списка (список соответствует членам группы "Все сотрудники") сотрудника, который отправляется в командировку, вводит дату, время начала, время окончания командировки, организацию, в которую направляется сотрудник, причину, комментарий. После клика на команду "выполнить" создается новый экземпляр бизнес-процесса. Далее задание "рассмотреть заявку на командировку" направляется непосредственному руководителю отправляемого в командировку сотрудника (руководитель определяется отношением "Руководитель"). Руководитель одобряет или не одобряет командировку. Подавший заявку знакомится с положительным или отрицательным решением руководителя.

Если командировка одобрена, то бизнес-процесс проверяет, запущена ли командировка задним числом. Если командировка запущена задним числом, то задание "утвердить заявку на командировку" получает руководитель отдела (определяется отношением "Руководитель отдела"), после чего подавший заявку знакомится с решением руководителя отдела. Если командировка подтверждена всеми необходимыми лицами, то Word-бот получает задание "Сгенерировать служебную записку на командировку". Роль Word-бот инициализируется оргфункцией "исполнитель по имени", имя исполнителя в данном случае совпадает с именем роли - " Word-бот " (См. Практическое занятие "Работа с MS Word-ботом").

Служебная записка должна содержать:

  1. Фразу "Служебная записка"
  2. Фразу "Прошу направить меня в местную командировку"
  3. Дату, время начала и время окончания местной командировки, введенные на стартовой форме
  4. Организацию и причину, введенные на стартовой форме
  5. Дату запуска экземпляра бизнес-процесса
  6. Место для подписи сотрудника (несколько знаков подчеркивания)
  7. ФИО сотрудника

Далее сотрудник получает задание "Подписать и отдать служебную записку руководителю", в форме задания должна быть ссылка для загрузки сформированного ботом документа "Служебная записка".

Руководитель сотрудника получает задание "Получить служебную записку".

После выполнения всех заданий бизнес-процесс завершается.

Замечание. В бизнес-процессе необходимо проверять, что время начала командировки не позже времени окончания.

Задание по разработке бизнес-процесса "Отгул"

Содержание страницы описания бизнес-процесса:

Руководитель может предоставить сотруднику отгул в качестве поощрения за хорошую работу. Отгул дается не более чем на 4 часа рабочего времени.

Описание последовательностей действий в бизнес-процессе

Бизнес-процесс начинается с того, что сотрудник, желающий получить отгул, в стартовой форме заполняет данные: дату и время начала отгула (не может быть более чем на 30 дней в прошлом), количество часов отсутствия (целое положительное число, не может быть больше четырех). После клика на команду "выполнить" создается новый экземпляр бизнес-процесса.

Далее задание "рассмотреть заявку на отгул" направляется непосредственному руководителю сотрудника (руководитель определяется отношением "Руководитель"). Руководитель одобряет или не одобряет отгул. Подавший заявку знакомится с решением руководителя.

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

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

Служебная записка должна содержать:

  1. Фразу "Служебная записка"
  2. Фразу "Прошу предоставить мне отгул"
  3. Дату, время начала и количество часов отгула, введенные на стартовой форме
  4. Дату запуска экземпляра бизнес-процесса
  5. Место для подписи сотрудника (несколько знаков подчеркивания)
  6. ФИО сотрудника

Далее сотрудник получает задание "Подписать и отдать служебную записку руководителю", в форме задания должна быть ссылка для загрузки сформированного ботом документа "Служебная записка".

Руководитель сотрудника получает задание "Получить служебную записку".

Если отгул не подтвержден, то соответствующие лица получают об этом сообщения.

После выполнения всех заданий бизнес-процесс завершается.

Задание по разработке бизнес-процесса "Отпуск по уходу за ребенком"

Содержание страницы описания бизнес-процесса:

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

Описание последовательностей действий в бизнес-процессе

Бизнес-процесс начинаАя­ZQVАя­ZQVРOҐZQVЂµtZQV(®ZQVая­ZQV@ая­ZQVнком: выбирает из списка (список соответствует членам группы "Все сотрудники") сотрудника (сотрудницу), вводит даты начала и окончания отпуска, причину и комментарий. После клика на команду "выполнить" будет создан новый экземпляр бизнес-процесса.

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

Если законы и технологии соблюдены, то руководитель (руководитель определяется отношением "Руководитель") уведомляется об уходе сотрудника в отпуск, одновременно с этим инспектор кадровой службы получает задачу "Издать приказ".

В форме задания "Издать приказ" инспектор кадровой службы вводит номер приказа (значение типа строка). После выполнения задания инспектором кадровой службы Word-бот получает задание "Сгенерировать приказ на отпуск по уходу за ребенком". Роль Word-бот инициализируется оргфункцией "исполнитель по имени", имя исполнителя в данном случае совпадает с именем роли - "Word-бот" (См. занятие "Работа с MS Word-ботом"). Приказ должен содержать:

  1. В верхней части листа - название условной компании
  2. Фразу "Приказ номер"
  3. Справа от этой фразы - значение "номер приказа", введенное инспектором кадровой службы"
  4. слово "от"
  5. Справа от этого слова - дату запуска экземпляра бизнес-процесса
  6. Далее - "Предоставить сотруднику" ФИО сотрудника "отпуск по уходу за ребенком"
  7. Далее - "с" дата начала отпуска, введенная на стартовой форме
  8. Далее - "по" дата окончания отпуска, введенная на стартовой форме
  9. Далее - место для подписи Генерального директора (несколько знаков подчеркивания), ФИО условного генерального директора компании, дата запуска экземпляра бизнес-процесса
  10. Внизу - "С приказом ознакомлен", место для подписи сотрудника (несколько знаков подчеркивания), ФИО сотрудника, дата запуска экземпляра бизнес-процесса

Далее Word-бот получает задание "Сгенерировать заявление на отпуск по уходу за ребенком"

Приказ должен содержать:

  1. В верхней части листа "Генеральному директору" - название условной компании, ФИО условного Генерального директора, "от сотрудника"
  2. ФИО уходящего в отпуск сотрудника
  3. Фразу "Заявление"
  4. На следующей строке "Прошу предоставить мне отпуск по уходу за ребенком с", дата начала отпуска, введенная на стартовой форме, "по", дата окончания отпуска, введенная на стартовой форме
  5. Внизу - ФИО сотрудника, место для подписи сотрудника (несколько знаков подчеркивания), дата запуска экземпляра бизнес-процесса

После выполнения этих заданий Word-ботом сотрудник должен выполнить задачу "Отдать в КС заявление и подписать приказ". В форме этого задания должна быть ссылка для загрузки сформированного ботом документа "Заявление на отпуск по уходу за ребенком". Инспектору кадровой службы направляется задача "Получить заявление и подпись на приказе". В форме этого задания должна быть ссылка для загрузки сформированного ботом документа "Приказ на отпуск по уходу за ребенком".

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

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

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

Задание по разработке бизнес-процесса "Сдвиг графика работы"

Содержание страницы описания бизнес-процесса:

График работы можно сдвигать с завтрашней даты и далее. График заполняется на неделю, но использоваться будут только данные за те дни недели, которые попадают в интервал сдвига графика.

Описание последовательностей действий в бизнес-процессе

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

После клика на команду "выполнить" создается новый экземпляр бизнес-процесса. Далее задание "рассмотреть заявку на сдвиг графика" направляется руководителю сотрудника (руководитель определяется отношением "Руководитель").

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

Если решение руководителя отрицательно, то Сотрудник знакомится с отрицательным решением руководителя, далее бизнес-процесс завершается.

Если решение руководителя положительно, то Сотрудник знакомится с положительным решением руководителя, параллельно с этим заданием задание на утверждение заявки направляется руководителю руководителя сотрудника. Руководитель руководителя также может подтвердить или не подтвердить заявку. Сотрудник и руководитель сотрудника знакомятся с положительным (или отрицательным) решением руководителя.

Если решение руководителя положительно, то Word-бот получает задание "Сгенерировать служебную записку на сдвиг графика". Роль Word-бот инициализируется оргфункцией "исполнитель по имени", имя исполнителя в данном случае совпадает с именем роли - " Word-бот " (См. занятие "Работа с MS Word-ботом"). Служебная записка должна содержать:

  1. Фразу "Служебная записка"
  2. Фразу "Прошу утвердить мой индивидуальный график работы для периода времени:"
  3. Даты начала и окончания действия графика работы, введенные на стартовой форме
  4. Таблицу введенных на стартовой форме приходов и уходов по дням недели
  5. Дату запуска экземпляра бизнес-процесса
  6. Место для подписи сотрудника (несколько знаков подчеркивания)
  7. ФИО сотрудника

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

Замечание 1.

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

Замечание 2.

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

Задание по разработке бизнес-процесса "Отпуск без сохранения зарплаты"

Содержание страницы описания бизнес-процесса:

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

Описание последовательностей действий в бизнес-процессе

В случае ухода сотрудника в отпуск без сохранения зарплаты он запускает бизнес-процесс на выполнение.

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

После клика на команду "выполнить" будет создан новый экземпляр бизнес-процесса.

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

Если решение руководителя было положительным, то Подавший заявку знакомится с положительным решением руководителя, задание "Проверить соблюдение технологий и законов" получает инспектор кадровой службы (определяется членством в группе "Инспекторы КС"). В содержащейся в задании форме он отмечает, соблюдены ли законы и технологии

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

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

Если решение директора положительное – инспектору кадровой службы направляется задание "Издать приказ". В форме задания "Издать приказ" инспектор кадровой службы вводит номер приказа (значение типа строка). После выполнения задания инспектором кадровой службы Word-бот получает задание "Сгенерировать приказ на отпуск без сохранения зарплаты". Роль Word-бот инициализируется оргфункцией "исполнитель по имени", имя исполнителя в данном случае совпадает с именем роли - "Word-бот" (См. занятие "Работа с MS Word-ботом"). Приказ должен содержать:

  1. В верхней части листа - название условной компании
  2. Фразу "Приказ номер"
  3. Справа от этой фразы - значение "номер приказа", введенное инспектором кадровой службы"
  4. слово "от"
  5. Справа от этого слова - дату запуска экземпляра бизнес-процесса
  6. Далее - "Предоставить сотруднику" ФИО сотрудника "отпуск без сохранения зарплаты"
  7. Далее - "с" дата начала отпуска, введенная на стартовой форме
  8. Далее - "по" дата окончания отпуска, введенная на стартовой форме
  9. Далее - место для подписи Генерального директора (несколько знаков подчеркивания), ФИО условного генерального директора компании, дата запуска экземпляра бизнес-процесса
  10. Внизу - "С приказом ознакомлен", место для подписи сотрудника (несколько знаков подчеркивания), ФИО сотрудника, дата запуска экземпляра бизнес-процесса

Далее Word-бот получает задание "Сгенерировать заявление на отпуск без сохранения зарплаты"

Приказ должен содержать:

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

После выполнения всех заданий бизнес-процесс завершается.

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

Задание по разработке бизнес-процесса "Сверхурочные"

Предлагаемое содержание страницы описания бизнес-процесса (не обязательно):

Сверхурочные работы проводятся только тогда, когда проведение данных работ в рабочее время нарушит нормальную работу офиса компании

Описание последовательностей действий в бизнес-процессе

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

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

Сотрудник соглашается, или не соглашается на сверхурочные работы. Подавший заявку знакомится с решением сотрудника. Если решение сотрудника было положительным, то задание "рассмотреть заявку на сверхурочные" направляется руководителю сотрудника (руководитель определяется отношением "Руководитель").

Руководитель одобряет или не одобряет сверхурочные. Подавший заявку и сотрудник знакомятся с решением руководителя. Если руководитель одобрил заявку, то далее задание "Утвердить заявку" направляется в Директорат (определяется членством в группе "Директор и заместители").

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

Если руководитель сотрудника подтвердил выполнение сверхурочных, то инспектор кадровой службы (определяется членством в группе "Инспекторы КС") получает задание "издать приказ".

В форме задания "Издать приказ" инспектор кадровой службы вводит номер приказа (значение типа строка). После выполнения задания инспектором кадровой службы Word-бот получает задание "Сгенерировать приказ на сверхурочные работы". Роль Word-бот инициализируется оргфункцией "исполнитель по имени", имя исполнителя в данном случае совпадает с именем роли - "Word-бот" (См. занятие "Работа с MS Word-ботом"). Приказ должен содержать:

  1. В верхней части листа - название условной компании
  2. Фразу "Приказ о сверхурочных работах номер"
  3. Справа от этой фразы - значение "номер приказа", введенное инспектором кадровой службы"
  4. слово "от"
  5. Справа от этого слова - дату запуска экземпляра бизнес-процесса
  6. Далее - "Привлечь к сверхурочным работам сотрудника" ФИО сотрудника
  7. Далее - "в период", время начала, время окончания, дата сверхурочных работ (введенные на стартовой форме)
  8. Далее - место для подписи Генерального директора (несколько знаков подчеркивания), ФИО условного генерального директора компании, дата запуска экземпляра бизнес-процесса
  9. Внизу - "С приказом ознакомлен", место для подписи сотрудника (несколько знаков подчеркивания), ФИО сотрудника, дата запуска экземпляра бизнес-процесса

После выполнения этого задания Word-ботом сотрудник получает задание "подписать приказ на сверхурочные работы", инспектор кадровой службы получает задание "получить подпись на приказе" (в форме этого задания должна быть ссылка для загрузки сформированного ботом документа "Приказ на сверхурочные работы").

После выполнения задания "получить подпись сотрудника на приказе" инспектором КС бухгалтер (определяется членством в группе "Бухгалтеры") получает задание "Начислить деньги за сверхурочные".

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

Задание по разработке бизнес-процесса "Отсутствие по неизвестной причине"

Содержание страницы описания бизнес-процесса:

Это отсутствие на работе, причина которого неизвестна.

Описание последовательностей действий в бизнес-процессе

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

В появившейся стартовой форме он вводит данные: выбирает из списка (список соответствует членам группы "Все сотрудники") сотрудника, вводит дату начала отсутствия и комментарий.

После клика на команду "выполнить" создается новый экземпляр бизнес-процесса.

Далее запустившему бизнес-процесс направляется задание "сообщить об окончании отсутствия".

После появления сотрудника на работе запустившей процесс должен выполнить это задание ("сообщить об окончании отсутствия"). В форме задания надо ввести дату появления сотрудника на работе.

Далее процесс разделяется на две параллельные ветки.

В первой ветке сотруднику направляется задание "Написать объяснительную записку", в форме которого содержится текстовая область для ввода текста объяснительной записки. Это поле должно быть обязательным для ввода.

Далее Word-бот получает задание "Сгенерировать объяснительную записку по незапланированному отсутствию". Роль Word-бот инициализируется оргфункцией "исполнитель по имени", имя исполнителя в данном случае совпадает с именем роли - "Word-бот" (См. занятие "Работа с MS Word-ботом"). Объяснительная записка должна содержать:

  1. Фразу " Объяснительная записка по факту отсутствия на работе в период с"
  2. Дату начала отсутствия
  3. "по", дату окончания отсутствия
  4. Текст объяснительной записки, введенный в форме предыдущего узла-действия
  5. Текущую дату
  6. Место для подписи сотрудника (несколько знаков подчеркивания)
  7. ФИО сотрудника

Далее сотрудник получает задание "Подписать и отдать объяснительную записку руководителю", в форме задания должна быть ссылка для загрузки сформированного ботом документа "Объяснительная записка".

Руководитель сотрудника получает задание "Получить объяснительную записку".

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

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

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

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

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

Требования к представлению результатов занятия

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

В отчете должны содержаться следующие выходные данные:

  1. Скриншоты основных действий, совершенных на занятии, с пояснениями
  2. Скриншоты, содержащие маршруты точек управления для экземпляров бизнес-процессов, доведенных до завершения.
  3. Описание возникших при выполнении задания проблем и найденных путей их решения (не обязательно, только если возникли проблемы при выполнении задания)

Лекция 13. Межпроцессное взаимодействие

Цель занятия: целью работы является изучение взаимодействия экземпляров бизнес-процессов при помощи сообщений.

Теоретические сведения

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

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

В сообщении содержится следующая информация:

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

Для задания этих параметров можно использовать:

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

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

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

Порядок выполнения работы

В данном занятии рассматриваются бизнес-процессы, иллюстрирующие механизм межпроцессного взаимодействия: Бизнес-процесс "Пример 8-1" отправляет сообщение в бизнес-процесс "Пример 8-2". Используется маршрутизация "по названию процесса". В качестве данных, пересылаемых в сообщении, используется введённый пользователем текст, а также id экземпляра бизнес-процесса "Пример 8-1"

Бизнес-процесс "Пример 8-2" получает данные, пользователь изменяет полученное значение текстовой переменной, и высылает сообщение обратно в бизнес-процесс "Пример 8-1", при этом используется маршрутизация "по ID процесса".

Откройте среду разработки системы RunaWFE

1. Создайте новый проект - Занятие 8

2. Создайте новый процесс:

3. Введите название процесса – "Пример 8-1"

4. Добавьте элементы на схему бизнес-процесса в соответствии с рис. 13.1

Схема бизнес процесса "Пример 8-1"


Рис. 13.1.  Схема бизнес процесса "Пример 8-1"

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

Для элемента "Задача сценария" используйте опцию компактный вид (см. пункт 1 раздела "Практическое занятие "Работа с Word-ботом". Порядок выполнения работы.", Замечание. рис. 10.2)

5. Создайте бизнес-процесс "Пример 8-2" в соответствии с рис. 13.2.

Схема бизнес процесса "Пример 8-2"


Рис. 13.2.  Схема бизнес процесса "Пример 8-2"

Здесь также как и в процессе "Пример 8-1" используются элементы отправки и принятия сообщений.

6. Создайте роли

В разрабатываемых процессах используются следующие Роли:

7. Создайте переменные

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

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

Для создания переменной перейдите на вкладку "Переменные" и нажмите "Создать" (См. рис. 13.3). В появившейся форме введите название переменной (См. рис. 13.4), нажмите "Далее" и выберите ее формат (См. рис. 13.5).

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


Рис. 13.3.  Создание переменных

Ввод названия переменной


увеличить изображение

Рис. 13.4.  Ввод названия переменной

Выбор формата переменной


увеличить изображение

Рис. 13.5.  Выбор формата переменной

Переменные бизнес-процесса "Пример 8-1"


Рис. 13.6.  Переменные бизнес-процесса "Пример 8-1"

Переменные бизнес-процесса "Пример 8-2"


Рис. 13.7.  Переменные бизнес-процесса "Пример 8-2"

8. Выберите класс обработчика в задачи сценария "Получение id экземпляра процесса"

В процессе "Пример 8-1" необходимо использовать обработчик "Выполнить формулу", в котором определить id данного экземпляра и проинициализировать полученным значением переменную "id отправителя". Для этого выделите на схеме элемент Задача сценария, перейдите в его свойства и кликните в поле "Класс обработчика" (См. рис. 13.8)

Задача сценария "Получение id экземпляра процесса"


увеличить изображение

Рис. 13.8.  Задача сценария "Получение id экземпляра процесса"

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

Добавьте конфигурацию следующего вида:

'id отправителя'=get_process_id();

Здесь используется функция get_process_id, которая возвращает номер текущего экземпляра процесса

Конфигурация обработчика "Выполнить формулу"


Рис. 13.9.  Конфигурация обработчика "Выполнить формулу"

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

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

Кликните на узел "Ввести сообщение для отправки" графа процесса "Пример 8-1" правой кнопкой мыши и выберите команду "Форма" > "Создать форму" (левой кнопкой мыши) - См. рис. 13.10.

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


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

Замечание. По умолчанию в качестве редактора форм используется CKEditor4. Однако, в случае если у вас в системе установлен браузер Microsoft Internet Explorer устаревшей версии - 6 (IE6) или 7 (IE7), формы могут отображаться некорректно. В этом случае следует переключить редактор на FCKEditor2 (как переключить редактор см. Практическое занятие "Изучение перспективы данных", Порядок выполнения работы, Пункт 6, рис. 8.9, рис. 8.10 )

В появившимся выпадающем списке выберите тип формы "Произвольная форма".

Поместите на форму компонент "Ввод переменной" для ввода значения переменной "отправленное сообщение" (См. рис. 13.11)

Форма "Ввести сообщение для отправки"


Рис. 13.11.  Форма "Ввести сообщение для отправки"

В процессе "Пример 8-2" также создайте форму в узле "Редактировать полученное сообщение", процесс создания аналогичен описанному примеру. На форме необходимо расположить компонент "Ввод переменной" для редактирования значения переменной "полученное сообщение" (См. рис. 13.12)

Форма "Редактирование полученного сообщения"


Рис. 13.12.  Форма "Редактирование полученного сообщения"

Создайте форму для отображения значения переменной после взаимодействия между процессами. Кликните на узел "Ознакомиться с полученным сообщением" графа процесса "Пример 8-1" правой кнопкой мыши и выберите команду "Форма" > "Создать форму" (левой кнопкой мыши), после чего расположите на форме компонент "Отобразить переменную" для "отправленное сообщение", в поле "Форма отображения" выберите "Как неактивный компонент ввода" (См. рис. 13.13)

Создание графической формы для узла "Ознакомиться с полученным сообщением"


Рис. 13.13.  Создание графической формы для узла "Ознакомиться с полученным сообщением"

10. Настройте межпроцессное взаимодействие

Настройка отправителя сообщения в процессе "Пример 8-1" Для настройки отправки кликните правой клавишей мыши на элементе "отправить сообщение", и выберите пункт "Конфигурация" (См. рис. 13.14)

Вызов диалога настройки отправителя сообщения в бизнес-процессе "Пример 8-1"


Рис. 13.14.  Вызов диалога настройки отправителя сообщения в бизнес-процессе "Пример 8-1"

В свойствах маршрутизации укажите следующие настройки (См. рис. 13.15)

Настройка свойств маршрутизации сообщения в бизнес-процессе "Пример 8-1"


Рис. 13.15.  Настройка свойств маршрутизации сообщения в бизнес-процессе "Пример 8-1"

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

В появившейся форме введите в поле "Значение" - Пример 8-2, поле "Название" оставьте неизменным. Нажмите "ОК"

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

Таким образом в соответствии с параметрами представленными на рис. 13.15, будут отправлены значения переменных "id отправителя" и "отправленное сообщение" экземпляра бизнес-процесса "Пример 8-1".

Настройка получателя в процессе "Пример 8-2".

Кликните правой клавишей мыши на элементе "получить сообщение", и выберите "Конфигурация" (См. рис. 13.16)

Вызов диалога настройки получателя сообщения в бизнес-процессе "Пример 8-2"


Рис. 13.16.  Вызов диалога настройки получателя сообщения в бизнес-процессе "Пример 8-2"

В свойствах маршрутизации укажите следующие настройки (См. рис. 13.17)

Настройка свойств маршрутизации сообщения в бизнес-процессе "Пример 8-2"


Рис. 13.17.  Настройка свойств маршрутизации сообщения в бизнес-процессе "Пример 8-2"

Используйте маршрутизацию по названию текущего определения процесса (currentDefinitionName), для этого в области свойств маршрутизации нажмите на стрелку расположенную на кнопке "Добавить", выберите из выпадающего списка пункт "По названию процесса". Добавьте переменные в сообщении в соответствии с рис. 13.17.

Таким образом, будут получены:

Настройка отправителя в процессе "Пример 8-2".

После получения и обработки сообщения, процесс "Пример 8-2" возвращает обработанные данные в экземпляр процесса "Пример 8-1", для этого используются следующие настройки (См. рис. 13.18, рис. 13.19, рис. 13.20, рис. 13.21, рис. 13.22):

Вызов диалога настройки отправителя сообщения в бизнес-процессе "Пример 8-2"


Рис. 13.18.  Вызов диалога настройки отправителя сообщения в бизнес-процессе "Пример 8-2"

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

Маршрутизация по ID процесса


Рис. 13.19.  Маршрутизация по ID процесса

Данная настройка задает выбор получателя по id экземпляра бизнес-процесса, значение id хранится в переменной "id отправителя"

Перейдите в область переменных в сообщении и нажмите "Добавить", в открывшемся окне введите "полученное сообщение" в качестве названия переменной в процессе и сообщении (См. рис. 13.20)

Добавление переменной


Рис. 13.20.  Добавление переменной

Итоговая конфигурация


Рис. 13.21.  Итоговая конфигурация

Настройка получателя в процессе "Пример 8-1"

Обработанные в бизнес-процессе "Пример 8-2" данные возвращаются в "Пример 8-1", для принятия этих данных необходимо настроить элемент "Принять сообщение" следующим образом (См. рис. 13.22)

Переменные сообщения


Рис. 13.22.  Переменные сообщения

Свойство маршрутизации задано как processId = ${currentProcessId}, то есть по id процесса, а соответствие переменных установлено как "отправленное сообщение"="полученное сообщение", то есть присланное в переменной "полученное сообщение" значение будет сохранено в переменную "отправленное сообщение"

11. Загрузите бизнес-процесс на RunaWFE сервер

Загрузите разработанные бизнес-процессы в систему, используя пункт меню "Файл/Экспорт процесса" (Подробнее см. "Практикум. Перспективы исполнимых бизнес-процессов.", практическое занятие "Изучение перспективы потока управления", Порядок выполнения работы, Пункт 11-14).

Войдите в web-интерфейс системы RunaWFE под пользователем Administrator.

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

Для "Пример 8-1" нужно добавить в обладатели полномочий группу "Сотрудники" с правами на чтение, чтение экземпляра и запуск, а для "Пример 8-2" группу "Отдел кадров", также с правами на чтение, чтение экземпляра и запуск (Подробнее см. "Практикум. Введение.", Вводное занятие, Порядок выполнения работы, Пункт 28-31).

12. Запустите бизнес-процессы и доведите экземпляры процессов до завершения.

Описание порядка выполнения бизнес-процесса взаимодействия:

Пользователь запускает экземпляр процесса "Пример 8-1", срабатывает обработчик, в котором определяется id данного экземпляра процесса. Пользователь вводит текст отправляемого сообщения в переменную "отправленное сообщение". Затем происходит отправка сообщения в экземпляр процесса "Пример 8-2", передаются значения переменных "отправленное сообщение" и "id отправителя". Процесс "Пример 8-1" переходит в следующий узел, ожидая сообщения с результатом обработки.

Пользователь, принадлежащий группе "Отдел кадров", запускает экземпляр процесса "Пример 8-2". Сразу после запуска экземпляра бизнес-процесса точка управления останавливается в узле "Получить сообщение", ожидая данные. После получения сообщения, происходит загрузка значений в переменные "полученное сообщение" и "id отправителя". Далее точка управления переходит в узел "Редактировать полученное сообщение", где пользователь редактирует значение переменной "полученное сообщение". Затем происходит отправка отредактированного значения обратно в экземпляр "Пример 8-1", при этом используется полученное ранее значение id этого экземпляра. Экземпляр бизнес-процесса "Пример 8-1" получает из сообщения значение "отправленное сообщение" и точка управления переходит в узел "Ознакомиться с полученным сообщением".

Выполнение бизнес-процессов по шагам.

Для запуска процесса "Пример 8-1" войдите в систему под пользователем из группы "Сотрудники", например "Сверчков" и кликните на имя процесса в общем списке бизнес-процессов (См. рис. 13.23):

Список бизнес-процессов


увеличить изображение

Рис. 13.23.  Список бизнес-процессов

Будет создан новый экземпляр бизнес-процесса, в котором точка управления перейдет в узел "Ввести сообщение для отправки" (См. рис. 13.24)

Задание, соответствующее узлу "Ввести сообщение для отправки"


увеличить изображение

Рис. 13.24.  Задание, соответствующее узлу "Ввести сообщение для отправки"

В форме задания этого узла введите текст сообщения для отправки, например: "Hello" (См. рис. 13.25)

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


увеличить изображение

Рис. 13.25.  Ввод текста, который будет отправлен другому экземпляру бизнес-процесса

На следующем шаге бизнес-процесса произойдет определение id данного экземпляра процесса и отправка сообщения, содержащего переменные "отправленное сообщение" и "id отправителя" (См. рис. 13.26).

Фрагмент формы истории экземпляра бизнес-процесса, показывающий последовательность событий экземпляра бизнес-процесса


Рис. 13.26.  Фрагмент формы истории экземпляра бизнес-процесса, показывающий последовательность событий экземпляра бизнес-процесса

Управление перейдет в узел "Принять сообщение", в котором оно будет находиться до тех пор, пока не получит сообщение от процесса "Пример 8-2"

Ожидание сообщения экземпляром бизнес-процесса "Пример 8-1"


Рис. 13.27.  Ожидание сообщения экземпляром бизнес-процесса "Пример 8-1"

Запустите экземпляр бизнес-процесса "Пример 8-2".

Войдите в систему под пользователем, входящим в группу "Отдел кадров", например, Личинкин, и кликните на имени бизнес-процесса "Пример 8-2" (См. рис. 13.28).

Список бизнес-процессов


Рис. 13.28.  Список бизнес-процессов

Будет запущен экземпляр бизнес-процесса, в котором точка управления остановится в узле ожидания сообщения, а после получения сообщения перейдет в узел "Редактирование полученного сообщения" (См. рис. 13.29, рис. 13.30, рис. 13.31).

Состояние экземпляра бизнес-процесса


Рис. 13.29.  Состояние экземпляра бизнес-процесса

История экземпляра бизнес-процесса


увеличить изображение

Рис. 13.30.  История экземпляра бизнес-процесса

Список заданий


увеличить изображение

Рис. 13.31.  Список заданий

В форме задания узла дополните полученное сообщение (См. рис. 13.32, рис. 13.33)

Форма задания с исходным значением


увеличить изображение

Рис. 13.32.  Форма задания с исходным значением

Форма задания с измененным значением


увеличить изображение

Рис. 13.33.  Форма задания с измененным значением

После выполнения задания произойдет отправка сообщения (Hello World!!!), в экземпляр процесса выбранного по id, далее экземпляр бизнес-процесса "Пример 8-2" завершится (См. рис. 13.34)

История экземпляра бизнес-процесса "Пример 8-2"


увеличить изображение

Рис. 13.34.  История экземпляра бизнес-процесса "Пример 8-2"

Экземпляр бизнес-процесса "Пример 8-1" получит сообщение, содержащее переменную "полученное сообщение". Переменная "отправленное сообщение" будет проинициализирована значением "Hello World!!!" и ее значение будет выведено на форму узла "Ознакомиться с полученным сообщением" (См. рис. 13.35)

Список заданий


увеличить изображение

Рис. 13.35.  Список заданий

Форма задания


увеличить изображение

Рис. 13.36.  Форма задания

После выполнения задания бизнес-процесс завершится (См. рис. 13.37)

История экземпляра бизнес-процесса


Рис. 13.37.  История экземпляра бизнес-процесса

Задание для самостоятельной работы

Разработайте бизнес-процессы "Пример 8-3" и "Пример 8-4", схемы которых изображены на рис. 13.38 и рис. 13.39. "Пример 8-3" отправляет в сообщении введённые пользователем данные в процесс "Пример 8-4". Используется маршрутизация "по названию процесса". "Пример 8-4" получает данные и отображает их на форме.

Схема бизнес-процесса "Пример 8-3" для самостоятельной разработки


Рис. 13.38.  Схема бизнес-процесса "Пример 8-3" для самостоятельной разработки

В "Пример 8-3", используйте элемент "Отправить сообщение" для отправки данных.

Схема бизнес-процесса "Пример 8-4" для самостоятельной разработки


Рис. 13.39.  Схема бизнес-процесса "Пример 8-4" для самостоятельной разработки

В "Пример 8-4", используйте элемент "Получить сообщение" для получения данных.

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

В разрабатываемых процессах должны быть следующие Роли:

Описание переменных.

В процессе "Пример 8-3" используйте переменную формата Текст – "отправленное сообщение", которая предназначена для отправки в сообщении. Переменная инициализируется значением, введённым пользователем в узле "Ввести сообщение для отправки", а затем передаётся в процесс "Пример 8-4" с помощью механизма сообщений.

В процессе "Пример 8-4" используйте переменную "полученное сообщение" формата Текст. Переменная должна принимать значение в сообщении от процесса "Пример 8-3".

Описание графических форм.

Замечание. По умолчанию в качестве редактора форм используется CKEditor4. Однако, в случае если у вас в системе установлен браузер Microsoft Internet Explorer устаревшей версии - 6 (IE6) или 7 (IE7), формы могут отображаться некорректно. В этом случае следует переключить редактор на FCKEditor2 (как переключить редактор см. Практическое занятие "Изучение перспективы данных", Порядок выполнения работы, Пункт 6, рис. 8.9, рис. 8.10 )

В процессе "Пример 8-3" создайте форму в узле "Ввести сообщение для отправки". Для ввода "отправленное сообщение" используйте компонент форм "Ввод переменной". В процессе "Пример 8-4" создайте форму в узле "Ознакомиться с полученным сообщением". На форме необходимо расположить компонент форм "Отобразить переменную" для вывода значения переменной "полученное сообщение".

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

В процессе "Пример 8-3" необходимо задать проверку переменной "отправленное сообщение", выбрав валидатор "Обязательное поле" и задав текст сообщения об ошибке (см. Практическое занятие "Изучение перспективы операций", Пункт 15, рис. 9.27, рис. 9.28).

Настройка межпроцессного взаимодействия.

Настройка отправителя.

В процессе "Пример 8-3" необходимо настроить отправку сообщения. Используйте отправку "По названию процесса", в качестве названия процесса используйте - Пример 8-4

Задайте переменные, которые будут отправлены в сообщении. Выберите переменную "отправленное сообщение".

Настройка получателя сообщения.

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

В появившейся форме добавьте свойства маршрутизации, а также соответствие переменных для получения данных. Используйте получение "По названию процесса", для этого необходимо кликнуть на соответствующую кнопку, в результате в свойствах появится: processDefinitionName = ${currentDefinitionName}, где currentDefinitionName указывает на текущее название процесса.

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

Таким образом будет установлено соответствие между посылаемой в сообщении переменной "отправленное сообщение" процесса "Пример 8-3" и переменной "полученное сообщение" в процессе "Пример 8-4". Загрузите бизнес-процессы в систему, установите на них необходимые права (выполняется аналогично процессам "Пример 8-1/8-2", см. Практическое занятие "Межпроцессное взаимодействие", пункт 11).

Запустите экземпляры бизнес-процессов и доведите их до завершения.

Описание действий пользователей.

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

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

Реализуйте два сценария выполнения разработанного взаимодействия.

1). Первый сценарий - "Один получатель"

Для запуска процесса "Пример 8-4" необходимо войти под пользователем из группы "Отдел кадров" (например Личинкин), и кликнуть на название данного процесса в общем списке процессов.

Запустится экземпляр процесса, и управление остановится на узле "Получить данные" ожидая сообщение. Далее пользователь, входящий в группу "Сотрудники", (например, Сверчков) запускает экземпляр процесса "Пример 8-3", вводит текст посылаемого сообщения.

Экземпляр процесса "Пример 8-3" завершается. При этом экземпляр процесса "Пример 8-4", получает сообщение и управление переходит в узел "Ознакомиться с полученным сообщением", пользователь Личинкин видит присланное сообщение на форме.

2). Второй сценарий - "Несколько получателей"

Реализуйте сценарий отправки сообщения сразу нескольким экземплярам "Пример 8-4".

Запустите экземпляры процесса "Пример 8-4" под всеми пользователями входящими в группу "Отдел кадров":

Далее запустите экземпляр процесса "Пример 8-3" под пользователем входящим в группу "Сотрудники". Проверьте, что сообщение придёт сразу во все ожидающие его экземпляры "Пример 8-4".

Требования к представлению результатов занятия

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

В отчете должны содержаться следующие данные:

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

Контрольные вопросы

  1. Какой из элементов соответствует отправке сообщения?

    a. Элемент

    b. Элемент

  2. Может ли экземпляр бизнес-процесса, соответствующий одному определению бизнес-процесса, послать сообщения экземпляру, соответствующему другому определению бизнес-процесса?
  3. В элементе "Отправить сообщение"

    a. Точка управления сразу переходит в следующий узел

    b. Точка управления ждет ответа на сообщение

Лекция 14. Таймеры и обработчики

Цель занятия: целью работы является изучение работы с элементами бизнес-процессов - таймерами и обработчиками.

Теоретические сведения

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

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

Обработчик - дополнительная конструкция.

В случае используемого в настоящем курсе языка BPMN обработчик входит в элемент "Задача сценария". (В случае языка jPDL этот элемент может быть присоединен к Переходу или Узлу-Действию, обозначается кружком и располагаются непосредственно на Переходе или Узле-Действии).

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

Порядок выполнения работы

1. Откройте среду разработки.

2. Создайте новый проект - Занятие 9

3. Создайте новый бизнес-процесс. Название процесса – "Пример 9-1"

4. Добавьте элементы на схему бизнес-процесса в соответствии с рис. 14.1

Схема бизнес-процесса "Пример 9-1"


увеличить изображение

Рис. 14.1.  Схема бизнес-процесса "Пример 9-1"

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

В бизнес-процессе используется следующие элементы: "Начало", "Окончание", "Действие", "Задача сценария", "Аннотация", "Параллельный шлюз" и "Таймер".

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

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

Из "Выполнить тестирование" выходит два перехода: из таймера и непосредственно действия. Для добавления перехода из Таймера воспользуйтесь одним из следующих вариантов:

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

Создание перехода из таймера, присоединенного к узлу


Рис. 14.2.  Создание перехода из таймера, присоединенного к узлу

Создание перехода из таймера присоединенного к узлу с помощью элемента "Переход"


Рис. 14.3.  Создание перехода из таймера присоединенного к узлу с помощью элемента "Переход"

Для элемента "Задача сценария" используйте опцию "компактный вид" (см. пункт 1 раздела "Практическое занятие "Работа с Word-ботом". Порядок выполнения работы", Замечание. рис. 10.2)

Для придания наглядности схеме расположите напротив "Задачи сценария" элемент "Аннотация". Введите "Описание" аннотации, для этого перейдите в одноименное свойство элемента.

5. Создайте роли

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

Роль "Студент" будет инициализирована пользователем, запустившим процесс, поэтому не требует инициализатора.

Роль "Преподаватель" должна быть проинициализирована с помощью отношения "Преподаватель". Выделите созданную роль, нажмите "Изменить", перейдите на закладку "Задать роль с помощью отношения", введите название отношения и выберите параметр отношения - Студент, как показано на рис. 14.4.

Инициализация роли с помощью отношения


Рис. 14.4.  Инициализация роли с помощью отношения

В данном случае параметр - роль Студент будет соответствовать правой части отношения, по которой будет выбран соответствующий Преподаватель (подробнее см. раздел "Стандарты и концепции, связанные с СУБПиАР", пункт "Использование бинарных отношений для упрощения инициализации ролей").

6. Свяжите с начальным узлом бизнес-процесса роль "Студент", с остальными узлами свяжите роли в соответствии с рис. 14.1

7. Создайте переменные

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

Переменные бизнес-процесса "Пример 9-1"


Рис. 14.5.  Переменные бизнес-процесса "Пример 9-1"

8. Выберите класс обработчика в задачи сценария "Определение даты и времени окончания тестирования"

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

Добавьте конфигурацию следующего вида:

'Дата и время окончания тестирования'=current_date_time()+'Длительность тестирования';

Здесь используется функция current_date_time(), определяющая текущую дату и время, к результату данной функции прибавляется значение переменной "Длительность тестирования" (задано в минутах). Полученное значение сохраняется в переменной "Дата и время окончания тестирования"

Определение Даты и времени окончания тестирования с помощью обработчика


Рис. 14.6.  Определение Даты и времени окончания тестирования с помощью обработчика

9. Настройте таймер в узле "Выполнить тестирование"

Выделите таймер, перейдите в его свойства, выберите поле "Задержка" (см. рис. 14.7)

Вызов настройки задержки таймера


Рис. 14.7.  Вызов настройки задержки таймера

В появившейся форме необходимо выбрать "Единицу измерения" - "минуты", "Задержка таймера" - "+1", "Базовая дата" - "Дата и время окончания тестирования" (см. рис. 14.8)

Задержка таймера


Рис. 14.8.  Задержка таймера

Нажмите на значок для вызова формы выбора единицы измерения (см. рис. 14.8), выберите "минуты" (см. рис. 14.9)

Выбор единицы измерения


Рис. 14.9.  Выбор единицы измерения

Нажмите на значок для вызова формы ввода задержки таймера относительно базовой даты (см. рис. 14.8), введите значение +1 (см. рис. 14.10)

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

Ввод задержки таймера


Рис. 14.10.  Ввод задержки таймера

Нажмите на значок для вызова формы выбора базовой даты (см. рис. 14.8), выберите переменную "Дата и время окончания тестирования" (см. рис. 14.11)

Выбор базовой даты


Рис. 14.11.  Выбор базовой даты

Таким образом в случае если Студент не выполнит задачу "Выполнить тестирование" до "Дата и время окончания тестирования", то спустя 1 минуту после этого, задание будет просрочено.

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

Замечание. По умолчанию в качестве редактора форм используется CKEditor4. Однако, в случае если у вас в системе установлен браузер Microsoft Internet Explorer устаревшей версии - 6 (IE6) или 7 (IE7), формы могут отображаться некорректно. В этом случае следует переключить редактор на FCKEditor2 (как переключить редактор см. в Практическое занятие "Изучение перспективы данных", Порядок выполнения работы, Пункт 6, рис. 4.9 4.10)

Кликните на узел "Ввести данные тестирования" графа процесса "Пример 9-1" правой кнопкой мыши и выберите команду "Форма" > "Создать форму" (левой кнопкой мыши)

(Подробнее см. Практическое занятие "Изучение перспективы данных", Порядок выполнения работы, Пункт 6, Замечание, рис. 8.11-8.12).

На данной форме Преподаватель задает длительность тестирования (в минутах) и вводит список вопросов.

Поместите на форму два экземпляра компонента форм - "Ввод переменной" для ввода значений в переменные "Длительность тестирования" и "Вопросы" соответственно (см. рис. 14.12)

(Подробнее см. Практическое занятие "Изучение перспективы операций", Порядок выполнения работы, Пункт 14, рис. 5.17, рис. 5.18).

Форма "Ввести данные тестирования"


Рис. 14.12.  Форма "Ввести данные тестирования"

Сохраните и закройте форму.

Задайте валидацию для переменных формы "Ввести данные тестирования". Для этого кликните на узле "Ввести данные тестирования" правой клавишей мыши и выберите пункт "Форма > Проверка переменных формы", в появившейся форме выделяйте переменные и устанавливайте необходимые валидаторы. (Подробнее см. Практическое занятие "Изучение перспективы операций", Пункт 15, рис. 9.27, рис. 9.28).

Для переменной "Вопросы" добавьте валидатор "Обязательное поле". В поле "Сообщение об ошибке" введите - "Вопросы - обязательное поле".

Для переменной "Длительность тестирования" добавьте валидатор "Обязательное поле" (в поле "Сообщение об ошибке" введите - "Длительность - обязательное поле"), а также "Диапазон числа" установив минимальное значение в "1" включительно (см. рис. 14.13), при этом в поле "Сообщение об ошибке" введите - "Минимальная длительность тестирования 1 минута"

Валидатор "Диапазон числа" для переменной "Длительность тестирования"


Рис. 14.13.  Валидатор "Диапазон числа" для переменной "Длительность тестирования"

Создайте форму для узла "Выполнить тестирование" (см. рис. 14.14), в которой студент отвечает на тестовые вопросы.

Используйте компонент "Отобразить переменную" (как строку) для вывода значений переменных: "Длительность тестирования", "Дата и время окончания тестирования", "Вопросы".

Перетяните на форму с помощью мыши компонент "Редактировать связанные списки", дважды кликните по нему или вызовите контекстное меню и выберите пункт "Параметры компонента". Установите параметры Добавления/Изменения/Удаления в значение "true". В поле "Название переменной" необходимо выбрать переменную "Ответы" (см. рис. 14.15)

Форма "Выполнить тестирование"


Рис. 14.14.  Форма "Выполнить тестирование"

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


увеличить изображение

Рис. 14.15.  Редактировать связанные списки для переменной "Ответы"

Аналогично создайте остальные формы согласно рисункам рис. 14.16, рис. 14.17, рис. 14.18

Форма "Уведомление для преподавателя о закрытии тестирования"


увеличить изображение

Рис. 14.16.  Форма "Уведомление для преподавателя о закрытии тестирования"

Форма "Уведомление для студента о закрытии тестирования"


увеличить изображение

Рис. 14.17.  Форма "Уведомление для студента о закрытии тестирования"

На форме "Ознакомиться с выполненным тестированием" расположите теги "отобразить переменную" (как строку) для отображения переменных "Вопросы", "Ответы"

Форма "Ознакомиться с выполненным тестированием"


Рис. 14.18.  Форма "Ознакомиться с выполненным тестированием"

11. Загрузите бизнес-процесс на RunaWFE сервер

Загрузите разработанный бизнес-процесс на сервер, используя пункт меню "Файл/Экспорт процесса" (Подробнее см. Практическое занятие "Изучение перспективы потока управления", Порядок выполнения работы, Пункты 11-14).

Войдите в web-интерфейс RunaWFE под пользователем Administrator.

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

Для "Пример 9-1" нужно добавить в обладатели полномочий группу "Группа МИБ-1" с правами на чтение, чтение экземпляра и запуск, а также группу "Преподаватели" с правами на чтение и чтение экземпляра (Подробнее см. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункт 28-31).

12. Запустите бизнес-процесс "Пример 9-1" и доведите экземпляр процесса до завершения.

Описание порядка выполнения бизнес-процесса взаимодействия:

Студент из группы "Группа МИБ-1" запускает процесс "Пример 9-1", по отношению "Преподаватель" выбирается соответствующий Преподаватель данного Студента. Преподаватель вводит список вопросов для тестирования, а также задает длительность тестирования в минутах. Срабатывает обработчик который определяет Дату и время окончания тестирования на основе текущей даты/времени и выбранной длительности тестирования. Студент получает задание "Выполнить тестирование", где отвечает на тестовые вопросы. Создается таймер. Если Студент не выполнит задание до "Дата и время окончания тестирования" + 1 минута, то таймер сработает, и задание "Выполнить тестирование" будет просрочено. Тестирование будет закрыто, Преподаватель и Студент получат соответствующие уведомления. В случае же если студент успеет выполнить задание за отведенное время, Преподаватель получит уведомление со списком введенных Студентом ответов на тестовые вопросы.

При выполнении процесса необходимо проверить оба варианта сценария выполнения.

Выполнение бизнес-процессов по шагам:

Для запуска процесса "Пример 9-1" войдите в систему под пользователем из группы "Группа МИБ-1", например "Мухин" и кликните на имя процесса в общем списке бизнес-процессов (См. рис. 14.19)

Запуск бизнес-процесса "Пример 9-1"


Рис. 14.19.  Запуск бизнес-процесса "Пример 9-1"

Войдите в систему под пользователем "Бабочкин", который является Преподавателем студента Мухина(см. рис. 14.20).

В списке заданий будет активное задание - "Ввести данные тестирования" (см. рис. 14.21)

Отношение "Преподаватель"


Рис. 14.20.  Отношение "Преподаватель"

Задание, соответствующее узлу "Ввести данные тестирования"


Рис. 14.21.  Задание, соответствующее узлу "Ввести данные тестирования"

Возьмите задание на выполнение, введите длительность тестирования - 2 (минуты), а также список вопросов (см. рис. 14.22)

Ввод данных тестирования


Рис. 14.22.  Ввод данных тестирования

Выполните задачу.

Далее сработает обработчик, который определит "Дату и время окончания тестирования" (см. рис. 14.23)

Определение даты и времени окончания тестирования


Рис. 14.23.  Определение даты и времени окончания тестирования

Как видно из рис. 14.23 задание "Ввести данные" было выполнено в 21:37:01, после чего сработал обработчик, функция current_date_time вернет текущую дату и время - 08.04.2014 21:37:01, к полученному значению будет прибавлено 2 минуты (Длительность тестирования), в результате переменная "Дата и время окончания тестирования" будет инициализирована значением 08.04.2014 21:39:01

Точка управления перейдет в узел "Выполнить тестирование". Одновременно с этим будет запущен таймер на задержку 1 минута относительно базовой даты, переменной "Дата и время окончания тестирования" (т.е. в 08.04.2014 21:40).

Войдите в систему под пользователем Мухин. В списке активных задач будет "Выполнить тестирование".

Откройте задачу, введите ответы на вопросы, но не завершайте ее в течении 3-х минут (см. рис. 14.24) т.е. пока не сработает таймер.

Задача "Выполнить тестирование"


Рис. 14.24.  Задача "Выполнить тестирование"

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

Задача "Выполнить тестирование" просрочена


Рис. 14.25.  Задача "Выполнить тестирование" просрочена

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

Выполните эти задачи и завершите процесс.

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

Задание для самостоятельной работы

Разработайте на основе бизнес-процесса "Пример 9-1" бизнес-процесс "Пример 9-2".

Для этого можно воспользоваться функцией копирования процесса (подробнее см. Практическое занятие "Изучение перспективы потока управления", Задание для самостоятельной работы, Пункты 1,2,3), после чего внести изменения в соответствии со схемой изображенной на рис. 14.26.

Схема бизнес-процесса "Пример 9-2"


увеличить изображение

Рис. 14.26.  Схема бизнес-процесса "Пример 9-2"

В процессе "Пример 9-1" студент получал задание "Выполнить тестирование" сразу же после выполнения ввода данных преподавателем. В процессе "Пример 9-2" преподаватель вводит не только список вопросов и длительность тестирования, но и назначает дату и время начала проведения тестирования. В схему (в отличие от процесса Пример 9-1) дополнительно вводятся элементы таймер, а также параллельные и исключающий шлюзы.

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

В данном процессе используются те же роли и инициализаторы ролей что и в "Пример 9-1".

Описание переменных.

Добавьте дополнительно переменную "Дата и время начала тестирования" формата "Дата со временем" (см. рис. 14.27)

Переменные бизнес-процесса "Пример 9-2"


Рис. 14.27.  Переменные бизнес-процесса "Пример 9-2"

Описание графических форм.

Замечание. По умолчанию в качестве редактора форм используется CKEditor4. Однако, в случае если у вас в системе установлен браузер Microsoft Internet Explorer устаревшей версии - 6 (IE6) или 7 (IE7), формы могут отображаться некорректно. В этом случае следует переключить редактор на FCKEditor2. (как переключить редактор см. Практическое занятие "Изучение перспективы данных", Порядок выполнения работы, Пункт 6, рис. 8.9, рис. 8.10)

Измените форму узла "Ввести данные тестирования" в соответствии с рис. 14.28, добавьте компонент "Ввод переменной" для "Дата и время начала тестирования"

Форма "Ввести данные тестирования"


Рис. 14.28.  Форма "Ввести данные тестирования"

Кроме того, добавьте валидаторы для переменной "Дата и время начала тестирования"

Для валидатора "Диапазон даты относительно текущей" в поле "Сдвиг в прошлое (в днях)" введите значение 0. Таким образом будет проверяться, что введенная преподавателем дата и время начала тестирования позже текущих даты и времени.

Валидатор "Диапазон даты относительно текущей"


Рис. 14.29.  Валидатор "Диапазон даты относительно текущей"

Создайте форму для узла "Ознакомиться с датой и временем проведения тестирования" (см. рис. 14.30)

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


увеличить изображение

Рис. 14.30.  Форма узла "Ознакомиться с датой и временем проведения тестирования"

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

Остальные формы соответствуют формам процесса "Пример 9-1".

Описание обработчиков.

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

Введите следующую конфигурацию:

'Дата и время окончания тестирования'='Дата и время начала тестирования'+'Длительность тестирования';

Таким образом "Дата и время окончания тестирования" теперь определяется относительно "Дата и время начала тестирования" а не результата функции current_date_time() т.е. текущего времени (Пример 9-1)

Настройка задержки начала тестирования.

Выделите таймер, расположенный перед узлом "Выполнение тестирования", перейдите в свойства, и вызовите конфигуратор задержки. Выберите в качестве базовой даты - переменную "Дата и время начала тестирования", задержка - 0 минут (см. рис. 14.31)

Настройка задержки начала тестирования


Рис. 14.31.  Настройка задержки начала тестирования

Т.е. задание "Выполнить тестирование" будет создано только после срабатывания таймера, который настроен на задержку в 0 минут относительно базовой даты "Дата и время начала тестирования".

Загрузите бизнес-процесс на сервер, добавьте для него обладателей полномочий аналогично процессу "Пример 9-1"

Запустите экземпляры бизнес-процессов и доведите их до завершения.

Проверьте оба сценария выполнения:

При этом для удобства проверки процесса используйте в качестве значения длительности тестирования - пару минут, а дату и время начала тестирования назначайте равной текущей дате и времени (используйте кнопку "Сейчас", см. рис. 14.32) + смещение в несколько минут.

Ввод данных преподавателем


Рис. 14.32.  Ввод данных преподавателем

Требования к представлению результатов занятия

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

В отчете должны содержаться следующие данные:

Контрольные вопросы

  1. Что такое Таймер? Как он используется?
  2. Что такое Обработчик? Как он используется?
  3. Можно ли поместить Таймер на переход?
  4. Можно ли присоединить Обработчик к Параллельному шлюзу?

Лекция 15. Работа с мульти-подпроцессами

Цель занятия: целью занятия является изучение мульти-подпроцессов.

Теоретические сведения

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

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

Количество экземпляров мульти-подпроцесса может быть определено:

Мульти-подпроцесс по переменной.

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

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

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

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

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

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

Сопоставление переменных процесса и подпроцесса.

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

В случае использования в сопоставлении переменной формата "Список" родительского процесса, используется следующие правила:

Порядок выполнения работы

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

Описание бизнес-процесса

Шеф-редактор запускает бизнес-процесс выпуска очередного номера журнала. В стартовой форме он вводит номер журнала, год, месяц, к которому относится выпуск, и постер на обложку. Далее запускается мульти-подпроцесс по членам группы "Редакторы". Предполагается, что каждый член группы "Редакторы" (редактор рубрики) отвечает за одну рубрику журнала.

В подпроцессе, редактор выбирает из списка обозревателя (список соответствует группе "Обозреватели"), которому далее направляется задание на создание внутреннего контента рубрики. После создания внутреннего контента обозревателем, вызывается обработчик который формирует текст рубрики из внутреннего контента и ФИО обозревателя. Далее задание на утверждение контента получает редактор рубрики. На этом экземпляр подпроцесса завершается.

В родительском процессе после завершения всех экземпляров подпроцесса, задание на создание верстки получает верстальщик (определяется группой "Верстальщик", в которую должен входить единственный пользователь). Верстальщик правит тексты всех рубрик. Далее обработчик Word собирает из введенных на стартовую форму данных и текстов рубрик, docx-файл номера журнала. Задание "Принять решение о выпуске журнала" получает шеф-редактор (который запускал бизнес-процесс), в форме отображается ссылка на сформированный docx-файл номера журнала. Шеф-редактор или утверждает номер журнала, или вводит обязательный комментарий и отправляет журнал на доработку. Комментарий от шеф-редактора отображается на формах заданий редакторов, обозревателей и верстальщика.

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

1. Запустите RunaWFE симулятор, для этого дважды кликните по ярлыку "Start Simulation" на рабочем столе, или выполните команду меню Пуск / Программы / RunaWFE / Start Simulation. (Подробнее см. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункт 1)

2. Войдите в web-интерфейс системы RunaWFE под пользователем Administrator. (см. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункт 2, рис. 5.2) Замечание. По умолчанию пароль пользователя Administrator - "wf".

3. Создайте следующих пользователей: (см. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункты 10 - 11, рис. 5.9- 5.10)

При создании, введите пароль для каждого пользователя (например - 123), знать старый пароль пользователя при этом не требуется (см. Практическое занятие "Изучение перспективы ресурсов", Порядок выполнения работы, Пункты 4 - 5, рис. 7.1, рис. 7.2).

4. Создайте группы (см. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункты 4 - 6, рис. 5.4- 5.6)

5. Добавьте пользователей в группы

группа "ШЕФ редакторы":

группа "Редакторы":

группа "Верстальщик":

группа "Обозреватели":

Кроме того, добавьте всех созданных пользователей в группу "Сотрудники"

6. Дайте полномочия группе "Сотрудники" на вход в систему (см. Вводное занятие. Изучение интерфейса системы RunaWFE, пункты 7-9, рис. 5.6- 5.8 )

7. Дайте полномочия группе "Редакторы" на чтение и просмотр группы "Обозреватели"

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

Добавьте в список группу "Редакторы", установите права "Читать" и "Просматривать" (см. рис. 15.1)

Обладатели полномочий на группу "Обозреватели"


Рис. 15.1.  Обладатели полномочий на группу "Обозреватели"

8. Дайте полномочия группе "Редакторы" на чтение на всех пользователей, входящих в группу "Обозреватели"

Для этого выберите пользователя, перейдите в обладатели полномочия, и добавьте группу "Редакторы" с правами на чтение (см. рис. 15.2)

Обладатели полномочий на пользователя "Андреев" входящего в группу "Обозреватели"


Рис. 15.2.  Обладатели полномочий на пользователя "Андреев" входящего в группу "Обозреватели"

9. Откройте среду разработки

10. Создайте новый проект "Занятие 10"

11. Создайте новый процесс "Пример 10-1"

12. Добавьте элементы на схему бизнес-процесса в соответствии с рис. 15.3

Схема бизнес-процесса "Пример 10-1"


Рис. 15.3.  Схема бизнес-процесса "Пример 10-1"

В бизнес-процессе используется следующие элементы: Начало, Мульти-подпроцесс, Действие, Задача сценария, Окончание, Аннотация.

Для элемента "Задача сценария" используйте опцию компактный вид (см. пункт 1 раздела "Практическое занятие "Работа с Word-ботом". Порядок выполнения работы.",Замечание. рис. 2.2).

Для придания наглядности схемы расположите напротив "Задачи сценария" элемент "Аннотация". Перейдите в свойства элемента и введите текст в поле "Описание" - "Оформить выпуск, сборка номера журнала".

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

13. Создайте роли

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

Роль "Шеф-редактор" будет инициализирована пользователем, запустившим процесс, не требует инициализатора.

Роль "Верстальщик" должна быть проинициализирована группой "Верстальщик" с помощью оргфункции. Выделите созданную роль, нажмите "Изменить", перейдите на вкладку "Группы и пользователи WF". Здесь необходимо выполнить синхронизацию с сервером, после чего "Выбрать" из списка группу "Верстальщик" (см. рис. 15.4). Для проверки и ввода параметров соединения с сервером воспользуйтесь ссылкой "Настройки соединения" (см. Практическое занятие "Изучение перспективы ресурсов", Пункт 26, рис. 7.16-7.18)

Инициализатор роли "Шеф-редактор"


Рис. 15.4.  Инициализатор роли "Шеф-редактор"

14. Свяжите с начальным узлом бизнес-процесса роль "Шеф-редактор", с остальными узлами свяжите роли в соответствии с рис. 15.3

15. Создайте переменные

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

Переменные бизнес-процесса "Пример 10-1"


Рис. 15.5.  Переменные бизнес-процесса "Пример 10-1"

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

Замечание. В случае если в системе установлен браузер Microsoft Internet Explorer устаревшей версии 7 (IE7) или 6 (IE6), то в качестве редактора форм должен быть использован FCKEditor2 (как переключить редактор см. в Практическое занятие "Изучение перспективы данных", Порядок выполнения работы, Пункт 6, рис. 8.9, рис. 8.10 )

Выделите узел "Начало" графа процесса "Пример 10-1" правой кнопкой мыши и выберите команду "Форма" > "Создать форму" (Подробнее см. Практическое занятие "Изучение перспективы данных", Порядок выполнения работы, Пункт 6, Замечание, рис. 8.11-8.12).

На данной форме Шеф-редактор вводит переменные "номер журнала", "год", "месяц", "постер".

Нажмите на иконку вставки в форму таблицы (см. рис. 15.6), введите свойства таблицы в соответствии с рис. 15.7

Вставка таблицы на форму


Рис. 15.6.  Вставка таблицы на форму

Свойства таблицы


Рис. 15.7.  Свойства таблицы

Заполните колонки таблицы как показано на рис. 15.8. Во втором столбце используйте компоненты "Ввод переменной" для ввода соответствующей переменной.

Форма узла "Начало"


Рис. 15.8.  Форма узла "Начало"

Сохраните и закройте форму.

Добавьте валидаторы для переменных данной формы (см. Практическое занятие "Изучение перспективы операций", Пункт 15, рис. 9.27, 9.28).

Для переменных "номер журнала", "год", "месяц" используйте валидатор "Обязательное поле". Для переменной "постер" используйте валидаторы "Обязательное поле" и "Ограничитель по расширению файла", в качестве разрешенных расширений введите "jpeg, jpg, png" (см. рис. 15.9)

Валидаторы переменных стартовой формы


Рис. 15.9.  Валидаторы переменных стартовой формы

Кроме того добавьте скрипт формы. Для этого кликните правой клавишей мыши на стартовом узле, выберите "Форма > Скрипт формы" (см. рис. 15.10)

Создание скрипта формы


Рис. 15.10.  Создание скрипта формы

В появившемся окне введите следующий код:

var monthNames = ["январь", "февраль", "март", "апрель", "май", "июнь", "июль", "август", "сентябрь", "октябрь", "ноябрь", "декабрь"];
$(document).ready(function() {
$("input[name='месяц']").autocomplete( {
delay: 300,
minLength: 0,
source: monthNames
});
$("input[name='месяц']").focus(function() {
$(this).autocomplete("search", $(this).val());
});
});

Данный код подключает выбор из предопределённых значений для переменной "месяц"

Создайте форму для узла "Корректировать рубрики".

Форма узла "Корректировка рубрик"


Рис. 15.11.  Форма узла "Корректировка рубрик"

Здесь верстальщик корректирует тексты всех рубрик. Для этого используйте компонент "Редактировать связанные списки", разрешите изменение, запретите добавление и удаление из списка "тексты рубрик" (см. рис. 15.12). Кроме того, верстальщику отображается комментарий шеф-редактора, используйте для отображения значения переменной компонент "отобразить переменную".

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


Рис. 15.12.  Форма узла "Редактировать связанные списки"

Создайте форму для узла "Принять решение о выпуске журнала". Используйте компонент "Отобразить переменную" для переменной "выпуск журнала", а также компонент "Ввод переменной" для переменной "Комментарий Шеф-редактора".

Форма узла "Принять решение о выпуске журнала"


увеличить изображение

Рис. 15.13.  Форма узла "Принять решение о выпуске журнала"

Добавьте валидатор для переменной "Комментарий Шеф-редактора" (см. Практическое занятие "Изучение перспективы операций", Пункт 15, рис. 9.27, рис. 9.28).

Используйте валидатор "Обязательное поле", проверка должна выполняться в контексте перехода по ветке "Отправить всем заново" (см. рис. 15.14)

Валидатор "Обязательное поле" в контексте перехода "Отправить всем заново"


увеличить изображение

Рис. 15.14.  Валидатор "Обязательное поле" в контексте перехода "Отправить всем заново"

17. Выберите класс обработчика в задаче сценария "Оформить выпуск"

Выделите на схеме элемент "Задача сценария", перейдите в его свойства и кликните в поле "Класс обработчика", после чего выберите из списка обработчик "Word: формирование документа DOCX используя шаблон" (см. рис. 15.15).

Выбор обработчика


Рис. 15.15.  Выбор обработчика

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

В появившейся форме введите параметры выходного файла - имя "журнал.docx" и выберите файловую переменную "выпуск журнала". Используйте вариант "Шаблон в процессе" в качестве входного файла. (см. рис. 15.16)

Конфигурация обработчика Word


Рис. 15.16.  Конфигурация обработчика Word

Нажмите на "Создать" для создания шаблона (см. рис. 15.17). Будет открыт редактор docx файлов, в котором необходимо создать шаблон.

Конфигурация обработчика Word


Рис. 15.17.  Конфигурация обработчика Word

18. Создайте шаблон для docx файла журнала

Используйте шаблон изображенный на рис. 15.18.

Шаблон для создания docx файла журнала


Рис. 15.18.  Шаблон для создания docx файла журнала

Здесь выражения вида ${Переменная} будут заменены на значение переменной Переменная, в формате, определённом в среде разработки.

Кроме того, здесь используется "Цикл" для вывода каждой рубрики из списка "тексты рубрик". Цикл определяется 3-мя элементами: начало цикла, блок цикла и окончание цикла.

Начало цикла в данном случае задано как ${items:тексты рубрик as рубрика}, где

Для обозначения окончания цикла используется выражение ${/items}

На основе данной шаблона будет сформирован docx файл журнала.

19. Создайте новый процесс "Пример 10-2"

"Пример 10-2" будет использован как мульти-подпроцесс вызываемый из "Пример 10-1", предназначенный для формирования текста рубрики.

Описание процесса.

Редактор выбирает обозревателя, который добавляет внутренний контент рубрики, далее формируется контент рубрики на основе внутреннего контента и ФИО обозревателя. Редактор утверждает контент.

20. Добавьте из палитры объектов на схему элементы "Начало", "Действие", "Задача сценария", "Аннотация", "Окончание".

Соедините элементы, и введите названия узлов в соответствии с рис. 15.19

Схема подпроцесса "Пример 10-2"


Рис. 15.19.  Схема подпроцесса "Пример 10-2"

Для задачи сценария дайте название "Сформировать текст рубрики". Кроме того используйте опцию "компактный вид" (см. пункт 1 раздела "Практическое занятие "Работа с Word-ботом". Порядок выполнения работы.",Замечание. рис. 10.2)

21. Создайте роли

Роль "Редактор" будет инициализирована пользователем из группы "Редакторы", по которой будет настроен мульти-подпроцесс "Пример 10-2" вызываемый из "Пример 10-1".

Роль "Обозреватель", будет инициализирована пользователем из группы "Обозреватели" в форме узла "Выбор исполнителей для создания контента рубрики" с помощью компонента "Выбор из членов группы"

22. Свяжите с начальным узлом бизнес-процесса роль "Редактор", с остальными узлами свяжите роли в соответствии с рис. 15.18

23. Создайте переменные

Для установки значения по умолчанию "Обозреватели", после ввода названия и выбора формата переменной, нажмите "Далее", переключитесь на вариант "Использовать значение по умолчанию" и введите "Обозреватели" (см. рис. 15.20)

Значение по умолчанию для переменной Обозреватели


Рис. 15.20.  Значение по умолчанию для переменной Обозреватели

Список переменных подпроцесса "Пример 10-2"


Рис. 15.21.  Список переменных подпроцесса "Пример 10-2"

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

Замечание. В случае если в системе установлен браузер Microsoft Internet Explorer устаревшей версии 7 (IE7) или 6 (IE6), то в качестве редактора форм должен быть использован FCKEditor2 (как переключить редактор см. в Практическое занятие "Изучение перспективы данных", Порядок выполнения работы, Пункт 6, рис. 8.9, рис. 8.10 )

Кликните правой клавишей мыши на узле для вызова меню. Выберите "Форма > Создать форму". В появившемся окне выберите тип формы - "Произвольная форма" и нажмите "ОК".

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

В качестве параметра "Пользователь" выберите роль "Обозреватель".

В качестве группы необходимо выбрать переменную "Обозреватели" (см. Практическое занятие "Изучение перспективы данных", Пункт 6, рис. 8.16, рис. 8.17, рис. 8.18)

Выбор из членов группы "Обозреватели


Рис. 15.22.  Выбор из членов группы "Обозреватели

Также добавьте компонент "Отобразить переменную" для переменной "Комментарий от Шеф-редактора" и "Ввод переменной" для переменной "Комментарий редактора" (см. рис. 15.23)

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


Рис. 15.23.  Форма задания "Выбрать исполнителей для создания контента рубрики"

Используйте для роли "Обозреватель" валидатор "Обязательное поле". Для этого вызовите "проверка переменных формы" (см. Практическое занятие "Изучение перспективы операций", Пункт 15, рис. 9.27), перейдите на вкладку Роли, выберите роль Обозреватель, валидатор "Обязательное поле" (см. рис. 15.24)

Валидация роли Обозреватель


Рис. 15.24.  Валидация роли Обозреватель

Создайте форму для задания "Создание внутреннего контента рубрики".

Форма задания "Создать внутренний контент рубрики"


Рис. 15.25.  Форма задания "Создать внутренний контент рубрики"

Используйте компонент форм - "Ввод переменной" для ввода значения переменной "Внутренний контент", а также добавьте компонент "Отобразить переменную" для переменных "Комментарий от Шеф-редактора" и "Комментарий редактора" (используйте отображение "Как неактивный компонент вывода")

Добавьте валидатор "Обязательное поле" для переменной "Внутренний контент" (см. Практическое занятие "Изучение перспективы операций", Пункт 15, рис. 9.27, рис. 9.28).

В форме задания "Утвердить текст рубрики" расположите компонент "Отобразить переменную" для отображения значения переменной "Контент рубрики". Используйте отображение "Как неактивный компонент вывода" (см. рис. 15.26)

Форма задания "Утвердить текст рубрики"


Рис. 15.26.  Форма задания "Утвердить текст рубрики"

25. Выберите обработчик в задаче сценария "Сформировать текст рубрики".

Используйте обработчик "Выполнить код Groovy". Выделите задачу сценария, перейдите в ее свойства, выберите свойство "Класс обработчика", в появившейся форме выберите из списка "Выполнить код Groovy" (см. рис. 15.27).

Выбор класса обработчика


Рис. 15.27.  Выбор класса обработчика

Далее выберите "Конфигурация" обработчика, в открывшемся окне используйте следующий код:

Контент_рубрики = "От обозревателя " + Обозреватель.getFullName();
Контент_рубрики += "\r\n\r\n";
Контент_рубрики += Внутренний_контент;
Контент_рубрики += "\r\n\r\n";

Данный код формирует контент рубрики с помощью конкатенации значения переменной "Внутренний контент", ФИО обозревателя, строки "От обозревателя " и последовательностей "\r\n".

Для вставки переменных (Контент рубрики, роль Обозреватель) используйте "Вставить переменную".

Для определения ФИО обозревателя используется функция getFullName().

Последовательность символов "\r\n" используется для перевода позиции (в формируемой строке) в начало следующей строки.

Конфигурация обработчика


Рис. 15.28.  Конфигурация обработчика

26. Сохраните и закройте процесс "Пример 10-2"

27. Откройте бизнес-процесс "Пример 10-1"

Вернемся к разработке бизнес-процесса выпуска номера журнала "Пример 10-1"

28. Настройте мульти-подпроцесс "Создание контента для рубрик" в процессе "Пример 10-1"

Кликните правой клавишей мыши на элементе "Мульти-подпроцесс" и выберите вариант "Использовать подпроцесс"

Использовать подпроцесс


Рис. 15.29.  Использовать подпроцесс

С узлом Мульти-подпроцесс связывается бизнес-процесс, экземпляры которого будут запускаться как подпроцессы. Выберите из списка в качестве подпроцесса - "Пример 10-2" (см. рис. 15.30).

Используем мульти-подпроцесс по группе "Редакторы". Для этого перейдите на вкладку "По группе", нажмите на выпадающий список и выберите "Введите значение" для ввода названия группы вручную (см. рис. 15.30). В появившемся окне введите "Редакторы" (см. рис. 15.31).

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


Рис. 15.30.  Выбор мульти-подпроцесса по группе

Ввод названия группы


Рис. 15.31.  Ввод названия группы

Выберите роль "Редактор" подпроцесса "Пример 10-2" (см. рис. 15.32)

Выбор переменной подпроцесса


Рис. 15.32.  Выбор переменной подпроцесса

Таким образом данная настройка означает, что по всем пользователям группы "Редакторы" (рекурсивно) будут созданы экземпляры подпроцесса "Пример 10-2". Роль Редактор будет проинициализирована соответствующим пользователем из группы "Редакторы".

Далее необходимо задать сопоставление переменных процесса и подпроцесса. Нажмите "Добавить", в появившейся форме выберите переменные "тексты рубрик" и "Контент рубрики". Разрешите использование для чтения и записи (см. рис. 15.33).

Сопоставление переменных "тексты рубрик" - "Контент рубрики"


Рис. 15.33.  Сопоставление переменных "тексты рубрик" - "Контент рубрики"

Таким же образом добавьте сопоставление переменных "Комментарий Шеф-редактора" - "Комментарий от Шеф-редактора". Разрешите использование только для чтения (см. рис. 15.34).

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


увеличить изображение

Рис. 15.34.  Сопоставление переменных процесса и подпроцесса

Нажмите "ОК", сохраните и закройте процесс.

29. Экспортируйте разработанные бизнес-процессы на сервер (Подробнее см. Практическое занятие "Изучение перспективы потока управления", Порядок выполнения работы, Пункты 11-14)

30. Войдите на сервер под пользователем Administrator

31. Добавьте обладателей полномочий

Для бизнес-процесса "Пример 10-1" добавьте в обладателей полномочий группы "Шеф-редакторы" и "Сотрудники".

Дайте группе "Шеф-редакторы" права на чтение, чтение экземпляра и запуск. Для группы "Сотрудники" дайте права на чтение и чтение экземпляра (Подробнее см. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункты 28-31).

Обладатели полномочий на бизнес-процесс "Пример 10-1"


Рис. 15.35.  Обладатели полномочий на бизнес-процесс "Пример 10-1"

32. Запустите бизнес-процесс "Пример 10-1" и доведите экземпляр процесса до завершения.

Выполнение бизнес-процессов по шагам.

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

Кликните на имя процесса в общем списке бизнес-процессов (См. рис. 15.36)

Запуск бизнес-процесса "Пример 10-1"


Рис. 15.36.  Запуск бизнес-процесса "Пример 10-1"

Будет отображена стартовая форма бизнес-процесса "Пример 10-1", введите номер журнала, год, выберите из предлагаемых вариантов месяц.

Нажмите "Загрузить файл". Выберите файл постера (jpg или png) на обложку журнала.

Ввод данных на стартовой форме бизнес-процесса "Пример 10-1"


увеличить изображение

Рис. 15.37.  Ввод данных на стартовой форме бизнес-процесса "Пример 10-1"

Нажмите "Запустить". Будет запущен новый экземпляр бизнес-процесса "Пример 10-1".

Управление из стартового узла перейдет в мульти-подпроцесс "Создание контента для рубрик", который настроен по группе "Редакторы".

Таким образом будут запущены 3 экземпляра подпроцесса "Пример 10-2", редакторы "Сидоров", "Сергеев", "Николаев" получат задание "Выбрать исполнителей для создания контента рубрики"

Запущено 3 экземпляра подпроцесса "Пример 10-2"


Рис. 15.38.  Запущено 3 экземпляра подпроцесса "Пример 10-2"

Зайдите в систему под пользователем "Сидоров".

Возьмите на выполнение активную задачу.

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


увеличить изображение

Рис. 15.39.  Активное задание "Выбрать исполнителей для создания контента рубрики"

Выберите "Андреев" в качестве обозревателя и нажмите "Задание исполнено".

Выбор обозревателя


увеличить изображение

Рис. 15.40.  Выбор обозревателя

Зайдите в систему под остальными пользователями входящими в группу "Редакторы" - "Сергеев", "Николаев" и выполните задание "Выбор исполнителей для создания контента рубрики", выбрав в качестве обозревателя "Дмитров" и "Юрьев" соответственно.

Обозреватели "Андреев", "Дмитров" и "Юрьев" получат задание "Создать внутренний контента рубрики".

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

Ввод контента рубрики обозревателем Андреев


увеличить изображение

Рис. 15.41.  Ввод контента рубрики обозревателем Андреев

Ввод контента рубрики обозревателем Дмитров


Рис. 15.42.  Ввод контента рубрики обозревателем Дмитров

Ввод контента рубрики обозревателем Юрьев


увеличить изображение

Рис. 15.43.  Ввод контента рубрики обозревателем Юрьев

Далее в каждом экземпляре "Пример 10-2" сработает обработчик формирующий контент рубрики, который будет передан редактору рубрики на утверждение.

Редакторы "Сидоров", "Сергеев", "Николаев" получат задание "Утвердить текст рубрики".

Зайдите в систему под каждым из редакторов и утвердите тексты рубрик.

Утверждение контента рубрики редактором "Сидоров"


увеличить изображение

Рис. 15.44.  Утверждение контента рубрики редактором "Сидоров"

После того, как все три экземпляра подпроцесса "Пример 10-2" завершатся, управление вернется в экземпляр бизнес-процесса "Пример 10-1". В переменную список "тексты рубрик" будет записан "Контент рубрики" созданный в соответствующем подпроцессе.

Верстальщик "Иванов" получит задание "Корректировать рубрики".

Верстальщику доступны все тексты рубрик для редактирования.

Задание "Корректировка рубрик"


Рис. 15.45.  Задание "Корректировка рубрик"

Выполните задание.

Войдите в систему под пользователем "Петров".

Шеф-редактор "Петров" получит задание "Принять решение о выпуске журнала", в форме задания доступна ссылка на docx файл журнала, а также текстовое поле для ввода комментария, который в обязательном порядке необходим в случае если шеф-редактор решит отправить журнал на доработку.

Задание "Корректировать рубрики"


увеличить изображение

Рис. 15.46.  Задание "Корректировать рубрики"

Нажмите на ссылку "журнал.docx", будет загружен и открыт созданный файл журнала.

Созданный DOCX файл нового выпуска номера журнала


увеличить изображение

Рис. 15.47.  Созданный DOCX файл нового выпуска номера журнала

Закройте журнал, введите замечания в поле "Комментарий" задания "Принять решение о выпуске журнала", нажмите "Отправить всем заново".

Отправка номера журнала на доработку


увеличить изображение

Рис. 15.48.  Отправка номера журнала на доработку

Управление пойдет по ветке "Отправить всем заново", снова будут запущены подпроцессы создания контента для рубрик. Редакторы получат соответствующие задания.

Повторный запуск подпроцессов


Рис. 15.49.  Повторный запуск подпроцессов

Исправьте замечания, указанные шеф-редактором в комментариях, и доведите процесс выпуска нового номера журнала до конца, выполнив задание "Принять решение о выпуске журнала" на этот раз в варианте "Утвердить номер журнала"

Задание для самостоятельной работы

Описание самостоятельной работы.

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

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

Подготовка данных на сервере.

Войдите на сервер под пользователем Администратор.

Создайте отношение "Шеф-Редактор" (См. пример создания отношения в пунктах 10-11 раздела "Практическое занятие "Изучение перспективы ресурсов", рис. 7.5, рис. 7.6).

Добавьте в него, например следующие пары:

Отношение Шеф-редактор


Рис. 15.50.  Отношение Шеф-редактор

Таким образом получаем, что Петров является шеф-редактором для пользователей редакторов Сидоров и Сергеев, а Константинов шеф-редактор пользователя редактора Николаев.

Создайте группу

Создайте пользователей и добавьте их в группу Авторы:

Группа "Авторы"


Рис. 15.51.  Группа "Авторы"

Не забудьте дать полномочия группе "Редакторы" на чтение и просмотр группы "Авторы".Для этого откройте список исполнителей, выберите группу "Авторы", нажмите на "Обладатели полномочий". Добавьте в список группу "Редакторы", установите права "Читать" и "Просматривать". Также не забудьте дать полномочия группе "Редакторы" на чтение на всех пользователей, входящих в группу "Авторы" Для этого выберите пользователя, перейдите в обладатели полномочия, и добавьте группу "Редакторы" с правами на чтение. (В качестве примера можно посмотреть добавление обладателей полномочий на группу "Обозреватели" в Практическое занятие "Работа с мульти-подпроцессами", порядок выполнения, пункты 7,8 рис. 15.1, рис. 15.2)

Создание бизнес-процессов.

Создайте на основе бизнес-процессов "Пример 10-1" и "Пример 10-2" бизнес-процессы "Пример 10-3" и "Пример 10-4" соответственно.

Для этого воспользуйтесь функцией копирования (подробнее см. Практическое занятие "Изучение перспективы потока управления", Задание для самостоятельной работы, Пункты 1,2,3).

Измените граф схемы бизнес-процессов в соответствии с рисунками 15.52, 15.53

Замечание. Схема бизнес-процесса "Пример 10-3" не отличается от "Пример 10-1", изменения будут только в параметрах элемента Мульти-подпроцесс.

Схема бизнес-процесса для самостоятельной работы "Пример 10-3"


Рис. 15.52.  Схема бизнес-процесса для самостоятельной работы "Пример 10-3"

Схема мульти-подпроцесса "Пример 10-4"


Рис. 15.53.  Схема мульти-подпроцесса "Пример 10-4"

Добавьте к уже существующим ролям в бизнес-процессе "Пример 10-4", роль Автор без инициализатора:

Роли в бизнес-процессе "Пример 10-4"


Рис. 15.54.  Роли в бизнес-процессе "Пример 10-4"

Добавьте переменные

Переменные бизнес-процесса "Пример 10-4"


Рис. 15.55.  Переменные бизнес-процесса "Пример 10-4"

Замечание. В случае, если в системе установлен браузер Microsoft Internet Explorer устаревшей версии 7 (IE7) или 6 (IE6), то в качестве редактора форм должен быть использован FCKEditor2 (как переключить редактор см. в Практическое занятие "Изучение перспективы данных", Порядок выполнения работы, Пункт 6, рис. 8.9, рис. 8.10 )

Измените форму задания "Выбрать исполнителей для создания контента рубрики", добавьте компонент форм "Выбор из членов группы" (используйте в качестве параметров роль Автор и переменную Авторы, см. рис. 15.56, рис. 15.57)

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


Рис. 15.56.  Форма задания "Выбор исполнителей для создания контента рубрики"

Выбор из членов группы "Авторы"


Рис. 15.57.  Выбор из членов группы "Авторы"

То есть, в данном случае редактор выбирает Автора и Обозревателя которые будут создавать контент рубрики.

Для роли "Автор" добавьте валидатор роли "Обязательное поле" (см. валидатор для роли Обозреватель в "Пример 10-2").

Создайте форму для задания "Создать внешний контент рубрики", расположите компонент для ввода переменной "Внешний контент"

Ввод переменной "Внешний контент"


Рис. 15.58.  Ввод переменной "Внешний контент"

Добавьте валидатор "Обязательное поле" для переменной "Внешний контент"

Измените конфигурацию обработчика в задаче сценария "Сформировать текст рубрики"

Контент_рубрики = "От автора " + Автор.getFullName();
Контент_рубрики += "\r\n\r\n";
Контент_рубрики += Внешний_контент;
Контент_рубрики += "\r\n\r\n";
Контент_рубрики += "От обозревателя " + Обозреватель.getFullName();
Контент_рубрики += "\r\n\r\n";
Контент_рубрики += Внутренний_контент;
Контент_рубрики += "\r\n\r\n";

Конфигурация обработчика в задаче сценария "Сформировать текст рубрики"


Рис. 15.59.  Конфигурация обработчика в задаче сценария "Сформировать текст рубрики"

Таким образом "Контент рубрики" теперь будет складываться еще и из "внешнего контента" введенного Автором.

Откройте процесс "Пример 10-3", вызовите настройку мульти-подпроцесса "Создание контента для рубрик". Здесь перейдите на вкладку "По отношению", в качестве подпроцесса выберите "Пример 10-4". Выполните синхронизацию с сервером и выберите отношение с названием "Шеф-редактор", в качестве параметра отношения используйте роль "Шеф-редактор". Обратите внимание на опцию "Обратное отношение", она должна быть установлена. Переменная в подпроцессе и сопоставление переменных процесса и подпроцесса оставьте неизменными (см. рис. 15.60).

Настройка мульти-подпроцесса по обратному отношению


увеличить изображение

Рис. 15.60.  Настройка мульти-подпроцесса по обратному отношению

Выполнение бизнес-процессов.

Экспортируйте разработанные бизнес-процессы "Пример 10-3" и "Пример 10-4" на сервер.

Дайте полномочия на чтение, чтение экземпляра и запуск бизнес-процесса "Пример 10-3" для группы "Шеф-редакторы", а для группы "Сотрудники" дайте право на чтение и чтение экземпляра.

Запустите бизнес-процесс выпуска номера журнала "Пример 10-3" под пользователем "Петров" и доведите его до полного завершения. Проверьте запуск мульти-подпроцессов по отношению. Получите в результате выполнения docx файл журнала, проверьте соответствие его шаблону.

Требования к представлению результатов занятия

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

В отчете должны содержаться следующие данные:

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

Контрольные вопросы

  1. Что такое мульти-подпроцесс?
  2. Чем может определяться количество запускаемых экземпляров мульти-подпроцесса?
  3. Как используются Отношения в мульти-подпроцессе, что такое Обратное отношение?

Лекция 16. Внешнее хранилище данных

Цель занятия: целью занятия является изучение работы с внешним хранилищем данных, представленным в виде Excel таблиц.

Теоретические сведения

Теоретические сведения по работе ботов изложены в лекции 3 в разделе "Концепция ботов и бот-станций".

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

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

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

Порядок выполнения работы

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

Описание бизнес-процесса.

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

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

После удовлетворения, заявка переносится в архив, заказчик получает задачу "Ознакомиться с запланированной заявкой", а "Гараж" должен отчитаться о выполненном рейсе.

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

1. Запустите RunaWFE симулятор, для этого дважды кликните по ярлыку "Start Simulation" на рабочем столе, или выполните команду меню Пуск / Программы / RunaWFE / Start Simulation. (Подробнее см. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункт 1)

2. Войдите в web-интерфейс системы RunaWFE под пользователем Administrator. (см. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункт 2, рис. 5.2) Замечание. По умолчанию пароль пользователя Administrator - "wf".

3. Создайте следующих пользователей: (см. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункты 10 - 11, рис. 5.9- 5.10)

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

При создании, введите пароль для каждого пользователя (например - 123), знать старый пароль пользователя при этом не требуется (см. Практическое занятие "Изучение перспективы ресурсов", Порядок выполнения работы, Пункты 4 - 5, рис. 7.1, рис. 7.2).

4. Создайте группы (см. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункты 4 - 6, рис. 5.4- 5.6)

5. Добавьте пользователей в группы

группа "Гараж":

группа "Канцелярия":

группа "Диспетчеры":

при этом все пользователи должны входить в группу "Сотрудники":

6. Дайте полномочия группе "Сотрудники" на вход в систему (см. Вводное занятие. Изучение интерфейса системы RunaWFE, пункты 7-9, рис. 5.6- 5.8 )

7. Перейдите к пункту меню "Отношения" по ссылке "Отношения" в левой части экрана (см. раздел "Стандарты и концепции, связанные с СУБПиАР", пункт "Использование бинарных отношений для упрощения инициализации ролей")

8. Кликните по ссылке "Создать отношение"

Команда создания отношения


Рис. 16.1.  Команда создания отношения

9. В появившейся форме введите имя отношения ("Руководитель организации") и необязательное описание. После этого кликните на "Создать"

Ввод названия отношения


Рис. 16.2.  Ввод названия отношения

10. Кликните на имени появившейся записи

Редактирование отношения


Рис. 16.3.  Редактирование отношения

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

Создание пары (Сверчков-Сотрудники)


Рис. 16.4.  Создание пары (Сверчков-Сотрудники)

12. Откройте среду разработки

13. Создайте новый проект "Занятие 11"

Для реализации задачи заказа автотранспорта, потребуется разработать два бизнес-процесса.

Бизнес-процесс "Заявка"

14. Создайте новый процесс "Заявка"

15. Добавьте элементы на схему бизнес-процесса в соответствии с рис. 16.5

Схема бизнес-процесса "Заявка"


увеличить изображение

Рис. 16.5.  Схема бизнес-процесса "Заявка"

В бизнес-процессе используется следующие элементы: Начало, Действие, Задача сценария, Таймер, Исключающий шлюз, Параллельный шлюз, Окончание.

Для элемента "Задача сценария" используйте опцию компактный вид (см. пункт 1 раздела "Практическое занятие "Работа с Word-ботом". Порядок выполнения работы.", Замечание. рис. 10.2).

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

16. Создайте роли (См. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункт 21, рис. 5.20)

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

17. Инициализируйте роли

Роль "Заказчик" будет инициализирована пользователем, запустившим процесс, не требует инициализатора.

Роли "Канцелярия" и "Гараж" должны быть проинициализирована группами "Канцелярия" и "Гараж" соответственно. Выделите созданную роль, нажмите "Изменить", перейдите на вкладку "Группы и пользователи WF". Здесь необходимо выполнить синхронизацию с сервером, после чего "Выбрать" из списка нужную группу (см. рис. 16.6). Для проверки и ввода параметров соединения с сервером воспользуйтесь ссылкой "Настройки соединения" (см. Практическое занятие "Изучение перспективы ресурсов", Пункт 26, рис. 7.16-7.18)

Инициализатор роли "Канцелярия"


Рис. 16.6.  Инициализатор роли "Канцелярия"

Инициализируйте роль "Руководитель" отношением "Руководитель организации", примененным к роли "Заказчик":

Для этого выделите "Руководитель" в списке ролей на вкладке "Роли" и кликните "Изменить"

В появившейся форме перейдите на вкладку "Задать роль с помощью отношения". Нажмите на "Синхронизация", затем "Выбрать" (См. рис. 16.7)

Инициализация с помощью отношения


увеличить изображение

Рис. 16.7.  Инициализация с помощью отношения

В списке будут отображаться импортированные с сервера отношения, выберите "Руководитель организации" и нажмите "ОК" (См. рис. 16.8)

Окно выбора отношения


Рис. 16.8.  Окно выбора отношения

Откройте список для поля "Параметр отношения" и выберите роль "Заказчик" (См. рис. 16.9). Нажмите "ОК"

Инициализация роли Руководитель с помощью отношения


Рис. 16.9.  Инициализация роли Руководитель с помощью отношения

Замечание. Инициализация для роли "бот" будет описана в последующих пунктах разработки.

18. Свяжите роли с узлами на графе

Роль "Заказчик" с узлами "Начало", "Ознакомиться с отказом" и "Ознакомиться с запланированной заявкой" (Подробнее см. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункт 22).

Остальные роли свяжите с узлами в соответствии с рис. 16.5

19. Создайте новый тип данных

Заявка будет состоять из следующего набора данных:

Эти данные удобно использовать в виде полей переменной пользовательского типа.

Перейдите на вкладку "Типы данных", нажмите "Создать" в области "Типы данных" В появившемся окне введите название типа - "Заявка", и нажмите "OK"

Создание нового типа


увеличить изображение

Рис. 16.10.  Создание нового типа

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

Добавление атрибута


увеличить изображение

Рис. 16.11.  Добавление атрибута

В появившемся окне введите название атрибута и нажмите "OK". Форма создания атрибута не отличается от формы создания переменной.

Создайте все атрибуты заявки:

Атрибуты заявки


увеличить изображение

Рис. 16.12.  Атрибуты заявки

20. Создайте переменные

Переменные процесса Заявка


увеличить изображение

Рис. 16.13.  Переменные процесса Заявка

Для создания переменной перейдите на вкладку "Переменные" и нажмите "Создать". В появившейся форме введите название переменной, нажмите "Далее" и выберите ее формат (Подробнее см. "Практикум.Перспективы исполнимых бизнес-процессов", Практическое занятие "Изучение перспективы данных", Порядок выполнения работы, Пункт 5).

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

Замечание. По умолчанию в качестве редактора форм используется CKEditor4. Однако, в случае если у вас в системе установлен браузер Microsoft Internet Explorer устаревшей версии - 6 (IE6) или 7 (IE7), формы могут отображаться некорректно. В этом случае следует переключить редактор на FCKEditor2 (как переключить редактор см. в Практическое занятие "Изучение перспективы данных", Порядок выполнения работы, Пункт 6, рис. 8.9, рис. 8.10)

Стартовая форма

На данной форме заказчик вводит данные заявки

Выделите узел "Начало" графа процесса "Заявка" правой кнопкой мыши и выберите команду "Форма" > "Создать форму" (Подробнее см. Практическое занятие "Изучение перспективы данных", Порядок выполнения работы, Пункт 6, Замечание, рис. 8.11-8.12).

На данной форме заказчик вводит данные заявки на автотранспорт.

Добавьте на форму текст "Введите данные заявки".

Нажмите на иконку вставки в форму таблицы (см. рис. 16.14), используйте 2 столбца и 4 строки (см. рис. 16.15). Расположите таблицу под текстом "Введите данные заявки".

Вставка таблицы на форму


увеличить изображение

Рис. 16.14.  Вставка таблицы на форму

Свойства таблицы


Рис. 16.15.  Свойства таблицы

Заполните колонки таблицы как показано на рис. 16.16. Во втором столбце используйте компонент формы "Ввод переменной". Для этого перейдите на вкладку "Компоненты форм", выделите необходимый компонент, в данном случае это "Ввод переменной" и с помощью мыши перетащите его на форму (Подробнее см. Практическое занятие "Изучение перспективы операций", Порядок выполнения работы, Пункт 14, рис. 9.17, 9.18).

Замечание. Альтернативным способом добавления на форму может быть двойной клик левой клавишей мыши по компоненту, после чего он будет добавлен в текущее положение курсора на форме.

Для вызова свойств добавленного на форму компонента используйте двойной клик левой клавишей мыши или пункт "Параметры компонента" контекстного меню (вызывается правой клавишей мыши).

В качестве параметра "Название переменной" задайте соответствующие поля переменной пользовательского формата "Заявка" (см. рис. 16.17)

Заполненная таблица ввода данных заявки


увеличить изображение

Рис. 16.16.  Заполненная таблица ввода данных заявки

Ввод полей пользовательской переменной "Заявка"


Рис. 16.17.  Ввод полей пользовательской переменной "Заявка"

Расположите под таблицей компонент для ввода переменной "Комментарий заказчика"

Стартовая форма процесса "Заявка"


увеличить изображение

Рис. 16.18.  Стартовая форма процесса "Заявка"

Сохраните и закройте форму.

Задайте валидацию для переменных стартовой формы

Для этого кликните на стартовой форме правой клавишей мыши и выберите пункт "Форма > Проверка переменных формы", в появившейся форме выделяйте переменные и устанавливайте необходимые валидаторы. (Подробнее см. Практическое занятие "Изучение перспективы операций", Пункт 15, рис. 9.27, рис. 9.28).

Для "Заявка.Тип авто" добавьте валидатор "Обязательное поле". В поле "Сообщение об ошибке" введите - "Обязательное поле".

Для "Заявка.Количество мест" добавьте валидатор "Обязательное поле", а также "Диапазон числа" установив минимальное значение в "1" включительно (см. рис. 16.19), при этом в поле "Сообщение об ошибке" введите - "Должно быть задано минимум одно место"

Для "Заявка.С" добавьте валидатор "Обязательное поле", а также "Диапазон даты относительно текущей" установив параметр "Сдвиг в прошлое" в значение "0" (см. рис. 16.20), при этом в поле "Сообщение об ошибке" введите - "Дата подачи авто не может быть в прошлом"

Для "Заявка.По" используйте такие же валидаторы как и для "Заявка.С"

Валидатор "Диапазон числа" для "Заявка.Количество мест"


увеличить изображение

Рис. 16.19.  Валидатор "Диапазон числа" для "Заявка.Количество мест"

Валидатор "Диапазон даты относительно текущей" для "Заявка.С"


увеличить изображение

Рис. 16.20.  Валидатор "Диапазон даты относительно текущей" для "Заявка.С"

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

Заявка.По позже Заявка.С

а). переход


увеличить изображение

Рис. 16.21a.  а). переход

б). добавление


увеличить изображение

Рис. 16.21b.  б). добавление

в). конфигуратор глобального валидатора


увеличить изображение

Рис. 16.21c.  в). конфигуратор глобального валидатора

Форма узла "Одобрить заявку"

Создайте форму для узла "Одобрить заявку"

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

Форма "Одобрить заявку"


увеличить изображение

Рис. 16.22.  Форма "Одобрить заявку"

Используйте компонент "Отобразить переменную" для вывода значений переменных "Заявка" и "Комментарий заказчика". В качестве вида отображения используйте "Как неактивный компонент ввода"

Компонент "Отобразить переменную"


Рис. 16.23.  Компонент "Отобразить переменную"

Создайте аналогичным образом остальные формы.

Форма "Принять заявку"


Рис. 16.24.  Форма "Принять заявку"

Форма "Ознакомиться с отказом"


Рис. 16.25.  Форма "Ознакомиться с отказом"

Форма "Ознакомиться с запланированной заявкой"


Рис. 16.26.  Форма "Ознакомиться с запланированной заявкой"

22. Выберите класс обработчиков и задайте конфигурации

Задача сценария "Получить ФИО заказчика"

Необходима для получения ФИО заказчика.

Выделите задачу сценария (см. рис. 16.27), введите в свойство "Название" - "Получить ФИО заказчика"

Задача сценария "Получить ФИО заказчика"


Рис. 16.27.  Задача сценария "Получить ФИО заказчика"

Выберите в качестве класса обработчика - "Получить информацию об исполнителе" (см. рис. 16.28).

Выбор класса обработчика для задачи "Получить ФИО заказчика"


Рис. 16.28.  Выбор класса обработчика для задачи "Получить ФИО заказчика"

Вызовите конфигуратор обработчика. Для этого нажмите на выбор конфигурации в свойствах задачи сценария. И введите параметры как показано на рис. 16.29.

Конфигурация задачи сценария "Получить ФИО заказчика"


Рис. 16.29.  Конфигурация задачи сценария "Получить ФИО заказчика"

Задача сценария "Сформировать id заявки"

Задача предназначена для формирования id подаваемой заявки. Данный идентификатор является уникальным и фактически равен id запущенного экземпляра процесса "Заявка". Кроме того, в данной задаче инициализируется статус заявки ("Не обработана").

Выберите в качестве класса обработчика - "Выполнить формулу" (см. рис. 16.30).

Выбор класса обработчика для задачи "Сформировать id заявки"


Рис. 16.30.  Выбор класса обработчика для задачи "Сформировать id заявки"

Задайте конфигурацию:

Заявка.id=get_process_id()
Заявка.Статус="Не обработана"

Конфигурация задачи "Сформировать id заявки"


Рис. 16.31.  Конфигурация задачи "Сформировать id заявки"

Задача сценария "Получить заявку из списка"

После подачи заявка записывается во внешнее хранилище данных (Excel файл) со статусом "Не обработана", далее выполняется периодическое ее считывание из внешнего хранилища для проверки статуса, зная ее id. При этом результатом считывания из внешнего хранилища всегда есть список (даже если считывается одна конкретная заявка по ее id). Поэтому дополнительно используется специальный обработчик для получения элемента списка, в данном случае заявки из списка заявок.

Выделите задачу сценария как показано на рис. 16.32 и перейдите в ее свойство. Здесь выберите в качестве класса обработчика - "Получить элемент списка". Задайте конфигурацию как показано на рис. 16.33.

Свойства задачи "Получить заявку из списка"


Рис. 16.32.  Свойства задачи "Получить заявку из списка"

Конфигурация задачи "Получить заявку из списка"


Рис. 16.33.  Конфигурация задачи "Получить заявку из списка"

Подробная работа с внешним хранилищем будет описана в последующих пунктах.

23. Задайте задержку для Таймера

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

Вызов контекстного меню на элементе Таймер


Рис. 16.34.  Вызов контекстного меню на элементе Таймер

Настройте задержку Таймера в соответствии с рис. 16.35

Задержка таймера


Рис. 16.35.  Задержка таймера

24. Добавьте конфигурацию исключающего шлюза

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

Вызов конструктора конфигурации исключающего шлюза


Рис. 16.36.  Вызов конструктора конфигурации исключающего шлюза

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

"Заявка.Статус" не равно "Не обработана"

Конфигурация исключающего шлюза


увеличить изображение

Рис. 16.37.  Конфигурация исключающего шлюза

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

Бизнес-процесс "Планирование"

25. Создайте новый процесс "Планирование"

26. Добавьте элементы на схему бизнес-процесса в соответствии с рис. 16.38

Схема бизнес-процесса "Планирование"


увеличить изображение

Рис. 16.38.  Схема бизнес-процесса "Планирование"

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

Здесь используется тот же набор элементов что и для процесса "Заявка".

27. Создайте роли (См. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункт 21, рис. 5.20)

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

Роль "Диспетчер" будет инициализирована пользователем, запустившим процесс, не требует инициализатора.

Замечание. Инициализация для роли "бот" будет описана в последующих пунктах данной части практикума.

28. Свяжите роли с узлами на графе в соответствии с рис. 16.38

Подробнее см. Вводное занятие. Изучение интерфейса системы RunaWFE, Порядок выполнения работы, Пункт 22

29. Создайте переменные

Откройте процесс "Заявка", перейдите на вкладку "Переменные", выделите переменную "Заявка" и нажмите кнопку "Копировать" (см. рис. 16.39)

Копирование переменной


Рис. 16.39.  Копирование переменной

Вернитесь в разрабатываемый процесс "Планирование", перейдите на вкладку "Переменные" и нажмите "Вставить" (см. рис. 16.40)

Вставка переменной


Рис. 16.40.  Вставка переменной

Замечание. Вместе с переменной будет скопирован и пользовательский тип "Заявка"

Создайте остальные переменные:

Переменные процесса "Планирование"


Рис. 16.41.  Переменные процесса "Планирование"

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

Замечание. По умолчанию в качестве редактора форм используется CKEditor4. Однако, в случае если у вас в системе установлен браузер Microsoft Internet Explorer устаревшей версии - 6 (IE6) или 7 (IE7), формы могут отображаться некорректно. В этом случае следует переключить редактор на FCKEditor2 (как переключить редактор см. в Практическое занятие "Изучение перспективы данных", Порядок выполнения работы, Пункт 6, рис. 8.9, рис. 8.10)

Отобрать заявки

На данной форме заказчик отбирает заявки которые будут запланированы.

Выделите узел "Отобрать заявки" графа процесса "Планирование" правой кнопкой мыши и выберите команду "Форма" > "Создать форму" (Подробнее см. Практическое занятие "Изучение перспективы данных", Порядок выполнения работы, Пункт 6, Замечание,рис. 8.11-8.12).

Добавьте на форму текст "Выберите заявки для обработки:", под которым расположите компонент "Множественный выбор из списка пользовательских переменных"

Для этого перейдите в панель "Компоненты форм", выделите компонент "Множественный выбор из списка пользовательских переменных" и с помощью мыши перетащите его на форму (Подробнее см. Практическое занятие "Изучение перспективы операций", Порядок выполнения работы, Пункт 14, рис. 9.17, рис. 9.18).

Замечание. Альтернативным способом добавления на форму может быть двойной клик левой клавишей мыши по компоненту, после чего он будет добавлен в текущее положение курсора на форме.

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

Форма узла "Отобрать заявки"


увеличить изображение

Рис. 16.42.  Форма узла "Отобрать заявки"

Для вызова свойств добавленного на форму компонента используйте двойной клик левой клавишей мыши или пункт "Параметры компонента" контекстного меню (вызывается правой клавишей мыши).

Заполните параметры компонента как показано на рис. 16.43.

Параметры множественного выбора из списка пользовательских переменных


Рис. 16.43.  Параметры множественного выбора из списка пользовательских переменных

Разъяснение по параметрам:

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

Запланировать заявки

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

Форма узла "Запланировать заявки"


увеличить изображение

Рис. 16.44.  Форма узла "Запланировать заявки"

Двойным кликом мыши или с помощью контекстного меню перейдите в параметры компонента и заполните их в соответствии с рис. 16.45

Параметры компонента "Отобразить список пользовательских переменных"


Рис. 16.45.  Параметры компонента "Отобразить список пользовательских переменных"

В web интерфейсе данный компонент будет представлен в виде двумерной таблицы, содержащей отобранные диспетчером заявки.

Обрабатывать еще заявки?

В данном задании диспетчер выбирает продолжать обрабатывать заявки или завершить процесс.

Узел "Обрабатывать еще заявки?"


Рис. 16.46.  Узел "Обрабатывать еще заявки?"

Форма узла "Обрабатывать еще заявки?"


Рис. 16.47.  Форма узла "Обрабатывать еще заявки?"

В web интерфейсе форма будет представлена в виде отображаемого текста "Обрабатывать еще заявки?", под которым автоматически будут добавлены кнопки выбора "Да"/"Нет", соответствующие переходам на графе для возврата на чтение очередных необработанных заявок или завершения процесса.

31. Выберите класс обработчиков и задайте конфигурации

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

Выделите задачу сценария (см. рис. 16.48), введите в свойство "Название" - "Определить количество заявок" Выберите в качестве класса обработчика - "Агрегатная функция над списком" (см. рис. 16.48).

Задача сценария "Определить количество заявок"


Рис. 16.48.  Задача сценария "Определить количество заявок"

Вызовите конфигуратор обработчика. Для этого нажмите на выбор конфигурации в свойствах задачи сценария. И введите параметры как показано на рис. 16.49.

Конфигурация обработчика задачи сценария "Определить количество заявок"


Рис. 16.49.  Конфигурация обработчика задачи сценария "Определить количество заявок"

Для определения количества элементов в списке используется функция "COUNT".

Задача сценария "Определить количество отобранных заявок"

Аналогичным образом выберите класс обработчика и добавьте конфигурацию для задачи сценария "Определить количество отобранных заявок". Но в данном случае определяется количество элементов в списке "Отобранные заявки"

Конфигурация обработчика задачи сценария "Определить количество отобранных заявок"


Рис. 16.50.  Конфигурация обработчика задачи сценария "Определить количество отобранных заявок"

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

Задача "Инициализация индекса заявки" используется перед началом цикла, устанавливает индекс на последний элемент списка (обход заявок в обратном порядке). Выберите "Выполнить формулу" в качестве класса обработчика. Задайте конфигурацию:

'индекс заявки'='Количество заявок';

Задача сценария "Инициализация индекса заявки"


увеличить изображение

Рис. 16.51.  Задача сценария "Инициализация индекса заявки"

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

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

Класс обработчика - "Получить элемент списка".

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


Рис. 16.52.  Задача сценария "Получить заявку из списка отобранных"

Задача сценария "Изменить статус заявки" предназначена для изменения статуса отобранной заявки с "Не обработана" на "Запланирована".

Класс обработчика "Выполнить формулу", конфигурация:

Заявка.Статус="Запланирована"

Задача сценария "Изменить статус заявки"


Рис. 16.53.  Задача сценария "Изменить статус заявки"

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

Класс обработчика "Выполнить формулу", конфигурация:

'индекс заявки'='индекс заявки'-1;

Задача сценария "Индекс следующей заявки"


Рис. 16.54.  Задача сценария "Индекс следующей заявки"

32. Задайте задержку для Таймера

В процессе "Планирование" используется таймер для установки периода считывания необработанных заявок из внешнего хранилища. Кликните по таймеру правой клавишей мыши и выберите пункт "Задержка". Установите задержу равной 10 секунд от даты прихода управления в состояние.

Настройка задержки таймера в процессе "Планирование"


Рис. 16.55.  Настройка задержки таймера в процессе "Планирование"

33. Добавьте конфигурацию для исключающих шлюзов

Первый исключающий шлюз используется для проверки количества необработанных заявок, если их 0, то управление возвращается в задачу "Считать необработанные заявки", иначе идет по переходу "Отобрать заявки".

Конфигурация шлюза представлена на рис. 16.56.

Конфигурация исключающего шлюза 1


Рис. 16.56.  Конфигурация исключающего шлюза 1

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

Конфигурация шлюза представлена на рис. 16.57.

Конфигурация исключающего шлюза 2


Рис. 16.57.  Конфигурация исключающего шлюза 2

Третий исключающий шлюз используется в цикле обновления статуса запланированных заявок.

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

Конфигурация шлюза представлена на рис. 16.58.

Конфигурация исключающего шлюза 3


Рис. 16.58.  Конфигурация исключающего шлюза 3

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

Внешнее хранилище данных. Бот работы с внешним хранилищем.

В качестве внешнего хранилища данных о заявках используются Excel-листы. Строки на Excel листе соответствуют заявкам, а столбцы атрибутам заявки (id, Тип авто, Статус и т.д.).

Например, на рис. 16.59 представлен Excel лист с данными по четырем заявкам.

Пример внешнего хранилища


Рис. 16.59.  Пример внешнего хранилища

Для работы с данным хранилищем используется специальный обработчик "Внешнее хранилище данных" (ru.runa.wfe.office.storage.handler.ExternalStorageHandler), позволяющий выполнять простейшие действия с данными:

Действие INSERT

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

Действие SELECT

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

Замечание. В качестве результата всегда возвращает список, даже если был получен только один элемент. Именно поэтому в процессе "Заявка", после чтения заявки по ее id, дополнительно используется обработчик "Получить элемент списка".

Действие UPDATE

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

Например, в разрабатываемом процессе используется для обновления заявки после изменения ее статуса с "Не обработана" на "Запланирована", зная ее id.

Действие DELETE

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

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

Рекомендации для корректной работы с "Внешним хранилищем данных":

  1. Один Excel-лист должен соответствовать одной таблице.
  2. Обработчик, реализующий коннектор к Excel-файлу, необходимо использовать только в задаче бота. Это нужно для того, чтобы исключить одновременный доступ к хранилищу из разных экземпляров процессов, в результате чего могут быть потеряны данные. При этом бот-станция должна быть настроена на последовательное выполнение заданий бота в рамках одного потока, работающего с внешним хранилищем. Таким образом может быть получен простейший аналог транзакций системы управления БД.
  3. Excel файл должен быть предварительно создан. Если в файле предполагается хранить более одной таблицы (расположенных на разных листах), то необходимо предварительно создать эти листы.
  4. Таблица всегда должна располагаться начиная с 1-го столбца, поэтому в конфигурации обработчика "Внешнее хранилище данных" параметр "Столбец" всегда должен быть равным "1".
  5. В момент выполнения обработчика, использующего одно из действий INSERT, DELETE, UPDATE, файлы внешнего хранилища данных не должны быть открыты, иначе действие не будет выполнено.
  6. Атрибуты пользовательского типа данных не должны содержать пробелы т.к. в случае использования такого поля в условии конфигурации обработчика внешнего хранилища, действие будет выполнено некорректно. Например, "Заказ.Количество мест" не будет работать в условии конфигурации обработчика внешнего хранилища, используйте "Заказ.Количество"

34. Откройте среду разработки

35. Перейдите на вкладку "Боты" среды разработки (если данная вкладка не отображается, ее можно включить в меню "Окно" > "Боты").

36. ОБЯЗАТЕЛЬНО (!) удалите все ботстанции из среды разработки, иначе создание ботов и задач будет приводить к ошибкам и некорректной работе.

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

37. Импортируйте ботстанцию localbotstation с сервера WFE (Подробнее см. Практическое занятие "Работа с Word-ботом", Порядок выполнения работы, Пункт 18, рис. 10.32-10.34)

Если на сервере отсутствует ботстанция localbotstation, то создайте ее (подробнее см. "Практическое занятие "Изучение перспективы операций", Порядок выполнения работы, Пункт 10, рис. 10.3,рис. 10.4).

38. Создайте в среде разработки нового бота "Бот работы с внешним хранилищем"

Создание нового бота


Рис. 16.60.  Создание нового бота

Ввод имени бота


Рис. 16.61.  Ввод имени бота

39. Создайте задачи бота работы с внешним хранилищем

Для создания новой задачи бота: выделите бот, кликните правой клавишей мыши и выберите "Новая задача бота". Введите название задачи и нажмите "Готово".

Создание задачи бота


Рис. 16.62.  Создание задачи бота

Далее выберите класс обработчика "Внешнее хранилище данных"

Выбор класса обработчика задачи бота


Рис. 16.63.  Выбор класса обработчика задачи бота

Задача "Добавить заявку на обработку"

Данная задача бота предназначена для добавления заявки во внешнее хранилище.

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

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

Входной параметр для задачи "Добавить заявку на обработку"


увеличить изображение

Рис. 16.64.  Входной параметр для задачи "Добавить заявку на обработку"

Перейдите в секцию конфигурации задачи. Нажмите "Изменить"

Изменение конфигурации задачи


увеличить изображение

Рис. 16.65.  Изменение конфигурации задачи

Будет открыт конструктор конфигурации задачи.

Конструктор конфигурации обработчика "Внешнее хранилище данных"


Рис. 16.66.  Конструктор конфигурации обработчика "Внешнее хранилище данных"

Выберите из списка действий - INSERT.

Параметр "Входной файл" определяет Excel файл, выступающий в качестве внешнего хранилища. Задайте его как путь к файлу - C:\DB.xlsx

Нажмите "Добавить атрибут", в поле "Переменная" выберите входной параметр "Заявка".

Таблица с заявками будет располагаться на первой листе Excel, поэтому параметр "Страница по номеру" должен быть равен "1"

Параметр "Столбец" оставьте по умолчанию равными "1".

Замечание. Таблица всегда должна располагаться начиная с 1-го столбца, поэтому параметр "Столбец" всегда должен быть равным "1".

Таким образом, переменная связанная со входным параметром "Заявка" с помощью действия INSERT будет добавлена во внешнее хранилище, представленное файлом C:\DB.xlsx.

Конфигурация задачи "Добавить заявку на обработку"


Рис. 16.67.  Конфигурация задачи "Добавить заявку на обработку"

Сохраните и закройте задачу бота.

Задача "Считать заявку"

Данная задача бота предназначена для считывания заявки из внешнего хранилища по ее id (уникальному идентификатору).

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

Добавьте входной параметр с названием "id" типа "Строка, Текст".

Добавьте выходной параметр с названием "Заявки" типа "Список".

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

Замечание. Действие SELECT в качестве результата всегда возвращает список, даже если предполагается получить только один экземпляр пользовательской переменной (например заявку по ее уникальному идентификатору), поэтому тип выходного параметра должен быть "Список".

Параметры задачи "Считать заявку"


увеличить изображение

Рис. 16.68.  Параметры задачи "Считать заявку"

Перейдите в секцию конфигурации и нажмите "Изменить". Будет вызван конструктор конфигурации.

Выберите выполняемое действие - SELECT.

Укажите входной файл - C:\DB.xlsx

Добавьте атрибут - выходной параметр список "Заявки"

"Страница по номеру" - "1"

"Столбец" - "1"

Замечание. Таблица всегда должна располагаться начиная с 1-го столбца, поэтому параметр "Столбец" всегда должен быть равным "1".

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

Синтаксис условий следующий:

[имяАтрибута] оператор значение

Замечание. Использование пробелов в [имениАтрибута], например [Количество мест] недопустимо, условие будет работать некорректно. Поэтому рекомендуется давать названия атрибутам пользовательского типа без пробелов, дабы их можно было использовать в условии конфигурации обработчика.

Кроме того, поддерживаются составные условия с применением скобок и логических операторов AND, OR.

Например, выполнить SELECT для заявок со статусом 'Не обработана', у которых 'Количество мест' больше или равно 10

[Статус] == 'Не обработана' AND [Количество мест] >= 10

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

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

[id] == @id

где [id] - это атрибут пользовательского типа "Заявка", @id - это входной параметр задачи (был добавлен в секции "Входные параметры" задачи)

Конфигурация задачи "Считать заявку"


Рис. 16.69.  Конфигурация задачи "Считать заявку"

Задача "Добавить заявку в архив"

Задача выполняет добавление заявки в архивное внешнее хранилище.

Процесс создания данной задачи аналогичен созданию задачи "Добавить заявку на обработку". Отличие только в использовании другого Excel файла.

Пусть архивное внешнее хранилище будет в файле C:\Archiv.xlsx

Параметры задачи "Добавить заявку в архив"


Рис. 16.70.  Параметры задачи "Добавить заявку в архив"

Конфигурация задачи "Добавить заявку в архив"


Рис. 16.71.  Конфигурация задачи "Добавить заявку в архив"

Задача "Удалить заявку"

После добавления заявки в Архив, ее требуется удалить из основного хранилища.

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

Добавьте входные параметры:

Параметры задачи "Удалить заявку"


Рис. 16.72.  Параметры задачи "Удалить заявку"

Создайте конфигурацию задачи. Используйте действие DELETE.

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

[id] == @id

Добавьте атрибут. Используйте входной параметр "Заявка"

Конфигурация задачи "Удалить заявку"


Рис. 16.73.  Конфигурация задачи "Удалить заявку"

Задача "Считать необработанные заявки"

В процессе "Планирование" требуется считывать заявки со статусом "Не обработана".

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

Добавьте выходной параметр "Заявки" типа "Список".

Выходные параметры задачи "Считать необработанные заявки"


Рис. 16.74.  Выходные параметры задачи "Считать необработанные заявки"

Добавьте конфигурацию задачи.

Используйте действие "SELECT". В качестве атрибута используйте выходной параметр "Заявки".

Условие считывания необработанных заявок:

[Статус] == 'Не обработана'

Конфигурация задачи "Считать необработанные заявки"


Рис. 16.75.  Конфигурация задачи "Считать необработанные заявки"

Задача "Обновить заявку"

В процессе "Планирование" требуется обновить заявки после изменения их статуса.

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

Добавьте входные параметры "id" типа "Строка, Текст", "Заявка" типа "Пользовательский тип данных"

Входные параметры задачи "Обновить заявку"


Рис. 16.76.  Входные параметры задачи "Обновить заявку"

Добавьте конфигурацию задачи.

Используйте действие "UPDATE". В качестве атрибута используйте входной параметр "Заявка".

Условие - обновить заявку зная ее идентификатор (передается во входном параметре задачи):

[id] == @id

Конфигурация задачи "Обновить заявку"


Рис. 16.77.  Конфигурация задачи "Обновить заявку"

40. Экспортируйте бота вместе с задачами на сервер WFE (Подробнее см. "Практическое занятие "Работа с Word-ботом", "Порядок выполнения работы", Пункт 20, рис. 10.54, рис. 10.55)

41. Откройте процесс "Заявка"

42. Перейдите на вкладку "Роли"

43. Инициализируйте роль "бот"

Для этого выделите роль, нажмите "Изменить", в открывшемся окне выберите вкладку "Бот".

В выпадающем списке "исполнитель по имени" должен быть доступен "Бот работы с внешним хранилищем", выберите его.

Инициализатор роли ботом


увеличить изображение

Рис. 16.78.  Инициализатор роли ботом

44. Повторите инициализацию роли бот и в процессе "Планирование"

45. Выполните привязку задач ботов в процессе "Заявка"

Кликните правой клавишей мыши на узле "Добавить заявку на обработку" и выберите пункт "Задача бота" > "Привязать".

В списке задач выберите "Добавить заявку на обработку"

Список доступных для привязки задач


Рис. 16.79.  Список доступных для привязки задач

Нажмите ОК, будет открыта форма редактирования параметров задачи, выберите параметры в соответствии с рис. 16.80

Редактирование параметров задачи "Добавить заявку на обработку"


Рис. 16.80.  Редактирование параметров задачи "Добавить заявку на обработку"

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

Узел "Считать заявку по id" - задача бота "Считать заявку"

Редактирование параметров задачи "Считать заявку по id"


Рис. 16.81.  Редактирование параметров задачи "Считать заявку по id"

Узел "Добавить заявку в архив" - задача бота "Добавить заявку в архив"

Редактирование параметров задачи "Добавить заявку в архив"


Рис. 16.82.  Редактирование параметров задачи "Добавить заявку в архив"

Узел "Удалить заявку из основного хранилища" - задача бота "Удалить заявку"

Редактирование параметров задачи "Удалить заявку из основного хранилища"


Рис. 16.83.  Редактирование параметров задачи "Удалить заявку из основного хранилища"

46. Выполните привязку задач ботов в процессе "Планирование"

Узел "Считать необработанные заявки" - задача бота "Считать необработанные заявки"

Редактирование параметров задачи "Считать необработанные заявки"


Рис. 16.84.  Редактирование параметров задачи "Считать необработанные заявки"

Узел "Обновить заявку" - задача бота "Обновить заявку"

Редактирование параметров задачи "Обновить заявку"


Рис. 16.85.  Редактирование параметров задачи "Обновить заявку"

47. Сохраните процессы и экспортируйте их на сервер WFE (Подробнее см. Практическое занятие "Изучение перспективы потока управления", Порядок выполнения работы, Пункты 11-14)

Выполнение процессов:

Замечание. Разработанные бизнес-процессы заказа автотранспорта могут выполняться некорректно в устаревших версиях браузера Internet Explorer (IE7 и ниже). Рекомендуется использовать актуальные версии современных браузеров.

48. Откройте web интерфейс системы RunaWFE

49. Войдите под пользователем Administrator, пароль – wf

50. Дайте права на запуск процесса "Заявка" для группы "Сотрудники"

Откройте "Запустить процесс", и перейдите в свойства определения бизнес-процесса "Заявка"

Переход в свойства определения бизнес-процесса


увеличить изображение

Рис. 16.86.  Переход в свойства определения бизнес-процесса

Нажмите на ссылку "Обладатели полномочий".

Дайте право на чтение и запуск процесса "Заявка" для группы "Сотрудники"

Право на запуск бизнес-процесса для группы "Сотрудники"


увеличить изображение

Рис. 16.87.  Право на запуск бизнес-процесса для группы "Сотрудники"

51. Дайте права на запуск, чтение, чтение экземпляра, а также остановку процесса "Планирование" для группы "Диспетчеры"

Обладатели полномочий на бизнес-процесс "Планирование"


увеличить изображение

Рис. 16.88.  Обладатели полномочий на бизнес-процесс "Планирование"

52. Перейдите в меню "Бот станции"

53. Откройте ботстанцию localbotstation

54. Откройте бот работы с внешним хранилищем

Ботстанция localbotstation


увеличить изображение

Рис. 16.89.  Ботстанция localbotstation

55. Установите опцию последовательного выполнения задач бота и нажмите применить

Опция последовательного выполнения задач бота


увеличить изображение

Рис. 16.90.  Опция последовательного выполнения задач бота

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

56. Создайте в корне диска "C" пустые Excel файлы "DB.xlsx" и "Archiv.xlsx", являющиеся файлами внешнего хранилища

57. Войдите в систему под пользователем Сергеев, входящим в группу "Диспетчеры"

58. Запустите процесс "Планирование"

59. Перейдите в "Запущенные процессы" и откройте только что запущенный экземпляр процесса "Планирование"

Замечание. По умолчанию запущенные процессы отсортированы по возрастанию номера экземпляра, что неудобно при необходимости просмотреть "недавно" запущенный экземпляр. Измените тип сортировки - по убыванию номера экземпляра процесса. Подробнее о том как это сделать см. Практическое занятие "Работа с Word-ботом", Порядок выполнения работы, Пункт 23, рис. 10.65 - 10.68

Цикл считывания необработанных заявок в экземпляре процесса "Планирование"


Рис. 16.91.  Цикл считывания необработанных заявок в экземпляре процесса "Планирование"

Как видите, управление пришло в цикл считывания необработанных заявок и будет находиться здесь пока во внешнее хранилище не добавят хотя бы одну заявку.

60. Войдите в систему под пользователем входящим в группу "Сотрудники", например Жуков

61. Запустите новый экземпляр процесса "Заявка"

62. Введите данные заявки заказа автотранспорта и нажмите "Запустить"

Подача заявки на автотранспорт от Жукова


Рис. 16.92.  Подача заявки на автотранспорт от Жукова

63. Подайте еще пару заявок, например под пользователями Андреев и Паучков

Подача заявки на автотранспорт от Андреева


увеличить изображение

Рис. 16.93.  Подача заявки на автотранспорт от Андреева

Подача заявки на автотранспорт от Паучкова


увеличить изображение

Рис. 16.94.  Подача заявки на автотранспорт от Паучкова

Все заявки поступят руководителю организации.

64. Войдите под пользователем Сверчков, являющимся руководителем организации

Поступившие на рассмотрение к руководителю организации заявки


увеличить изображение

Рис. 16.95.  Поступившие на рассмотрение к руководителю организации заявки

65. Откройте каждое из заданий, и одобрите заявки

Одобрение заявки руководителем


Рис. 16.96.  Одобрение заявки руководителем

Каждой заявке присвоен уникальный идентификатор id (равный id соответствующего экземпляра процесса "Заявка") и статус "Не обработана".

Заявки будут направлены в канцелярию.

66. Войдите под пользователем Гусеницын, входящим в группу "Канцелярия"

67. Примите все заявки

Принятие заявки канцелярией


Рис. 16.97.  Принятие заявки канцелярией

68. Войдите на сервер WFE под пользователем Administrator (пароль wf)

69. Откройте один из экземпляров процесса "Заявка"

Бот выполнил задачу добавления заявки на обработку


Рис. 16.98.  Бот выполнил задачу добавления заявки на обработку

Как видно, бот выполнил задачу добавления заявки на обработку.

Управление пришло в цикл опроса статуса заявки.

70. Откройте файл внешнего хранилища данных - C:\DB.xlsx

Заявки во внешнем хранилище


увеличить изображение

Рис. 16.99.  Заявки во внешнем хранилище

Все три поданные заявки добавлены в хранилище.

71. Закройте файл внешнего хранилища данных

72. Войдите под диспетчером "Сергеев"

73. Откройте задание "Отобрать заявки"

Задание "Отобрать заявки"


увеличить изображение

Рис. 16.100.  Задание "Отобрать заявки"

Замечание. Периодичность проверки хранилища на предмет присутствия в нем необработанных заявок равна 10 секунд, первые 2 заявки были поданы как раз в течении этих 10 секунд, а 3-я позже. Именно поэтому, как видно из рис. 16.100, диспетчеру отображаются только 2 заявки.

74. Отберите обе заявки

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

Множественный выбор заявок


увеличить изображение

Рис. 16.101.  Множественный выбор заявок

75. Откройте полученное задание "Запланировать заявки"

Замечание. Убедитесь, что перед выполнением данного задания, файл DB.xlsx не открыт для просмотра, иначе бот не сможет вносить изменения во внешнее хранилище.

Нажмите "Запланировать заявки"

Задание "Запланировать отобранные заявки"


увеличить изображение

Рис. 16.102.  Задание "Запланировать отобранные заявки"

76. Откройте выполняемый экземпляр процесса "Планирование"

Убедитесь, что бот выполнил задачу "Обновить статус".

Бот обновил статус отобранных заявок


Рис. 16.103.  Бот обновил статус отобранных заявок

77. Войдите под пользователем "Administrator"

78. Откройте те экземпляры процесса "Заявка", заявки которых были отобраны и запланированы

Проверьте, что управление вышло из цикла опроса статуса заявки и бот успешно выполнил задачи переноса заявки в архив.

Бот выполнил задачи переноса заявки в архив


увеличить изображение

Рис. 16.104.  Бот выполнил задачи переноса заявки в архив

79. Откройте основное и внешнее хранилище данных (файлы C:\DB.xlsx и C:\Archiv.xlsx)

Убедитесь, что все запланированные заявки были перенесены из основного хранилища в архив.

Основное хранилище данных


Рис. 16.105.  Основное хранилище данных

Архив


увеличить изображение

Рис. 16.106.  Архив

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

80. Выполните активные задачи заказчиков и гаража: "Ознакомиться с запланированной заявкой", "Отчитаться о рейсе"

81. Войдите под диспетчером "Сергеев" и выполните задачу "Обрабатывать еще заявки?", выбрав "Да"

Продолжить обработку заявок


увеличить изображение

Рис. 16.107.  Продолжить обработку заявок

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

82. Запланируйте оставшиеся заявки (если они имеются)

Замечание. Убедитесь, что перед выполнением данного задания, файлы DB.xlsx и Archiv.slsx не открыты для просмотра, иначе бот не сможет вносить в них изменения.

Задание для самостоятельной работы

Разработайте учебный вариант бизнес-процесса "Заказ канцтоваров" по следующему описанию.

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

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

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

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

Значок добавления вкладки


Рис. 16.108.  Значок добавления вкладки

Каждое нажатие на данный значок приводит к добавлению новой вкладки на форму.

Добавленные на форму вкладки


Рис. 16.109.  Добавленные на форму вкладки

Для редактирования названия вкладки:

Вкладки с названиями по умолчанию


Рис. 16.110.  Вкладки с названиями по умолчанию

Редактирование названий вкладок


Рис. 16.111.  Редактирование названий вкладок

Рекомендация. Используйте компонент "Редактировать связанные списки" с запретом на добавление и удаление элементов, расположив его на каждой из вкладок соответствующей группы товаров.

Форма выбора товаров для заказа


Рис. 16.112.  Форма выбора товаров для заказа

Информация по заказанным товарам должна сохраняться во внешнем хранилище на отдельном листе "Заказанные товары", и содержать следующие данные:

Информация о принадлежности к группе товаров в "Заказанные товары" - отсутствует.

Заказанными товарами являются только те товары, у которых значение в поле "Количество" больше "0".

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

Замечание. Внешнее хранилище, представленное в виде excel файла, должно быть предварительно создано, в том числе и соответствующие листы. Кроме того, внимательно прочитайте рекомендации по использованию обработчика внешнего хранилища, описанные между пунктами 34 и 35 практического занятия "Разработка бизнес-процесса "Заказ автотранспорта"

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

По предоставленной информации работник склада решает - скомплектовать или отказать заказ.

В случае отказа:

В случае решения скомплектовать заказ:

На следующем рисунке изображена одна из возможных схем процесса заказа канцтоваров.

Схема бизнес-процесса "Заказ канцтоваров"


увеличить изображение

Рис. 16.113.  Схема бизнес-процесса "Заказ канцтоваров"

Рассмотрим подробнее подпроцесс выполняющий обновление остатков товара на складе.

Схема подпроцесса "Обновление остатков товара на складе"


увеличить изображение

Рис. 16.114.  Схема подпроцесса "Обновление остатков товара на складе"

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

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

Определение количества заказанных товаров


Рис. 16.115.  Определение количества заказанных товаров

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

Переменные подпроцесса "Обновить остатки на складе"


Рис. 16.116.  Переменные подпроцесса "Обновить остатки на складе"

В цикле выполняются следующие действия:

Получение очередного товара из списка заказанных


Рис. 16.117.  Получение очередного товара из списка заказанных

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

Параметры задачи "Считать товар со склада по названию"


Рис. 16.118.  Параметры задачи "Считать товар со склада по названию"

Конфигурация задачи "Считать товар со склада по названию"


Рис. 16.119.  Конфигурация задачи "Считать товар со склада по названию"

Определение количества элементов в списке считанных товаров по названию


Рис. 16.120.  Определение количества элементов в списке считанных товаров по названию

Конфигурация исключающего шлюза


Рис. 16.121.  Конфигурация исключающего шлюза

Получение товара из списка товаров


Рис. 16.122.  Получение товара из списка товаров

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

Конфигурация обработчика "Выполнить формулу" для обновления количества товара на складе


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

Параметры задачи бота "Обновить товар"


Рис. 16.124.  Параметры задачи бота "Обновить товар"

Конфигурация задачи бота "Обновить товар"


Рис. 16.125.  Конфигурация задачи бота "Обновить товар"

Условием выхода из цикла является обход всех заказанных товаров

Проверка условия "По всем ли заказанным товарам обновлены остатки на складе"


Рис. 16.126.  Проверка условия "По всем ли заказанным товарам обновлены остатки на складе"

Требования к представлению результатов занятия

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

В отчете должны содержаться следующие выходные данные:

  1. Скриншоты основных действий, совершенных на занятии, с пояснениями
  2. Скриншоты, содержащие маршруты точек управления для экземпляров бизнес-процессов, доведенных до завершения.
  3. Описание возникших при выполнении задания проблем и найденных путей их решения (не обязательно, только если возникли проблемы при выполнении задания).

Контрольные вопросы

  1. Какие действия с внешним хранилищем можно выполнять с помощью обработчика "Внешнее хранилище данных" ?
  2. Почему работа с внешним хранилищем данных построена с помощью задач бота, а не задач сценариев? Объясните назначение опции бота - "Последовательное выполнение".

Дополнения


Литература