TrainingMaterialsCloud-NotRights IS: различия между версиями

Материал из RunaWFE
Перейти к навигации Перейти к поиску
 
(не показано 45 промежуточных версий 2 участников)
Строка 1: Строка 1:
<html>
<!-- <html>
<div class="linksPanel" style="width:40%;float:right;background-color:#efefef;padding:5px">
<div class="linksPanel" style="width:40%;float:right;background-color:#efefef;padding:5px">
</html>
</html> -->
=== Скачать десктопный редактор Developer Studio ===
=== Скачать десктопный редактор Developer Studio ===


Строка 13: Строка 13:


==== Установка ====
==== Установка ====
* Cкачать DS для своей операционной системы.
* Cкачать архив, содержащий DS для своей операционной системы.
* После скачивания распаковать скачанный zip.
* Распаковать скачанный zip.
* Запустить исполняемый файл в корне.
* Запустить исполняемый файл в корне, дождаться окончания установки приложения.
 
==== Настройка сединения ====
==== Настройка сединения ====
Перейдите во вкладку Свойства. Выберите в выпадающем меню Настройки.
Перейдите во вкладку Свойства. Выберите в выпадающем меню Настройки.
Строка 39: Строка 40:


Экспорт/импорт возможен напрямую, для этого надо выбрать "Экспорт на сервер" и настроенное, как указано выше, соединение, а также через файловую систему.
Экспорт/импорт возможен напрямую, для этого надо выбрать "Экспорт на сервер" и настроенное, как указано выше, соединение, а также через файловую систему.
<!--
<html>
<html>
</div>
</div>
</html>
</html>
-->


= Практическое занятие "Разработка бизнес-процесса "Заказ автотранспорта" =
= Практическое занятие "Разработка бизнес-процесса "Заказ автотранспорта" =
Строка 50: Строка 53:
== Теоретические сведения ==
== Теоретические сведения ==


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


Этот практикум проводится с использованием настольного редактора RunaWFE.
Этот практикум проводится с использованием настольного редактора RunaWFE.
Строка 72: Строка 75:
После удовлетворения заявка переносится в архив, заказчик получает задачу "Ознакомиться с запланированной заявкой", а "Гараж" должен отчитаться о выполненном рейсе.
После удовлетворения заявка переносится в архив, заказчик получает задачу "Ознакомиться с запланированной заявкой", а "Гараж" должен отчитаться о выполненном рейсе.


===Разработка бизнес-процесса "Заявка"===
=== Подготовка среды исполнения ===
 
Cкачайте и настройте настольный редактор RunaWFE DS (по описанию справа)
 
Создайте''' новый процесс "Заявка": '''Добавьте''' элементы на схему бизнес-процесса в соответствии с рисунком 2.5.
 
<center>[[Image:zak_5_441.png]]</center>
 
<center>Рисунок 2.5. Схема бизнес-процесса "Заявка"</center>
 
В бизнес-процессе используется следующие элементы: Начало, Действие, Задача сценария, Хранилище данных, Переход, Пунктирный переход, Таймер, Исключающий шлюз, Параллельный шлюз, Аннотация, Окончание.
 
Для элемента "Задача сценария" используйте опцию компактный вид (см. ''пункт 1 раздела "Практическое занятие "Работа с Word-ботом". [[TrainingMaterials_4_4_1_Documents#.D0.9F.D0.BE.D1.80.D1.8F.D0.B4.D0.BE.D0.BA_.D0.B2.D1.8B.D0.BF.D0.BE.D0.BB.D0.BD.D0.B5.D0.BD.D0.B8.D1.8F_.D1.80.D0.B0.D0.B1.D0.BE.D1.82.D1.8B|Порядок выполнения работы]].", Замечание. Рис.2.2'')
 
Для изменения названий по умолчанию, выделите элемент, щёлкнув по нему, перейдите в свойства и введите новое значение в поле "Название".
 
Для связи задачи сценария с иконкой хранилища данных используется специальный пунктирный переход.
 
==== Роли ====
'''Создайте''' роли (См. ''"Практикум. Вводное занятие", [[TrainingMaterials_4_4_1_Introduction#Создание роли|Порядок выполнения работы]], Пункт 21, Рис.5.21'').
 
 
В разрабатываемом процессе используются следующие Роли:
 
* Заказчик
* Канцелярия
* Гараж
* Руководитель.
 
 
'''Инициализируйте''' роли.


Роль "Заказчик" будет инициализирована пользователем, запустившим процесс, не требует инициализатора.
<ol>
<li>'''Зайдите''' в cреду исполнения своей компании. </li>


Роли "Канцелярия" и "Гараж" должны быть проинициализирована группами "Канцелярия" и "Гараж" соответственно. Выделите созданную роль, выберите кнопку "Изменить", перейдите на вкладку "Группы и пользователи WF". Здесь необходимо выполнить синхронизацию с сервером, после чего "Выбрать" из списка нужную группу (см. Рис.2.6). Для проверки и ввода параметров соединения с сервером воспользуйтесь ссылкой "Настройки соединения" (см. ''Практическое занятие "[[TrainingMaterials_4_4_1_Perspectives#.D0.9F.D0.BE.D1.80.D1.8F.D0.B4.D0.BE.D0.BA_.D0.B2.D1.8B.D0.BF.D0.BE.D0.BB.D0.BD.D0.B5.D0.BD.D0.B8.D1.8F_.D1.80.D0.B0.D0.B1.D0.BE.D1.82.D1.8B_2|Изучение перспективы ресурсов]]", Пункт 26, Рис.3.16-3.18'').
<p>&nbsp;</p>
<p>&nbsp;</p>
'''Замечание:''' В настоящем практикуме не планируется рассматривать систему прав. Поэтому для корректного прохождения убедитесь, что все они имеют состояние false (страница "Настройки" -> "Настройки прав доступа").


<center>[[Image:zak_6.png]]</center>
[[Файл:Cl-intro-4-07.png|800px|мини|центр|Рисунок 2.01. Выключение проверки прав доступа к объектам системы RunaWFE]]
 
<center>Рисунок 2.6. Инициализатор роли "Канцелярия" </center>
 
 
Инициализируйте роль "Руководитель" отношением "Руководитель организации", примененным к роли "Заказчик":
 
Для этого выделите "Руководитель" в списке ролей на вкладке "Роли" и щёлкните "Изменить".
 
В появившейся форме перейдите на вкладку "Задать роль с помощью отношения". Выберите кнопку "Синхронизация", затем "Выбрать" (См. Рис.2.7).
 
 
<center>[[Image:zak_7.png]]</center>
 
<center>Рисунок 2.7. Инициализация с помощью отношения </center>
 
 
В списке будут отображаться импортированные с сервера отношения, выберите "Руководитель организации" и выберите кнопку "ОК" (См. Рис.2.8).
 
 
<center>[[Image:zak_8.png]]</center>
 
<center>Рисунок 2.8. Окно выбора отношения </center>
 
 
Откройте список для поля "Параметр отношения" и выберите роль "Заказчик" (См. Рис.2.9). Выберите кнопку "ОК".
 
 
<center>[[Image:zak_9.png]]</center>
 
<center>Рисунок 2.9. Инициализация роли Руководитель с помощью отношения </center>
 
 
'''Свяжите''' роли с узлами на графе.
 
Роль «Заказчик» с узлами "Начало", "Ознакомиться с отказом" и "Ознакомиться с запланированной заявкой" (Подробнее см. ''"Практикум. Вводное занятие", [[TrainingMaterials_4_4_1_Introduction#Связывание узла с ролью|Порядок выполнения работы]], Пункт 22'').
 
Остальные роли свяжите с узлами в соответствии с рисунком 2.5.
 
==== Переменные ====
 
'''Создайте''' новый тип данных.
 
Заявка будет состоять из следующего набора данных:
 
* "id" - идентификатор заявки (Строка)
* "ФИО заказчика" (Строка)
* "Тип авто" (Строка)
* "Количество мест" (Целое число)
* "С" - Дата/время подачи авто (Дата/Время)
* "По" - Дата/время окончания рейса (Дата/Время)
* "Статус" (Строка).
 
 
Эти данные удобно использовать в виде полей переменной пользовательского типа.


Перейдите на вкладку "Типы данных", выберите кнопку "Создать" в области "Типы данных".
В появившемся окне введите название типа - "Заявка", а также установите опцию "Таблица БД", выберите кнопку "OK".
Таким образом тип "Заявка" может быть использован в обработчике внутреннего хранилища.
<p>&nbsp;</p>
<p>&nbsp;</p>
<li>'''Создайте''' исполнителей для будущих процессов. </li>
</ol>


<center>[[Image:zak_10_441.png]]</center>
Создание описано [[TrainingMaterials_4_4_1_InternalStorage#Подготовьте_среду_исполнения|по ссылке]].
 
<center>Рисунок 2.10. Создание нового типа </center>
 
 
Далее добавьте Атрибуты, соответствующие перечисленному выше набору данных. Для этого используйте кнопку "Создать", расположенную в области "Атрибуты".
 
 
<center>[[Image:zak_11.png]]</center>
 
<center>Рисунок 2.11. Добавление атрибута </center>
 
 
В появившемся окне введите название атрибута и выберите кнопку "OK". Форма создания атрибута не отличается от формы создания переменной.
 
Создайте все атрибуты заявки:
 
 
<center>[[Image:zak_12.png]]</center>
 
<center>Рисунок 2.12. Атрибуты заявки </center>
 
 
По заданию, заявка после обработки должна быть помещена в архив.
Таким образом потребуется создать еще один тип данных с признаком таблицы БД - "Архивная заявка".
Выделите тип данных "Заявка" и выберите кнопку "Копировать", затем "Вставить". В появившемся окне введите название переменной "Архивная заявка", и также установите признак "Таблица БД".
 
 
<center>[[Image:zak_12_2_441.png]]</center>
 
<center>Рисунок 2.13. Копирование типа данных</center>
 
 
'''Создайте''' переменные:
 
* "Заявка" - переменная пользовательского типа "Заявка"
* "Архивная заявка" - переменная пользовательского типа "Заявка"
* "Заявки" - переменная формата Список(Заявка)
* "Комментарий заказчика" - переменная формата "Текст"
* "Комментарий руководителя" - переменная формата "Текст"
* "Комментарий канцелярии" - переменная формата "Текст".
 
 
<center>[[Image:zak_13_441.png]]</center>
 
<center>Рисунок 2.14. Переменные процесса Заявка </center>
 
 
Для создания переменной перейдите на вкладку "Переменные" и выберите кнопку "Создать". В появившейся форме введите название переменной, выберите кнопку "Далее" и выберите ее формат (Подробнее см. ''"Практикум.Перспективы исполнимых бизнес-процессов", Практическое занятие "Изучение перспективы данных", [[TrainingMaterials_4_4_1_Perspectives#.D0.9F.D0.BE.D1.80.D1.8F.D0.B4.D0.BE.D0.BA_.D0.B2.D1.8B.D0.BF.D0.BE.D0.BB.D0.BD.D0.B5.D0.BD.D0.B8.D1.8F_.D1.80.D0.B0.D0.B1.D0.BE.D1.82.D1.8B_3|Порядок выполнения работы]], Пункт 5'').
 
==== Графические формы ====
 
'''Стартовая форма'''
 
На данной форме заказчик вводит данные заявки.
 
Выделите узел «Начало» графа процесса "Заявка" правой кнопкой мыши и выберите команду «Форма» > «Создать форму» (Подробнее см. ''Практическое занятие "Изучение перспективы данных", [[TrainingMaterials_4_4_1_Perspectives#.D0.9F.D0.BE.D1.80.D1.8F.D0.B4.D0.BE.D0.BA_.D0.B2.D1.8B.D0.BF.D0.BE.D0.BB.D0.BD.D0.B5.D0.BD.D0.B8.D1.8F_.D1.80.D0.B0.D0.B1.D0.BE.D1.82.D1.8B_3|Порядок выполнения работы]], Пункт 6, Замечание, Рис.4.11-4.12'').
 
На данной форме заказчик вводит данные заявки на автотранспорт.
 
Добавьте на форму текст "Введите данные заявки".
 
Выберите кнопку на иконку вставки в форму таблицы (см. Рис.2.15), используйте 2 столбца и 4 строки (см. Рис.2.16).
Расположите таблицу под текстом "Введите данные заявки".
 
 
<center>[[Image:zak_14.png]]</center>
 
<center>Рисунок 2.15. Вставка таблицы на форму </center>
 
 
<center>[[Image:zak_15.png]]</center>
 
<center>Рисунок 2.16. Свойства таблицы </center>
 
 
Заполните колонки таблицы, как показано на рисунке 2.17. Во втором столбце используйте компонент формы "Ввод переменной". Для этого перейдите на вкладку "Компоненты форм", выделите необходимый компонент, в данном случае это "Ввод переменной" и с помощью мыши перетащите его на форму (Подробнее см. ''Практическое занятие "Изучение перспективы операций", [[TrainingMaterials_4_4_1_Perspectives#.D0.9F.D0.BE.D1.80.D1.8F.D0.B4.D0.BE.D0.BA_.D0.B2.D1.8B.D0.BF.D0.BE.D0.BB.D0.BD.D0.B5.D0.BD.D0.B8.D1.8F_.D1.80.D0.B0.D0.B1.D0.BE.D1.82.D1.8B_4|Порядок выполнения работы]], Пункт 14, Рис.5.17, 5.18'').
 
 
'''Замечание'''. Альтернативным способом добавления на форму может быть двойной щелчок левой кнопкой мыши по компоненту, после чего он будет добавлен в текущее положение курсора на форме.
 
 
Для вызова свойств добавленного на форму компонента используйте двойной щелчок левой кнопкой мыши или пункт "Параметры компонента" контекстного меню (вызывается правой кнопкой мыши).
 
В качестве параметра "Название переменной" задайте соответствующие поля переменной пользовательского формата "Заявка" (см. Рис.2.18).
 
 
<center>[[Image:zak_16_st.png]]</center>
 
<center>Рисунок 2.17. Заполненная таблица ввода данных заявки </center>
 
 
<center>[[Image:zak_17.png]]</center>
 
<center>Рисунок 2.18. Ввод полей пользовательской переменной "Заявка"</center>
 
 
Расположите под таблицей компонент для ввода переменной "Комментарий заказчика".
 
 
<center>[[Image:zak_18_st.png]]</center>
 
<center>Рисунок 2.19. Стартовая форма процесса "Заявка"</center>
 
 
Сохраните и закройте форму.
 
 
'''Задайте''' валидацию для переменных стартовой формы.
 
 
Для этого щёлкните на стартовой форме правой кнопкой мыши и выберите пункт "Форма > Проверка переменных формы", в появившейся форме выделяйте переменные и устанавливайте необходимые валидаторы. (Подробнее см. ''Практическое занятие "Изучение перспективы операций", [[TrainingMaterials_4_4_1_Perspectives#.D0.9F.D0.BE.D1.80.D1.8F.D0.B4.D0.BE.D0.BA_.D0.B2.D1.8B.D0.BF.D0.BE.D0.BB.D0.BD.D0.B5.D0.BD.D0.B8.D1.8F_.D1.80.D0.B0.D0.B1.D0.BE.D1.82.D1.8B_4|Порядок выполнения работы]].  Пункт 15, Рис.5.27, 5.28'').
 
Для "Заявка.Тип авто" добавьте валидатор "Обязательное поле". В поле "Сообщение об ошибке" введите - "Обязательное поле".
 
Для "Заявка.Количество мест" добавьте валидатор "Обязательное поле", а также "Диапазон числа", установив минимальное значение в "1" включительно (см. Рис.2.20). При этом в поле "Сообщение об ошибке" введите - "Должно быть задано минимум одно место".
 
Для "Заявка.С" добавьте валидатор "Обязательное поле", а также "Диапазон даты относительно текущей", установив параметр "Сдвиг в прошлое" в значение "0" (см. Рис.2.21), при этом в поле "Сообщение об ошибке" введите - "Дата подачи авто не может быть в прошлом".
 
Для "Заявка.По" используйте такие же валидаторы, как и для "Заявка.С".
 


<center>[[Image:zak_19_st.png]]</center>
===Разработка бизнес-процессов в настольном редакторе===


<center>Рисунок 2.20. Валидатор "Диапазон числа" для "Заявка.Количество мест"</center>


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


<center>[[Image:zak_20_st.png]]</center>
*'''"Заявка"''' - процесс, предназначенный непосредственно для подачи заявки на авто


<center>Рисунок 2.21. Валидатор "Диапазон даты относительно текущей" для "Заявка.С"</center>
*'''"Планирование"''' - процесс, с помощью которого диспетчер будет обрабатывать поданные заявки.


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


Кроме того, необходимо добавить глобальный валидатор для проверки условия "Дата/время окончания рейса должны быть позже даты/времени подачи авто".
*[[TrainingMaterials_4_4_1_InternalStorage#.D0.91.D0.B8.D0.B7.D0.BD.D0.B5.D1.81-.D0.BF.D1.80.D0.BE.D1.86.D0.B5.D1.81.D1.81_.22.D0.97.D0.B0.D1.8F.D0.B2.D0.BA.D0.B0.22|Бизнес-процесс "Заявка"]]
Для этого перейдите на вкладку "Глобальные валидаторы", затем "Добавить". В поле сообщение об ошибке введите "Дата/время окончания рейса должны быть позже даты/времени подачи авто", а в конфигураторе задайте


Заявка.По позже Заявка.С
*[[TrainingMaterials-NotRights_4_4_1_InternalStorage#.D0.91.D0.B8.D0.B7.D0.BD.D0.B5.D1.81-.D0.BF.D1.80.D0.BE.D1.86.D0.B5.D1.81.D1.81_.22.D0.9F.D0.BB.D0.B0.D0.BD.D0.B8.D1.80.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5.22|Бизнес-процесс "Планирование"]].


===Внутреннее хранилище===


<center>[[Image:zak_21_st_a.png]]</center>
В качестве внутреннего хранилища данных о заявках используется Внутреннее хранилище (таблицы будут доступны после создания по клику на пункт "Внутреннее хранилище" в левом меню на онлайн-сервере). Строки соответствуют заявкам, а столбцы атрибутам заявки (id, Тип авто, Статус и т.д.).  


<center>(а)</center>
Каждому типу переменной с установленной опцией "Таблица БД" (в редакторе) соответствует отдельная таблица на вкладке "Внутреннее хранилище", имя которой совпадает с именем типа.


<center>[[Image:zak_21_st_b.png]]</center>
Для работы с данным хранилищем используется специальный обработчик, позволяющий выполнять простейшие действия с данными:


<center>(б)</center>
<u>'''''Действие INSERT'''''</u>


<center>[[Image:zak_21_st_c.png]]</center>
Предназначено для добавления данных в хранилище. Вставка выполняется в следующую свободную строку. В качестве входных данных используется переменная пользовательского типа или список из таких переменных.
Например, в разрабатываемом процессе данное действие будет использовано для вставки во внутреннее хранилище поданной заявки.


<center>(в)</center>
<u>'''''Действие SELECT'''''</u>


<center>Рисунок 2.22. а). переход б). добавление  в). конфигуратор глобального валидатора </center>
Предназначено для чтения данных из хранилища, может быть использована с условием. Например, для выборки заявок с определенным статусом.  


'''Форма узла "Одобрить заявку"'''
'''Замечание:''' В качестве результата всегда возвращает список, даже если был получен только один элемент. Именно поэтому в процессе "Заявка", после чтения заявки по ее id, дополнительно используется обработчик "Получить элемент списка".


'''Создайте''' форму для узла "Одобрить заявку".
<u>'''''Действие UPDATE'''''</u>


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


Например, в разрабатываемом процессе используется для обновления заявки после изменения ее статуса с "Не обработана" на "Запланирована" по номеру ее id.


<center>[[Image:zak_21_st.png]]</center>
<u>'''''Действие DELETE'''''</u>


<center>Рисунок 2.23. Форма "Одобрить заявку"</center>
Предназначено для удаления переменной из внутреннего хранилища. Используется с условием, иначе будут удалены все переменные из хранилища.


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


Используйте компонент "Отобразить переменную" для вывода значений переменных "Заявка" и "Комментарий заказчика". В качестве вида отображения используйте "Как неактивный компонент ввода".


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


<center>[[Image:zak_22.png]]</center>


<center>Рисунок 2.24. Компонент "Отобразить переменную"</center>
<center>[[Image:zak_int_db_8.png]]</center>


<center>Рисунок 2.02. Использование внутреннего хранилища для действий Insert/Update/Delete</center>


'''Создайте''' аналогичным образом остальные формы.


<center>[[Image:zak_int_db_9.png]]</center>


<center>[[Image:zak_23.png]]</center>
<center>Рисунок 2.03. Использование внутреннего хранилища для действия Select</center>


<center>Рисунок 2.25. Форма "Принять заявку"</center>
=== Конфигурация обработчиков ===


*[[TrainingMaterials_InternalStorage#Задача_сценария_"Добавить_заявку_в_хранилище"_в_БП_"Заявка"|Задача сценария "Добавить заявку в хранилище" в БП "Заявка"]]


<center>[[Image:zak_24.png]]</center>
*[[TrainingMaterials_InternalStorage#Задача_сценария_"Считать_заявку_из_хранилища"_в_БП_"Заявка"|Задача_сценария "Считать заявку из хранилища" в БП "Заявка"]]


<center>Рисунок 2.26. Форма "Ознакомиться с отказом"</center>
*[[TrainingMaterials_InternalStorage#Задача_сценария_"Добавить_заявку_в_хранилище_архивных_заявок"_в_БП_"Заявка"|Задача сценария "Добавить заявку в хранилище архивных заявок" в БП "Заявка"]]


*[[TrainingMaterials_InternalStorage#Задача сценария_"Удалить_обработанную_заявку_из_хранилища"_в_БП_"Заявка"|Задача сценария "Удалить обработанную заявку из хранилища" в БП "Заявка"]]


<center>[[Image:zak_25.png]]</center>
*[[TrainingMaterials_InternalStorage#Задача сценария_"Считать_из_хранилища_необработанные_заявки"_в_БП_"Планирование"|Задача сценария "Считать из хранилища необработанные заявки" в БП "Планирование"]]


<center>Рисунок 2.27. Форма "Ознакомиться с запланированной заявкой"</center>
*[[TrainingMaterials_InternalStorage#Задача_сценария_"Обновить_заявку"_в_БП_"Планирование"|Задача сценария "Обновить заявку" в БП "Планирование"]].


==== Обработчики ====
== Выполнение процессов ==


'''Выберите''' класс обработчиков и задайте конфигурации.
Выполнение аналогично выполнению на [[TrainingMaterials_4_4_1_InternalStorage#Выполнение_процессов|локальном симуляторе]] среды исполнения.

Текущая версия на 17:58, 23 июля 2023

Скачать десктопный редактор Developer Studio

Установка

  • Cкачать архив, содержащий DS для своей операционной системы.
  • Распаковать скачанный zip.
  • Запустить исполняемый файл в корне, дождаться окончания установки приложения.

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

Перейдите во вкладку Свойства. Выберите в выпадающем меню Настройки.

В настройках слева пункт Интеграция - RunaWFE Сервер.

Нажмите кнопку справа внизу "Новое соединение".

Заполнить:

  • Протокол: https
  • Имя компьютера: cloud.runawfe.ru
  • Порт: 443
  • Логин: Administrator (по умолчанию)
  • Пароль: "Пароль администратора"
  • Компания: "Ваша компания"

Нажмите кнопку "Проверить соединение".

Должно появиться окошко с надписью "Соединение проверено".

После этого можно производить экспорт/импорт процессов на сервер/с сервера по правой кнопке мыши.

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

Практическое занятие "Разработка бизнес-процесса "Заказ автотранспорта"

Цель занятия

Целью занятия является изучение работы с внутренним хранилищем данных в онлайн-версии.

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

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

Этот практикум проводится с использованием настольного редактора RunaWFE.

Для работы с внутренним хранилищем в RunaWFE используется специальный элемент палитры - "Хранилище данных", связанный с задачей-сценарием. Выбор обработчика в задаче-сценарием выполняется автоматически. Установка конфигурации обработчика выполняется в зависимости от способа связи с иконкой базы данных в нотации BPMN. При связи “обработчик -> иконка” в конфигурации доступны 3 операции: insert, delete, update. При связи “иконка -> обработчик” в конфигурации доступна только операция select. Таблице в БД соответствует используемый тип переменной с установленным признаком "Таблица БД".

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

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

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

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

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

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

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

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

  1. Зайдите в cреду исполнения своей компании.
  2.  

    Замечание: В настоящем практикуме не планируется рассматривать систему прав. Поэтому для корректного прохождения убедитесь, что все они имеют состояние false (страница "Настройки" -> "Настройки прав доступа").

    Рисунок 2.01. Выключение проверки прав доступа к объектам системы RunaWFE

     

  3. Создайте исполнителей для будущих процессов.

Создание описано по ссылке.

Разработка бизнес-процессов в настольном редакторе

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

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

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

Внутреннее хранилище

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

Каждому типу переменной с установленной опцией "Таблица БД" (в редакторе) соответствует отдельная таблица на вкладке "Внутреннее хранилище", имя которой совпадает с именем типа.

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

Действие INSERT

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

Действие SELECT

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

Замечание: В качестве результата всегда возвращает список, даже если был получен только один элемент. Именно поэтому в процессе "Заявка", после чтения заявки по ее id, дополнительно используется обработчик "Получить элемент списка".

Действие UPDATE

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

Например, в разрабатываемом процессе используется для обновления заявки после изменения ее статуса с "Не обработана" на "Запланирована" по номеру ее id.

Действие DELETE

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

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


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


Zak int db 8.png
Рисунок 2.02. Использование внутреннего хранилища для действий Insert/Update/Delete


Zak int db 9.png
Рисунок 2.03. Использование внутреннего хранилища для действия Select

Конфигурация обработчиков

Выполнение процессов

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