Вы находитесь на странице: 1из 110

Министерство образования и науки Российской Федерации

Государственное Образовательное Учреждение


Высшего Профессионального Образования

РЯЗАНСКИЙ ГОСУДАРСТВЕННЫЙ РАДИОТЕХНИЧЕСКИЙ


УНИВЕРСИТЕТ

Кафедра Автоматизированных Систем Управления

УТВЕРЖДЕН
КП-02069154-836-14-12

Реализация сценария бизнес-процесса

Пояснительная записка
КП-02069154-836-14-12

Листов 108

2012
КП-02069154-836-13-12

Содержание
Введение……………………………………………………………………………………...…4
1 Описание предметной области………………………………………………………………6
1.1 Обоснование выбора предметной области…………………………………………….6
1.2 Используемые понятия…………………………………………………………………6
1.3 Описание участников бизнес-процесса………………………………………………..8
1.4 Общее описание бизнес-процесса……………………………………………………...9
2 Описание выбранной системы управления бизнес-процессами……………………….11
3 Создание пользователей и групп пользователей………………………………………..13
3.1 Создание пользователей…………………………………………………………….13
3.2 Создание групп пользователей……………………………………………………..15
3.3 Раздача прав пользователям…………………………………………………………17
4 Разработка модели процесса размещения заказа путем запроса……….………………18
4.1 Создание нового проекта……………………………………………………………..18
4.2 Построение графа процесса………………………………………………………….19
4.3 Создание ролей……………………………………………………………………….26
4.4 Создание переменных процесса………………………………………………………32
4.5 Пошаговая настройка процесса «Проведение запроса котировок». Создание форм.
Настройка подпроцессов и мультидействий. Настройка узлов ожидания, ветвлений и
обработчиков………………………………………………………………………………36
4.5.1 Создание формы для узла-действия «Уведомить о проведении запроса
котировок»………………………………………………………………………....36
4.5.2 Настройка обработчиков процесса «Проведение запроса котировок»…..44
4.5.3 Настройка мультидействия «Получить уведомление о проведении запроса
котировок»…………………………………………………………………………47
4.5.4 Настройка подпроцесса «Организовать заседания»………………………54
4.5.5 Настройка узла-ожидания…………………………………………………….67
4.5.6 Создание формы и описание узла-действия «Разобраться с нерешенными
вопросами»…………………………………………………………………………..69
4.5.7 Создание формы для узла-действия «Ответить на вопросы котировочной
комиссии»……………………………………………………………………………70
4.5.8 Настройка мультидействия «Получить ответ от ЦЗО (мульти)»…………..70
4.5.9 Создание формы для задания «Ввести данные для генерации
извещения»…………………………………………………………………………71

2
КП-02069154-836-13-12

4.5.10 Форма задания «Проверить, редактировать составленное извещение»….73


4.5.11 Форма задания «Выставить на сайте извещение и проект контракта»….74
4.5.12 Формы «Принять решение о дальнейших действиях» и «Составить и
направить протокол рассмотрения и оценки заявок»…………………………….75
4.5.13 Настройка мультидействия «Получить протокол рассмотрения и оценки
котировочных заявок»……………………………………………………………..77
4.5.14 Использование в процессах объектов «Отправить сообщение» и
«Получить сообщение»……………………………………………………………..79
4.6 Применение ботов. Настройка MS Word-бота………………………………………82
4.7 Настройка проверки переменных формы…………………………………………….88
5 Загрузка процессов на сервер……………………………………………………………..93
6 Тестирование процессов…………………………………………………………………..97
Заключение…………………………………………………………………………………106
Список используемых источников………………………………………………………..107
Лист регистрации изменений………………………………………………………………108

3
КП-02069154-836-13-12

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

4
КП-02069154-836-13-12

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


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

5
КП-02069154-836-13-12

1 Описание предметной области


1.1 Обоснование выбора предметной области
В настоящее время все государственные и муниципальные образования нашей страны по
законодательству обязаны размещать свои заказы путем проведения торгов в форме конкурса,
аукциона, в том числе аукциона в электронной форме или без проведения торгов (запрос
котировок). Из-за большого объема информации, документов эти процессы нуждаются в
автоматизации.
Цель любого закупочного конкурса - экономия средств за счёт создания конкуренции
между поставщиками и повышения прозрачности рынков. Автоматизация этого процесса
помогает увеличить скорость принятия решений закупщиком и снизить стоимость управления
закупками. Автоматизация становится выгодной, когда стоимость ее внедрения ниже, чем
достигаемая экономия от масштаба. Поэтому в первую очередь интерес к автоматизации
закупок проявляют крупные компании с широкой номенклатурой закупаемых товаров и услуг.
Для удобства работы специалистов по госзакупкам нужна автоматизация рутинных
операций, упрощения процессов подготовки и обработки документов; уменьшение числа
ошибок за счет того, что система настраивается на стандартные роли участников госзакупок и
может направлять их действия по типовым рекомендуемым сценариям, подсказывая следующее
действие, сигнализируя критические ситуации [2].

1.2 Используемые понятия


Размещение заказа путем запроса котировок. Под запросом котировок понимается
способ размещения заказа, при котором информация о потребностях в товарах, работах,
услугах для нужд заказчиков сообщается неограниченному кругу лиц путем размещения на
официальном сайте извещения о проведении запроса котировок, при этом победителем
признается участник размещения заказа, предложивший наиболее низкую цену контракта.
www.zakupki.gov.ru - адрес официального сайта Российской Федерации в сети Интернет
для публикации информации о размещении заказов на поставки товаров, выполнение работ,
оказание услуг для федеральных государственных нужд.
Заказчиками по государственным (муниципальным) контрактам и гражданско-правовым
договорам выступают:
- государственные органы (органы местного самоуправления);
- органы управления государственными внебюджетными фондами;
- казенные и бюджетные учреждения;
- государственные корпорации;

6
КП-02069154-836-13-12

- государственные компании;
- государственные унитарные предприятия;
- государственные автономные учреждения;
- иные получатели бюджетных средств.
Участниками размещения заказов могут быть любые юридические или физические лица.
Для осуществления функций по размещению заказов вместо заказчика, исключая
подписание контрактов, может быть создан уполномоченный орган исполнительной власти
(местного самоуправления).
Проект контракта - это предварительный текст соглашения (т.е. ещё без подписей
сторон). Если в соглашении присутствует подпись и печать хотя бы одной стороны, то это уже
не проект.
Извещение о проведении запроса котировок должно содержать:
- наименование заказчика, его почтовый адрес, адрес электронной почты заказчика (при
его наличии);
- Техническое задание. Наименования, характеристики и количество поставляемых
товаров, наименования, характеристики и объем выполняемых работ, оказываемых услуг. При
этом указываются требования к качеству, техническим характеристикам, требования к их
безопасности, требования к функциональным характеристикам и т.п.;
- место доставки поставляемых товаров, место выполнения работ, место оказания услуг;
- сроки поставок товаров, выполнения работ, оказания услуг;
- сведения о включенных (не включенных) в цену товаров, работ, услуг расходах, в том
числе расходах на перевозку, страхование, уплату таможенных пошлин, налогов, сборов и
других обязательных платежей;
- Обоснование начальной (максимальной) цены контракта. Такое обоснование должно
содержать полученные заказчиком, уполномоченным органом информацию или расчеты и
использованные заказчиком источники информации о ценах товаров, работ, услуг.;
- место подачи котировочных заявок, срок их подачи, в том числе дата и время
окончания срока подачи котировочных заявок.
- срок и условия оплаты поставок товаров, выполнения работ, оказания услуг;
- срок подписания победителем в проведении запроса котировок контракта со дня
подписания протокола рассмотрения и оценки котировочных заявок.
Центральный закупочный орган (ЦЗО) — Коллегиальный (не менее 3 человек)
постоянно действующий орган, создаваемый заказчиком для контроля и координации
закупочной деятельности.

7
КП-02069154-836-13-12

Котировочная комиссия (КК) является коллегиальным органом заказчика


(уполномоченного органа), основанным на временной или постоянной основе.
Создание комиссии обязательно при любых способах размещения заказа. Число членов
комиссии не может быть менее пяти человек, при этом хотя бы одно лицо в составе комиссии
должно пройти профессиональную переподготовку или повышение квалификации в сфере
размещения заказов.
Котировочная комиссия создается в целях рассмотрения и оценки котировочных заявок
и определения победителя в проведении запроса котировок.
Комиссия правомочна осуществлять свои функции, если на заседании комиссии
присутствует не менее 50% общего числа ее членов [3].

1.3 Описание участников бизнес-процесса


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

8
КП-02069154-836-13-12

 подведение итогов и определение победителя в проведении запроса


котировок;
 ведение и подписание протокола рассмотрения и оценки котировочных
заявок;
 прием и регистрации котировочных заявок;
 подписание протокола рассмотрения и оценки котировочных заявок.
Котировочная комиссия вправе обратиться к заказчику за разъяснениями по предмету
размещаемого заказа.
КК осуществляет свою деятельность путем проведения заседаний.
В состав КК будут входить 5 исполнителей:
 Председатель. Он осуществляет общее руководство работой котировочной
комиссии, утверждает график проведения заседаний котировочной комиссии, объявляет
заседание правомочным или выносит решение о его переносе из-за отсутствия кворума,
открывает и ведет заседания котировочной комиссии, определяет порядок рассмотрения
обсуждаемых вопросов, объявляет победителя запроса котировок, подписывает
протокол рассмотрения и оценки котировочных заявок;
 Заместитель председателя. Выполняет функции председателя в его
отсутствие, или функции секретаря в отсутствие секретаря;
 Секретарь. Выполняет различные функции с документами: составляет
извещение, размещает его на официальном сайте, составляет протокол рассмотрения и
оценки котировочных заявок, вместе с председателем подписывает его;
 И ещё два члена котировочной комиссии, которые не имеют конкретного
назначения. Они должны также присутствовать на заседаниях, принимать решения по
выдвинутым вопросам, выбирать участника-победителя [4].

1.4 Общее описание бизнес-процесса


В бизнес-процессе секретарь ЦЗО будет уведомлять членов КК о проведении запроса
котировок. При этом он будет передавать подготовленные документы (проект контракта,
техническое задание, обоснование начальной цены) и указывать сроки выполнения заказа.
Председатель ЦЗО будет фигурировать только в самом конце процесса, когда ему от секретаря
КК будет приходить протокол рассмотрения и оценки заявок, как отчет о проделанной работе
комиссии.
Получив информацию о новом запросе котировок, члены котировочной комиссии
изучают поступившую информацию, выдвигают свои вопросы, если они возникли.
9
КП-02069154-836-13-12

Председатель комиссии рассматривает их, если нужно, выдвигает свои вопросы, принимает
решение о необходимости проведения заседаний, назначает дату и время заседаний.
Информация о заседаниях направляется всем членам комиссии.
Если предварительное заседание состоялось, секретарем указывается, есть ли
нерешенные вопросы по текущей закупке, на которые должен ответить заказчик (ЦЗО). Если
есть, вопросы направляются секретарю ЦЗО, он на них отвечает. Ответ передается всем членам
комиссии.
Теперь секретарь котировочной комиссии составляет извещение о проведении запроса
котировок. Проверенное председателем извещение выставляется на официальном сайте
госзакупок секретарем, после чего начинается этап подачи котировочных заявок поставщиками.
При завершении этого этапа принимается решение либо о продлении срока подачи заявок (если
подана всего одна заявка), либо об окончании. Если принято решение о продлении, срок
увеличивается ещё на 4 рабочих дня. В любом случае по окончании проведения запроса
котировок котировочной комиссией составляется протокол рассмотрения и оценки
котировочных заявок, который в качестве отчета о работе котировочной комиссии направляется
членам ЦЗО.

10
КП-02069154-836-13-12

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


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

11
КП-02069154-836-13-12

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


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

3 Создание пользователей и групп пользователей

12
КП-02069154-836-13-12

3.1 Создание пользователей


Перед тем, как начать моделирование бизнес-процесса, определим, кто будет
пользоваться экземпляром этого процесса. Создавать пользователей в системе имеет право
администратор. Для запуска симулятора необходимо сначала запустить RunaWFE-сервер
(ярлык «Start Simulation» на рабочем столе), подождать, пока он загрузится, и затем запустить
симуляцию веб-интерфейса системы (ярлык «Simulation web interface» на рабочем столе).
Появится окно браузера, показанное на рисунке 1.

Рисунок 1 – Форма авторизации


Необходимо зайти под именем пользователя «Administrator» с паролем «wf». Эта роль
была создана специально разработчиками системы RunaWFE.
После входа появится интерфейс системы. Нужно нажать вкладку «Исполнители» в
меню слева (рисунок 2).

13
КП-02069154-836-13-12

Рисунок 2 – Список исполнителей


Теперь создадим необходимых пользователей. Это будут пять членов котировочной
комиссии, а также два исполнителя из ЦЗО (таблица 1).
Таблица 1 – Исполнители
Логин Пароль Описание
Иванов А.А. 11 Председатель котировочной комиссии
Петров А.А. 22 Заместитель председателя котировочной
комиссии
Орлова А.А. 33 Секретарь котировочной комиссии
Сизова А.А. 44 Члены котировочной комиссии (без
Сидоров А.А. 55 особого назначения)
Агапкин В.В. 111 Руководитель центрального закупочного
органа (руководитель компании)
Морозова С.С. 222 Секретарь центрального закупочного
органа (начальник договорного отдела)

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


как Word-Бот. Он будет работать как приложение вместо сотрудника – генерировать Word-
документ. Для него мы установим пароль «wf» на английской раскладке.
Кликнем «Создать пользователя». После ввода имени и описания пользователя окно
свойств исполнителя выглядит следующим образом (рисунок 3):

14
КП-02069154-836-13-12

Рисунок 3 – Форма создания исполнителя


Нажимаем «Применить». В списке исполнителей появился новый пользователь. Чтобы
установить ему пароль щелкаем на его имени в списке. Открывается окно всех свойств
исполнителя (рисунок 4).

Рисунок 4 – Окно редактирования учетной записи


В разделе «Пароль» вводим пароль «11» и нажимаем кнопку «Применить», относящуюся
к этому разделу.
Создание учетной записи Иванов А.А. (председатель котировочной комиссии)
закончено. По такому же алгоритму создаем остальные учетные записи, показанные в таблице
1.

3.2 Создание групп пользователей


Теперь создадим группы. Это будет группа «Котировочная комиссия» и группа «ЦЗО».
В том же окне, где находится список исполнителей, щелкаем на «Создать группу».
Появилось окно создания группы (рисунок 5).

15
КП-02069154-836-13-12

Рисунок 5 – Окно создания группы


Нажимаем «Применить». В списке исполнителей появилась новая группа. Щелкаем на её
имени. Открывается окно всех свойств группы. Нам необходим раздел «Члены группы». В нем
мы щелкаем на «Добавить». Открывается следующее окно (рисунок 6):

Рисунок 6 – Окно добавления пользователей в группу


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

Рисунок 7 – Окно свойств группы


Таким же образом создадим ещё одну группу ЦЗО, в которую будут входить
исполнители Агапкин и Морозова.

16
КП-02069154-836-13-12

3.3 Раздача прав пользователям


Для раздачи прав созданным пользователям необходимо выбрать в списке меню
закладку «Система». Появится следующее окно (рисунок 8):

Рисунок 8 – Окно «Обладатели полномочий»


Щелкаем на «Добавить». Откроется список исполнителей. Из них отмечаем галочкой
«Котировочная комиссия», «ЦЗО» и «Word-бот», нажимаем «Добавить». Так как созданные
исполнители находятся в выбранных группах (кроме Word-бот), то не нужно устанавливать
полномочия на каждого. Полномочия установятся всем членам группы.
Установим полномочия, показанные на рисунке 9.

Рисунок 9 – Установленные полномочия исполнителей


Были установлены только главные полномочия пользователя: читать, входить, загружать
определение процесса.
Администраторские функции, такие как «Создавать исполнителя», на данный момент
созданным пользователям не нужны.

17
КП-02069154-836-13-12

4 Разработка модели процесса размещения заказа путем запроса


котировок
4.1 Создание нового проекта
Для разработки модели откроем графический редактор системы (ярлык Process Designer
на рабочем столе). Окно редактора показано на рисунке 10.

Рисунок 10 – Окно графического редактора RunaGPD


Чтобы создать новый проект, необходимо щелкнуть правой кнопкой мыши на
проводнике и в контекстном меню выбрать «Новый проект» (либо по пиктограмме «Создание
нового проекта» на верхней панели). Откроется окно, в котором необходимо ввести имя
создаваемого проекта (рисунок 11). Дадим имя проекту – Электронные торги.

Рисунок 11 – Окно создания нового проекта

18
КП-02069154-836-13-12

В проекте может существовать множество определений процессов. Для создания


процесса также щелкнем правой кнопкой мыши в проводнике и в контекстном меню выберем
«Новый процесс» (либо пиктограмма «Создание нового процесса» на верхней панели). В
появившемся окне (рисунок 12) необходимо выбрать проект, в котором создается процесс,
ввести имя процесса, а также выбрать нотацию, по которой будет строиться модель.

Рисунок 12 – Окно создания нового процесса


Для построения модели будет использоваться BPMN-нотация. Создадим процесс с
именем «Проведение запроса котировок». В созданном проекте появится новый процесс
(рисунок 13).

Рисунок 13 – Окно проводника графического редактора

4.2 Построение графа процесса


Щелкнем двойным кликом на «Проведение запроса котировок» в проводнике. Появится
окно разработки модели (рисунок 14).

19
КП-02069154-836-13-12

Рисунок 14 – Окно разработки модели


С левой стороны можно увидеть палитру инструментов для построения модели. Внизу
окна можно увидеть вкладки. Сейчас мы находимся на вкладке «Граф». Именно на этой вкладке
будем рисовать сам алгоритм процесса. Для начала приведем описание компонентов палитры.

Переход . Соответствует ребру направленного графа. По этому ребру может


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

Начало . Соответствует точке начала исполнения бизнес-процесса. Узел «Начало»


не должен иметь входящих Переходов и иметь только один исходящий Переход. В процессе
должен существовать единственный узел «Начало».

Узел-Действие - узел на схеме бизнес-процесса, ассоциированный с некоторым


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

Узел-Ожидание . Этому элементу ставится в соответствие время задержки точки


управления. Узлу-Ожиданию может быть поставлено в соответствие как время относительно
момента прихода точки управления в узел, так и время, относительно значения какой-либо
20
КП-02069154-836-13-12

переменной бизнес-процесса. В случае времени относительно значения переменной имя


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

Подпроцесс . Если точка управления попадает в подпроцесс, то связанный с


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

Мульти-действие . В момент прихода управления в Мульти-действие создается


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

Ветвление . Должен иметь несколько исходящих Переходов. «Отправляет»


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

Отправить сообщение - дополнительная конструкция. Содержит один исходящий


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

21
КП-02069154-836-13-12

Получить сообщение - дополнительная конструкция. Содержит один исходящий


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

Разделение .Имеет один входящий и несколько исходящих Переходов. Для


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

Слияние .Имеет несколько входящих и один исходящий Переход. "Ждет", пока в


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

Обработчик - дополнительная конструкция. Эти элементы могут быть присоединены


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

Окончание .Соответствует точке окончания исполнения бизнес-процесса. Узел


«Окончание» должен иметь один или более входящих Переходов и ни одного исходящего
Перехода. При попадании управления в точку завершения процесса уничтожаются все точки
управления этого процесса, а также останавливаются все его синхронные подпроцессы.
Обозначим особенности построения графа процесса:
 Для того, чтобы выбрать элемент палитры, нужно щелкнуть по нему, а
затем по тому месту рабочего окна, где его требуется разместить;
 Чтобы соединить два объекта стрелкой-переходом, необходимо щелкнуть
по начальному и затем по конечному объекту;
 Для того, чтобы ввести наименование Узла-Действия, необходимо
щелкнуть по нему двойным кликом;
 Наименование для стрелки-перехода вводится в её свойствах (при
выделенной стрелке). Окно свойств может быть скрыто, тогда необходимо в главном
меню выбрать «Окно»-«Свойства», и оно станет видимым (рисунок 15).

22
КП-02069154-836-13-12

Рисунок 15 – Окно свойств стрелки-перехода


tr1 – наименование стрелки-перехода по умолчанию. Также и с остальными
объектами, которым необходимо присвоить название;
 Объект-обработчик присоединяется либо к узлу-действию, либо к стрелке-
переходу. Для того, чтобы его добавить, нужно выделить необходимое действие или
стрелку, щелкнуть по нему правой кнопкой мыши и выбрать «Обработчики»-«Создать».
Также объект-обработчик можно выбрать на палитре, и затем нажать на объекте модели,
к которому присоединяется обработчик;
 Чтобы «поломать» стрелку, необходимо выделить её и, потянув за маркер,
придать ей нужную форму.
Теперь приступим к построению графа модели (рисунок 16):
1. Первый узел-действие будет называться «Уведомить о проведении запроса
котировок». Получив это задание, секретарь КК должен увидеть форму, в которой можно будет
ввести наименование запроса котировок, сроки выполнения заказа, загрузить все необходимые
документы, а также привести свои комментарии к планируемому заказу.
2. Далее будет идти мультидействие «Получить уведомление о проведении запроса
котировок». Подпроцесс, который будет находиться в мультидействии, должен запускаться для
каждого члена КК, так как все они должны ознакомиться с информацией по заказу, введенной в
предыдущую форму. Также нужно, чтобы была возможность ввода членами КК своих вопросов
по поводу полученной информации.
3. В подпроцессе «Организовать заседания» будут соединены все задания по
организации заседаний. Там решается, нужно ли проводить предварительное заседание (перед
началом запроса котировок) и назначается время начала и окончания подачи заявок на
предоставление товаров, работ или услуг.
4. После этого идет ветвление. На основании того, что было решено в подпроцессе
«Организовать заседания» - нужно ли проводить предварительное заседание по вопросам
текущего заказа или не нужно, выбирается дальнейший путь по процессу.
5. Если было решено провести предварительное заседание, то узел-ожидание,
находящийся на этой ветке отсчитывает дату предварительного заседания. И когда она

23
КП-02069154-836-13-12

наступает, у комиссии должна быть возможность задать какие-то нерешенные на заседании


вопросы закупочному органу (если они есть).
6. Затем секретарь ЦЗО должен ответить (узел-действие «Ответить на вопросы
котировочной комиссии»), и все члены КК должны получить этот ответ (мультидействие
«Получить ответ от ЦЗО»).
7. Когда все организационные вопросы решены, наступает время оформления
оставшихся документов для выставления заказа. Это должно быть извещение о проведении
запроса котировок. Подготовкой документов занимается всегда секретарь комиссии, и в
следующем узле-действии «Ввести данные для генерации извещения» ему нужно будет вводить
такие данные как номер извещения, цену заказа, тип товаров, работ или услуг и т.п.
8. Узел-действие «Сгенерировать извещение» будет выполнять бот. На основании
данных, введенных на форме секретарем КК, автоматически сгенерируется извещение.
9. Сгенерированное извещение должно быть проверено, поэтому следующим идет узел-
действие «Проверить, редактировать составленное извещение». На форме этого действия
должна быть возможность скачать файл сгенерированного извещения и загрузить новый его
файл (если в нем были найдены ошибки).
10. Извещение должно быть выставлено на сайте чуть раньше установленного времени
начала подачи котировочных заявок, поэтому следующий узел-ожидание выжидает это время.
Когда установленное время наступает, секретарю КК приходит задание «Выставить на сайте
извещение и проект контракта». Здесь необходимо, чтобы была возможность скачать
проверенное извещение.
11. Следующий узел-ожидание отсчитывает время окончания подачи заявок. После этого
председатель КК должен решить продлить ли срок подачи заявок или перейти к оформлению
отчетного протокола о работе котировочной комиссии. В зависимости от того, что он выберет,
управление пойдет по одной ветке, и секретарю сразу придет задание составить протокол и
направить его ЦЗО, либо это задание ему придет через 4 рабочих дня, когда срок продления
подачи заявок закончится.
12. В узле-действии «Составить и направить протокол рассмотрения и оценки заявок»
должна быть форма, в которой есть возможность загрузки составленного протокола и ввода
комментария по проделанной работе комиссии.
13. В последнем мультидействии «Получить протокол рассмотрения и оценки
котировочных заявок» председатель и секретарь ЦЗО должны получить отправленный
секретарем КК протокол. На этом бизнес-процесс «Проведение запроса котировок»
заканчивается.

24
КП-02069154-836-13-12

25
4.3 Создание ролей
Рисунок 16 – Граф главного процесса «Проведение запроса котировок»
КП-02069154-836-13-12

26
КП-02069154-836-13-12

Перейдем к созданию ролей, так как каждому действию нужен исполнитель. В таблице 2
показано соответствие ролей, которые будут создаваться в редакторе бизнес-процессов, и
ролей, созданных администратором в разделе 3.1.
Таблица 2 – Соответствие реальных ролей и ролей в графе бизнес-процесса
Наименование роли в Имя реального Расшифровка
редакторе бизнес- исполнителя
процесса
Секретарь ЦЗО Морозова С.С. Секретарь центрального
закупочного органа
Секретарь КК Орлова А.А. Секретарь котировочной комиссии
Председатель КК Иванов А.А. Председатель котировочной
комиссии
Word_бот Word-бот Роль, которая связана с
приложением, выполняющим
некоторые функции человека
Остальные исполнители: Петров, Сидоров, Сизова и Агапкин, будут фигурировать в
бизнес-процессе только в общих задания, например, когда члены КК получают задание
«Получить уведомление о проведении запроса котировок».
Итак, для создания ролей откроем вкладку «Роли» (рисунок 17).

Рисунок 17 – Вид вкладки «Роли»


Нажимаем «Создать». Появилось окно создания новой роли (рисунок 18).

27
КП-02069154-836-13-12

Рисунок 18 – Окно создания новой роли


Создадим так каждую роль, представленную в таблице 2. Как видно из рисунка 17 роли
могут иметь не только название, но и инициализатор. В инициализаторе созданная роль
связывается с конкретным исполнителем.
Выделим роль «Секретарь КК» и нажмем «Изменить». На экране появится окно
редактирования инициализатора роли (рисунок 19).

Рисунок 19 – Окно редактирования инициализатора роли


Настроить роль можно, например, на вкладке «Группы и пользователи WF». Щелкнем на
«Настройки соединения». Настройки соединения должны выглядеть, как показано на рисунке
20.

28
КП-02069154-836-13-12

Рисунок 20 – Окно параметров соединения


При успешной проверке соединения (кнопка «Проверить соединение») должно
появиться сообщение «Соединение проверено». Далее нажимаем «ОК» для сохранения
настроек.
Теперь необходимо обязательно выполнить синхронизацию, чтобы загрузился список
исполнителей, имеющихся на сервере. Нажимаем «Синхронизация» (команда расположена
рядом с командой «Настройка соединения»).
После выполнения синхронизации щелкаем на раскрывающемся поле «пользователь», а
затем команду «Выбрать» (рисунок 21). В результате мы увидим список всех тех, кого создавал
администратор.

29
КП-02069154-836-13-12

Рисунок 21 – Окно выбора пользователя


Для роли «Секретарь КК» выберем исполнителя Орлова А.А. Нажмем «ОК» в окне
выбора пользователя, а затем в окне редактирования инициализатора роли.
Роль «Секретарь КК» настроена. Таким же образом настроим все оставшиеся роли,
перечисленные в таблице 2, с соответствующими им исполнителями. На рисунке 22 показан
конечный список ролей процесса «Проведение запроса котировок».

Рисунок 22 – Список используемых ролей


Нужно отметить, что настройка инициализатора роли «Секретарь ЦЗО» необязательна,
так как эта роль будет относиться к началу процесса (этот исполнитель будет начинать
процесс). В этом случае инициализация происходит автоматически.
Теперь перейдем обратно на вкладку «Граф». Нам необходимо сопоставить роли
действиям.
В соответствии с описанием, приведенным в разделах 1.3 и 1.4, раздадим исполнителям
задания.
Для того, чтобы добавить узлу роль, необходимо щелкнуть на нем правой кнопкой
мыши, в контекстном меню выбрать «Роли», и затем выбрать нужную роль (рисунок 23).

30
КП-02069154-836-13-12

Рисунок 23 – Выбор роли для узла


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

31
КП-02069154-836-13-12

32
КП-02069154-836-13-12

Рисунок 24 – Граф главного процесса «Проведение запроса котировок» с ролями

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


В таблице 3 приведем все переменные, которые будут использоваться в процессе
«Проведение запроса котировок».
33
КП-02069154-836-13-12

Таблица 3 – Переменные процесса «Проведение запроса котировок»


Название Тип Описание
НаимЗК Строковый Хранит наименование запроса котировок
на протяжении всего процесса.
Дата1 Дата Хранит дату, от которой начинается срок
выполнения заказа.
Дата2 Дата Хранит дату, которой заканчивается срок
выполнения заказа.
Проект_контракт_файл Файл Хранит файл проекта контракта, который
планируется заключить с будущим
поставщиком.
ТЗ_файл Файл Хранит файл технического задания по
заказу.
Обоснов_файл Файл Хранит файл обоснования начальной
цены контракта.
Коммент Строковый Хранит текст комментария (заметки,
уточнения) секретаря ЦЗО о проведении
текущего запроса котировок.
ПредметКонтракта Строковый Хранит название предмета контракта.
Обычно совпадает с наименованием
запроса котировок.
От Дата-время Хранит дату и время момента передачи
секретарем ЦЗО уведомления о
проведении нового запроса котировок
членам котировочной комиссии.
Группа1 Строковый Имеет значение по умолчанию
«Котировочная комиссия». Используется
для настройки «по группе» одного из
мультидействий.
Группа2 Строковый Имеет значение по умолчанию «ЦЗО».
Используется для настройки «по группе»
одного из мультидействий.
ВопросыМассив Список Хранит список вопросов, выдвинутых на
(массив) обсуждение членами комиссии.

34
КП-02069154-836-13-12

ФИОМассив Список Хранит соответствующие каждому


(массив) вопросу имена членов комиссии.
ДолжностьМассив Список Хранит, соответствующие каждому члену
(массив) комиссии, должности.
ДатаНачалаПодачиЗаявок Дата-время Хранит дату и время начала подачи
котировочных заявок. Устанавливается
председателем КК.
ДатаОкончанияПодачиЗаявок Дата-время Хранит дату и время окончания подачи
котировочных заявок. Устанавливается
председателем КК.
ДатаПредварительноеЗаседание Дата-время Хранит дату и время проведения
предварительного заседания.
ПредварительноеЗаседание Логический Имеет значение true или false.
Показывает, будет ли проводиться
предварительное заседание. True – будет
проводиться, false – не будет
проводиться.
НерешенныеВопросы Строковый Хранит текст вопросов, которые решено
задать заказчику по поводу текущего
запроса котировок.
ОтветНаВопросКК Строковый Хранит текст ответа заказчика на
НерешенныеВопросы.
НомерИзвещения Строковый Переменная используется для генерации
извещения о проведении запроса
котировок ботом. Хранит номер
извещения.
ЦенаРуб Целое число Переменная используется для генерации
извещения о проведении запроса
котировок ботом. Хранит максимальную
цену заказа (целая часть в рублях).
ЦенаКоп Строковый Переменная используется для генерации
извещения о проведении запроса
котировок ботом. Хранит дробную часть
максимальной цены заказа (в копейках).

35
КП-02069154-836-13-12

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


извещения о проведении запроса
котировок ботом. Хранит номер
классификации товаров, работ и услуг.
НаименованиеКлассификации Строковый Переменная используется для генерации
извещения о проведении запроса
котировок ботом. Хранит наименование
классификации товаров, работ и услуг.
ПодписаниеКонтракта Целое число Переменная используется для генерации
извещения о проведении запроса
котировок ботом. Хранит количество
дней, по прошествии которых
победитель-поставщик обязан подписать
контракт на поставку товаров,
выполнение услуг, работ.
ДатаОпубликования Дата Переменная используется для генерации
извещения о проведении запроса
котировок ботом. Хранит дату
опубликования извещения о проведении
запроса котировок на официальном
сайте.
Извещение Файл Хранит файл извещения о проведении
запроса котировок.
ПоследнееДействие Строковый Указывает на последнее действие
котировочной комиссии – либо срок
подачи заявок продлевается, либо
составляется протокол рассмотрения и
оценки котировочных заявок. Это
решение принимается председателем КК.
Протокол Файл Хранит файл протокола рассмотрения и
оценки котировочных заявок.
Коммент2 Строковый Содержит текст комментария секретаря
КК по проделанной работе котировочной
комиссии.

36
КП-02069154-836-13-12

Создадим описанные переменные в графическом редакторе. Сначала перейдем на


вкладку «Переменные» (рисунок 25).

Рисунок 25 – Окно списка переменных процесса


Нажимаем «Создать». Появилось окно создания переменной (рисунок 24).

Рисунок 25 – Окно создания переменной


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

37
КП-02069154-836-13-12

Рисунок 26 – Список переменных процесса «Проведение запроса котировок»

4.5 Пошаговая настройка процесса «Проведение запроса котировок». Создание


форм. Настройка подпроцессов и мультидействий. Настройка узлов ожидания, ветвлений
и обработчиков
Настроим все основные механизмы бизнес-процесса, переходя от узла к узлу по порядку.
4.5.1 Создание формы для узла-действия «Уведомить о проведении запроса котировок»
Форма создается для визуализации требуемой информации (хранящейся в переменных)
и действий, которые могут быть выполнены исполнителем.
Создадим форму для узла-действия, показанного на рисунке 27.

Рисунок 27 – Узел «Уведомить о проведении запроса котировок»


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

38
КП-02069154-836-13-12

формы». В появившемся окне (рисунок 28) необходимо нажать «Да», а в следующем


появившемся окне (рисунок 29) «Готово».

Рисунок 28 – Окно-сообщение

Рисунок 29 – Окно валидации формы (проверки переменных)


Настройка проверки переменных будет рассматриваться в одном из следующих
разделов.
Теперь создадим саму форму. Для этого также нажмем на узле правой кнопкой мыши и
выберем пункт «Форма»-«Создать форму». В появившемся окне (рисунок 30) оставим все как
есть (тип формы по умолчанию) и нажмем «ОК».

39
КП-02069154-836-13-12

Рисунок 30 – Окно выбора типа формы


Открылось окно html-редактора (рисунок 31).

Рисунок 31 – HTML-редактор
Сейчас мы находимся на вкладке «Дизайн». Здесь на верхней панели редактора можно
увидеть различные объекты для придания нужного вида форме. Назначение объекта можно
узнать, если навести на него стрелкой мыши.
После работы с объектами на данной вкладке форма «Уведомить о проведении запроса
котировок» будет выглядеть так, как показано на рисунке 32.

Рисунок 32 – Начальный вид формы «Уведомить о проведении запроса котировок»


40
КП-02069154-836-13-12

Опишем использующиеся объекты:


 Тексты-пояснения вводятся в html-редакторе с клавиатуры как в любом
текстовом редакторе. Для придания особого вида тексту можно воспользоваться
следующими инструментами на панели:

- Соответственно жирный, курсив, подчеркнутый, зачёркнутый


тексты;

- Нижний индекс, верхний индекс;

- Нумерованный и маркированный списки;

- Отступы, цитата, выравнивание текста;

-
Выбор типа, шрифта и размера текста, цвет текста;
 Для ввода наименования запроса котировок и комментария секретарем

ЦЗО был выбран объект «текстовая область» . На рисунке 31 они обведены. Для
определения места вставки объекта необходимо установить курсор в нужном месте
формы. Затем щелкнуть по самому объекту на панели. Для текстовой области откроется
окно настройки, показанное на рисунке 32.

Рисунок 31 – Отмеченные текстовые области

Рисунок 32 – Окно настройки текстовой области

41
КП-02069154-836-13-12

В выпадающем списке «Имя» необходимо выбрать соответствующую


переменную. В нашем случае для первой текстовой области это будет переменная
НаимЗК, а для второй - Коммент. В свойствах «Колонки» и «Строки» можно
установить размер текстовой области;
 Для настройки ввода даты (сроки выполнения заказа, переменные Дата1 и
Дата2) проделаем следующие шаги:
- на панели выберем левый из показанных значков («Freemarker тег»).
Откроется окно настройки тега (рисунок 33).

Рисунок 33 – Окно настройки тега


В выпадающем списке необходимо выбрать «Ввод даты-времени»;
- появились выпадающие списки для выбора соответствующей переменной и
выбора формата её ввода (рисунок 34).

Рисунок 34 – Полная настройка тега ввода даты


Также настраиваем еще один тег для ввода второй даты (Дата2);
 Чтобы на страницу можно было загружать какие-то файлы, используют

объект «Элемент загрузки файла» .


Секретарю ЦЗО необходимо будет загрузить три файла для отправки
котировочной комиссии.
На рисунке 35 показано окно свойств элемента загрузки файла.

42
КП-02069154-836-13-12

Рисунок 35 – Окно свойств элемента загрузки файла


В нем необходимо выбрать только связываемую с элементом загрузки
переменную. Для формы «Уведомить о проведении запроса котировок» необходимо
три таких элемента, которые будут связаны с переменными Проект_контракт_файл,
ТЗ_файл и Обоснов_файл.
На рисунке 32 видно, что созданная форма выглядит не очень аккуратно. Для более
широких возможностей настройки формы можно перейти на вкладку «Код» html-редактора.
Здесь пишется непосредственно html-код, а также производится настройка стилей с помощью
CSS (каскадная таблица стилей). Код, который сгенерировался в ходе построения формы на
вкладке «Дизайн», можно видеть сейчас (рисунок 36).

Рисунок 36 – Вкладка «Код»


Модифицируем код и воcпользуемся стилями CSS.
Новое описание формы будет выглядеть следующим образом:
<P><STYLE type="text/css">
.form1 {
margin: 0px;
padding: 10px;
font: large Arial,Helvetica,sans-serif;
}
.form1 legend {
margin-bottom: 1em;
margin-left: 10px;

43
КП-02069154-836-13-12

text-align: left;
font-size: large;
color: #666;
}
.form1 fieldset {
margin: 10px 0;
padding: 10px;
}
.form1 fieldset div {
padding: 0.25em 0;
}
.form1 label {
margin-right: 10px;
padding-right: 10px;
width: 300px;
display: block;
float: left;
text-align: right;
position: relative;
}
.ob label {
top:10px;
}
.form1 input {
width: 300px;
padding-left: 5px;
}
.form1 select {
width: 300px;
}
.form1 textarea {
width: 300px;
height: 100px;
padding: 5px;

44
КП-02069154-836-13-12

overflow: auto;
}
.form1 .control label, .form1 .control input {
display: block;
float: none;
width: auto;
}
.form1 .control {
margin-left: 170px;
}
.comment textarea {
width: 500px;
height: 200px;
}</STYLE></P>
<DIV class="form1">
<P><SPAN style="font-size: x-large"><U><SPAN><SPAN
id="fck_dom_range_temp_1351174975234_572"/>Уведомлениеопроведениизапросакотировок</
SPAN></U></SPAN></P>
<FIELDSET><LEGEND>Общаяинформация</LEGEND>
<DIV><LABEL for="НаимЗК">Наименованиезапросакотировок:
</LABEL><TEXTAREA cols="50" name="НаимЗК" rows="4" wrap="hard"/></DIV>
<DIV><LABEL for="Дата1">Срокивыполнениязаказа:</LABEL>с $
{InputDateTime("Дата1", "date")} до ${InputDateTime("Дата2", "date")}</DIV>
</FIELDSET><FIELDSET><LEGEND>Документыназагрузку</LEGEND>
<DIV><LABEL for="Проект_контракт_файл">Проект контракта: </LABEL><INPUT
name="Проект_контракт_файл" type="file"/>  </DIV>
<BR/>
<DIV><LABEL for="ТЗ_файл">Техническое задание:</LABEL><INPUT
name="ТЗ_файл" type="file"/></DIV>
<DIV>
<DIV class="ob"><LABEL for="Обоснов_файл">Обоснование начальной (максимальной)
цены: </LABEL></DIV>
<BR/>
<INPUT name="Обоснов_файл" type="file"/></DIV>

45
КП-02069154-836-13-12

</FIELDSET><BR/>
<DIV><LABELfor="коммент">Комментарии:</LABEL></DIV>
<DIV class="comment"><TEXTAREA name="коммент"/></DIV>
</DIV>
А вид формы показан на рисунке 36.

Рисунок 36 – Вид формы для задания «Уведомить о проведении запроса котировок


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

4.5.2 Настройка обработчиков процесса «Проведение запроса котировок»


После действия «Уведомить о проведении запроса котировок» можно увидеть
обработчик, прикрепленный к переходу (рисунок 37). Такой же обработчик можно увидеть на
ещё одном переходе модели процесса (рисунок 38).

46
КП-02069154-836-13-12

Рисунок 37 - Первый обработчик на модели процесса

Рисунок 38 – Второй обработчик на модели процесса


Чтобы настроить обработчик, необходимо обратиться к его свойствам (рисунок 39).

Рисунок 39 – Свойства обработчика


В первом обработчике нам нужно определить две переменные – От и
ПредметКонтракта. «От» будет выводиться на каждой последующей форме. Она будет
показывать дату и время, когда секретарь ЦЗО отправил уведомление. А предмет контракта
обычно указывается, как и наименование запроса котировок. Эта переменная будет
использоваться для генерации извещения.
Выберем класс обработчика, нажав кнопку с троеточием. Появится окно выбора класса
обработчика (рисунок 40).

47
КП-02069154-836-13-12

Рисунок 40 – Окно выбора класса обработчика


Нам требуется обработчик ExecuteFormulaActionHandler (вычисление формулы).
Выбираем его, нажимаем «ОК».
Теперь нажмем кнопку с троеточием напротив свойства обработчика «Конфигурация».
Открылось окно, показанное на рисунке 41.

Рисунок 41 – Окно построения формулы


Здесь можно выбрать нужную переменную и функцию к ней. В нашем случае
необходимо ввести следующий код:
ПредметКонтракта = НаимЗК;
От = current_date_time();
Функция current_date_time() выбрана в библиотеке функций, открывающейся при
нажатии в конфигураторе «Вставить функцию». Она возвращает текущую дату и время.

48
КП-02069154-836-13-12

Таким образом, при подтверждении секретарем ЦЗО выполнения задания «Уведомить о


проведении запроса котировок» переменные ПредметКонтракта и От будут автоматически
определены.
Второй обработчик будет иметь такой же класс, как и первый. В его конфигурации
введем следующую формулу:
ДатаОпубликования = date(ДатаНачалаПодачиЗаявок);
Функция date выделяет из переменной с типом дата-время только дату. Переменная
ДатаОпубликования используется для генерации извещения о проведении запроса котировок. А
так как дата начала подачи заявок обычно совпадает с датой опубликования извещения на
официальном сайте, то присваиваем значение даты начала подачи дате опубликования.

4.5.3 Настройка мультидействия «Получить уведомление о проведении запроса


котировок»
После выполнения секретарем ЦЗО первого действия, точка управления попадает в
такой узел как мультидействие. Он называется «Получить уведомление о проведении запроса
котировок».
1. Построение модели подпроцесса «Получить уведомление о проведении запроса
котировок».
Создадим новый процесс проекта – «Получение уведомления о проведении запроса
котировок (мульти)». Открываем его рабочую область, щелкая по его названию двойным
щелчком (в проводнике).
На вкладке граф построим следующую модель (рисунок 42).

Рисунок 42 – Граф подпроцесса «Получение уведомления о запросе котировок (мульти)»


Использование объекта «Отправить сообщение» будет объяснено позже.
Созданная роль «КК» обозначает смысл того, что этот процесс будет запускаться
одновременно для всех членов котировочной комиссии. Она создана без инициализатора, так
как инициализация происходит в начальном узле. На рисунке 43 показан список ролей
процесса.

49
КП-02069154-836-13-12

Рисунок 43 – Вкладка «Роли» подпроцесса «Получение уведомления о запросе


котировок (мульти)»
На рисунке 44 показаны переменные подпроцесса.

Рисунок 44 - Переменные подпроцесса «Получение уведомления о запросе котировок


(мульти)»
Все переменные этого процесса имеют аналог в главном процессе «Проведение запроса
котировок» кроме трех переменных:
 ФИО – переменная строкового типа. Хранит ФИО одного исполнителя.
Она будет отдельная для каждого экземпляра процесса (для каждого члена комиссии);
 Должность - переменная строкового типа. Хранит должность одного
исполнителя. Она также будет отдельная для каждого экземпляра процесса (для каждого
члена комиссии);

50
КП-02069154-836-13-12

 Вопрос - переменная строкового типа. Будет хранить вопрос каждого из


членов комиссии (у каждого своя переменная).
2. Собственно настройка мультидействия «Получение уведомления о запросе
котировок».
Теперь перейдем на главный процесс «Проведение запроса котировок». Для настройки
мультидействия «Получить уведомление о проведении запроса котировок», щелкаем по нему
правой кнопкой мыши и выбираем «Мультидействие». Открывшееся окно показано на рисунке
45.

Рисунок 45 – Окно настройки мультидействия


На рисунке 45 видно, что мы находимся на вкладке тип мультидействия «По группе».
Именно этот тип на данный момент нам нужен, так как экземпляр подпроцесса «Получение
уведомления о запросе котировок (мульти)» должен запускаться для каждого члена КК, потому
что каждый член КК должен ознакомиться с поступившей информацией.
В выпадающем списке «Название подпроцесса» необходимо выбрать соответствующий
подпроцесс. Далее в выпадающем списке «Название группы» выберем переменную «Группа1».
Она хранит значение по умолчанию «Котировочная комиссия», а именно такая группа создана
администратором на сервере, и она включает в себя членов комиссии.
В выпадающем списке «Имя переменной в подпроцессе» выберем роль подпроцесса
«КК».

51
КП-02069154-836-13-12

Теперь необходимо связать переменные главного процесса и подпроцесса. Нажимаем на


кнопку «Добавить». На рисунке 46 показано окно для добавления связи переменных.

Рисунок 46 – Окно создания связи между переменными


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

Рисунок 47 – Окно настройки мультидействия «Получение уведомления о запросе


котировок (мульти)»
Из рисунка 47 видно, что переменным-массивам ФИОМассив, ДолжностьМассив и
ВопросыМассив поставлены в соответствие строковые переменные подпроцесса ФИО,

52
КП-02069154-836-13-12

Должность и Вопросы соответственно. Также этим парам установлена запись из подпроцесса.


Это означает, что, например, каждый экземпляр переменной ФИО будет записываться в массив
главного процесса ФИОМассив по порядку. То есть, кто первый выполнит задание
(ознакомится с предоставленной информацией, задаст вопросы), ФИО того и будет первым в
массиве и т.д.
3. Создание формы для узла-действия подпроцесса «Получение уведомления о запросе
котировок (мульти)».
Теперь главный процесс и подпроцесс связаны. Перейдем к созданию формы для
подпроцесса «Получение уведомления о запросе котировок (мульти)».
Добавим файл проверки переменных формы и затем создадим форму (рисунок 48) (как
это сделано в разделе 4.5.1).

Рисунок 48 – Форма задания «Получить уведомление о проведении запроса котировок»


На этой форме будет выведено все то, что было введено Секретарем ЦЗО в начале
процесса.
Для вывода переменных НаимЗК, всех дат и комментария выберем на панели объектов
правый из двух одинаковых значков «Вывод переменной». В появившемся окне
(рисунок 49) выберем название соответствующей переменной и формат её вывода.

53
КП-02069154-836-13-12

Рисунок 49 – Настройка вывода переменных


На рисунке 49 показана настройка вывода переменных НаимЗК и Дата1.
Для того, чтобы член комиссии мог скачать переданный ему файл проделаем следующее.
Выберем левый значок из двух одинаковых «Freemarker тег». Настроим тег так,
как показано на рисунке 50.

Рисунок 50 – Настройка возможности скачивания файла


То есть выбираем в выпадающем списке «Скачать файл» и затем выбираем переменную
с этим файлом.
Стоит отметить, что на форму была добавлена горизонтальная линия с помощью

инструмента на панели «Вставить горизонтальную линию» для визуального разделения


части с информацией для членов комиссии и части, где они должны ввести свой вопрос.
Текстовая область, предназначенная для введения вопроса, связана с переменной
Вопрос.
Также на форму добавлен вывод даты и времени отправки секретарем ЦЗО уведомления
(в углу формы). Это сделано во избежание путаницы, если уведомлений будет несколько.
Таким образом, при получении этого задания члены комиссии будут видеть всю
предоставленную им информацию, и если у них возникли вопросы, они могут их ввести в
соответствующем поле.
4. Настройка обработчиков подпроцесса «Получить уведомление о проведении запроса
котировок (мульти)».
Настроим обработчики подпроцесса.
Обработчик, прикрепленный к переходу, имеет такой же класс, как и описываемые
обработчики в разделе 4.5.2. В нем выполняется следующая функция:
Вопрос = "-";
Это делается для того, чтобы текстовое поле вопроса не было изначально пустым. И если
у члена комиссии не возникло никаких вопросов по поступившей информации, то там остается
прочерк.

54
КП-02069154-836-13-12

Два других обработчика прикреплены к узлу-действию. Они имеют другой класс –


ActorNameActionHandler (имя исполнителя). Этот обработчик предназначен для возвращения
информации об исполнителе.
Конфигурация первого обработчика представлена на рисунке 51, второго – на рисунке
52.

Рисунок 51 – Настройка конфигурации для возвращения имени исполнителя


В коде сотрудника указывается используемая в процессе роль. В поле «Формат»
выбирается требуемая информация об исполнителе. В поле «Переменная» выбирается
переменная, которая будет хранить поступившую информацию.
В симуляторе при создании исполнителей в поле name (Имя) мы вводили фамилию и
инициалы исполнителя, а в поле description (Описание) – уточняли должность (назначение)
исполнителя.

55
КП-02069154-836-13-12

Рисунок 52 – Настройка конфигурации для возвращения должности исполнителя


Переменная Должность будет хранить возвращаемую должность исполнителя.
Также для этих двух обработчиков необходимо уточнить, при каком событии они будут
выполняться. В свойстве обработчиков «Событие» выберем «При создании задачи» (рисунок
53).

Рисунок 53 – Свойства обработчика


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

4.5.4 Настройка подпроцесса «Организовать заседания»


Перейдем снова на главный процесс «Проведение запроса котировок». После того, как
все члены КК ознакомились с информацией о будущем запросе котировок, председателем КК
организовываются заседания комиссии.
1. Построение модели подпроцесса «Организовать заседания (подпроцесс)».
Для сокращения размера главного процесса был создан подпроцесс «Организовать
заседания (подпроцесс)». Щелкаем на нем два раза в проводнике. На вкладке «Граф»
необходимо нарисовать граф подпроцесса, как показано на рисунке 54.

56
КП-02069154-836-13-12

Рисунок 54 – Граф подпроцесса «Организовать заседания (подпроцесс)»


На рисунке 55 показана созданная роль подпроцесса инициализированная с
исполнителем Ивановым (он является председателем КК).

Рисунок 55 – Роль подпроцесса «Организовать заседания (подпроцесс)»


На рисунке 56 показаны переменные подпроцесса.

Рисунок 56 – Переменные подпроцесса «Организовать заседания (подпроцесс)»


В таблице 4 приведем описание некоторых незнакомых переменных подпроцесса.
Таблица 4 – Переменные подпроцесса «Организовать заседания (подпроцесс)»
Название Тип Описание
ВопросыТекст Строковый Хранит комментарии и поправки
председателя КК к
представленным членами

57
КП-02069154-836-13-12

комиссии вопросам.
Уточнение Строковый Хранит строку, которая содержит
сведения о том, будет ли
проводиться предварительное
заседание или нет.
ДатаНачалаРаботыКомиссии Дата-время Хранит дату и время начала
работы комиссии, то есть начала
этапа рассмотрения и оценки
заявок.
ЯвкаМассив Список Хранит информацию о том,
(массив) придет или не придет исполнитель
в назначенное время на заседание.
ПричинаМассив Список Хранит причины неявки
(массив) исполнителей на заседания (они
указывают их сами).
ИсполнительМассив Список Хранит имена исполнителей (для
(массив) таблицы отчета явки/неявки
исполнителей на заседания).
ДолжностьМассив2 Список Записывает информацию из
(массив) главного процесса, для таблицы
вывода вопросов исполнителей
(данные из подпроцесса
«Получить уведомление о
проведении запроса котировок
(мульти)»)
ДолжностьМассив Хранит информацию о
должностях исполнителей (для
таблицы отчета явки/неявки
исполнителей на заседания).

2. Непосредственно настройка подпроцесса на главном процессе «Проведение запроса


котировок».
Перейдем на главный процесс и настроим подпроцесс «Организовать заседания». Для
этого нужно щелкнуть правой кнопкой мыши на подпроцессе и в появившемся контекстном
меню выбрать «Подпроцесс».
58
КП-02069154-836-13-12

На рисунке 57 показано окно с уже произведенными настройками подпроцесса.

Рисунок 57 – Окно настройки подпроцесса «Организовать заседания»


Здесь, как и при настройке мультидействия, необходимо выбрать подчиненный процесс
в выпадающем списке «Название подпроцесса», но тип соединения не устанавливается, только
связываются переменные главного и подчинённого процессов.
Переменные-массивы передают свои значения списков переменным подпроцесса
(список вопросов членов комиссии). Все даты: дата начала подачи заявок, дата окончания
подачи заявок, дата предварительного заседания, которые устанавливаются председателем КК,
и переменная ПредварительноеЗаседание (указывающая будет ли проводиться заседание)
записываются из подпроцесса в главный процесс.
3. Создание формы для узла-действия «Утвердить вопросы для обсуждения и назначить
дату и время встреч».
Перейдем обратно в подпроцесс «Организовать заседания (подпроцесс)». Создадим
форму и файл проверки переменных формы для узла-действия процесса «Утвердить вопросы
для обсуждения и назначить дату и время встреч». Созданная форма показана на рисунке 58.

59
КП-02069154-836-13-12

Рисунок 58 – Форма для задания «Утвердить вопросы для обсуждения и назначить дату
и время встреч»
Ввод необходимых дат настраивался с помощью «Freemarkerтега» (как в разделе 4.5.1).
Вывод списка с вопросами членов комиссии можно настроить,также используя «Freemarkerтег»
(рисунок 59).

Рисунок 59 – Настройка вывода списка


Для этого необходимо в свойствах тэга выбрать «Отобразить связанные списки». Надо
отметить, что полную настройку связанного списка произвести на вкладке «Дизайн» html-
редактора невозможно, так как здесь в свойствах тега можно выбрать только одну переменную,
а нам необходимо вывести три переменные: ФИОМассив, ДолжностьМассив2 и Вопросы
Массив. Поэтому перейдем на вкладку «Код».
Конечный код созданной формы выглядит следующим образом:
<P><STYLE type="text/css">
.form1 {
margin: 0px;
padding: 10px;
font: large Arial,Helvetica,sans-serif;
}
60
КП-02069154-836-13-12

.form1 textarea {
margin-left: 50px;
width: 500px;
height: 200px;
overflow: auto;
}
.form2 textarea {
width: 300px;
height: 50px;
overflow: auto;
text-align: right;
font: small Arial,Helvetica,sans-serif;
} </STYLE></P>
<DIV style="float: right; margin: 0px; font: small Arial,Helvetica,sans-serif; color: #bcbcbc;
text-align: right">Запроскотировок:
<P class="form2"><TEXTAREA name="НаимЗК" style="border-top-style: none; border-
right-style: none; border-left-style: none; background-color: #fff; border-bottom-style: none"/></P>
<P>от ${От?datetime}</P>
</DIV>
<DIV class="form1">
<P><STRONG>Установите дату и время начала и окончания подачи котировочных
заявок:</STRONG></P>
<P style="margin-left: 50px">Дата и время начала подачи заявок: $
{InputDateTime("ДатаНачалаПодачиЗаявок", "datetime")}</P>
<P style="margin-left: 50px">Дата и время окончания подачи заявок: $
{InputDateTime("ДатаОкончанияПодачиЗаявок", "datetime")}</P>
<P style="margin-left: 50px">Дата и время начала работы комиссии: $
{InputDateTime("ДатаНачалаРаботыКомиссии", "datetime")}</P>
<P><STRONG>Ознакомьтесь с вопросами, выдвинутыми на обсуждение членами
комиссии:</STRONG></P>
<P style="margin-left: 50px">${DisplayLinkedListsInTable("ФИОМассив",
"ДолжностьМассив2", "ВопросыМассив")}</P>
<P><STRONG>Вы можете внести свои поправки и комментарии в следующем
поле:</STRONG></P>

61
КП-02069154-836-13-12

<P><TEXTAREA name="ВопросыТекст"/></P>
<P><STRONG>Требуется ли предварительное заседание (до начала работы
комисии) для обсуждения представленных вопросов?</STRONG></P>
<P style="margin-left: 50px"> <INPUT checked="checked"
name="ПредварительноеЗаседание" type="radio" value="true"/>Да      <INPUT
name="ПредварительноеЗаседание" type="radio" value="false"/>Нет</P>
<P style="margin-left: 50px">Дата и время проведения предварительного заседания: $
{InputDateTime("ДатаПроведенияЗаседания", "datetime")}</P>
</DIV>
Жирным текстом выделен код, который производит нужную настройку списков.
Ещё один новый объект, который был использован на этой форме это «Кнопка выбора»

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


ПредварительноеЗаседание (рисунок 60).

Рисунок 60 – Настройка кнопок выбора


Одна из них будет иметь значение True (если будет проводиться предварительное
заседание), вторая – False (если не будет проводиться предварительное заседание).
На этой и на последующих формах добавлен вывод переменной НаимЗК (рисунок 61),
чтобы каждый исполнитель не путался при работе с разными запросами котировок.

Рисунок 61 – Заметка на форме


Итак, получив данное задание, председатель КК устанавливает все необходимые даты,
рассматривает вопросы членов комиссии, добавляет поправки и комментарии. Затем он решает,
нужно ли проводить предварительное заседание. Если – да, то устанавливает его дату и время.
4. Настройка ветвления в подпроцессе «Организовать заседания (подпроцесс)».

62
КП-02069154-836-13-12

После узла-действия «Утвердить вопросы для обсуждения и назначить дату и время


встреч» переход попадает на ветвление. Дальнейший путь точки управления здесь будет
зависеть от переменной ПредварительноеЗаседание. Нажмем правой кнопкой мыши на
ветвлении и выберем «Изменить». В появившемся окне произведем настройки, как показано на
рисунке 62.

Рисунок 62 – Настройка ветвления


На рисунке 62 видно название двух стрелок, выходящих из ветвления. Управление будет
проходить по стрелке «с предварительным заседанием», если переменная
ПредварительноеЗаседание будет равна значению true, или по стрелке «без предварительного
заседания», если переменная ПредварительноеЗаседание будет равна значению false.
Нажимаем ОК.
Теперь, если управление будет идти по стрелке «с предварительным заседанием», в
прикрепленном к ней обработчике (ExecuteFormulaActionHandler) переменной Уточнение будет
присваиваться пустое значение:
Уточнение = "";
Если управление будет идти по стрелке «без предварительного заседания», в её
прикрепленном обработчике (также ExecuteFormulaActionHandler) переменной Уточнение
будет присваиваться значение "Предварительное заседание проводиться не будет", а не нужной
в данном случае дате проведения этого заседания будет присваиваться просто текущая дата и
время:
ДатаПроведенияЗаседания = current_date_time();
Уточнение = "Предварительное заседание проводиться не будет";

63
КП-02069154-836-13-12

5. Настройка мультидействия «Ознакомиться с информацией по организации заседаний»


подпроцесса «Организовать заседания».
С информацией о заседаниях, введенной председателем КК должны ознакомиться все
остальные члены комиссии. Для этого настроим мультдействие «Ознакомиться с информацией
по организации заседаний». Оно будет связано с одноимённым созданным подпроцессом, граф
которого показан на рисунке 63.

Рисунок 63 – Граф процесса «Ознакомиться с информацией по организации заседаний


(мульти)»
В этом подпроцессе будет только одна роль КК_подчиненные без инициализатора. Она
отражает смысл того, что экземпляр процесса будет запускаться для всех членов комиссии,
кроме председателя.
Переменные процесса показаны на рисунке 64.

Рисунок 64 – Переменные подпроцесса «Ознакомиться с информацией по организации


заседаний (мульти)»
Настроим мультидействие. Тип настройки в этот раз будет не «по группе» (как в пункте
2раздела 4.5.3), а по отношению. Для начала необходимо создать это отношение в симуляторе
под логином Administrator.
Для этого в меню выберем пункт «Отношения» и щелкнем по нему (рисунок 65).

64
КП-02069154-836-13-12

Рисунок 65 – Пункт меню «Отношения»


Нажимаем «Создать отношение». Вводим имя и описание отношения (рисунок 66).

Рисунок 66 – Создание отношения


Нажимаем кнопку «Создать». В списке отношений появилось новое. Щелкаем по его
названию, а затем в появившемся окне щелкаем «Создать пару». На рисунке 67 показано окно
создания пары.

Рисунок 67 – Окно создания пары в отношении


Для левой части выбираем действующее лицо отношения, а для правой выбираем, к чему
или к кому оно относится. В нашем случае будет всего 4 пары в отношении (рисунок 68).

Рисунок 68 – Список пар отношения КК

65
КП-02069154-836-13-12

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


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

Рисунок 69 – Окно настройки мультидействия «Ознакомиться с информацией по


организации заседаний»
Название отношения и параметр отношения (имя используемой группы пользователей в
отношении) введем вручную, выбрав в выпадающем списке «Введите значение».
Теперь создадим форму для узла-действия «Ознакомиться с информацией по
организации заседаний» одноименного подпроцесса. Она будет выглядеть следующим образом
(рисунок 70):

66
КП-02069154-836-13-12

Рисунок 70 – Форма задания «Ознакомиться с информацией по организации заседаний


На этой форме члены комиссии изучает информацию, переданную председателем КК.
Затем каждый из них должен уточнить, придет ли он на заседания и, если – нет, указывается
причина.
Переменная ЯвкаНаЗаседание связана с объектами «Кнопки выбора». Переменная
Причина связана с текстовой областью, расположенной внизу формы. Переменная Уточнение
выводится на следующей строчке после даты предварительного заседания.
Обработчики, прикрепленные к узлу-действию подпроцесса «Ознакомиться с
информацией по организации заседаний (мульти)» имеют такой же смысл, как было описано в
пункте 4 раздела 4.5.3 (ActorNameActionHandler). Они возвращают переменным Исполнитель и
Должность соответственно имя и должность пользователя, который открыл свое задание.
6. Создание формы и описание узла-действия «Получить отчет о явке членов комиссии
на заседания».
После того, как члены КК ознакомились с информацией по заседаниям, председателю
приходит отчет об их явке (соответствующий узел-действие на рисунке 71). Здесь можно
увидеть неявное ветвление – две стрелки с разными именами выходят из узла-действия. На
форме задания это будет отражаться как две кнопки с названиями собственно «Назначить
другое время для заседаний» и «Продолжить».

67
КП-02069154-836-13-12

Председатель, исходя из полученного отчета, может решить либо продолжить процесс,


либо назначить другое время заседаний.

Рисунок 71 – Узел-действие «Получить отчет о явке членов комиссии на заседания»


Созданная форма (рисунок 72) будет содержать только связанные списки, то есть отчет:
имя исполнителя, должность, придет/не придет, и причину (данные по каждому исполнителю),
и заметку в углу формы (наименование текущего запроса котировок и дата начала процесса).
Связанные списки в html-коде будут отображаться следующим образом:
<DIV>${DisplayLinkedListsInTable("ИсполнительМассив", "ДолжностьМассив",
"ЯвкаМассив", "ПричинаМассив")}</DIV>

Рисунок 72 – Форма узла-действия «Получить отчет о явке членов комиссии на


заседания»
Стоит также отметить, что если управление пойдет по пути «Назначить другое время для
заседаний», то в имеющемся на этом переходе обработчике обнулятся переменные-списки
(ИсполнительМассив, ДолжностьМассив, ЯвкаМассив, ПричинаМассив). Этот обработчик
имеет класс BSHActionHandler. Он предназначен для пересчета переменных. Его конфигурация
будет иметь вид:
ЯвкаМассив = null;
ПричинаМассив = null;
ИсполнительМассив = null;
ДолжностьМассив = null;

68
КП-02069154-836-13-12

Перейдем на главный процесс «Проведение запроса котировок». После завершения


подпроцесса «Организовать заседания» управление попадает в ветвление. Это ветвление
идентично ветвлению, описанному в пункте 4 раздела 4.5.4. Оно также зависит от переменной
ПредварительноеЗаседание, поэтому приводить описание его настройки не будем.
Таким образом, переменная ПредварительноеЗаседание определяет два пути бизнес-
процесса. Первый путь (когда предварительное заседание будет проводиться) является более
длинным. Здесь возникают такие дополнительные действия, как «Разобраться с нерешенными
вопросами», «Ответить на вопросы котировочной комиссии», «Получить ответ от ЦЗО». По
второму пути переходят сразу к действиям с документами. Председатель выберет этот путь,
если у членов КК и у него самого не возникло никаких важных вопросов, и предварительное
заседание не требуется, и, следовательно, можно перейти к последним приготовлениям для
размещения заказа путем запроса котировок.

4.5.5 Настройка узла-ожидания


Момент появления у секретаря КК задания «Разобраться с нерешенными вопросами»
зависит от узла-ожидания, расположенного перед этим узлом-действием (рисунок 73).

Рисунок 73 – Узел-ожидание перед узлом-действием «Разобраться с нерешенными


вопросами»
На рисунке 73 видно, что на переходе указано «0 минут». Это означает, что точка
управления не будет задерживаться в узле-ожидании.
Нам необходимо, чтобы задание «Разобраться с нерешенными вопросами» приходило
после того, как наступит время проведения заседания, и когда секретарь уже будет примерно
знать, есть или нет вопросы, которые необходимо задать заказчику.
Для настройки узел-ожидание выделим и посмотрим его свойства (рисунок 74).

69
КП-02069154-836-13-12

Рисунок 74 – Свойства узла-ожидания


Здесь можно ввести ему название, а для настройки времени задержки нажмем кнопку с
троеточием напротив свойства «Задержка». Откроется окно, показанное на рисунке 75.

Рисунок 75 – Окно установки задержки узла-ожидания


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

Рисунок 76 – Выбор переменной


Затем в поле «Задержка таймера относительно базовой даты», нажав кнопку с
троеточием, введем «10». В поле «Единица измерения» выберем «минуты». Нажмем «ОК».
На рисунке 77 показано, как теперь будет выглядеть узел-ожидание на графе.

70
КП-02069154-836-13-12

Рисунок 77 – Настроенный узел-ожидание


Теперь задание «Разобраться с нерешенными вопросами» будет приходить секретарю
через 10 минут после начала заседания.

4.5.6 Создание формы и описание узла-действия «Разобраться с нерешенными


вопросами»
Создадим форму для этого узла-действия. Она будет выглядеть, как показано на рисунке
78.

Рисунок 78 – Форма задания «Разобраться с нерешенными вопросами»


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

71
КП-02069154-836-13-12

4.5.7 Создание формы для узла-действия «Ответить на вопросы котировочной


комиссии»
Если секретарь КК нажмет на кнопку «Направить имеющиеся вопросы», то секретарю
ЦЗО придет задание «Ответить на вопросы котировочной комиссии». Форма этого задания
показана на рисунке 79.

Рисунок 79 – Форма задания «Ответить на вопросы котировочной комиссии»


На этой форме выведутся вопросы написанные секретарем (переменная
НерешенныеВопросы), а ниже секретарь ЦЗО может ввести в текстовую область свой ответ
(переменная ОтветНаВопросКК).

4.5.8 Настройка мультидействия «Получить ответ от ЦЗО (мульти)»


Ответы на вопросы по текущему запросу котировок должны прийти все членам КК,
поэтому воспользуемся мультидействием, настроенным «по группе» (как в пункте 2 раздела
4.5.3). Граф нового подпроцесса, который будет связываться с мультидействием, показан на
рисунке 80.

Рисунок 80 – Граф подпроцесса «Получить ответ от ЦЗО (мульти)»


Переменные подпроцесса показаны на рисунке 81. Роль создана одна – «КК», без
инициализатора.

Рисунок 81 – Переменные подпроцесса «Получить ответ от ЦЗО (мульти)»


Перейдем на процесс «Проведение запроса котировок». Настроим мультидействие «по
группе» «Получить ответ от ЦЗО», как показано на рисунке 82.
72
КП-02069154-836-13-12

Рисунок 82 – Окно настройки мультидействия «Получить ответ от ЦЗО»


Создадим форму для задания «Ознакомиться с информацией по нерешенным вопросам»
(подпроцесс «Получить ответ от ЦЗО (мульти)»). Она показана на рисунке 83.

Рисунок 83 – Форма задания «Ознакомиться с информацией по нерешенным вопросам»


На этой форме каждый член КК ознакомится с ответом ЦЗО. Здесь выводится
переменная ОтветНаВопросКК.

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

73
КП-02069154-836-13-12

Рисунок 84 – Форма задания «Ввести данные для генерации извещения»


В этой форме секретарь вводит все необходимые данные для генерации извещения. При
этом наименование запроса котировок и предмет контракта будут уже выведены на основании
значения переменной НаимЗК (но их можно будет редактировать).
При создании формы использовалось два новых объекта:
 Текстовое поле . Это однострочное поле для ввода текста или цифр. На
рисунке 85 показаны настройки текстового поля для ввода значения переменной
НомерИзвещения. Здесь нужно выбрать необходимую переменную, связанную с
текстовым полем. Также можно выбрать тип поля, ввести его начальное значение,
указать максимальное количество вводимых символов.

Рисунок 85 – Свойства текстового поля


Текстовое поле на форме задания «Ввести данные для генерации извещения»
также используется для ввода переменных ЦенаРуб, ЦенаКоп,
НаименованиеКлассификации, НомерКлассификации;

 Список . Это объект для создания выпадающего списка. На рисунке 86


показано окно настройки списка. Здесь необходимо выбрать связанную с ним
переменную, такую переменную, которая будет записывать выбранное в списке
значение. Для нас – это переменная ПодписаниеКонтракта. В следующем поле
«Значение» можно ввести начальный вид списка, то есть то, что будет видеть
пользователь, если он ещё не выбрал нужное значение в списке. Далее
необходимо настроить «Доступные варианты». Для этого в поле «текст» нужно
74
КП-02069154-836-13-12

ввести текст, который будет видеть пользователь, а в поле «значение» -


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

Рисунок 86 – Свойства создаваемого списка


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

4.5.10 Форма задания «Проверить, редактировать составленное извещение»


После того, как извещение сгенерируется, председателю придет задание его проверить.
Форма этого задания показана на рисунке 87.

Рисунок 87 – Форма задания «Проверить, редактировать составленное извещение»


Здесь председатель может скачать сгенерированное извещение, проверить его, и, если в
процессе проверки он нашел ошибки и отредактировал его, то новый файл он может загрузить
ниже.
Оба объекта и «Скачать файл» и «Загрузить файл» связаны с одной и той же переменной
файлового типа Извещение.

75
КП-02069154-836-13-12

4.5.11 Форма задания «Выставить на сайте извещение и проект контракта»


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

Рисунок 88 – Настройка задержки узла-ожидания


Таким образом, в качестве базовой даты выбрана ДатаНачалаПодачиЗаявок. Но задержка
выставлена отрицательная. Это значит, что задание у секретаря будет появляться на 3 часа
раньше, чем этап подачи заявок должен начаться (извещение должно выставляться немного
пораньше).
Форма задания «Выставить на сайте извещение и проект контракта» показана на рисунке
89.

Рисунок 89 – Форма задания «Выставить на сайте извещение и проект контракта»

Здесь использован новый объект «Ссылка» для создания Интернет-ссылки на


официальный сайт. Окно добавления ссылки показано на рисунке 90.

76
КП-02069154-836-13-12

Рисунок 90 – Окно добавления ссылки на форму


На форме секретарь КК может скачать извещение и проект контракта, если не скачал
его. И перейти по ссылке.

4.5.12 Формы «Принять решение о дальнейших действиях» и «Составить и направить


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

Рисунок 91 – Форма задания «Принять решение о дальнейших действиях»


Кнопки выбора на форме связаны с переменной ПоследнееДействие.
После выполнения задания с помощью той же переменной ПоследнееДействие
определится путь в ветвлении (рисунок 92) расположенном после узла-действия «Принять
решение о дальнейших действиях».

77
КП-02069154-836-13-12

Рисунок 92 – Ветвление «ПоследнееДействие» в графе процесса


Окно настройки ветвления показано на рисунке 93.

Рисунок 93 – Окно настройки ветвления


Здесь для ввода значения переменной ПоследнееДействие в третьем выпадающем списке
выбиралось «Введите значение» и вводилось соответствующее значение.
Конкретное значение переменной ПоследнееДействие определялось и на форме при
настройке кнопки выбора (рисунок 94).

Рисунок 94 – Настройка кнопок выбора на форме «Принять решение о дальнейших


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

78
КП-02069154-836-13-12

Рисунок 95 – Форма задания «Составить и направить протокол рассмотрения и оценки


заявок»
Здесь секретарь КК должен загрузить файл составленного им протокола и, если
требуется, написать комментарии по проделанной работе.

4.5.13 Настройка мультидействия «Получить протокол рассмотрения и оценки


котировочных заявок»
Последним блоком созданного бизнес-процесса является мультидействие «Получить
протокол рассмотрения и оценки котировочных заявок».
Бизнес-процесс логически завершается, когда все члены ЦЗО (заказчик) получают
протокол рассмотрения и оценки заявок, в котором указан победитель запроса котировок, и с
ним можно заключать контракт. Или же победитель не найден (не подано ни одной заявки),
тогда заказчик должен продумать, какие условия изменить в контракте, и начать процесс
проведения запроса котировок снова. В любом случае в протоколе представлен отчет о работе
комиссии.
Граф нового созданного подпроцесса «Получить протокол рассмотрения и оценки
котировочных заявок (мульти)» показан на рисунке 96, его переменные - на рисунке 97.

Рисунок 96 - Граф подпроцесса «Получить протокол рассмотрения и оценки


котировочных заявок (мульти)»

79
КП-02069154-836-13-12

Рисунок 97 – Переменные подпроцесса «Получить протокол рассмотрения и оценки


котировочных заявок (мульти)»
Настроим мультидействие «Получить протокол рассмотрения и оценки котировочных
заявок» по группе с помощью переменной Группа2, имеющей значение по умолчанию «ЦЗО» -
название группы исполнителей на веб-сервере (рисунок 98).

Рисунок 98 – Окно настройки мультидействия «Получить протокол рассмотрения и


оценки котировочных заявок»
Форма задания «Получить протокол рассмотрения и оценки котировочных заявок»
показана на рисунке 99. На ней члены ЦЗО могут скачать протокол и прочитать комментарии
секретаря КК.

80
КП-02069154-836-13-12

Рисунок 99 - Форма задания «Получить протокол рассмотрения и оценки котировочных


заявок»

4.5.14 Использование в процессах объектов «Отправить сообщение» и «Получить


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

Рисунок 100 – Граф процесса «Получить уведомление о проведении запроса котировок


(мульти)»

Рисунок 101 – Граф процесса «Цикл»

81
КП-02069154-836-13-12

Рассмотрим это более детально. На графе процесса «Получить уведомление о


проведении запроса котировок (мульти)» есть объект «Отправить сообщение». После того, как
один из членов выполнит задание «Получить уведомление о проведении запроса котировок», в
переменные ФИО, Должность и Вопрос запишутся соответствующие имя, должность и вопрос
этого члена комиссии. Чтобы настроить объект «Отправить сообщение» необходимо щелкнуть
на нем правой кнопкой мыши и в контекстном меню выбрать «Отправить сообщение».
Откроется окно, показанное на рисунке 102.

Рисунок 102 – Окно настройки отправки сообщения


Здесь в свойствах маршрутизации сообщения необходимо добавить название и значение
сообщения для его идентификации. Нажмем на кнопку «Добавить» и в появившихся полях
введем FIOandQuestion.
Теперь необходимо выбрать переменные, которые будут передаваться в сообщении.
Нажмем вторую кнопку «Добавить» (рисунок 103).

Рисунок 103 – Добавление переменной в сообщение

82
КП-02069154-836-13-12

В выпадающем списке выбирается переменная из процесса, а в поле ниже указывается,


как эта переменная будет называться в сообщении. В нашем случае это будут переменные
ФИО, Должность и Вопрос. В сообщении назовем их также.
Когда секретарь КК запустит процесс «Цикл», ему придет задание «Посмотреть текущее
состояние» (если сообщение было получено в объекте «Получить сообщение»).
Окно настройки получения сообщения показано на рисунке 104.

Рисунок 104 – Окно настройки получения сообщения


Здесь настройка проводится также как и для оправления сообщения, но необходимо
учесть, что:
- название и значение маршрутизации должно быть настроено также как и в
соответствующем объекте отправки сообщения (чтобы отправитель распознавал получателя);
- необходимо учитывать, что названия переменных в сообщении у получателя и у
отправителя должны быть одинаковые, а переменные самих процессов могут называться по-
разному. В нашем случае названия везде будут одинаковыми.
В процессе «Цикл» есть переменные-списки (ФИОМассив, ДолжностьМассив,
ВопросыМассив), которые будут выводиться секретарю на форме задания «Посмотреть
текущее состояние». Чтобы заполнить эти переменные, используется три одинаковых
обработчика, имеющих класс AddObjectToListActionHandler (добавление объекта в список).
Они прикреплены к переходу. То есть после того, как сообщение с переменными будет
получено, эти переменные запишутся с соответствующие списки, а списки будут выведены на

83
КП-02069154-836-13-12

форме задания для секретаря. Настройка добавления объекта в список ФИОМассив с помощью
обработчика показана на рисунке 105.

Рисунок 105 – Настройка обработчика AddObjectToListActionHandler


Здесь выбирается переменная-список, в которую будут записываться значения,
переменная-объект, которая будет записываться в список и результирующая переменная (после
записи).
После просмотра текущего списка секретарь может продолжить процесс обновления
списка, либо завершить процесс «Цикл», выбрав соответствующее сообщение (управление
вернется к получателю сообщения и будет ожидать нового сообщения).
Описанная в этом разделе реализация показана только как пример использования
объектов «Отправить сообщение» и «Получить сообщение». На практике её применять
нецелесообразно, так как текущее состояние процессов можно просматривать другим, уже
реализованным разработчиками способом – просматривать графу меню «Запущенные
процессы» при запуске процесса на веб-сервере.

4.6 Применение ботов. Настройка MS Word-бота


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

84
КП-02069154-836-13-12

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

Рисунок 106 - Меню редактора Бот-станции


Пользователь имеет доступ к меню «Бот станции», если у него есть права на чтение бот-
станций. Если прав на чтение бот-станций у пользователя нет, то пункт меню «Бот станции»
интерфейсе пользователя будет отсутствовать. Для изменения настроек бот-станций
необходимо иметь права «Конфигурировать бот-станцию».
Итак, для начала создадим в редакторе MS Word файл Извещение.doc (рисунок 107).

85
КП-02069154-836-13-12

Рисунок 107 – Шаблон извещения о проведении запроса котировок


Установим в шаблоне извещения закладки (рисунок 108).

Рисунок 108 - Вызов формы работы с закладками


Добавим в шаблон все необходимые закладки (они совпадают по названию с
переменными процесса, которые используются для генерации извещения). Необходимые
закладки показаны на рисунке 109.

86
КП-02069154-836-13-12

Рисунок 109 - Закладки шаблона документа "Извещение"


Поместим шаблон извещения в папку C:\Temp.
Теперь создадим бота "Word_бот". Для этого войдем в систему RunaWFE под
пользователем Administrator, кликнем пункт меню "Бот-станции", затем кликнем на
"localbotstation". В появившейся форме необходимо:
- Проверить, что периодическая активация запущена (если нет, то запустить ее (рисунок
110));
- Добавить бота в бот-станцию (кликнуть на "Добавить бота" (рисунок 110)).

87
КП-02069154-836-13-12

Рисунок 110 - Бот-станция


В появившейся форме нужно выбрать из списка пользователя Word_бот, ввести его
пароль "wf" и кликнуть "Добавить бота" (рисунок 111).

Рисунок 111 - Добавление бота "Word_бот"


Создадим для бота "Word_бот" задание "Сгенерировать извещение".
В форме бот-станции нужно кликнуть на появившемся боте Word_бот (рисунок 112).

Рисунок 112 - Бот-станция, содержащая бота Word_бот


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

88
КП-02069154-836-13-12

Рисунок 113 - Добавление задания для бота Word_бот


Добавим для задания "Сгенерировать извещение" конфигурацию.
Создадим файл task.txt в папке C:\Temp, содержащий следующий текст:

<?xml version="1.0" encoding="UTF-8"?>

<msword-report-task xmlns="http://runa.ru/xml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://runa.ru/xml
msword-report-task.xsd">

<report template-path="c:/temp/Извещение.doc" output-variable="Извещение" output-


variable-file-

name="Извещение.doc">

<mapping bookmark="Переменная_Номер_извещения" variable="НомерИзвещения" />

<mapping bookmark="НаимЗК" variable="НаимЗК" />

<mapping bookmark="ПредметКонтракта" variable="ПредметКонтракта" />

<mapping bookmark="ЦенаРуб" variable="ЦенаРуб" format-


class="ru.runa.wf.web.forms.format.LongFormat" />

<mapping bookmark="ЦенаКоп" variable="ЦенаКоп" format-


class="ru.runa.wf.web.forms.format.LongFormat" />

<mapping bookmark="КлассификацияНомер" variable="НомерКлассификации" />

<mapping bookmark="КлассификацияНаименование"
variable="НаименованиеКлассификации" />

<mapping bookmark="Дата1" variable="Дата1" format-


class="ru.runa.wf.web.forms.format.DateFormat" />

<mapping bookmark="Дата2" variable="Дата2" format-


class="ru.runa.wf.web.forms.format.DateFormat" />

<mapping bookmark="ДатаНачалаПодачиЗаявок" variable="ДатаНачалаПодачиЗаявок"


format-class="ru.runa.wf.web.forms.format.DateTimeFormat" />

89
КП-02069154-836-13-12

<mapping bookmark="ДатаОкончанияПодачиЗаявок"
variable="ДатаОкончанияПодачиЗаявок" format-
class="ru.runa.wf.web.forms.format.DateTimeFormat" />

<mapping bookmark="ПодписаниеКонтракта" variable="ПодписаниеКонтракта" format-


class="ru.runa.wf.web.forms.format.DoubleFormat" />

<mapping bookmark="ДатаОпубликования" variable="ДатаОпубликования" format-


class="ru.runa.wf.web.forms.format.DateFormat" />

</report>

</msword-report-task>

Сохраним этот файл в кодировке UTF-8.


Введем путь к этому файлу в поле "Конфигурация" и кликнем "Применить".
Кликнем на появившейся ссылке "Редактировать", проверим, что в открывшемся окне введена
правильная конфигурация (рисунок 114).

Рисунок 114 - Конфигурация бота в режиме редактирования


Бот для генерации извещения настроен.

4.7 Настройка проверки переменных формы


Элементы форм могут быть обязательными или не обязательными для ввода. Также
могут быть правила, относящиеся к нескольким элементам форм. Например - «дата с» не может
быть позже, чем «дата по». Кроме того, могут быть специфические для типов ограничения: для
чисел – меньше или больше какого-то числа, для строк – ограничение на длину строки и т.д.
Рассмотрим настройку проверки переменных на примере формы «Уведомить о
проведении запроса котировок». Щелкнем правой кнопкой мыши на узле-действии «Уведомить
о проведении запроса котировок» и в контекстном меню выберем «Форма»-«Проверка
переменных формы». Откроется окно, показанное на рисунке 115.

90
КП-02069154-836-13-12

Рисунок 115 – Окно настройки валидации


С левой стороны окна валидации виден весь список переменных текущего процесса.
Галочками отмечены те переменные, которые используются на текущей форме (на форме
задания «Уведомить о проведении запроса котировок»).
Настроим проверку переменной НаимЗК (наименование запроса котировок). Запрос
котировок должен обязательно иметь название, поэтому это поле сделаем обязательным, а
также установим минимальное количество символов. Выделим переменную в списке, затем
галочками отметим необходимые валидаторы. На рисунке 116 показана настройка
ограничителя длины строки для переменной НаимЗК, а на рисунке 117 – настройка
обязательного поля.

91
КП-02069154-836-13-12

Рисунок 116 – Настройка ограничителя длины строки

Рисунок 117 – Настройка обязательного поля


В обоих случаях необходимо ввести сообщение об ошибке, которое будет выводиться
при нахождении исключений. Для ограничителя строки также необходимо установить
конкретные ограничения. Для нас это будет минимальная длина – 3 символа.
Теперь установим ограничения для дат. Дата1 содержит начальную дату срока
выполнения заказа. Это поле не будем делать обязательным, но установим ограничение
«Диапазон даты относительно текущей» (рисунок 118).
92
КП-02069154-836-13-12

Рисунок 118 – Ограничение «Диапазон даты относительно текущей»


Здесь введем 0 дней для сдвига в прошлое. Это значит, что прошедшую дату ввести не
получится. Для Даты2 установим это же ограничение и ещё обязательное поле, так как она
показывает конечный срок выполнения заказа.
Для загрузочного поля файла Проект_контракт_файл также установим обязательное
поле (рисунок 119).

Рисунок 119 – Валидация для переменной-файла


Необходимо установить ещё одно ограничение для переменных дат. Для этого в окне
настройки валидации нажмем «Далее». В появившемся окне нажмем «Добавить». Затем в поле
93
КП-02069154-836-13-12

«Сообщение об ошибке» введем «Конечная дата должна быть не раньше начальной!» и в


конструкторе выберем соответствующие условия (рисунок 120).

Рисунок 120 – Создание глобального валидатора


По окончании настройки переменных формы «Уведомить о проведении запроса
котировок» необходимо нажать «Готово».
Так можно настроить проверку переменных для всех форм, выбирая нужные
ограничения.

94
КП-02069154-836-13-12

5 Загрузка процессов на сервер


Каждый из семи созданных процессов экспортируем в файл. Для этого, выделив
название процесса в проводнике и щелкнув по нему правой кнопкой мыши, выберем в
контекстном меню «Экспорт процесса». В появившемся окне (рисунок 121) нужно нажать
«Обзор» и выбрать путь, где будет сохранен файл с расширением *.par (рисунок 122).

Рисунок 121 – Экспорт процесса

Рисунок 122 – Сохранение файла процесса


Так экспортируем все процессы в один каталог.
Теперь запустим систему RunaWFE. Зайдем под логином «Морозова С.С.». Это
секретарь ЦЗО. Он начинает бизнес-процесс «Проведение запроса котировок».
95
КП-02069154-836-13-12

В меню системы выберем «Запустить процесс». В появившемся окне (рисунок 123)


нажмем «Загрузить определение процесса».

Рисунок 123 – Окно списка определений процессов


Теперь в окне загрузки определения процесса (рисунок 124) необходимо выбрать путь к
par-файлу процесса и ввести тип процесса. Введем тип процесса «Тест» для всех загружаемых
процессов.

Рисунок 124 – Окно загрузки определения процесса


После того, как все процессы будут загружены, список определений будет выглядеть
следующим образом (рисунок 125):

Рисунок 125 – Список определений процессов

96
КП-02069154-836-13-12

На рисунке 125 видно, что у каждого загруженного процесса есть свойства. Зайдем под
логином Administrator. Снова зайдем в «Запущенные процессы». Выберем свойства процесса
«Проведение запроса котировок». В появившемся окне (рисунок 126) нужно выбрать
«Обладатели полномочий».

Рисунок 126 – Свойства процесса


Появится окно, показанное на рисунке 127.

Рисунок 127 – Обладатели полномочий для процесса «Проведение запроса котировок».


Из рисунка видно, что полномочиями на этот процесс обладает только администратор и
исполнитель, загрузивший процесс, Морозова. Но нам необходимо, чтобы процесс мог
контролировать председатель ЦЗО, председатель КК, заместитель председателя КК и секретарь
КК (просматривать его текущее состояние «Читать экземпляр», преждевременного
останавливать его «Остановить экземпляр», запускать и т.п.).
Нажмем на «Добавить». В появившемся окне отметим галочкой исполнителей Агапкина,
Иванова, Орлову, Петрова и нажмем кнопку «Добавить».
Дадим выбранным пользователям все полномочия на процесс «Проведение запроса
котировок» (рисунок 128) и нажмем кнопку «Применить».
97
КП-02069154-836-13-12

Рисунок 128 – Обладатели полномочий на процесс «Проведение запроса котировок»

98
КП-02069154-836-13-12

6 Тестирование процессов
1. Запуск процесса. Проиграем созданный бизнес-процесс. Зайдем снова в систему как
исполнитель Морозова С.С. В меню выберем «Запустить процесс». В списке определений

процессов найдем главный процесс «Проведение запроса котировок» и нажмем на символ


«Запустить».
2. Задание «Уведомить о проведении запроса котировок». Теперь выберем в меню
системы «Список заданий». Как видно на рисунке 129 у секретаря ЦЗО появилось задание
«Уведомить о проведении запроса котировок».

Рисунок 129 – Список заданий секретаря ЦЗО


Откроем это задание. На рисунке 130 показана форма задания.

Рисунок 130 – Задание «Уведомить о проведении запроса котировок»


Проверим работу валидаторов. Сначала не заполним ни одного поля и нажмем «Задание
выполнено». Появившееся сообщение об ошибке показано на рисунке 131.

99
КП-02069154-836-13-12

Рисунок 131 – Сообщения о не пройденной проверке


Теперь введем дату «до» позже по времени, чем дата «с». Появилось другое сообщение
об ошибке (рисунок 132).

Рисунок 132 – Сообщение о неправильно введенной дате


На рисунке 133 показана форма со всеми правильно введенными данными.

100
КП-02069154-836-13-12

Рисунок 133 – Форма задания «Уведомить о проведении запроса котировок» с


введенными данными
После нажатия кнопки «Задание выполнено» можно увидеть сообщение, показанное на
рисунке 134.

Рисунок 134 – Сообщение «Задание выполнено»


3. Все члены КК получают задание «Получить уведомление о проведении запроса
котировок». Они изучают полученную информацию, задают свои вопросы по заказу.
Будем заходить поочередно под логином каждого члена комиссии. Форма с введенным
вопросом Петрова А.А. (заместитель председателя КК) показана на рисунке 135.

101
КП-02069154-836-13-12

Рисунок 135 – Форма задания «Получить уведомление о проведении запроса котировок»


(выполняет Петров А.А.)
4. Иванову А.А. (председатель КК) приходит задание «Утвердить вопросы для
обсуждения и назначить дату и время встреч» (рисунок 136).

Рисунок 136 – Форма «Утвердить вопросы для обсуждения и назначить дату и время
встреч» с введенными данными

102
КП-02069154-836-13-12

5. Всем остальным членам котировочной комиссии приходит от председателя задание


«Ознакомиться с информацией по организации заседаний». Заполненная форма Сизовой А.А.
показана на рисунке 137.

Рисунок 137 – Форма «Ознакомиться с информацией по организации заседаний» с


указанием причины неявки на заседание
6. После того, как все оставшиеся члены комиссии ознакомятся с информацией по
организации заседаний, Иванову А.А. придет задание «Получить отчет о явке членов комиссии
на заседания» (рисунок 138).

Рисунок 138 – Форма «Получить отчет о явке членов комиссии на заседания»


Нажмем кнопку «Продолжить» для окончания процесса организации заседаний.
7. В указанную дату проведения заседания Орловой приходит задание «Разобраться с
нерешенными вопросами» (рисунок 139).

103
КП-02069154-836-13-12

Рисунок 139 – Форма «Разобраться с нерешенными вопросами» с введенным вопросом


для ЦЗО
Нажмем на кнопку «Направить имеющиеся вопросы»
8. Морозовой С.С. (секретарь ЦЗО) пришло задание «Ответить на вопросы котировочной
комиссии» (рисунок 140).

Рисунок 140 – Форма «Ответить на вопросы котировочной комиссии» с введенным


ответом
9. Каждому из членов КК приходит задание «Ознакомиться с информацией по
нерешенным вопросам» (рисунок 141).

104
КП-02069154-836-13-12

Рисунок 141 – Форма «Ознакомиться с информацией по нерешенным вопросам»


10. Орловой А.А. (секретарь КК) приходит задание «Ввести данные для генерации
извещения» (рисунок 142).

Рисунок 142 – Форма «Ввести данные для генерации извещения» с введенными данными
11. После того, как бот автоматически сгенерирует извещение Иванову (председатель
КК) придет задание «Проверить, редактировать составленное извещение» (рисунок 143).

Рисунок 143 – Форма «Проверить, редактировать составленное извещение»


Скачаем полученное извещение. На рисунке 144 показан файл сгенерированного
извещения.

105
КП-02069154-836-13-12

Рисунок 144 – Файл сгенерированного извещения


Можно убедиться, что данные заполнены правильно.
12. Чуть раньше времени начала подачи заявок Орловой приходит задание «Выставить
на сайте извещение и проект контракта» (рисунок 145).

Рисунок 145 – Форма «Выставить на сайте извещение и проект контракта»


13. Когда срок подачи заявок подходит к концу, Иванову приходит задание «Принять
решение о дальнейших действиях» (рисунок 146).

Рисунок 146 – Форма «Принять решение о дальнейших действиях»


Выберем решение «Составить протокол рассмотрения и оценки котировочных заявок».

106
КП-02069154-836-13-12

14. Ивановой пришло задание «Составить и направить протокол рассмотрения и оценки


заявок» (рисунок 147). Здесь необходимо загрузить файл составленного протокола.

Рисунок 147 – Форма «Составить и направить протокол рассмотрения и оценки заявок»


15. Члены ЦЗО получили задание «Получить протокол рассмотрения и оценки
котировочных заявок» (рисунок 148).

Рисунок 148 – Форма «Получить протокол рассмотрения и оценки котировочных заявок»


Бизнес-процесс «Проведение запроса котировок» окончен».

107
КП-02069154-836-13-12

Заключение
В курсовом проекте проведена автоматизация бизнес-процесса проведения запроса
котировок. Преимуществами автоматизации такого бизнес-процесса является то, что:
 Взаимодействие между сотрудниками происходит быстрее, чем, если это было,
например, по телефону;
 Бизнес-процесс проходит по четкой схеме, каждому приходят свои задания, не
стоит задумываться о распределении обязанностей и запоминать
последовательность выполняемых работ;
 Если изменились некоторые условия выполнения бизнес-процесса, то можно
легко отразить их и в автоматизированной модели процесса, часто даже не
прибегая к помощи программистов.
Можно сказать, что используемая в курсовом проекте система автоматизации бизнес-
процессов Runa WFE является достаточно эффективной, так как:
 Она содержит необходимые инструменты для построения модели процесса;
 Для описания данных процесса имеются все основные форматы;
 Формы заданий легко строятся с помощью конструктора форм, но также можно
воспользоваться и html-кодом.
В заключение необходимо отметить, что автоматизация бизнес-процесса проведения
запроса котировок может быть полезна для крупных и средних государственных организаций,
занимающихся госзаказами.

108
КП-02069154-836-13-12

Список используемых источников


1. RunaWFE. Документация. Расширенный лабораторный практикум по процессному
управлению. Часть1, http://wf.runa.ru/, 12.11.2012
2. Группа компаний Ланит: публикации, http://www.norbit.ru/ , 12.11.2012
3. Путеводитель по бюджетному учету и налогам. Практическое пособие по
размещению госзаказа: Электронный справочник. – Внес. 27.09.2012. –
КонсультантПлюс.
4. Типовое положение о котировочной комиссии, http://www.krd.ru/ , 12.11.2012
5. RunaWFE. Документация. Общее описание, http://wf.runa.ru/, 12.11.2012

109
КП-02069154-836-13-12

Лист регистрации изменений


Лист регистрации изменений
Номера листов (страниц) Всего № Входящий Под- Дата
Изм Изме- Заме- Новых Анну- листов доку- номер сопро- пись
ненных ненных лирован- (страниц) мента водительного
ных в доку- документа
менте

110

Вам также может понравиться