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

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


В разделе "Практикум. Вводное занятие" были рассмотрены исполнимые бизнес-процессы и административные регламенты, дано определение исполнимого бизнес-процесса, основанное на четырех перспективах. Также в первой части практикума было дано описание основных элементов систем управления бизнес-процессами и административными регламентами на примере свободного ПО с открытым кодом RunaWFE Free, показано, как установить систему и приведено вводное занятие, в котором объяснены базовые операции, позволяющие разрабатывать и исполнять бизнес-процессы.
В разделе "Практикум. Вводное занятие" были рассмотрены исполнимые бизнес-процессы и административные регламенты, дано определение исполнимого бизнес-процесса, основанное на четырех перспективах. Также в первой части практикума:
<ul>
<li>было дано описание основных элементов систем управления бизнес-процессами и административными регламентами на примере свободного ПО с открытым кодом RunaWFE Free
<li>показано, как установить систему  
<li>приведено вводное занятие, в котором объяснены базовые операции, позволяющие разрабатывать и исполнять бизнес-процессы.
</ul>
 


В разделе "Практикум. Перспективы исполнимых бизнес-процессов" приведено описание четырех практических занятий, посвященных изучению четырех перспектив исполнимого бизнес-процесса:
В разделе "Практикум. Перспективы исполнимых бизнес-процессов" приведено описание четырех практических занятий, посвященных изучению четырех перспектив исполнимого бизнес-процесса:
Строка 14: Строка 20:
   • перспектива ресурсов (resource perspective)
   • перспектива ресурсов (resource perspective)
   • перспектива данных (data perspective)
   • перспектива данных (data perspective)
   • перспектива операций (operational perspective)
   • перспектива операций (operational perspective).
Разделы практикума "Вводное занятие" и "Перспективы исполнимых бизнес-процессов" можно найти на сайте проекта RunaWFE Free в разделе Учебные материалы по процессному управлению.
Разделы практикума "Вводное занятие" и "Перспективы исполнимых бизнес-процессов" можно найти на сайте проекта RunaWFE Free в разделе Учебные материалы по процессному управлению.


В данном разделе практикума рассмотрена и объяснена работа с MS Word и MS Excel документами, приведено описание самостоятельного занятия.
В данном разделе практикума рассмотрена и объяснена работа с MS Word и MS Excel документами, приведено описание самостоятельного занятия.  




'''Замечание:''' В RunaWFE Free 4.4.1 для упрощения работы, по умолчанию проверка прав доступа отключена. Это означает что при доступе к объектам системы (исполнители, определения БП, экземпляры БП, отчеты, отношения, источники данных, действия с системой) права пользователя не проверяются. Но для изучения системы прав необходимо включить проверки. Для этого вам потребуется перевести в значение "true" параметры, расположенные на странице "Настройки" -> "Настройки прав доступа".
[[Файл:442-Intro 04-02-02.png|обрамить|центр|Рисунок 1.01. Включение проверки прав доступа к объектам системы RunaWFE]]


= Практическое занятие 05: "Работа с MS Word-документами" =
= Практическое занятие 05: "Работа с MS Word-документами" =
Строка 30: Строка 39:


<ol>
<ol>
<li>'''Запустите''' среду разработки. </li>
<li>'''Пройдите в браузере''' в приложение RunaWFE (облачную версию RunaWFE) по ссылке https://cloud.runawfe.ru/. Создайте свою компанию. </li>
Создайте новый проект - "Занятие 05". Создайте в нём новый бизнес-процесс "Пример 05-1". Используйте следующие элементы для создания бизнес-процесса в соответствии с Рис.2.01:[[Файл:Blank.png|без]]
 
'''Замечание:''' Пользователь Administrator создаётся при создании компании автоматически с паролем по умолчанию - "wf". В дальнейшем, зайдя в веб-приложение, можно установить свой пароль пользователя Administrator (в настройках пользователя - пункт меню "Исполнители").
 
<li>'''Зайдите''' в систему RunaWFE под учётной записью Administrator. </li>
 
<li>'''Появится окно''' приложения. Перейдите в раздел «Редактор процессов». </li>
 
<li>'''Создайте''' новый проект - "Занятие 05". Создайте в нём новый бизнес-процесс "Пример 05-1". Используйте следующие элементы для создания бизнес-процесса в соответствии с Рис.2.01: </li>
<p></p>
   • Начало
   • Начало
   • Задача сценария
   • Задача сценария
Строка 37: Строка 54:
   • Параллельный шлюз
   • Параллельный шлюз
   • Исключающий шлюз
   • Исключающий шлюз
   • Подпроцесс
   • Подпроцесс.  
 
 
[[Файл:R187e ru.png|обрамить|центр|Рисунок 2.01. Схема бизнес процесса "Пример 05-1"]]
 
 
'''Замечание:''' Для узлов типа "Задача сценария" используйте компактный вид. Для этого щёлкните на элементе правой клавишей мыши и выберите пункт "Опции/Компактный вид" (Рис.2.02), после чего элемент примет вид, изображенный на Рисунке 2.01. Используйте данную опцию для всех 4 узлов-сценариев.


[[Файл:R188 ru.png|обрамить|центр|Рисунок 2.02. Компактный вид для задач сценариев]]
[[Файл:442-Documents 2-01.png|обрамить|центр|Рисунок 2.01. Схема бизнес-процесса "Пример 05-1"]]


Создайте роли:
Создайте роли:
Строка 52: Строка 63:
   • Отдел кадров
   • Отдел кадров
   • Директор
   • Директор
   • Бухгалтер
   • Бухгалтер.
Далее выберите для узлов роли в соответствии с рисунком 2.01.
 
Далее для узлов бизнес-процесса выберите роли в соответствии с Рис.2.01.
 
'''Замечание.''' Роль "Руководитель" инициализируется в стартовом узле бизнес-процесса сотрудником, запустившим этот экземпляр бизнес-процесса. Но для получения ожидаемого в примере результата предполагаем, что процесс будет запускать Паучков.
 
<li>'''Создайте группы:'''</li><p></p>
 
  • Директор
  • Отдел кадров
  • Бухгалтеры
  • Сотрудники.
 
(см. ''"Вводное занятие". [Прядок выполнения работы] Пункт 5, Рис.5.6'').
 
<li>'''Инициализируйте роли''' "Директор", "Отдел кадров", "Бухгалтер" с помощью соответствующих групп (Директор, Отдел кадров, Бухгалтеры).</li>
 
Для этого вернитесь в редакторе к разрабатываемому процессу, перейдите на вкладку Роли, выберите роль и щёлкните на кнопку "Edit", находящуюся перед ней. Используйте инициализацию с помощью групп wf (подробнее см. Практическое занятие "Изучение перспективы операций", Порядок выполнения работы, Пункт 13, Рис.5.13-5.14).
 
<li>'''Создайте''' указанных ниже исполнителей и распределите их по группам:</li><p></p>
 
Добавьте в группу "Директор" исполнителей:
  • Стрекозин Александр Николаевич. 
 
Добавьте в группу "Бухгалтеры" исполнителей:
  • Жуков Иван Ильич
  • Бражникова Ольга Иосифовна.  


'''Замечание.''' Роль "Руководитель" инициализируется в стартовом узле бизнес-процесса сотрудником, запустившим этот экземпляр бизнес-процесса.
Добавьте в группу "Отдел кадров" исполнителей:


<li>'''Войдите''' в систему Runa-WEB под пользователем Administrator (стандартный пароль - wf).</li>
  • Личинкин Василий Федорович
  • Гусеницын Михаил Васильевич.  


<li>'''Создайте''' в системе Runa-WEB отношение "Руководитель" (См. пример создания отношения в пунктах 10-11 раздела "Практическое занятие "Изучение перспективы ресурсов", рис. 3.5, 3.6). </li>
Добавьте в группу "Сотрудники" исполнителей:


Откройте отношение "Руководитель" и создайте пару "Паучков"-"Сверчков" (Рис.2.03).[[Файл:Blank.png|без]]
  • Жуков Иван Ильич
  • Бражникова Ольга Иосифовна
  • Личинкин Василий Федорович
  • Гусеницын Михаил Васильевич
  • Сверчков Иван Иванович
  • Паучков Петр Петрович
  • Стрекозин Александр Николаевич.  


<li>'''Создайте''' отношение "Руководитель" (См. ''пример создания отношения в пунктах 10-11 раздела "Практическое занятие "[[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|Изучение перспективы ресурсов]]", Рис.3.5-3.6'').
</li>


[[Файл:442-Documents 2-03.png|обрамить|центр|Рисунок 2.03. Отношение Руководитель]]
Откройте отношение "Руководитель" и создайте пару "Паучков " - "Сверчков" (см.Рис.2.01а).




Таким образом, Паучков является руководителем Сверчкова.
[[Файл:442-Documents 2-02.png|обрамить|центр|Рисунок 2.01а. Отношение Руководитель]]


<li>'''Создайте''' группы:</li>[[Файл:Blank.png|без]]
 
  • Отдел кадров
  • Бухгалтеры
  • Директор
  • Сотрудники


(см. Вводное занятие. [выполнения работы] Пункт 5, рис. 5.6).
Таким образом, Паучков руководитель Сверчкова.


<li>'''Инициализируйте''' роли "Директор", "Отдел кадров", "Бухгалтер" и "Сотрудник" с помощью соответствующих групп (Директор, Отдел кадров, Бухгалтеры, Сотрудники).</li>
<li>'''Создайте переменные''' в соответствии с Рис.2.02.</li><p></p>


Для этого вернитесь в среде разработки к разрабатываемому процессу, перейдите на вкладку Роли, выделите роль и нажмите на "Изменить". Используйте инициализацию с помощью групп wf (подробнее см. Практическое занятие "Изучение перспективы операций", Порядок выполнения работы, Пункт 13, рис. 5.13-5.14).
[[Файл:442-Documents 2-04.png|обрамить|центр|Рисунок 2.02. Переменные бизнес-процесса]]


<li>'''Создайте''' переменные в соответствии с Рис.2.04.</li>[[Файл:Blank.png|без]]


Для переменной "Отношение" необходимо использовать значение по умолчанию "Руководитель".


[[Файл:R190e ru.png|обрамить|центр|Рисунок 2.04. Переменные бизнес-процесса]]
<li>'''Создайте форму''' для стартового узла "Подать заявку на премию". </li><p></p>


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


Для переменной "Отношение" необходимо использовать значение по умолчанию. Для этого выделите переменную и выберите кнопку "Изменить", затем кнопкой "Далее" переключитесь на страницу "Использовать значение по умолчанию", после чего в текстовое поле введите "Руководитель" (Рис.2.05).
Щёлкните правой кнопкой по стартовому узлу и выберите пункт "Create custom form" ("Создайте пользовательскую форму") (Рис.2.03).  


[[Файл:442-Documents 2-05-01.png|обрамить|центр|Рисунок 2.03. Бланк пользовательской формы]]


[[Файл:R190be ru.png|обрамить|центр|Рисунок 2.05. Ввод значения по умолчанию для переменной]]
Для создания поля щёлкните в этом меню кнопку "add new component". В меню формирования компонента из выпадающего списка "component" выберите компонент формы "Choose executor by relation" ("Выбрать пользователя по отношению [с параметром]"). Данный компонент формирует список выбора пользователя по отношению, отфильтрованного по параметру отношения (при этом группы в список не попадают) (Рис.2.04).


[[Файл:R190c ru.png|обрамить|центр|Рисунок 2.06. Вид списка переменных при использовании IE11]]
[[Файл:442-Documents 2-06-01.png|обрамить|центр|Рисунок 2.04. Выбор типа компонента формы]]


В появившемся меню заполните поля как показано на Рис.2.05 и выберите кнопку "create".


<li>'''Создайте форму''' для стартового узла "Подать заявку на премию" (Рис.2.07). </li>[[Файл:Blank.png|без]]
[[Файл:442-Documents 2-07-03.png|обрамить|центр|Рисунок 2.05. Создание в форме поля "Сотрудник"]]


'''Замечание.''' По умолчанию в качестве редактора форм используется CKEditor4, но в случае если у вас в системе установлен браузер Microsoft Internet Explorer устаревшей версии - 6 (IE6) или 7 (IE7), то с формами могут возникнуть проблемы. Поэтому следует переключить редактор на FCKEditor2 (См. Практическое занятие "Изучение перспективы данных", Пункт 6, Рис. 4.9, 4.10).  
Аналогичным образом создайте поля "Размер премии" и "Описание выполненных работ". Эти поля имеют текстовое заполнение и для них следует выбирать тип компонента "Input variable" (Рис.2.04). Окончательный вид меню создания формы для стартового узла представлен на Рис.2.06.  


На данной форме Руководитель, стартуя бизнес-процесс, будет вводить данные (сотрудник, размер премии, выполненные работы) для подачи заявки на премию.
[[Файл:442-Documents 2-08-01.png|обрамить|центр|Рисунок 2.06. Окончательный вид интерфейса создания формы стартового узла]]


HTML-текст заголовка на форме "Заявка на премирование сотрудника"


[[Файл:442-Documents 2-07-01.png|обрамить|центр|Рисунок 2.07. Форма стартового узла]]
&lt;P style="text-align: center;">
&lt;SPAN style="font-size: 20px;">&lt;SRTONG>Заявка на премирование сотрудника&lt;/STRONG>&lt;/SPAN>
&lt;/P>


необходимо ввести руками в режиме редактирования HTML на форме. Для входа в него выберите ссылку "edit" справа от ссылки "html", с помощью которой можно управлять видимостью HTML-скрипта формы. Для сохранения введённого в скрипт изменения выберите ссылку "update" над скриптом.


Напротив строки "Сотрудник" расположите компонент форм "Выбрать пользователя по отношению с параметром". Данный компонент формирует список выбора по отношению пользователя, отфильтрованного по параметру отношения (при этом группы в список не попадают).
<li>'''Настройте''' задачи сценариев. </li><p></p>


Дважды кликните по добавленному на форму компоненту, далее в поле "Пользователь" выберите роль "Сотрудник".
По задаче сценария "ФИО сотрудника" щёлкните правой кнопкой мыши и из выпавшего меню выберите команду "Configurate script" ("Отконфигурировать скрипт"). В поле "Handler" появившегося меню выберите обработчик "Get executor unfo" ("Получить информацию об исполнителе"). Меню приобретёт вид, показанный на Рис.2.07. Заполните остальные поля согласно этому рисунку и выберите кнопку "update".
Поля "Название отношения" и "Параметр" необходимо заполнить с помощью переменных, для этого нажмите на кнопку "..." напротив поля, а затем кликните на ссылку "Выберите переменную" (Рис.2.08), после чего откроется список доступных для выбора переменных.


В поле "Название отношения" выберите строковую переменную "Отношение", в качестве параметра выберите роль "Руководитель".
[[Файл:442-Documents 2-09.png|обрамить|центр|Рисунок 2.07. Параметры задачи сценария "ФИО сотрудника"]]


Кроме того, используйте обратное отношение (Рис.2.09).
Выбранный обработчик определяет полное имя (ФИО) Сотрудника и сохраняет результат в строковую переменную "ФИО сотрудника".  


Но в служебной записке и приказе на премирование должно использоваться ФИО в дательном падеже.
Это значение позволит получить следующая задача сценария "ФИО сотрудника в дательном падеже", в конфигурации которого необходимо выбрать класс обработчика "Execute formula" ("Выполнить формулу").
В текстовое поле конфигурации обработчика добавьте следующую формулу:


[[Файл:R191be ru.png|обрамить|центр|Рисунок 2.08. Выбор переменной в качестве названия отношения]]
'ФИО сотрудника 3'=FIO_case_ru('ФИО сотрудника', 3, "F i o");


''''ФИО сотрудника 3'''' - переменная, в которую будет сохранено ФИО в дательном падеже,


[[Файл:R191ce ru.png|обрамить|центр|Рисунок 2.09. Выбор пользователя по обратному отношению "Руководитель"]]
'''FIO_case_ru'''(fio, caseNumber, mode) - функция, склоняющая ФИО, имеет параметры:
* '''fio''' - фамилия, имя и отчество в именительном падеже (в нашем случае задана с помощью переменной 'ФИО сотрудника')
* '''caseNumber''' - номер падежа от 1 до 6 (в нашем случае 3 - это Дательный падеж)
* '''mode''' - строка форматирования:
    Символы форматирования F, I и O заменяются на фамилию, имя или отчество в соответствующем падеже
    Символы форматирования f, i и o заменяются на первую букву фамилии, имени или отчества.


Т.е. данный обработчик сформирует Фамилию в дательном падеже, добавив к ней первую букву Имени и первую букву Отчества, например "Иванову И.И.".


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


Напротив строки "Сумма" расположите компонент для ввода переменной "Размер премии" (Рис.2.10).
[[Файл:442-Documents 2-09-n08.png|обрамить|центр|Рисунок 2.08. Получение ФИО сотрудника в дательном падеже]]
Также разместите компонент для ввода переменной "Описание выполненных работ".




[[Файл:442-Documents 2-07-01.png|обрамить|центр|Рисунок 2.10. Ввод переменной "Размер премии"]]
Следующая задача сценария (Рис.2.09) - это "Определение текущей даты". Здесь также используется обработчик "Execute formula" ("Выполнить формулу").
Конфигурация имеет следующее выражение


  'Текущая дата' = current_date();


Сохраните и закройте форму.
Функция current_date определяет текущую дату и сохраняет результат в переменную "Текущая дата".


[[Файл:442-Documents 2-09-n09.png|обрамить|центр|Рисунок 2.09. Определение текущей даты]]


<li>'''Задайте''' валидацию для переменных и роли стартовой формы.</li>[[Файл:Blank.png|без]]
Следующая задача сценария "Генерация служебной записки" создаст файл служебной записки.
Для переменных "Размер премии" и "Описание выполненных работ" добавьте валидатор "Обязательное поле" (см. ''Практическое занятие "[[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'').


В форме валидации перейдите на вкладку Роли и таким же образом, как и для переменных, добавьте валидатор "Обязательное поле" для роли "Сотрудник" (Рис.2.11).  
Предварительно в редакторе Word-файлов (они имеют расширение .DOCX) необходимо создать файл с шаблоном служебной записки, вид которого изображён на Рис.2.10.


[[Файл:R198 ru.png|обрамить|центр|Рисунок 2.10. Шаблон служебной записки на премирование сотрудника]]


[[Файл:R193 st.png|обрамить|центр|Рисунок 2.11. Валидатор для роли "Сотрудник"]]
При выполнении экземпляра бизнес-процесса обработчик заменит выражения вида ${Переменная} на текущие значения одноимённых переменных из процесса в формате, определенном в среде разработки.


Кроме ранее рассмотренных переменных, тут также используется поле fullName, определяющее ФИО пользователя (в именительном падеже) роли Руководитель (как свойство объекта Руководитель).


Нажмите Finish и сохраните процесс.
Сохраните шаблон и закройте редактор Word-файлов.


<li>'''Настройте''' задачи сценариев. </li>[[Файл:Blank.png|без]]


Выделите первую задачу сценария, перейдите в свойства, здесь введите название - "ФИО сотрудника". Щёлкните на троеточии "Класса обработчика" и выберите из списка обработчик "Получить информацию об исполнителе", нажмите ОК (Рис.2.12, 2.13).
Далее откройте меню конфигурирования узла-сценария "Генерация служебной записки". В качестве класса обработчика выберите - "Word handler". Заполните поля как показано на Рис.2.11.  


Для того, чтобы привязать к данной конфигурации созданный нами файл с шаблоном служебной записки, выберите кнопку "Выбрать файл". Откроется файловое меню, в котором надо будет найти и выбрать созданный шаблон. Сохраните созданную конфигурацию ("update"). В результате содержимое файла будет включено в контент процесса и меню примет окончательный вид (Рис.2.11). 


[[Файл:R194a ru.png|обрамить|центр|Рисунок 2.12. Задача сценария "определение ФИО Сотрудника"]]
[[Файл:442-Documents 2-11.png|обрамить|центр|Рисунок 2.11. Конфигурирование задачи "Генерация служебной записки"]]


<li>'''Создайте''' пользовательскую форму для узла "Подписать служебную записку и отдать ее в отдел кадров".</li>


[[Файл:R194b ru.png|обрамить|центр|Рисунок 2.13. Выбор класса обработчика]]
Отконфигурируйте файловую переменную "Служебная записка" как показано на Рис.2.12.  


[[Файл:442-Documents 2-12-01.png|обрамить|центр|Рисунок 2.12. Конфигурирование переменной "Служебная записка"]]


Далее вызовите конфигурацию данного обработчика, выберите параметры "Исполнитель", "Формат", "Результат" в соответствии с Рис.2.14.
Это будет единственное поле на форме (Рис.2.13).  


[[Файл:442-Documents 2-13.png|обрамить|центр|Рисунок 2.13. Форма "Подписать служебную записку и отдать ее в отдел кадров"]]


[[Файл:R194c ru.png|обрамить|центр|Рисунок 2.14. Конфигурация обработчика "Получить информацию об исполнителе"]]
Т.е. на данной форме Руководитель получит ссылку на файл служебной записки, которую необходимо подписать и отдать в бумажном виде в отдел кадров.


<li>'''Создайте''' пользовательскую форму для узла "Получить подписанную служебную записку на премию сотруднику".</li>


Данный обработчик определяет полное имя (ФИО) Сотрудника и сохраняет результат в строковую переменную "ФИО сотрудника", однако в служебной записке и приказе на премирование должно использоваться ФИО в "Дательном" падеже.
Задание "Получить подписанную служебную записку на премию сотруднику" предназначено для фиксации факта получения бумажной служебной записки от Руководителя. Здесь важем сам факт прохождения документа, который и фиксируется фактом выполнения данного задания. Поэтому форма этого узла-действия не имеет полей.
<li>'''Создайте''' форму для узла "Рассмотреть заявку на премию" (Рис.2.14).</li>[[Файл:Blank.png|без]]


[[Файл:442-Documents 2-14-01.png|обрамить|центр|Рисунок 2.14. Форма "Рассмотреть заявку на премию"]]


Настройте следующую задачу сценария.
Расположите 4 компоненты "Отобразить переменную".
Название - "ФИО сотрудника в дательном падеже", класс обработчика - "Выполнить формулу".  
Для отображения роли "Руководитель" (будет выведено ФИО Руководителя), переменных "ФИО сотрудника", "Размер премии" - используйте форму отображения "Как строку".
Добавьте конфигурацию данного обработчика, следующего вида
Для отображения переменной "Описание выполненных работ" используйте в качестве формы отображения вариант "Как неактивный компонент ввода".
 
Добавьте компонент для ввода переменной "Комментарий директора".
 
В этой форме Директор рассматривает заявку, вводит комментарии и одобряет или отказывает в премировании.
 
<li>'''Создайте''' форму для узла "Ознакомиться с решением об отказе" (Рис.2.15).</li>


'ФИО сотрудника 3'=FIO_case_ru('ФИО сотрудника', 3, "F i o")
[[Файл:442-Documents 2-15-01.png|обрамить|центр|Рисунок 2.15. Форма "Ознакомиться с решением об отказе"]]


''''ФИО сотрудника 3'''' - переменная, в которую будет сохранено ФИО в дательном падеже,
Сделайте отображение значений переменных "ФИО сотрудника", "Размер премии", "Описание выполненных работ", "Комментарий директора".
При этом для строковых переменных используйте отображение "Как строка", для текстовых переменных - "Как неактивный компонент ввода".
 
В HTML-скрипт формы добавьте заголовок:
&lt;P style="text-align: center;">
&lt;STRONG>&lt;SPAN style="font-size: 20px;">Отказ от премирования&lt;/SPAN>&lt;/STRONG>
&lt;/P>
 
<li>'''Создайте''' форму для узла "Ознакомиться с сообщением о согласии" (Рис.2.16).</li>


'''FIO_case_ru'''(fio, caseNumber, mode) - функция склоняющая ФИО, имеет параметры:
Т.к. данная форма отличается от формы "Ознакомиться с решением об отказе" лишь заголовком, то можно воспользоваться функцией создания формы на основе существующей (Подробнее см. ''Практическое занятие "Изучение перспективы данных", [[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.30-4.31'').
* fio - фамилия, имя и отчество в именительном падеже (в нашем случае задана с помощью переменной 'ФИО сотрудника')  
* caseNumber - номер падежа от 1 до 6 (в нашем случае 3 - это Дательный падеж)
* mode - строка форматирования:
    Символы форматирования F, I и O заменяются на фамилию, имя или отчество в соответствующем падеже
    Символы форматирования f, i и o заменяются на первую букву фамилии, имени или отчества.


Т.е. данный обработчик сформирует Фамилию в дательном падеже, добавив к ней первую букву Имени и первую букву Отчества, например Иванову И.И..
[[Файл:442-Documents 2-16-01.png|обрамить|центр|Рисунок 2.16. Форма "Ознакомиться с сообщением о согласии"]]


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


<li>'''Создайте''' композицию для узла "Издание приказа и начисление премии".</li>


[[Файл:R195 ru.png|обрамить|центр|Рисунок 2.15. Получение ФИО сотрудника в дательном падеже]]
Композиция похожа на подпроцесс, однако является более «легкой» конструкцией, т.к. для композиции не порождается нового экземпляра процесса. Следовательно, у неё нет своих собственных переменных, инициализаторов ролей и т.д..


Выделите на схеме узел-композицию "Издание приказа и начисление премии", затем щёлкните на данном элементе правой кнопкой мыши и выберите пункт "Новая композиция" (Рис.2.17).


Следующая задача сценария (Рис.2.16) - это "Определение текущей даты". Здесь также используется обработчик "Выполнить формулу".
[[Файл:442-Documents 2-17.png|обрамить|центр|Рисунок 2.17. Вызов функции создания композиции]]
Конфигурация имеет следующее выражение


  'Текущая дата' = current_date();
В появившемся окне введите название "Начисление" (допустимо не более 16 символов):


Функция current_date определяет текущую дату и сохраняет результат в переменную "Текущая дата".
[[Файл:442-Documents 2-18.png|обрамить|центр|Рисунок 2.18. Форма создания композиции]]


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


[[Файл:R196 ru.png|обрамить|центр|Рисунок 2.16. Определение текущей даты]]
<li>'''Создайте''' композицию вида, изображенного на Рис.2.19. </li>[[Файл:Blank.png|без]]


[[Файл:442-Documents 2-19.png|обрамить|центр|Рисунок 2.19. Схема композиции "Издание приказа и начисление премии"]]


Следующая задача сценария будет генерировать файл служебной записки.
Проинициализируйте задачи ролями в соответствии с Рис.2.19.
Выделите задачу, дайте ей название "Генерации служебной записки", в качестве класса обработчика выберите - "Word: Формирование документа DOCX используя шаблон" (Рис.2.17).


<li>'''Создайте''' пользовательскую (Custom) форму для узла "Издать приказ о премировании". </li>


[[Файл:R197a ru.png|обрамить|центр|Рисунок 2.17. Задача "Генерировать служебную записку]]
Расположите на ней единственный компонент для ввода переменной "Номер приказа".  


[[Файл:442-Documents 2-20.png|обрамить|центр|Рисунок 2.20. Форма "Издать приказ о премировании"]]


Вызовите конфигуратор данного обработчика (Рис.2.18).  
<li>'''Настройте''' задачи сценария.</li>


В поле "Входной файл" выберите вариант - "Файл в процессе",  
В задаче сценария "ФИО директора", используя класс обработчика "Получить информацию об исполнителе", определите фамилию, имя и отчество Директора (Рис.2.21).
выходной файл задайте с помощью файловой переменной "Служебная записка", а в поле "Имя файла" введите название файла служебной записки - "служебная записка о начислении премии.docx".


[[Файл:442-Documents 2-21.png|обрамить|центр|Рисунок 2.21. Определение ФИО директора]]


[[Файл:R197b st441.png|обрамить|центр|Рисунок 2.18. Конфигуратор docx обработчика]]
Для задачи сценария "Сгенерировать текст приказа" выберите класс обработчика "Выполнить формулу".  


[[Файл:442-Documents 2-22.png|обрамить|центр|Рисунок 2.22. Задача "Сгенерировать текст приказа"]]


Для создания шаблона в процессе щёлкните "Создать", затем "Изменить" (на Рис.2.18 показано уже "Изменить"), будет открыт редактор Word, в котором необходимо создать шаблон вида, изображенного на Рис.2.19.
Используйте следующую конфигурацию для данного обработчика:


'Текст приказа о премировании'="Начислить сотруднику " + 'ФИО сотрудника 3' + " премию за высокие достижения в работе в сумме " + 'Размер премии' + " руб."


[[Файл:R198 ru.png|обрамить|центр|Рисунок 2.19. Шаблон служебной записки на премирование]]
Здесь используются переменные: ''' 'Текст приказа о премировании' ''', ''' 'ФИО сотрудника 3' ''' и ''' 'Размер премии' '''.


<li>'''Сконфигурируйте''' узел-сценария "Сгенерировать приказ". </li>


При выполнении обработчик заменит выражения вида ${Переменная} на значения переменных из процесса в формате, определенном в среде разработки.
Предварительно в любом редакторе сформируйте DOCX-файл с шаблоном приказа, как показано на Рис.2.23.  


Кроме ранее рассмотренных переменных, тут также используется поле fullName, определяющее ФИО пользователя (в именительном падеже) роли Руководитель.
[[Файл:442-Documents 2-23-01.png|500px|мини|центр|Рисунок 2.23. Шаблон приказа]]


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


<li>'''Создайте''' форму для узла "Подписать служебную записку и отдать ее в отдел кадров".</li>[[Файл:Blank.png|без]]
[[Файл:442-Documents 2-24.png|обрамить|центр|Рисунок 2.24. Меню конфигурирования сценария "Сгенерировать приказ"]]


Отобразите файловую переменную "Служебная записка".  
<li>'''Создайте''' пользовательскую форму для узла "Ознакомиться с приказом" (Рис.2.25).</li>


На ней файловую переменную "Приказ" с помощью компонента "Display variable" ("Отобразить переменную") отобразите "Как строку".


[[Файл:R199e ru.png|обрамить|центр|Рисунок 2.20. Форма "Подписать служебную записку и отдать ее в отдел кадров"]]
[[Файл:442-Documents 2-25.png|обрамить|центр|Рисунок 2.25. Форма "Ознакомиться с приказом"]]


Чтобы вставить в форму заголовок "Вам необходимо подойти в Отдел кадров и ознакомиться с приказом под подпись", выберите ссылку "edit" поля "html code" и вставьте этот текст как заголовок второго уровня в начале текста. Выберите ссылку "update" для сохранения.


т.е. на данной форме Руководитель получит ссылку на файл служебной записки, которую необходимо подписать и отдать в отдел кадров.
<li>'''Создайте''' пользовательскую форму для узла "Получить подпись сотрудника об ознакомлении с приказом".</li>
Графическая форма может быть создана на основании формы "Ознакомиться с приказом" и содержит только поля "Сотрудник" и "Приказ". В созданной по прототипу форме добавьте поле "Сотрудник" и замените заголовок в поле "html code" (Рис.2.26): <p> </p>
<li>'''Создайте''' форму для узла "Рассмотреть заявку на премию" (Рис.2.21).</li>[[Файл:Blank.png|без]]


&lt;h2>Ознакомить сотрудника с приказом под подпись.&lt;/h2>


[[Файл:R200e ru.png|обрамить|центр|Рисунок 2.21. Форма "Рассмотреть заявку на премию"]]
Выберите ссылку "update".


[[Файл:442-Documents 2-26-01.png|обрамить|центр|Рисунок 2.26. Создание формы "Ознакомить сотрудника с приказом"]]


Здесь расположите компоненты "Отобразить переменную".
Теперь в поле "html code" поменяйте местами блоки кода, относящиеся к полям "Приказ" и "Струдник" (Рис.2.27). Выберите ссылку "update" для сохранения внесённых правок. Обратите внимание, что порядок полей в списке тоже изменился.  
Для отображения роли "Руководитель" (будет выведена ФИО Руководителя), переменных "ФИО сотрудника", "Размер премии" - используйте форму отображения "Как строку".
Для отображения переменной "Описание выполненных работ" используйте в качестве формы отображения вариант "Как неактивный компонент ввода".


Также добавьте компонент для ввода переменной "Комментарий директора".
[[Файл:442-Documents 2-27-01.png|обрамить|центр|Рисунок 2.27. Окончательный вид формы "Ознакомить сотрудника с приказом"]]


Здесь Директор рассматривает заявку, вводит комментарии и одобряет или отказывает в премировании.
<li>'''Создайте''' пользовательскую форму для узла "Начислить премию сотруднику" с полями "ФИО сотрудника", "Размер премии", "Описание выполненных работ", "Приказ". </li>
При этом для текстовой переменной "Описание выполненных работ" используйте форму отображения "Как неактивный компонент ввода", для остальных - "Как строка" (Рис.2.28). При создании этой формы вы можете использовать форму узла "Получить подпись сотрудника об ознакомлении с приказом" в качестве прототипа.  


Для переменной "Комментарий директора" добавьте валидатор "Обязательное поле".
[[Файл:442-Documents 2-28-01.png|обрамить|центр|Рисунок 2.28. Форма "Начислить премию сотруднику"]]


<li>'''Создайте''' форму для узла "Ознакомиться с сообщением об отказе".</li>
Создайте в форме недостающие поля, в поле "html code" добавьте заголовок: <p> </p>


&lt;P style="text-align: center;">
&lt;SPAN style="font-size: 20px;">&lt;SRTONG>Начислить премию сотруднику&lt;/STRONG>&lt;/SPAN>
&lt;/P>


[[Файл:R201e ru.png|обрамить|центр|Рисунок 2.22 Форма "Ознакомиться с сообщением об отказе"]]
Выберите ссылку update. Отстройте порядок полей как показано на Рис.2.28.


<li>'''Создайте''' пользовательскую форму для узла "Ознакомиться с начислением премии" (Рис.2.29). В качестве прототипа целесообразно использовать предыдущую форму (Рис.2-28). </li>


Сделайте отображение значений переменных "ФИО сотрудника", "Размер премии", "Описание выполненных работ", "Комментарий директора".
[[Файл:442-Documents 2-29.png|обрамить|центр|Рисунок 2.29. Форма "Ознакомиться с начислением премии"]]
При этом для строковых переменных используйте отображение "Как строка", для текстовых переменных - "Как неактивный компонент ввода".


<li>'''Экспортируйте''' разработанный процесс "Пример 05-1" в раздел "Запустить процесс" RunaWFE.</li>


<li>'''Создайте''' форму для узла "Ознакомиться с сообщением о согласии" (Рис.2.23).</li>
Для этого щёлкните разработанный бизнес-процесс правой кнопкой, в выпавшем меню выберите команду "Deploy".


Т.к. данная форма отличается от формы "Ознакомиться с сообщением об отказе" лишь заголовком, то можно воспользоваться функцией создания формы на основе существующей (Подробнее см. ''Практическое занятие "Изучение перспективы данных", [[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.30, 4.31'').
<li>'''Войдите''' на сервер под пользователем Administrator.</li>


Процесс "Пример 05-1" должен запускать "Руководитель", поэтому дайте права на чтение, запуск и чтение экземпляров для пользователя "Паучков" (который является руководителем Сверчкова). Подробнее см. ''"Практикум. Вводное занятие", [[TrainingMaterials_4_4_1_Introduction#.D0.A1.D1.81.D1.8B.D0.BB.D0.BA.D0.B0_.D0.A1.D0.B2.D0.BE.D0.B9.D1.81.D1.82.D0.B2.D0.B0_.D0.BD.D0.B0_.D1.81.D1.82.D1.80.D0.B0.D0.BD.D0.B8.D1.86.D0.B5_.D0.97.D0.B0.D0.B3.D1.80.D1.83.D0.B7.D0.B8.D1.82.D1.8C_.D0.BF.D1.80.D0.BE.D1.86.D0.B5.D1.81.D1.81|Порядок выполнения работы]], Пункты 28-32''.


[[Файл:R202e ru.png|обрамить|центр|Рисунок 2.23. Форма "Ознакомиться с сообщением о согласии"]]
[[Файл:442-Documents 2-41-01.png|обрамить|центр|Рисунок 2.30. Обладатели полномочий на процесс "Пример 05-1" ]]


Разрешите для группы "Сотрудники" вход в систему (см. ''"Практикум. Вводное занятие", [[https://runawfe.ru/TrainingMaterials_4_4_1_Introduction#.D0.9F.D1.83.D0.BD.D0.BA.D1.82_.D0.BC.D0.B5.D0.BD.D1.8E_.D0.A1.D0.B8.D1.81.D1.82.D0.B5.D0.BC.D0.B0|Порядок выполнения работы]] пункты 7-9, Рис.5.7-5.9'' ).


<li>'''Создайте''' композицию "Издание приказа и начисление премии".</li>
Дайте полномочия группе "Сотрудники" на чтение на всех созданных пользователей (см. ''"Практикум. Вводное занятие", [[TrainingMaterials_4_4_1_Introduction#.D0.9E.D0.B1.D0.BB.D0.B0.D0.B4.D0.B0.D1.82.D0.B5.D0.BB.D0.B8_.D0.BF.D0.BE.D0.BB.D0.BD.D0.BE.D0.BC.D0.BE.D1.87.D0.B8.D0.B9|Порядок выполнения работы]], Пункты 12-13, Рис.5.12-5.13'').


Композиция похожа на подпроцесс, однако является более «легкой» конструкцией, т.к. для композиции не порождается нового экземпляра процесса, следовательно, у неё нет своих собственных переменных, инициализаторов ролей и т.д..
<li>'''Выполните''' процесс "Пример 05-1".</li>


Выделите на схеме элемент подпроцесс, дайте ему название "Издание приказа и начисление премии", затем щёлкните на данном элементе правой клавишей мыши и выберите "Использовать композицию / Новая композиция" (Рис.2.24).
Войдите в систему под пользователем "Паучков", запустите процесс.


Введите данные на стартовой форме и нажмите "Запустить" (Рис.2.31).[[Файл:Blank.png|без]]
[[Файл:442-Documents 2-42-02.png|обрамить|центр|Рисунок 2.31. Стартовая форма процесса "Пример 05-1"]]


[[Файл:R203 ru.png|обрамить|центр|Рисунок 2.24. Вызов функции создание композиции]]
После стартового ввода данных "Паучков" получит задачу "Проверка данных для оформления служебной записки" (Рис.2.31а).  


[[Файл:442-Documents 2-31а.png|обрамить|центр|Рисунок 2.31а. Проверка данных для оформления служебной записки]]


В появившемся окне введите название "Издание приказа и начисление премии".  
Если данные введены правильно, "Паучков" должен выбрать кнопку "Правильно" для продолжения процесса.  


Далее "Паучков" получит задачу "Подписать служебную записку и передать её в отдел кадров". Откройте задание, нажмите на  ссылку "Служебная записка о начислении премии.docx", скачайте/откройте сформированную с помощью обработчика "Word handler" на основе шаблона служебную записку (Рис.2.32).


[[Файл:R204 ru.png|обрамить|центр|Рисунок 2.25. Форма создания композиции]]
[[Файл:442-Documents 2-32-01.png|обрамить|центр|Рисунок 2.32. Служебная записка о начислении премии]]


Распечатайте служебную записку.
Выполните задание.


<li>'''Создайте''' композицию вида, изображенного на Рис.2.26. </li>[[Файл:Blank.png|без]]
Параллельно "Отдел кадров" получает задание "Получить подписанную служебную записку на премию сотруднику".


Войдите в систему под пользователем, входящим в группу "Отдел кадров", например, "Личинкин".
Возьмите задачу на выполнение и исполните её (Рис.2.33).


[[Файл:442-Documents_2-26.png|обрамить|центр|Рисунок 2.26. Схема композиции "Издание приказа и начисление премии"]]
[[Файл:442-Documents 2-33-02.png|обрамить|центр|Рисунок 2.33. Задание "Получить подписанную служебную записку на премию сотруднику"]]


Член группы "Директор" (в нашем случае это пользователь Стрекозин) получает задание "Рассмотреть заявку на премию".


Проинициализируйте задачи ролями в соответствии с рисунком.
Войдите в систему под пользователем "Стрекозин", возьмите задание на выполнение, введите комментарий и одобрите заявку на премию (Рис.2.34).
При этом для задач, имеющих роль "Отдел кадров" ("Издать приказ о премировании", "Получить подпись сотрудника об ознакомлении с приказом"), используйте опцию "Переинициализация роли" (Рис.2.27).


[[Файл:442-Documents 2-34-02.png|обрамить|центр|Рисунок 2.34. Задание "Рассмотреть заявку на премию"]]


[[Файл:442-Documents 2-27.png|обрамить|центр|Рисунок 2.27. Переинициализация роли "Отдел кадров"]]
Руководитель (Паучков) получит задание "Ознакомиться с сообщением о согласии", параллельно с этим будет запущена композиция "Издание приказа и начисление премии", в которой "Отделу кадров" поступит задание "Издать приказ о премировании".


Войдите в систему под пользователем "Паучков", выполните активное задание (Рис.2.35).


<li>'''Создайте''' форму для узла "Издать приказ о премировании". </li>
[[Файл:442-Documents 2-35-01.png|обрамить|центр|Рисунок 2.35. Задание "Ознакомиться с сообщением о согласии"]]


Расположите здесь компонент для ввода переменной "Номер приказа".  
Войдите в систему под пользователем "Личинкин", входящим в группу "Отдел кадров", возьмите на выполнение задание, введите "Номер приказа" и выполните задачу (Рис.2.36).


[[Файл:442-Documents 2-36-02.png|обрамить|центр|Рисунок 2.36. Задание "Издание приказа и начисление премии"]]


[[Файл:R207e ru.png|обрамить|центр|Рисунок 2.28. Форма "Издать приказ о премировании"]]
Войдите в систему под пользователем "Сверчков", откройте задание "Ознакомиться с приказом".


Нажмите ссылку на сгенерированный с помощью Word сценария файл "Приказ.docx"


Для переменной "Номер приказа" добавьте валидатор "Обязательное поле" (Рис.2.29).
[[Файл:442-Documents 2-37-03.png|обрамить|центр|Рисунок 2.37. Задание "Ознакомиться с приказом"]]




[[Файл:R208 st.png|обрамить|центр|Рисунок 2.29. Валидатор для переменной "Номер приказа"]]
[[Файл:R242 ru.png|обрамить|центр|Рисунок 2.38. Сгенерированный приказ]]


Распечатайте сгенерированный сценарием документ. Завершите запущенный экземпляр бизнес-процесса, последовательно выполнив соответствующие задания под пользователями Личинкин (входит в группу Отдел кадров), Бражникова (входит в группу Бухгалтеры) и Сверчков (сотрудник, которому начисляется премия).
</ol>


<li>'''Настройте''' задачи сценария.</li>
== Задание для самостоятельной работы ==


В задаче сценария "ФИО директора", используя класс обработчика "Получить информацию об исполнителе", определите фамилию, имя и отчество Директора (Рис.2.30).
Разработайте бизнес-процесс "Пример 05-2", схема которого изображена на Рис.2.39.


Для генерации приказа на отпуск используйте тот же шаблон для документа "Приказ", который был использован в процессе "Пример 05-1".


[[Файл:R209 ru.png|обрамить|центр|Рисунок 2.30. Определение ФИО директора]]


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


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


В компоненте форм "Выбор из членов группы" в качестве параметра "Группа" можно использовать предварительно созданную переменную формата "Группа", проинициализированную значением "Директор и заместители" (Подобный пример см. в ''Практическое занятие "Изучение перспективы данных", [[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.16'').


Используйте задачи сценария для определения и формирования:


[[Файл:442-Documents 2-31.png|обрамить|центр|Рисунок 2.31. Задача "Сформировать текст приказа"]]
  • ФИО сотрудника
  • Даты запуска процесса
  • Даты ввода номера приказа
  • ФИО директора
  • ФИО сотрудника в необходимом падеже
  • Текста приказа.  


[[Файл:Схема примера 05-2.png|обрамить|центр|Рисунок 2.39. Схема бизнес-процесса "Пример 05-2" Оформление отпуска для самостоятельной разработки]]


Используйте следующую конфигурацию для данного обработчика:


'Текст приказа о премировании'="Начислить сотруднику " + 'ФИО сотрудника 3' + " премию за высокие достижения в работе в сумме " + 'Размер премии' + " руб."
В бизнес-процессе "Пример 05-2" должны быть автоматически сгенерированы документы "Заявление на отпуск" и "Приказ на отпуск".  


Здесь используются переменные: ''' 'Текст приказа о премировании' ''', ''' 'ФИО сотрудника 3' ''' и ''' 'Размер премии' '''.
Документ "Заявление на отпуск" должен содержать:


Сохраните и закройте процесс с композицией.
  • ФИО Сотрудника
  • Даты начала и окончания отпуска
  • Дату заявления (совпадает с датой запуска бизнес-процесса).  


<li>'''Выберите класс''' обработчика для узла-сценария "Сгенерировать приказ". Для этого щёлкните правой кнопкой по этому узлу и выберите в выпавшем меню пункт "Выбрать класс обработчика" для показа списка обработчиков (Рис.2.32). </li>[[Файл:Blank.png|без]]
Документ "Приказ" должен содержать:


  • Номер приказа
  • Текст приказа с ФИО сотрудника в необходимом падеже, с датами начала и окончания отпуска
  • Дату приказа (совпадает с датой ввода номера приказа сотрудником отдела кадров)
  • ФИО Сотрудника
  • ФИО Директора.


[[Файл:442-Documents 2-32.png|обрамить|центр|Рисунок 2.32. Вызов списка обработчиков]]
'''Замечание'''. В отличие от приказа из процесса "Пример 05-1", в данном приказе на отпуск используется дата, совпадающая с датой ввода номера приказа сотрудником отдела кадров, а не с датой запуска бизнес-процесса.


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


В появившемся интерфейсе со списком выделите обработчик "Word: формирование документа DOCX используя шаблон", а затем выберите кнопку "ОК" (Рис.2.33).
== Требования к представлению результатов занятия ==


В результате выполнения лабораторной работы должны быть представлены преподавателю отчет, файл с данными archive.datafile ([[ExportDataFile#Description |как получить файл данных]]), содержащий разработанные на занятии бизнес-процессы.


[[Файл:442-Documents 2-33.png|обрамить|центр|Рисунок 2.33. Выбор из списка обработчиков]]
В отчете должны содержаться следующие выходные данные:


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


Снова щёлкните правой кнопкой по узлу "Сгенерировать приказ" и выберите в выпавшем меню пункт "Конфигурация" (Рис.2.32). На экране появится интерфейс "Конфигурация шаблона docx" (Рис.2.34).
== Контрольные вопросы ==
# Где задается имя файла, в который будет помещен сгенерированный документ?
<p>&nbsp;</p>


= Практическое занятие 06: "Работа с MS Excel-документами" =


[[Файл:442-Documents 2-34.png|200|обрамить|центр|Рисунок 2.34. Создать шаблон docx ]]
Целью занятия является изучение работы с MS Excel-документами.  


Необходимые теоретические сведения изложены в разделе "Стандарты и концепции, связанные с СУБПиАР".


Для группы "Входной файл" выберите из выпадающего списка "Файл в процессе" и выберите ссылку "Создать" для создания шаблона docx-файла.  Будет запущен редактор для Word-файлов. Пока закройте интерфейс "Конфигурация шаблона docx" , создайте шаблон приказа следующего вида (Рис.2.35):
== Порядок выполнения работы ==


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


[[Файл:R441 41 2.png|обрамить|центр|Рисунок 2.35. Шаблон приказа]]
'''Зайдите''' в систему Runa-WEB под учётной записью Administrator.  


'''Создайте''' в разделе «Редактор процессов» новый проект - "Занятие 06"
(Подробнее см. ''"Практикум. Вводное занятие", Порядок выполнения работы, Пункт 16, Рис.5.15'').


Сохраните шаблон. Используемые в шаблоне параметры (они введены с помощью обозначения "${...}") являются переменными процесса.


Снова щёлкните правой кнопкой по узлу "Сгенерировать приказ" и выберите в выпавшем меню пункт "Конфигурация" (Рис.2.32), чтобы открыть интерфейс "Конфигурация шаблона docx". Определите поля группы "Выходной файл" (Рис.2.36):
=== Запись в файл Excel ===
<ol>
<li>'''Создайте''' новый бизнес-процесс "Пример 06-1". </li>


   • В поле "Имя файла" введите "Приказ.docx"
<li>'''Добавьте''' элементы на схему бизнес-процесса в соответствии с Рис.3.01. Используйте элементы:
   • Из выпадающего списка параметров выберите "Файловый параметр"
</li>[[Файл:Blank.png|без]]
   • Из выпадающего списка переменных процесса выберите "Приказ"
   • Начало
  • Действие
   • Задача сценария
   • Окончание.


[[Файл:442-Documents 3-01-01.png|обрамить|центр|Рисунок 3.01. Схема бизнес-процесса "Пример 06-1"]]


[[Файл:442-Documents 2-36.png|обрамить|центр|Рисунок 2.36. Полностью определённая конфигурация шаблона]]


(Подробнее см. ''Практическое занятие "05 Работа с Word-документами", Порядок выполнения работы, Пункт 1, Замечание, Рис.2.2'').


Выберите ОК, сохраните процесс.
<li>'''Создайте''' роли.
</li>
<p>В данном процессе используется единственная роль:</p>


  ● "Преподаватель" - роль будет инициализирована пользователем, запустившим процесс.


Выберите для узлов роли в соответствии с Рис.3.01.


<li>'''Создайте''' форму для узла "Ознакомиться с приказом" (Рис.2.37).
<li>'''Создайте''' переменные для бизнес-процесса "Пример 06-1" согласно Рис.3.02.
</li>[[Файл:Blank.png|без]]
</li>[[Файл:Blank.png|без]]


На ней файловую переменную "Приказ" с помощью компонента "Отобразить переменную" отобразите "Как строку".  
[[Файл:442-Documents 3-02.png|800px|мини|центр|Рисунок 3.02. Переменные бизнес-процесса "Пример 06-1"]]
 
 
'''Замечание'''. Обратите внимание на переменную "перечень дисциплин", имеющую формат "Список(Строка)". При создании переменной типа "Список" в интерфейсе выбора формата также необходимо будет выбрать и формат элементов списка ("Строка" в данном случае) (Рис.3.03).
 
 
[[Файл:442-Documents 3-03.png|500px|мини|центр|Рисунок 3.03. Выбор формата переменной "перечень дисциплин" бизнес-процесса "Пример 06-1"]]
 
 
<li>'''Создайте''' формы.
</li>
<p>Сначала создайте пользовательскую стартовую форму "Ввести данные для сохранения в Excel-документе" вида, представленного на Рис.3.04
(Подробнее см. ''Практическое занятие "03 Изучение перспективы данных", [[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'').</p>
 
 
[[Файл:442-Documents 3-04-01.png|440px|мини|центр|Рисунок 3.04. Стартовая форма "Ввести данные для сохранения в Excel-документе" бизнес-процесса "Пример 06-1"]]
 
 
Размещаемые компоненты снабдите надписями:
  ● "Специальность"
  ● "Номер курса"
  ● "Перечень дисциплин".
 
Напротив строки "Специальность" расположите компонент "Ввод переменной" для переменной - "специальность"
(Подробнее см. ''Практическое занятие "Изучение перспективы данных", [[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.21-4.22'').
 
Аналогично добавьте компонент для ввода переменной "номер курса".
 
Используйте компонент "Редактировать связанные списки" для переменной "перечень дисциплин".
 
 
Добавьте валидаторы для переменных внизу формы:
 
  ● "специальность" - обязательное поле
  ● "перечень дисциплин" - обязательное поле
  ● "номер курса" - обязательное поле.  




[[Файл:442-Documents 2-37.png|обрамить|центр|Рисунок 2.37. Форма "Ознакомиться с приказом"]]
Создайте пользовательскую форму для задания "Просмотреть данные перед сохранением в Excel-документе" вида, представленного на Рис.3.05.




Для узла "Получить подпись сотрудника об ознакомлении сприказом" графическая форма может быть создана на основании формы "Ознакомиться с приказом" и содержит только поля "Сотрудник" и "Приказ" (Рис.2.38).
[[Файл:Форма 06-1 просмотр.png|440px|мини|центр|Рисунок 3.05. Форма "Просмотреть данные перед сохранением в Excel-документе"]]




[[Файл:442-Documents 2-38-01.png|обрамить|центр|Рисунок 2.38. Форма "Ознакомить сотрудника с приказом"]]
На этой форме отображаются данные, введенные в стартовом узле.  


Для переменных "Специальность" и "Номер курса" для компонента "Display variable" ("Отобразить переменную") используется форма отображения "string" ("Как строку") (Рис.3.06).


Создайте форму для узла "Начислить премию сотруднику", выведите значения переменных "ФИО сотрудника", "Размер премии", "Описание выполненных работ", "Приказ". При этом для текстовой переменной используйте форму отображения "Как неактивный компонент ввода", для остальных - "Как строка" (Рис.2.39).


[[Файл:Отображение 1 06-1.png|обрамить|центр|Рисунок 3.06. Отобразить переменную "Специальность" как строку]]


[[Файл:r230e_ru.png|обрамить|центр|Рисунок 2.39. Форма "Начислить премию сотруднику"]]


Для вывода списка "перечень дисциплин" используйте компонент "Display linked lists" ("Отобразить связанные списки").


Форма для узла "Ознакомиться с начислением премии" (Рис.2.40):


[[Файл:Отображение 2 06-1.png|обрамить|центр|Рисунок 3.07. Отобразить связанные списки]]


[[Файл:R231e ru.png|обрамить|центр|Рисунок 2.40. Форма "Ознакомиться с начислением премии"]]


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


<li>'''Экспортируйте''' разработанный процесс на сервер Runa-WEB.
 
[[Файл:442-Documents 3-08.png|обрамить|центр|Рисунок 3.08. Форма "Получить созданный Excel-документ"]]
 
 
Используйте компонент "Display variable" ("Отобразить переменную") для файловой переменной "полученный excel файл".
 
 
[[Файл:442-Documents 3-09.png|обрамить|центр|Рисунок 3.09. Использование компонента "Отобразить переменную" для ссылки]]
 
 
<li>'''Создайте''' обработчик.
</li>
</li>


Щёлкните на разработанный бизнес-процесс, в меню выберите команду "Файл / Экспорт процесса" (Подробнее см. ''Практическое занятие "Изучение перспективы потока управления", [[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|Порядок выполнения работы]], Пункты 11-14'').
Выберите класс обработчика "Execute formula" ("Выполнить формулу") в задаче сценария "Определение даты создания документа"  
 
(см. ''Практическое занятие "03 Изучение перспективы данных", [[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|Порядок выполнения работы]], Пункт 8, Рис.4.39-4.40'').<br>
 
В качестве конфигурации используйте скрипт "'дата создания документа'=current_date();".
Таким образом с помощью функции current_date() будет определена текущая дата и сохранена в переменную "дата создания документа".
 
<li>'''Выберите класс и сконфигурируйте''' обработчик для узла-сценария "Сохранить данные в Excel-документе". Для этого щёлкните правой кнопкой по этому узлу и выберите в выпавшем меню пункт "Configure script" ("Сконфигурировать обработчик") для показа списка обработчиков (Рис.3.10а). </li>[[Файл:Blank.png|без]]
 
 
[[Файл:442-Documents 3-10-01.png|обрамить|центр|Рисунок 3.10. Вызов конфигуратора обработчика]]
 
 
В появившемся интерфейсе из выпадающего списка "Handler" выберите обработчик "ExcelSaveHandler" (Сохранить данные в Excel файл), а затем выберите кнопку "update".
 
 
[[Файл:ВыборОбработчикаЕксель.png|500px|мини|центр|Рисунок 3.11. Вызов списка обработчиков и выбор обработчика ExcelSaveHandler]]
 
 
В поле "Input file" выбираем значение "Файл" (то есть файл шаблона, локализованный в процессе).
 
Следующим шагом во внешнем редакторе создайте файл шаблона template.xlsx (Рис.3.12).
 
 
[[Файл:Lab4 r9 14.png|обрамить|центр|Рисунок 3.12. Текст Excel-шаблона ]]
 
 
Теперь в интерфейсе, изображённом на Рис.3.11, выберите кнопку "Выбрать файл". На экран будет выдан интерфейс выбора файла из дерева файлов. Необходимо в нём найти созданный только что файл шаблона template.xlsx и его загрузить. После этого выберите кнопку "update".
 
 
В разделе "Output file" определите параметры "File variable" и "File name" как показано на Рис.3.15.
 
 
Используя ссылки:
* Добавить ячейку
* Добавить горизонтально
* Добавить вертикально,
определите структуру данных выходного файла, приведенную на Рис.3.15.
 
 
[[Файл:442-Documents 3-15-02.png|700px|мини|центр|Рисунок 3.15. Структура данных выходного файла]]
 
 
На Рис.3.15 действуют обозначения:
 
* входной файл - это файл шаблона, на основе которого будет создан выходной Excel-файл с именем file.xlsx
* выходной файл - задан с помощью параметра "выходной файл", его имя - file.xlsx; это Excel-файл, который будет создан при выполнении процесса на основе шаблона и в который будут записаны данные, взятые из указанных при его конфигурировании переменных
* отдельная ячейка (страница 1, столбец 2, строка 1) - по данному адресу в таблицe Excel будет записано значение переменной "специальность"
* отдельная ячейка (страница 1, столбец 2, строка 2) - по данному адресу в таблицe Excel будет записано значение переменной "номер курса"
* отдельная ячейка (страница 1, столбец 2, строка 3) - по данному адресу в таблицe Excel будет записано значение переменной "дата создания документа"
* массив по вертикали (страница 1, столбец 1, строка 6) - начиная с данного адреса в таблицe Excel будут записаны значения списковой переменной "перечень дисциплин", причём элементы списка будут располагаться вертикально, следующий под предыдущим.


<li>'''Войдите''' на сервер под пользователем Administrator.</li>
'''Замечание'''. Альтернативно для задания входного и выходного файлов могут использоваться файловые переменные.


Процесс "Пример 05-1" должен запускать "Руководитель", поэтому дайте права на чтение, запуск и чтение экземпляров для пользователя "Паучков" (который является руководителем Сверчкова). Подробнее см. ''"Практикум. Вводное занятие", [[TrainingMaterials_4_4_1_Introduction#.D0.A1.D1.81.D1.8B.D0.BB.D0.BA.D0.B0_.D0.A1.D0.B2.D0.BE.D0.B9.D1.81.D1.82.D0.B2.D0.B0_.D0.BD.D0.B0_.D1.81.D1.82.D1.80.D0.B0.D0.BD.D0.B8.D1.86.D0.B5_.D0.97.D0.B0.D0.B3.D1.80.D1.83.D0.B7.D0.B8.D1.82.D1.8C_.D0.BF.D1.80.D0.BE.D1.86.D0.B5.D1.81.D1.81|Порядок выполнения работы]], Пункты 28-32''.[[Файл:Blank.png|без]]
<li>'''В разделе script''' будет автоматически сформирован скрипт формирования значений параметров. </li>&nbsp;&nbsp;
[[Файл:442-Documents 2-41.png|обрамить|центр|Рисунок 2.41. Обладатели полномочий на процесс "Пример 05-1" ]]




Добавьте в группу "Бухгалтеры" пользователей "Жуков" и "Бражникова".
<li>'''Сохраните процесс.'''</li>


Добавьте в группу "Отдел кадров" пользователей "Личинкин" и "Гусеницын".
<li>'''Экспортируйте''' разработанный процесс "Пример 06-1" в раздел "Запустить процесс" RunaWFE. </li>
Для этого щёлкните разработанный бизнес-процесс правой кнопкой, в выпавшем меню выберите команду "Deploy".


Добавьте в группу "Сотрудники" пользователей: Жуков, Бражникова, Личинкин, Гусеницын, а также Сверчков и Паучков.
<li>'''Войдите''' в систему под пользователем Administrator, пароль – wf. </li>


Разрешите для группы "Сотрудники" вход в систему (см. ''"Практикум. Вводное занятие", [[https://runawfe.ru/TrainingMaterials_4_4_1_Introduction#.D0.9F.D1.83.D0.BD.D0.BA.D1.82_.D0.BC.D0.B5.D0.BD.D1.8E_.D0.A1.D0.B8.D1.81.D1.82.D0.B5.D0.BC.D0.B0|Порядок выполнения работы]] пункты 7-9, Рис. 5.7 - 5.9'' ).
<li>'''Дайте''' полномочия группе "Преподаватели" на запуск и чтение процесса и чтение экземпляра процесса "Пример 06-1".
</li>


Дайте полномочия группе "Сотрудники" на чтение на всех созданных пользователей (см. ''"Практикум. Вводное занятие", [[TrainingMaterials_4_4_1_Introduction#.D0.9E.D0.B1.D0.BB.D0.B0.D0.B4.D0.B0.D1.82.D0.B5.D0.BB.D0.B8_.D0.BF.D0.BE.D0.BB.D0.BD.D0.BE.D0.BC.D0.BE.D1.87.D0.B8.D0.B9|Порядок выполнения работы]], Пункты 12-13, Рис. 5.12-5.13'').
<li>'''Войдите''' в систему под пользователем, входящим в группу  "Преподаватели", например "Стрекозин", пароль - 123.
</li>


<li>'''Выполните''' процесс "Пример 05-1".
<li>'''Запустите''' экземпляр бизнес-процесса "Пример 06-1".  
</li>
</li>


Войдите в систему под пользователем "Паучков", запустите процесс.
Введите данные на стартовой форме, например:<p></p>
 
 
[[Файл:Ввод данных на стартовой форме 06-1 веб.png|обрамить|центр|Рисунок 3.16. Ввод данных на стартовой форме]]
 
 
Нажмите "Запустить", выполните полученное задание "Просмотреть данные перед сохранением в Excel-документе".


Введите данные на стартовой форме и нажмите "Запустить" (Рис.2.42).[[Файл:Blank.png|без]]
[[Файл:442-Documents 2-42.png|обрамить|центр|Рисунок 2.42. Стартовая форма процесса "Пример 05-1"]]


[[Файл:Lab4 r9 20e веб.png|обрамить|центр|Рисунок 3.17. Задание "Перед записью в файл"]]


"Паучков" получит задачу "Подписать служебную записку и передать её в отдел кадров". Откройте задание, нажмите на  ссылку "Служебная записка о начислении премии.docx", скачайте/откройте сформированную с помощью обработчика DocxHandler на основе шаблона служебную записку (Рис.2.43).


Сценарий "Сохранить данные в Excel-документе" выполнит задачу "Записать данные в файл". Значения переменных можно увидеть, открыв экземпляр запущенного процесса (Рис.3.18).


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


<center>Рисунок 2.43. Служебная записка о начислении премии</center>
[[Файл:442-Documents 3-17.png|обрамить|центр|Рисунок 3.18. Граф выполнения процесса "Пример 06-1"]]




Распечатайте служебную записку.
Будет получено задание со ссылкой на созданный Excel-файл. Выберите эту ссылку:
Выполните задание.


Параллельно, "Отдел кадров" получает задание "Получить подписанную служебную записку на премию сотруднику".


Войдите в систему под пользователем, входящим в группу "Отдел кадров", например, "Личинкин".
[[Файл:Lab4 r9 22e веб.png|обрамить|центр|Рисунок 3.19. Ссылка на созданный Excel-файл]]
Возьмите задачу на выполнение и исполните её (Рис.2.44).




[[Файл:R236 ru.png|обрамить|центр|Рисунок 2.44. Задание "Получить подписанную служебную записку на премию сотруднику"]]
Будет загружен file.xlsx. Сохраните его на C:\. Откройте файл.




Член группы "Директор" (в нашем случае это пользователь Стрекозин) получает задание "Рассмотреть заявку на премию".
[[Файл:Lab4 r9 23e.png|обрамить|центр|Рисунок 3.20. Созданный с помощью обработчика файл file.xlsx]]


Войдите в систему под пользователем "Стрекозин", возьмите задание на выполнение, введите комментарий и одобрите заявку на премию (Рис. 2.45).


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


[[Файл:R237 ru.png|обрамить|центр|Рисунок 2.45. Задание "Рассмотреть заявку на премию"]]
<li>Процесс завершён. </li>
</ol>


=== Чтение из файла Excel ===
<ol>
<li>'''Перейдите''' в "Редактор процессов" в роли Administrator.</li>


Руководитель (Паучков) получит задание "Ознакомиться с сообщением о согласии", параллельно с этим будет запущена композиция "Издание приказа и начисление премии", в которой "Отделу кадров" поступит задание "Издать приказ о премировании".
<li>'''Создайте''' новый бизнес-процесс "Пример 06-2" командой "Сохранить как" по правой кнопке мыши из "Пример 06-1".  
</li> <p></p>


Войдите в систему под пользователем "Паучков", выполните активное задание (Рис.2.46).


[[Файл:Сохранить 06-1 как 06-2.png|обрамить|центр|альт=Создание процесса в веб-редакторе из другого командой "Сохранить как"|Рисунок 3.21. Создание процесса в веб-редакторе из другого командой "Сохранить как"]]


[[Файл:R238 ru.png|обрамить|центр|Рисунок 2.46. Задание "Ознакомиться с сообщением о согласии"]]


<li>'''Измените''' схему бизнес-процесса в соответствии с Рис.3.22.
</li><p></p>


Т.к. в узле "Издание приказа и начисление премии" была настроена переинициализация для роли "Отдел кадров", то соответствующее задание снова поступит всем членам группы "отдел кадров".


Войдите в систему под пользователем "Гусеницын", входящим в группу "Отдел кадров", возьмите на выполнение задание, введите "Номер приказа" и выполните задачу (Рис.2.47).
[[Файл:442-Documents 3-20.png|обрамить|центр|альт=Схема процесса "Пример 06-2"|Рисунок 3.22. Схема бизнес-процесса "Пример 06-2"]]




[[Файл:R239 ru.png|обрамить|центр|Рисунок 2.47. Задание "Издание приказа и начисление премии"]]
Здесь используются те же элементы, что и в процессе "Пример 06-1".
Задаче сценария дайте название "Прочесть данные из Excel файла".


<li>'''Переименуйте''' роль Преподаватель на Студент.
</li>


Войдите в систему под пользователем "Сверчков", откройте задание "Ознакомиться с приказом".
[[Файл:Переименование роли веб редактор.png|500px|мини|центр|альт=Переименование роли в веб-редакторе|Рисунок 3.22а. Переименование роли в веб-редакторе]]


Нажмите ссылку на сгенерированный с помощью Word бота файл "Приказ.docx"
<li>'''Переменные''' в этом процессе те же, что и в "Пример 06-1". За исключением переменной "полученный excel файл", которую удаляем.  
</li>




[[Файл:R241 ru.png|обрамить|центр|Рисунок 2.48. Задание "Ознакомиться с приказом"]]
<li>'''Преобразуйте''' формы.
</li>


<p>Используйте компонент "Отобразить переменную" для переменных: "специальность", "номер курса", "дата создания документа".  </p>


[[Файл:R242 ru.png|обрамить|центр|Рисунок 2.49. Сгенерированный приказ]]
<p>Используйте компонент "Отобразить связанные списки" для переменной "перечень дисциплин". </p>


<p>Удалите форму для стартового узла - она не требуется. </p>


Распечатайте сгенерированный ботом документ. Завершите запущенный экземпляр бизнес-процесса, последовательно выполнив соответствующие задания под пользователями Личинкин (входит в группу Отдел кадров), Бражникова (входит в группу Бухгалтеры) и Сверчков (сотрудник которому начисляется премия).
Удалите форму для узла-действия "Выполнить задание перед чтением из Excel-документа" и создайте форму вида, представленного на Рис.3.23.<p></p>




== Задание для самостоятельной работы ==
[[Файл:442-Documents 3-23.png|обрамить|центр|Рисунок 3.23. Форма "Выполнить задание перед чтением из Excel-документа"]]


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


Для генерации приказа на отпуск используйте тот же шаблон для документа "Приказ", который был использован в процессе "Пример 05-1".
Форму для узла "Просмотреть данные, считанные из Excel документа" приведите к виду, представленному на Рис.3.24.




"Заявление на отпуск" должно формироваться в задаче сценария с помощью обработчика "Word: Формирование документа DOCX используя шаблон". При этом создайте новый шаблон для документа "Заявление на отпуск" непосредственно в процессе.
[[Файл:442-Documents 3-24.png|обрамить|центр|Рисунок 3.24. Форма "Просмотреть данные, считанные из Excel-документа"]]


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


<li>'''Задайте''' конфигурацию узла-сценария "Прочесть данные из файла".
</li><p></p>


'''Замечание'''. По умолчанию в качестве редактора форм используется CKEditor4, но в случае если у вас в системе установлен браузер Microsoft Internet Explorer устаревшей версии - 6 (IE6) или 7 (IE7), то с формами могут возникнуть проблемы. Поэтому следует переключить редактор на FCKEditor2. (Подробнее см. ''Практическое занятие "Изучение перспективы данных", [[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.9, 4.10'').


В компоненте форм "Выбор из членов группы" в качестве параметра "Группа" можно использовать предварительно созданную переменную формата "Группа", проинициализированную значением "Директор и заместители" (подобный пример см. в ''Практическое занятие "Изучение перспективы данных", [[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.16'')
[[Файл:Конфигурация Задачи сценария Прочесть из эксель.png|обрамить|центр|альт=Выбор класса обработчика и конфигурации "Чтение из файла Excel"|Рисунок 3.25. Выбор класса обработчика и конфигурации "Чтение из файла Excel"]]


Используйте задачи сценария для определения и формирования:


  • ФИО сотрудника
Т.е. предполагается чтение из файла file.xlsx, который был создан при выполнении бизнес-процесса "Пример 06-1", использующего узел-сценарий "Сохранить данные в Excel документе". Этот сформированный файл и загружается в конфигурацию (обведено рамкой на Рис.3.25). Альтернативно можно использовать файловую переменную, предварительно загрузив в неё этот файл.
  • Даты запуска процесса
  • Даты ввода номера приказа
  • ФИО директора
  • ФИО сотрудника в необходимом падеже
  • Текста приказа


[[Файл:R243e ru.png|обрамить|центр|Рисунок 2.50. Схема бизнес-процесса "Пример 05-2" для самостоятельной разработки]]
Считанные по соответствующим адресам значения будут сохранены непосредственно в переменные бизнес-процесса "Пример 06-2".


'''Замечание'''. Во время выполнения экземпляра бизнес-процесса потребуется обязательное наличие файла для чтения/записи данных, скачанного из "Пример 06-1".


В бизнес-процессе "Пример 05-2" должны быть автоматически сгенерированы документы "Заявление на отпуск" и "Приказ на отпуск".  
<li>'''Сохраните''' бизнес-процесс. </li>


Документ "Заявление на отпуск" должен содержать:
<li>'''Экспортируйте''' бизнес-процесс "Пример 06-2" в раздел "Запустить процесс", используя команду Deploy. </li>


  • ФИО Сотрудника
<li>'''Войдите''' в систему под пользователем Administrator, пароль –wf. </li>
  • Даты начала и окончания отпуска
  • Дату заявления (совпадает с датой запуска бизнес-процесса)


Документ "Приказ" должен содержать:
<li>'''Дайте''' права "Чтение", "Запуск", "Чтение экземпляра" на процесс "Пример 06-2" для группы "Группа МИБ-1".
</li>


  • Номер приказа
<li>'''Войдите''' в систему под пользователем, входящим в группу "Группа МИБ-1", например "Гусеницын".
  • Текст приказа с ФИО сотрудника в необходимом падеже, с датами начала и окончания отпуска
</li>
  • Дату приказа (совпадает с датой ввода номера приказа сотрудником отдела кадров)
  • ФИО Сотрудника
  • ФИО Директора


'''Замечание'''. В отличии от приказа из процесса "Пример 05-1", в данном приказе на отпуск используется дата, совпадающая с датой ввода номера приказа сотрудником отдела кадров, а не с датой запуска бизнес-процесса.
<li>'''Запустите''' экземпляр бизнес-процесса "Пример 06-2" и доведите его до завершения.
</li>


'''Замечание'''. В бизнес-процессе необходимо проверять, что дата начала отпуска была не позже даты окончания.
В задании "Просмотреть данные, считанные из Excel документа", будут выведены данные, считанные из файла file.xlsx в переменные процесса (см. Рис.3.26).<p></p>


[[Файл:Посмотреть прочитанные данные Форма задания.png|обрамить|центр|Рисунок 3.26. Задание "Просмотреть данные, считанные из Excel документа"]]


Считанные значения соответствуют данным, введённым во время выполнения процесса "Пример 06-1".
</ol>


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


В результате выполнения лабораторной работы должны быть представлены преподавателю отчет, файл с данными archive.datafile ([[ExportDataFile#Description |как получить файл данных]]), содержащий разработанные на занятии бизнес-процессы.
В результате выполнения лабораторной работы должны быть представлены преподавателю отчет и файл с данными archive.datafile ([[ExportDataFile#Description |как получить файл данных]]), содержащие разработанные на занятии бизнес-процессы.
 
В отчете должны содержаться следующие данные:
 
1) Скриншоты основных действий, совершенных на занятии, с пояснениями.


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


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


== Контрольные вопросы ==
== Контрольные вопросы ==
# Где задается имя файла, в который будет помещен сгенерированный документ?


= Практическое занятие 06: "Работа с MS Excel-документами" =
# Как можно задать Excel-файл, в который обработчик будет записывать данные?
# Где выбирается Excel-файл, в который обработчик будет записывать данные?
# Как можно задать Excel-файл, из которого обработчик будет читать данные?
# Где задается Excel-файл, из которого обработчик будет читать данные?


Целью занятия является изучение работы с MS Excel-документами.  
= Практическое занятие 07: "Задания для самостоятельной работы" =
== Цель работы ==
На основе представленных описаний одного из условных бизнес-процессов реализовать этот бизнес-процесс в системе RunaWFE.  


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


== Порядок выполнения работы ==
== Порядок выполнения работы ==
Ниже представлено десять описаний условных бизнес-процессов. Требуется в соответствии с каждым описанием разработать бизнес-процесс в среде разработки системы RunaWFE, отладить разработанный бизнес-процесс и сдать бизнес-процесс преподавателю.
<p>&nbsp;</p>
'''Общие замечания для всех заданий'''
'''Замечание 1'''
Схема разработанного бизнес-процесса должна умещаться на экране компьютера. Если схема не помещается на экране, то ее части надо выносить во внутренние или внешние подпроцессы.
'''Замечание 2'''
Рассмотрим ситуацию, в которой действие должно быть выполнено одновременно двумя пользователям - например, сотрудник должен расписаться в документе должностного лица. Интуитивная реализация такого сценария обычно соответствует последовательному расположению двух узлов на схеме бизнес-процесса, при этом исполнителем в первом узле является сотрудник, а во втором — должностное лицо. Практика показывает, что такое решение является неудачным, так как в этом случае в момент выполнения действия соответствующие задания не могут находиться в списках заданий обоих сотрудников. Поэтому на схеме бизнес-процесса узлы, в которых даются задания двум исполнителям, в данном случае должны  располагаться не последовательно, а параллельно, то есть они должны находиться в параллельных ветках (Рис.4.01).
[[Файл:R213.png|обрамить|центр|Рисунок 4.01. Пример действия, выполняемого одновременно двумя лицами]]
'''Замечание 3'''
По возможности надо использовать парные разделения и слияния. Нотация BPMN позволяет использовать в схемах бизнес-процессов элементы разделения без парных им элементов - слияний. В этом случае для удаления выполнивших свою задачу точек управления можно использовать элемент - завершение потока управления. Однако предпочтительной схемой является схема с парными разделениями и слияниями. Такие схемы, несмотря на большее число содержащихся в них элементов, являются более понятными бизнес-аналитику, потому что участок схемы между разделением и парным ему слиянием можно мысленно декомпозировать и таким образом разделить схему бизнес-процесса на две более простых.
'''Замечание 4'''
Разделения и парные им слияния должны быть расположены на одной (горизонтальной или вертикальной) линии, причем на этой оси должны быть только два этих элемента, остальные парные элементы должны располагаться на других (параллельных друг другу) осях. В этом случае на схеме бизнес-процесса для одного элемента можно легко найти парный ему элемент.
'''Замечание 5'''
Желательно, чтобы линии переходов, соответствующих одновременно выполняющимся потокам действий, были параллельными, т.к. это увеличивает понятность схемы.
'''Замечание 6'''
Использовать элементы «окончание бизнес-процесса» предпочтительнее, чем элементы «завершение потока управления» (в тех случаях, когда это возможно), так как это упрощает бизнес-аналитику анализ схемы выполняющегося экземпляра бизнес-процесса с нанесенными на нее точками управления. В момент прихода точки управления в элемент «окончание бизнес-процесса» экземпляр бизнес-процесса сразу завершается. В случае же использования элементов «завершение потока управления» бизнес-аналитику приходится затрачивать больше усилий для того, чтобы следить за тем, чтобы все точки управления пришли в элементы «окончание бизнес-процесса».
При этом в подпроцессах и мультиподпроцессах завершение их происходит именно через элемент «завершение потока управления». При этом точка управления передаётся в родительский процесс. Использование элементов «окончание бизнес-процесса» в подпроцессах и мультиподпроцессах среда разработки не допускает.
'''Замечание 7'''
Практика эксплуатации СУБП на предприятиях показывает, что роли должностных лиц (например, Бухгалтер, Инспектор кадровой службы) соответствуют ответственным сотрудникам, а роли "Сотрудник" и "Подавший заявку" - гораздо менее ответственным сотрудникам, которые могут неделями не отмечать выполнение заданий. Поэтому требуется так составить схему бизнес-процесса, чтобы в таких случаях задание типа "ознакомиться с ..." у этих сотрудников было, но чтобы его невыполнение не останавливало дальнейшее выполнение бизнес-процесса. То есть эта задача и остальные шаги бизнес-процесса должны выполняться в параллельных ветках.
[[Файл:R214.png|обрамить|центр|Рисунок 4.02. Пример неправильной схемы]]
На Рис.4.02 показан пример неправильной схемы, в котором задача (в меньшем овале) останавливает выполнение блока действий (указанного в большем овале).
На Рис.4.03 также показан пример неправильной схемы, в котором задача "Ознакомиться с положительным решением" в некоторых случаях останавливает издание приказа.
[[Файл:R215.png|обрамить|центр|Рисунок 4.03. Пример неправильной схемы]]
[[Файл:442-Documents 4-04-01.png|300px|обрамить|центр|Рисунок 4.04. Пример правильной схемы]]
На Рис.4.04 показан пример правильной схемы, в котором задачи ознакомления и задачи сотруднику не приводят к остановке дальнейшего выполнения бизнес-процесса.
'''Замечание 8'''
В заданиях занятия для Студии упоминается страница описания бизнес-процесса. В настоящей онлайн-версии практикума в веб-редакторе передача процесса на сервер не рассматривается.
'''Задания по разработке бизнес-процессов'''
== Задание по разработке бизнес-процесса "Ежегодный отпуск" ==
'''1. Возможное содержание страницы описания бизнес-процесса (не обязательно)'''
Оплачиваемый отпуск предоставляется ежегодно.
'''2. Описание последовательностей действий в бизнес-процессе'''
Если сотрудник собирается пойти в отпуск, то запускает бизнес-процесс на выполнение. В появившейся стартовой форме надо ввести требуемые данные: ввести даты начала и окончания отпуска, причину и комментарий.
После выбора команды "Запустить" будет создан новый экземпляр бизнес-процесса.
Следующее задание «Рассмотреть заявку на отпуск» получит руководитель сотрудника (руководитель определяется отношением "Руководитель"). Руководитель одобряет или не одобряет заявку. Подавший заявку сотрудник знакомится с решением руководителя. Если решение руководителя было отрицательным, то далее процесс завершается.
Если решение руководителя было положительным, то следующее задание «Проверить соблюдение технологий и законов» получит инспектор кадровой службы (определяется членством в группе "Инспекторы КС"). В содержащейся в задании форме он отмечает, соблюдены ли законы и технологии (то есть положен ли сотруднику ежегодный отпуск в соответствии с договором, заключенным с предприятием, не отгулял ли уже сотрудник все положенные дни отпуска за текущий год и т.п.).
Если законы или технологии не соблюдены, то бизнес-процесс сообщает руководителю сотрудника и самому сотруднику, подавшему заявку, о несоблюдении технологий. Далее процесс завершается. Если законы и технологии соблюдены, то сотрудник получает задание "Ознакомиться с подтверждением ежегодного отпуска" и инспектору кадровой службы направляется задание "Издать приказ". В форме задания "Издать приказ" инспектор кадровой службы вводит номер приказа (значение типа строка). После выполнения задания инспектором кадровой службы Word-сценарий получает задание "Сгенерировать приказ на ежегодный отпуск".
Приказ должен содержать:
# В верхней части листа - название условной компании
# Фразу "Приказ номер"
# Справа от этой фразы - значение "номер приказа", введенное инспектором кадровой службы
# слово "от"
# Справа от этого слова - дату запуска экземпляра бизнес-процесса
# Далее - "Предоставить сотруднику <ФИО сотрудника> ежегодный основной оплачиваемый отпуск"
# Далее - "с", за ней "дата начала отпуска", введенная на стартовой форме
# Далее - "по", за ним "дата окончания отпуска", введенная на стартовой форме
# Далее - место для подписи Генерального директора (несколько знаков подчеркивания), ФИО условного генерального директора компании, дата запуска экземпляра бизнес-процесса
# Внизу - "С приказом ознакомлен", место для подписи сотрудника (несколько знаков подчеркивания), ФИО сотрудника, дата запуска экземпляра бизнес-процесса.
Далее Word-сценарий получает задание "Сгенерировать заявление на ежегодный отпуск".
Заявление должно содержать:
# В верхней части листа "Генеральному директору" - название условной компании, ФИО условного Генерального директора, "от сотрудника"
# ФИО уходящего в отпуск сотрудника
# Фразу "Заявление"
# На следующей строке "Прошу предоставить мне ежегодный основной оплачиваемый отпуск с", "дата начала отпуска", введенная на стартовой форме, "по", "дата окончания отпуска", введенная на стартовой форме
# Внизу - ФИО сотрудника, место для подписи сотрудника (несколько знаков подчеркивания), дата запуска экземпляра бизнес-процесса.
После выполнения этих заданий Word-сценарием сотрудник должен выполнить задачу «Сдать в КС заявление и подписать приказ». В форме этого задания должна быть ссылка для загрузки сформированного сценарием документа "Заявление на ежегодный отпуск". Инспектору кадровой службы направляется задача «Получить заявление и подпись на приказе». В форме этого задания должна быть ссылка для загрузки сформированного сценарием документа "Приказ на ежегодный отпуск". После выполнения этого задания бизнес-процесс должен дождаться момента времени за две недели до начала отпуска, после этого задание "Выплатить отпускные" получает бухгалтер (определяется членством в группе "Бухгалтеры").
После выполнения всех заданий бизнес-процесс завершается.
'''Замечание'''. В бизнес-процессе необходимо проверять, что дата начала отпуска не позже даты окончания.
<p>&nbsp;</p>
== Задание по разработке бизнес-процесса "Больничный"  ==
'''1. Возможное содержание страницы описания бизнес-процесса (не обязательно)'''
Это отсутствие на работе в связи с болезнью, факт которой может быть подтвержден правильно оформленным больничным листом.
'''2. Описание последовательностей действий в бизнес-процессе'''
Если сотрудник заболел, то он или какой-то другой сотрудник запускает на выполнение бизнес-процесс "Больничный".
В появившейся стартовой форме он вводит данные: выбирает из списка (список соответствует членам группы "Все сотрудники") заболевшего сотрудника, вводит дату начала болезни, причину и комментарий.
После выбора команды "Запустить" создается новый экземпляр бизнес-процесса "Больничный".
Следующее задание получает инспектор кадровой службы (определяется членством в группе "Инспекторы КС"). Задание называется "Проверить соблюдение технологий и законов". В содержащейся в задании форме он отмечает, соблюдены ли законы и технологии (то есть, положен ли больничный лист сотруднику в соответствии с договором, заключенным с предприятием).
Если законы или технологии не соблюдены, то подавшему заявку направляется уведомление об отказе регистрации заявки на больничный и далее бизнес-процесс завершается.
Если законы и технологии соблюдены, то подавший заявку уведомляется о регистрации заявки на больничный, руководитель сотрудника (руководитель определяется отношением "Руководитель") уведомляется о болезни сотрудника, сотруднику направляется задание "Сообщить о выздоровлении и выходе на работу". Бухгалтер (определяется членством в группе "Бухгалтеры") получает задание "Отразить факт болезни сотрудника в бухучете".
После выхода сотрудника на работу после болезни инспектору кадровой службы направляется задание "Получить от сотрудника больничный", а сотруднику направляется задание "Отдать в КС больничный". В задании "Получить от сотрудника больничный" инспектор кадровой службы вводит дату окончания больничного.
После выполнения задания "Получить от сотрудника больничный" инспектором кадровой службы Word-сценарий получает задание "Сгенерировать справку о болезни сотрудника". 
Справка должна содержать:
# В верхней части листа - название условной компании
# Фразу "Справка о болезни сотрудника"
# Далее - ФИО сотрудника
# Далее - "Начало болезни", "дата начала болезни", введенная на стартовой форме
# Далее - "Окончание болезни", "дата окончания болезни", введенная инспектором КС в задании "Получить от сотрудника больничный"
# Далее - место для подписи бухгалтера (несколько знаков подчеркивания).
После выполнения задания Word-сценарием бухгалтер получает задание "Рассчитать больничный". Форма задания должна содержать сгенерированный Word-сценарием файл.
После выполнения всех заданий бизнес-процесс завершается.
'''Замечание'''. В бизнес-процессе необходимо проверять, что дата начала больничного не позже даты его окончания.
<p>&nbsp;</p>
== Задание по разработке бизнес-процесса "Командировка в другой регион"  ==
'''1. Возможное содержание страницы описания бизнес-процесса (не обязательно)'''
Служебная командировка - поездка работника на определенный срок для выполнения служебного поручения вне места постоянной работы.
'''2. Описание последовательностей действий в бизнес-процессе '''
Бизнес-процесс начинается с того, что пользователь в стартовой форме заполняет данные, относящиеся к командировке:
* выбирает из списка (список соответствует членам группы "Все сотрудники") сотрудника, который отправляется в командировку
* вводит:
* дату начала командировки
* дату окончания командировки
* город
* организацию, в которую направляется сотрудник
* цель командировки
* причину
* комментарий
* данные для бухгалтера (стоимость билетов, гостиницы и т.п.; все данные для бухгалтера вводятся в одно текстовое поле).
После выбора команды "Запустить" создается новый экземпляр бизнес-процесса.
Далее задание «Рассмотреть заявку на командировку» направляется непосредственному руководителю отправляемого в командировку сотрудника (руководитель определяется отношением "Руководитель"). Руководитель одобряет или не одобряет командировку. В случае неодобрения заявки подавший заявку сотрудник знакомится с отрицательным решением руководителя, после чего бизнес-процесс завершается.
Если командировка одобрена, то подавший заявку сотрудник знакомится с положительным решением руководителя, инспектор кадровой службы (определяется членством в группе "Инспекторы КС") получает задание "Издать приказ".
В форме задания "Издать приказ" инспектор кадровой службы вводит номер приказа (значение типа "Строка"). После выполнения задания инспектором кадровой службы Word-сценарий получает задание "Сгенерировать приказ на командировку". 
Приказ должен содержать:
# В верхней части листа - название условной компании
# Фразу "Приказ о направлении в командировку номер"
# Справа от этой фразы - значение "номер приказа", введенное инспектором кадровой службы
# слово "от"
# Справа от этого слова - дату запуска экземпляра бизнес-процесса
# Далее - "Направить в командировку сотрудника <ФИО сотрудника>"
# "в г.", "город", введенный на стартовой форме
# "в организацию:", "организация", введенная на стартовой форме
# "с целью:", "цель", введенная на стартовой форме
# Далее - "с", "дата начала командировки", введенная на стартовой форме
# Далее - "по", "дата окончания командировки", введенная на стартовой форме
# Далее - место для подписи Генерального директора (несколько знаков подчеркивания), ФИО условного генерального директора компании, дата запуска экземпляра бизнес-процесса
# Внизу - "С приказом ознакомлен", место для подписи сотрудника (несколько знаков подчеркивания), ФИО сотрудника, дата запуска экземпляра бизнес-процесса.
Далее Word-сценарий получает задание "Сгенерировать командировочное удостоверение".
Командировочное удостоверение должно содержать:
# В верхней части листа - название условной компании
# Фразу "Командировочное удостоверение"
# ФИО сотрудника
# Организация
# Внизу:
# "Генеральный директор", название условной компании, место для подписи Генерального директора (несколько знаков подчеркивания), ФИО условного генерального директора компании
# "Работник", место для подписи сотрудника (несколько знаков подчеркивания), ФИО сотрудника
# Дата запуска экземпляра бизнес-процесса.
На следующей странице (обороте):
# "Отметки о выбытии в служебную поездку, прибытии в пункты назначения и выбытии из них и прибытии в место постоянной работы"
# Далее содержится таблица из четырех блоков
[[Image:r_a1.png]]
(из двух строк и двух колонок)
После выполнения этих заданий Word-сценарием командируемый сотрудник получает задание "Подписать приказ", инспектор кадровой службы получает задание "Получить подпись на приказе" (в форме этого задания должна быть ссылка для загрузки сформированного сценарием документа "Приказ на командировку").
После выполнения инспектором кадровой службы задания "Получить подпись на приказе", инспектор кадровой службы выдает сотруднику командировочное удостоверение: Инспектор получает задачу "Выдать командировочное удостоверение" (в форме этого задания должна быть ссылка для загрузки сформированного сценарием документа "Командировочное удостоверение"), Сотрудник получает задачу "Получить командировочное удостоверение" .
После выполнения задания "Выдать командировочное удостоверение" инспектором кадровой службы - бухгалтер (определяется членством в группе "Бухгалтеры") получает задание "Ознакомиться с данными для бухгалтера". В этом задании бухгалтер знакомится с данными, которые были введены на стартовой форме (это требуется бухгалтеру, чтобы рассчитать сумму денег, которую ему надо будет выдать сотруднику).
Далее бухгалтер получает задачу "выдать деньги на командировку", сотрудник получает задание "Получить деньги на командировку". После выполнения задачи бухгалтером бизнес-процесс ждет момента окончания командировки ("Дата окончания командировки" плюс один день).
После этого сотрудник получает задание "Сдать в бухгалтерию документы", подтверждающие командировку, бухгалтеру направляется задание на получение этих документов.
После выполнения всех заданий бизнес-процесс завершается.
'''Замечание'''. В бизнес-процессе необходимо проверять, что дата начала командировки не позже даты её окончания.
<p>&nbsp;</p>
== Задание по разработке бизнес-процесса "Местная командировка"  ==
'''1. Возможное содержание страницы описания бизнес-процесса (не обязательно)'''
Служебная командировка - поездка работника на определенный срок для выполнения служебного поручения вне места постоянной работы.
'''2. Описание последовательностей действий в бизнес-процессе'''
Бизнес-процесс начинается с того, что пользователь в стартовой форме заполняет данные, относящиеся к командировке: выбирает из списка (список соответствует членам группы "Все сотрудники") сотрудника, который отправляется в командировку, вводит дату, время начала, время окончания командировки, организацию, в которую направляется сотрудник, причину, комментарий. После выбора команды "Запустить" создается новый экземпляр бизнес-процесса. Далее задание «Рассмотреть заявку на командировку» направляется непосредственному руководителю отправляемого в командировку сотрудника (руководитель определяется отношением "Руководитель"). Руководитель одобряет или не одобряет командировку. Подавший заявку знакомится с положительным или отрицательным решением руководителя.
Если командировка одобрена, то бизнес-процесс проверяет, запущена ли командировка задним числом. Если командировка запущена задним числом, то задание «Утвердить заявку на командировку» получает руководитель отдела (определяется отношением "Руководитель отдела"), после чего подавший заявку знакомится с решением руководителя отдела. Если командировка подтверждена всеми необходимыми лицами, то Word-сценарий получает задание "Сгенерировать служебную записку на командировку". 
Служебная записка должна содержать:
# Фразу "Служебная записка"
# Фразу "Прошу направить меня в местную командировку"
# Дату, время начала и время окончания местной командировки, введенные на стартовой форме
# Организацию и причину, введенные на стартовой форме
# Дату запуска экземпляра бизнес-процесса
# Место для подписи сотрудника (несколько знаков подчеркивания)
# ФИО сотрудника.
Далее сотрудник получает задание "Подписать и отдать служебную записку руководителю", в форме задания должна быть ссылка для загрузки сформированного сценарием документа "Служебная записка".
Руководитель сотрудника получает задание "Получить служебную записку".
После выполнения всех заданий бизнес-процесс завершается.
'''Замечание'''. В бизнес-процессе необходимо проверять, что время начала командировки не позже времени её окончания.
<p>&nbsp;</p>
== Задание по разработке бизнес-процесса "Отгул"  ==
'''1. Возможное содержание страницы описания бизнес-процесса (не обязательно)'''
Руководитель может предоставить сотруднику отгул в качестве поощрения за хорошую работу. Отгул дается не более чем на 4 часа рабочего времени.


В данном занятии рассматривается работа с MS Excel файлами и разработка бизнес-процессов использующих сценарии для записи и чтения из Excel файла.
<ol>
<li> '''Запустите''' среду разработки.
</li>


<li>'''Создайте''' новый проект -  "Занятие 06".
'''2. Описание последовательностей действий в бизнес-процессе '''
</li>


<li>'''Создайте''' новый бизнес-процесс "Пример 06-1"
Бизнес-процесс начинается с того, что сотрудник, желающий получить отгул, в стартовой форме заполняет данные: дату и время начала отгула (не может быть более чем на 30 дней в прошлом, если речь идёт о ранее предоставленном отгуле), количество часов отсутствия (целое положительное число, не может быть больше четырех). После выбора команды "Запустить" создается новый экземпляр бизнес-процесса.  
(Подробнее см. ''"Практикум. Вводное занятие", [[TrainingMaterials_4_4_1_Introduction#.D0.A1.D0.BE.D0.B7.D0.B4.D0.B0.D0.BD.D0.B8.D0.B5_.D0.BF.D1.80.D0.BE.D0.B5.D0.BA.D1.82.D0.B0|Порядок выполнения работы]], Пункт 16, Рис 5.15'').
</li>


<li>'''Добавьте''' элементы на схему бизнес-процесса в соответствии с Рис.3.01.
Далее задание «Рассмотреть заявку на отгул» направляется непосредственному руководителю сотрудника (руководитель определяется отношением "Руководитель"). Руководитель одобряет или не одобряет отгул. Подавший заявку знакомится с решением руководителя.  
</li>[[Файл:Blank.png|без]]


[[Файл:442-Documents 3-01.png|обрамить|центр|Рисунок 3.01. Схема бизнес-процесса "Пример 06-1"]]
Если отгул одобрен, то бизнес-процесс проверяет, затребован ли отгул задним числом. Если отгул затребован задним числом, то задание «Утвердить заявку на отгул» получает руководитель отдела (определяется отношением "Руководитель отдела"), после чего подавший заявку струдник знакомится с решением руководителя отдела.


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


Используйте элементы Начало, Действие, Задача сценария, Окончание.


'''Замечание'''. Для первого элемента "Задача сценария" используйте опцию "Компактный вид".
Служебная записка должна содержать:


(Подробнее см. ''Практическое занятие "06 Работа с 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|Порядок выполнения работы]], Пункт 1, Замечание, Рис. 2.2'').
# Фразу "Служебная записка"
# Фразу "Прошу предоставить мне отгул"
# Дату, время начала и количество часов отгула, введенные на стартовой форме
# Дату запуска экземпляра бизнес-процесса
# Место для подписи сотрудника (несколько знаков подчеркивания)
# ФИО сотрудника.


Элемент "Начало" назовите "Ввести данные для сохранения в Excel документе", первую задачу сценария - "Определение даты создания документа", остальные элементы назовите в соответствии с Рис.3.01.
Далее сотрудник получает задание "Подписать и отдать служебную записку руководителю", в форме задания должна быть ссылка для загрузки сформированного сценарием документа "Служебная записка".


<li>'''Создайте''' роли.
Руководитель сотрудника получает задание "Получить служебную записку".  
</li>
<p>В данном процессе используется единственная роль:</p>


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


Выберите для узлов роли в соответствии с рисунком 3.01.
После выполнения всех заданий бизнес-процесс завершается.
<p>&nbsp;</p>


<li>'''Создайте''' переменные для бизнес-процесса "Пример 06-1" согласно Рис.3.02.
== Задание по разработке бизнес-процесса "Отпуск по уходу за ребенком" ==
</li>[[Файл:Blank.png|без]]
'''1. Возможное содержание страницы описания бизнес-процесса (не обязательно)'''


[[Файл:Lab4 r9 2.png|обрамить|центр|Рисунок 3.02. Переменные бизнес-процесса "Пример 06-1"]]
По заявлению женщины ей предоставляется отпуск по уходу за ребенком до достижения им возраста полутора/трех лет. Порядок и сроки выплаты пособия по государственному социальному страхованию в период указанного отпуска определяются федеральными законами.  




'''Замечание'''. Обратите внимание на переменную "перечень дисциплин", имеющую формат Список(Строка). При создании этой переменной в интерфейсе выбора формата также необходимо будет выбрать и формат элементов списка (Рис.3.03).
'''2. Описание последовательностей действий в бизнес-процессе '''


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


[[Файл:Lab4 r9 3.png|обрамить|центр|Рисунок 3.03. Выбор формата переменной "перечень дисциплин" бизнес-процесса "Пример 06-1"]]
Следующее задание «Проверить соблюдение технологий и законов» получит инспектор кадровой службы (определяется членством в группе "Инспекторы КС"). В содержащейся в задании форме он отмечает, соблюдены ли законы и технологии. Если законы или технологии не соблюдены, то подавшему заявку направляется уведомление об отказе регистрации заявки и далее бизнес-процесс завершается.


Если законы и технологии соблюдены, то руководитель (руководитель определяется отношением "Руководитель") уведомляется об уходе сотрудника в отпуск, одновременно с этим инспектор кадровой службы получает задачу «Издать приказ».


<li>'''Создайте''' формы.
В форме задания "Издать приказ" инспектор кадровой службы вводит номер приказа (значение типа "Строка"). После выполнения задания инспектором кадровой службы Word-сценарий получает задание "Сгенерировать приказ на отпуск по уходу за ребенком".  
</li>


<p>'''Замечание'''. По умолчанию в качестве редактора форм используется CKEditor4, но в случае если у вас в системе установлен браузер Microsoft Internet Explorer устаревшей версии - 6 (IE6) или 7 (IE7), то с формами могут возникнуть проблемы. Поэтому следует переключить редактор на FCKEditor2 (как переключить редактор см. в ''Практическое занятие "Изучение перспективы данных", Порядок выполнения работы, Пункт 6, Рис. 4.9, 4.10'' ).</p>


Создайте стартовую форму "Ввод данных" вида, представленного на рисунке 3.04
Приказ должен содержать:
(Подробнее см. ''Практическое занятие "Изучение перспективы данных", [[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'').


# В верхней части листа - название условной компании
# Фразу "Приказ номер"
# Справа от этой фразы - значение "номер приказа", введенное инспектором кадровой службы"
# слово "от"
# Справа от этого слова - дату запуска экземпляра бизнес-процесса
# Далее - "Предоставить сотруднику <ФИО сотрудника> отпуск по уходу за ребенком"
# Далее - "с", "дата начала отпуска", введенная на стартовой форме
# Далее - "по", "дата окончания отпуска", введенная на стартовой форме
# Далее - место для подписи Генерального директора (несколько знаков подчеркивания), ФИО условного генерального директора компании, дата запуска экземпляра бизнес-процесса
# Внизу - "С приказом ознакомлен", место для подписи сотрудника (несколько знаков подчеркивания), ФИО сотрудника, дата запуска экземпляра бизнес-процесса.


[[Файл:Lab4 r9 4e.png|обрамить|центр|Рисунок 3.04. Стартовая форма "Ввести данные для сохранения в Excel документ" бизнес-процесса "Пример 06-1"]]
Далее Word-сценарием получает задание "Сгенерировать заявление на отпуск по уходу за ребенком".


Заявление должно содержать:


Напротив строки "Специальность" расположите компонент "Ввод переменной" для переменной - "Специальность"
# В верхней части листа "Генеральному директору" - название условной компании, ФИО условного Генерального директора, "от сотрудника"
(Подробнее см. ''Практическое занятие "Изучение перспективы данных", [[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.21-4.22'').
# ФИО уходящего в отпуск сотрудника
# Фразу "Заявление"
# На следующей строке "Прошу предоставить мне отпуск по уходу за ребенком с", "дата начала отпуска", введенная на стартовой форме, "по", "дата окончания отпуска", введенная на стартовой форме
# Внизу - ФИО сотрудника, место для подписи сотрудника (несколько знаков подчеркивания), дата запуска экземпляра бизнес-процесса.


Аналогично добавьте компонент для ввода переменной "номер курса".
После выполнения этих заданий Word-сценарием сотрудник должен выполнить задачу «Отдать в КС заявление и подписать приказ». В форме этого задания должна быть ссылка для загрузки сформированного сценарием документа "Заявление на отпуск по уходу за ребенком". Инспектору кадровой службы направляется задача «Получить заявление и подпись на приказе». В форме этого задания должна быть ссылка для загрузки сформированного сценарием документа "Приказ на отпуск по уходу за ребенком".  


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


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


[[Файл:Lab4 r9 5e.png|обрамить|центр|Рисунок 3.05. Компонент "Редактировать связанные списки" для переменной "перечень дисциплин"]]
'''Замечание'''. В бизнес-процессе необходимо проверять, что дата начала отпуска не позже даты его окончания.
<p>&nbsp;</p>


== Задание по разработке бизнес-процесса "Сдвиг  графика работы"  ==
'''1. Возможное содержание страницы описания бизнес-процесса (не обязательно)'''


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


  ● "специальность" - обязательное поле
  ● "перечень дисциплин" - обязательное поле
  ● "номер курса" - обязательное поле, а также диапазон числа (от 1 до 6)


Для этого кликните на стартовом узле правой клавишей мыши и выберите пункт "Форма / Проверка переменных формы". В появившейся форме выделяйте переменные и устанавливайте необходимые валидаторы
'''2. Описание последовательностей действий в бизнес-процессе '''
(см. ''Практическое занятие "Изучение перспективы операций", Пункт 15, рис. 5.27, 5.28'').


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


* день недели (содержится в строке таблицы, не вводится пользователем, значения в строках таблицы - пн. вт. ср. чт. пт. сб. вс.)
* время прихода (вводится пользователем для каждой строки; если прихода в этот день не предполагается, то остаётся значение 00:00)
* время ухода (вводится пользователем для каждой строки; если прихода не предполагается, то остаётся значение 00:00)
* величина обеденного перерыва (выбор из списка: 30 минут, 1 час).


[[Файл:Lab4 r9 6e.png|обрамить|центр|Рисунок 3.06. Форма "Просмотреть данные перед сохранением в Excel документ"]]
После выбора команды "Запустить" создается новый экземпляр бизнес-процесса. Далее задание «Рассмотреть заявку на сдвиг графика» направляется руководителю Сотрудника (руководитель определяется отношением "Руководитель").


Руководитель одобряет или не одобряет заявку.


На этой форме отображаются данные, введенные в стартовой узле.
Если решение руководителя отрицательно, то Сотрудник знакомится с отрицательным решением руководителя, далее бизнес-процесс завершается.
Для переменных "Специальность" и "Номер курса" для компонента "Отобразить переменную" используется форма отображения "Как строку" (Рис.3.07).


Если решение руководителя положительно, то Сотрудник знакомится с положительным решением руководителя, параллельно с этим заданием задание на утверждение заявки направляется руководителю руководителя Сотрудника. Руководитель руководителя также может подтвердить или не подтвердить заявку. Сотрудник и руководитель сотрудника знакомятся с положительным (или отрицательным) решением руководителя руководителя.


[[Файл:Lab4 r9 7ae.png|обрамить|центр|Рисунок 3.07. Отобразить переменную "Специальность" как строку]]
Если решение руководителя руководителя положительно, то Word-сценарий получает задание "Сгенерировать служебную записку на сдвиг графика".




Для вывода списка "перечень дисциплин" используйте компонент "Отобразить связанные списки".
Служебная записка должна содержать:


# Фразу "Служебная записка"
# Фразу "Прошу утвердить мой индивидуальный график работы для периода времени:"
# Даты начала и окончания действия графика работы, введенные на стартовой форме
# Таблицу введенных на стартовой форме приходов и уходов по дням недели
# Дату запуска экземпляра бизнес-процесса
# Место для подписи сотрудника (несколько знаков подчеркивания)
# ФИО сотрудника.


[[Файл:Lab4 r9 7be.png|обрамить|центр|Рисунок 3.08. Отобразить связанные списки]]
Далее сотрудник получает задание "Подписать и отдать служебную записку руководителю", в форме задания должна быть ссылка для загрузки сформированного сценарием документа "Служебная записка". Руководитель сотрудника получает задание "Получить служебную записку". После выполнения всех заданий бизнес-процесс завершается.




Создайте форму "Получить созданный Excel документ", на которой отобразите ссылку для скачивания созданного Excel-файла.
'''Замечание 1'''. В бизнес-процессе необходимо проверять, что дата начала действия графика не позже даты окончания действия графика, дата начала действия графика не может быть раньше завтрашней даты.
Используйте компонент "Отобразить переменную" для файловой переменной "полученный excel файл".




[[Файл:Lab4 r9 8e.png|обрамить|центр|Рисунок 3.09. Форма "Получить созданный Excel документ"]]
'''Замечание 2'''. В каждой строке таблицы время прихода должно быть меньше или равно времени ухода. Случай, когда время прихода и время ухода равны 00:00 соответствует запланированному отсутствию сотрудника в этот день в офисе компании.
<p>&nbsp;</p>


== Задание по разработке бизнес-процесса "Отпуск без сохранения зарплаты"  ==
'''1. Возможное содержание страницы описания бизнес-процесса (не обязательно)'''


<li>'''Создайте''' обработчик.
По семейным обстоятельствам и другим уважительным причинам работнику по его письменному заявлению может быть предоставлен отпуск без сохранения заработной платы, продолжительность которого определяется по соглашению между работником и работодателем.
</li>


Выберите класс обработчика "Выполнить формулу" в задаче сценария "дата создания документа"


(см. ''Практическое занятие "Изучение перспективы данных", [[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|Порядок выполнения работы]], Пункт 8, Рис. 4.39, 4.40'').<br>
'''2. Описание последовательностей действий в бизнес-процессе'''


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


<li>'''Выберите класс''' обработчика для узла-сценария "Сохранить данные в Excel документ". Для этого щёлкните правой кнопкой по этому узлу и выберите в выпавшем меню пункт "Выбрать класс обработчика" для показа списка обработчиков (Рис.3.10). </li>[[Файл:Blank.png|без]]
В появившейся стартовой форме надо ввести требуемые данные: ввести даты начала и окончания отпуска, причину и комментарий.  


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


[[Файл:442-Documents 3-10.png|обрамить|центр|Рисунок 3.10. Вызов списка обработчиков]]
Следующее задание «Рассмотреть заявку на отпуск» получит руководитель сотрудника (руководитель определяется отношением "Руководитель"). Руководитель одобряет или не одобряет заявку. Если решение руководителя было отрицательным, то подавший заявку сотрудник знакомится с отрицательным решением руководителя, далее процесс завершается.  


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


В появившемся интерфейсе со списком выделите обработчик "Excel: Сохранить данные в файл" (ExcelSaveHandler), а затем выберите кнопку "ОК" (Рис.3.11).  
Если законы или технологии не соблюдены, то бизнес-процесс сообщает руководителю и подавшему заявку сотруднику о несоблюдении технологий. Далее процесс завершается.  


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


[[Файл:442-Documents 3-11.png|обрамить|центр|Рисунок 3.11. Выбор обработчика из списка обработчиков]]
Если решение директора положительное – инспектору кадровой службы направляется задание "Издать приказ". В форме задания "Издать приказ" инспектор кадровой службы вводит номер приказа (значение типа строка). После выполнения задания инспектором кадровой службы Word-сценарий получает задание "Сгенерировать приказ на отпуск без сохранения зарплаты".  




Снова щёлкните правой кнопкой по узлу "Сохранить данные в Excel документ" и выберите в выпавшем меню пункт "Конфигурация" (Рис.3.10). На экране появится интерфейс "Запись в файл Excel" (Рис.3.12).
Приказ должен содержать:


# В верхней части листа - название условной компании
# Фразу "Приказ номер"
# Справа от этой фразы - значение "номер приказа", введенное инспектором кадровой службы"
# слово "от"
# Справа от этого слова - дату запуска экземпляра бизнес-процесса
# Далее - "Предоставить сотруднику <ФИО сотрудника> отпуск без сохранения зарплаты"
# Далее - "с", "дата начала отпуска", введенная на стартовой форме
# Далее - "по", "дата окончания отпуска", введенная на стартовой форме
# Далее - место для подписи Генерального директора (несколько знаков подчеркивания), ФИО условного генерального директора компании, дата запуска экземпляра бизнес-процесса
# Внизу - "С приказом ознакомлен", место для подписи сотрудника (несколько знаков подчеркивания), ФИО сотрудника, дата запуска экземпляра бизнес-процесса.


[[Файл:442-Documents 3-12-01.png|обрамить|центр|Рисунок 3.12. Начало конфигурирования обработчика записи в Excel-файл]]
Далее Word-сценарий получает задание "Сгенерировать заявление на отпуск без сохранения зарплаты".  


Заявление должно содержать:


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


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


[[Файл:442-Documents 3-13.png|обрамить|центр|Рисунок 3.13. Конфигурация выходного файла]]


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


Здесь:


  ● входной файл - это файл шаблона, на основе которого будет создан выходной Excel-файл с именем file.xlsx
'''Замечание'''. В бизнес-процессе необходимо проверять, что дата начала отпуска не позже даты его окончания.
  ● выходной файл - задан с помощью параметра "выходной файл", его имя - file.xlsx; это Excel-файл, который будет создан при выполнении прцесса на основе шаблона и в который будут записаны данные, взятые из указанных при его конфигурировании переменных
<p>&nbsp;</p>
  ● отдельная ячейка (страница 1, столбец 2, строка 1) - по данному адресу в таблицe Excel будет записано значение переменной "специальность"
  ● отдельная ячейка (страница 1, столбец 2, строка 2) - по данному адресу в таблицe Excel будет записано значение переменной "номер курса"
  ● отдельная ячейка (страница 1, столбец 2, строка 3) - по данному адресу в таблицe Excel будет записано значение переменной "дата создания документа"
  ● массив по вертикали (страница 1, столбец 1, строка 6) - начиная с данного адреса в таблицe Excel будут записаны значения списковой переменной "перечень дисциплин", причём элементы списка будут располагаться вертикально, следующий под предыдущим


Для группы "Входной файл" выберите из выпадающего списка "Файл в системе". Рядом с полем выбора появится ссылка "Создать".
== Задание по разработке бизнес-процесса "Сверхурочные" ==
'''1. Предлагаемое содержание страницы описания бизнес-процесса (не обязательно)'''


Сверхурочные работы проводятся только тогда, когда проведение данных работ в рабочее время нарушит нормальную работу офиса компании.


Теперь выберите появившуюся ссылку "Создать" для создания шаблона xlsx-файла. Для узла "Сохранить данные в Excel документ" будет создан xlsx-шаблон (пока невидимый) и ссылка "Создать" поменяется на ссылку "Изменить". Выберите эту ссылку "Изменить". Будет запущен отдельной вкладкой редактор для Excel-файлов с созданным только что шаблоном. Закройте интерфейс "Запись в файл Excel" выбором "ОК".


<li>'''Создайте''' текст шаблона (Рис.3.14).
'''2. Описание последовательностей действий в бизнес-процессе'''
</li><p>&nbsp;</p>
[[Файл:Lab4 r9 14.png|обрамить|центр|Рисунок 3.14. Текст Excel-шаблона ]]


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


<li>'''Сохраните процесс.'''</li>
После выбора команды "Запустить" создается новый экземпляр бизнес-процесса. Далее задание "Рассмотреть предложение о сверхурочных работах" направляется сотруднику.  


Сотрудник соглашается или не соглашается на сверхурочные работы. Подавший заявку знакомится с решением сотрудника. Если решение сотрудника было положительным, то задание «рассмотреть заявку на сверхурочные» направляется руководителю сотрудника (руководитель определяется отношением "Руководитель").


<li>'''Экспортируйте''' процесс на сервер
Руководитель одобряет или не одобряет сверхурочные. Подавший заявку струдник и выбранный сотрудник знакомятся с решением руководителя. Если руководитель одобрил заявку, то далее задание «Утвердить заявку» направляется в Директорат (определяется членством в группе "Директор и заместители").  
</li>
(Подробнее см. ''"Практикум. Перспективы исполнимых бизнес-процессов", Практическое занятие "Изучение перспективы потока управления", [[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|Порядок выполнения работы]], Пункт 11-14'').


<li>'''Экспортируйте''' Excel бот с задачей на сервер
Директорат утверждает или не утверждает заявку. Если Директорат не утвердил заявку, то происходит оповещение соответствующих лиц об этом и бизнес-процесс завершается. Если Директорат утвердил заявку, то бизнес-процесс ждет даты сверхурочных, после этого руководитель сотрудника получает задачу "Подтвердить выполнение сверхурочных" (руководитель выполняет это задание для того, чтобы подтвердить/не подтвердить, что сверхурочные работы действительно были выполнены). Если руководитель не подтвердил выполнение сверхурочных работ, то все ранее участвующие в бизнес-процессе лица получают уведомления об этом, и после выполнения задач уведомления бизнес-процесс завершается.
</li>
(Подробнее см. ''Практическое занятие "Работа с Word-ботом", Порядок выполнения работы, Пункт 20, рис. 2.51 - 2.52'').


<li>'''Войдите''' в систему под пользователем Administrator, пароль –wf
Если руководитель сотрудника подтвердил выполнение сверхурочных, то инспектор кадровой службы (определяется членством в группе "Инспекторы КС") получает задание "Издать приказ".
</li>


<li>'''Дайте''' полномочия группе "Преподаватели" на запуск, чтение и чтение экземпляра процесса "Пример 6-1"
В форме задания "Издать приказ" инспектор кадровой службы вводит номер приказа (значение типа строка). После выполнения задания инспектором кадровой службы Word-сценарий получает задание "Сгенерировать приказ на сверхурочные работы"
</li>


<li>'''Запустите''' периодическую активацию ботов
</li>
(Подробнее см. ''Практическое занятие "Изучение перспективы операций", Порядок выполнения работы, Пункт 12, рис. 5.11'').


<li>'''Войдите''' в систему под пользователем, входящим в группу  "Преподаватели", например "Стрекозин", пароль - 123
Приказ должен содержать:
</li>


<li>'''Запустите''' экземпляр бизнес-процесса "Пример 6-1" и доведите его до завершения.
# В верхней части листа - название условной компании
</li>
# Фразу "Приказ о сверхурочных работах номер"
# Справа от этой фразы - значение "номер приказа", введенное инспектором кадровой службы
# слово "от"
# Справа от этого слова - дату запуска экземпляра бизнес-процесса
# Далее - "Привлечь к сверхурочным работам сотрудника <ФИО сотрудника>"
# Далее - "в период", "время начала", "время окончания", "дата сверхурочных работ" (введенные на стартовой форме)
# Далее - место для подписи Генерального директора (несколько знаков подчеркивания), ФИО условного генерального директора компании, дата запуска экземпляра бизнес-процесса
# Внизу - "С приказом ознакомлен", место для подписи сотрудника (несколько знаков подчеркивания), ФИО сотрудника, дата запуска экземпляра бизнес-процесса.  


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


После выполнения задания "Получить подпись сотрудника на приказе" инспектором КС - бухгалтер (определяется членством в группе "Бухгалтеры") получает задание "Начислить деньги за сверхурочные".


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


<center>Рисунок 3.20 Ввод данных на стартовой форме</center>
'''Замечание'''. На стартовой форме бизнес-процесса надо проверять, что время начала сверхурочных меньше времени окончания сверхурочных.
<p>&nbsp;</p>


Нажмите Запустить, выполните полученное задание "Просмотреть данные перед сохранением в Excel документ"
== Задание по разработке бизнес-процесса "Отсутствие по неизвестной причине" ==
'''1. Возможное содержание страницы описания бизнес-процесса (не обязательно):'''


Это оформление отсутствия сотрудника на работе, причина которого неизвестна.


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


<center>Рисунок 3.21 Задание "Перед записью в файл"</center>
'''2. Описание последовательностей действий в бизнес-процессе'''


Excel бот выполнит задачу "Записать данные в файл"
В случае незапланированного отсутствия сотрудника его руководитель запускает бизнес-процесс на выполнение.


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


<center>[[Image:lab4_r9_21e.png]]</center>
После выбора команды "Запустить" создается новый экземпляр бизнес-процесса.


<center>Рисунок 3.22 Граф выполнения процесса "Пример 6-1"</center>
Далее запустившему бизнес-процесс руководителю направляется задание "Сообщить об окончании отсутствия".


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




<center>[[Image:lab4_r9_22e.png]]</center>
Далее процесс разделяется на две параллельные ветки.


<center>Рисунок 3.23 Ссылка на созданный Excel файл</center>


Будет загружен file.xlsx, сохраните его на C:\
В первой ветке сотруднику направляется задание "Написать объяснительную записку", в форме которого содержится текстовая область для ввода текста объяснительной записки. Это поле должно быть обязательным для ввода.
Откройте файл.


Далее Word-сценарий получает задание "Сгенерировать объяснительную записку по незапланированному отсутствию".


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


<center>Рисунок 3.24 Созданный с помощью Excel бота file.xlsx</center>
Объяснительная записка должна содержать:


Как видно из рисунка 3.24, полученный файл соответствует шаблону, заданной конфигурации задачи бота, а также содержит введенные пользователем данные.
# Фразу "Объяснительная записка по факту отсутствия на работе в период с"
# Дату начала отсутствия
# "по", дату окончания отсутствия
# Текст объяснительной записки, введенный в форме предыдущего узла-действия
# Текущую дату
# Место для подписи сотрудника (несколько знаков подчеркивания)
# ФИО сотрудника.  


<li>'''Завершите''' процесс
Далее сотрудник получает задание "Подписать и отдать объяснительную записку руководителю", в форме задания должна быть ссылка для загрузки сформированного сценарием документа "Объяснительная записка".
</li>


<li>'''Запустите''' среду разработки.
Руководитель сотрудника получает задание "Получить объяснительную записку".
</li>


<li>'''Создайте''' новый бизнес-процесс "Пример 6-2".
</li>


<li>'''Добавьте''' элементы на схему бизнес-процесса в соответствии с рисунком 3.25
Во второй ветке запустившему процесс направляется задание "Выбрать тип отсутствия". Это задание служит для облегчения запуска процесса, "покрывающего" незапланированное отсутствие (больничного, отпуска и т.д.), если интервал незапланированного отсутствия можно покрыть одним видом отсутствия. В форме содержится список выбора:
</li>


<center>[[Image:lab4_r9_24e.png]]</center>
* Больничный
* Ежегодный отпуск
* Отпуск без сохранения зарплаты
* Другое отсутствие.  


<center>Рисунок 3.25 Схема бизнес-процесса "Пример 6-2"</center>
После выбора "покрывающего" отсутствия (кроме случая "Другое отсутствие") точка управления должна перейти в соответствующий покрывающему отсутствию подпроцесс, в этот подпроцесс должны быть переданы нужные для его дальнейшего исполнения данные из родительского процесса.


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


<li>'''Создайте''' роль Студент
</li>


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


<li>'''Создайте''' переменные
</li>


В данном процессе используются те же переменные что и в "Пример 6-1", за исключением переменной "полученный excel файл".
'''Замечание 2'''. В качестве подпроцессов, запускаемых для покрытия незапланированного отсутствия, предполагается использовать бизнес-процессы, разрабатываемые другими студентами группы в рамках настоящего практикума. Начать надо с единственного варианта выбора "Другое отсутствие", к которому постепенно добавлять варианты вызова покрывающих подпроцессов.
<p>&nbsp;</p>


Откройте процесс "Пример 6-1", перейдите на вкладку переменные, выделите переменные (за исключением полученный excel файл") и нажмите кнопку "Копировать" (см. Рис. 3.26).
== Требования к представлению результатов занятия ==


В результате выполнения лабораторной работы должны быть представлены преподавателю отчет, шаблоны документов для Word-сценариев, файл с данными archive.datafile ([[ExportDataFile#Description |как получить файл данных]]), содержащий разработанные на занятии бизнес-процессы.


<center>[[Image:lab4_r9_25ae1.png]]</center>
В отчете должны содержаться следующие выходные данные:


<center>Рисунок 3.26 Копирование переменных</center>
<ol>
<li> Скриншоты основных действий, совершенных на занятии, с пояснениями
<li> Скриншоты, содержащие маршруты точек управления для экземпляров бизнес-процессов, доведенных до завершения
<li> Скриншоты, содержащие созданные на занятии роли, переменные, группы пользователей, отношения, основные формы
<li> Описание возникших при выполнении задания проблем и найденных путей их решения (не обязательно, только  если возникли проблемы при выполнении задания).
</ol>
<p>&nbsp;</p>


Затем откройте процесс "Пример 6-2", перейдите на вкладку "Переменные" и нажмите кнопку "Вставить", переменные добавятся в список (см. Рис. 3.27).
= Ссылки =
# <nowiki>Документация Runa WFE [официальный сайт проекта]. </nowiki>''URL: [https://{{SERVERNAME}}/rus/doc/Документация https://{{SERVERNAME}}/rus/][https://{{SERVERNAME}}/rus/doc/Документация Документация]




<center>[[Image:lab4_r9_25be1.png]]</center>
= Необходимые доработки =


<center>Рисунок 3.27 Вставка переменных</center>
# Необходимо актуализировать ссылки, переадресовав их на страницы из раздела "Cloud".
# Для обработчика "Word Handler" необходимо значение "Файл" параметра "Input file" переименовать на "Файл в процессе".
# В описании "без прав" Светлана сократила часть описания и картинки в нём. Надо сделать как там.
# Поскольку дублирование id шаблонов документов устранено, можно удалить из графа процесса "Пример 05-1" узел промежуточного просмотра результатов. Соответственно необходимо изменить описание.

Текущая версия на 23:06, 18 марта 2024

RunaWFE Онлайн. Практикум. Работа с MS Word и MS Excel документами

Версия 4.5.0

© 2015-2023, ООО "Процессные технологии"


Введение

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

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

  • было дано описание основных элементов систем управления бизнес-процессами и административными регламентами на примере свободного ПО с открытым кодом RunaWFE Free
  • показано, как установить систему
  • приведено вводное занятие, в котором объяснены базовые операции, позволяющие разрабатывать и исполнять бизнес-процессы.


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

 • перспектива потока управления (control-flow perspective)
 • перспектива ресурсов (resource perspective)
 • перспектива данных (data perspective)
 • перспектива операций (operational perspective). 

Разделы практикума "Вводное занятие" и "Перспективы исполнимых бизнес-процессов" можно найти на сайте проекта RunaWFE Free в разделе Учебные материалы по процессному управлению.

В данном разделе практикума рассмотрена и объяснена работа с MS Word и MS Excel документами, приведено описание самостоятельного занятия.


Замечание: В RunaWFE Free 4.4.1 для упрощения работы, по умолчанию проверка прав доступа отключена. Это означает что при доступе к объектам системы (исполнители, определения БП, экземпляры БП, отчеты, отношения, источники данных, действия с системой) права пользователя не проверяются. Но для изучения системы прав необходимо включить проверки. Для этого вам потребуется перевести в значение "true" параметры, расположенные на странице "Настройки" -> "Настройки прав доступа".

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

Практическое занятие 05: "Работа с MS Word-документами"

Цель занятия

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

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

  1. Пройдите в браузере в приложение RunaWFE (облачную версию RunaWFE) по ссылке https://cloud.runawfe.ru/. Создайте свою компанию.
  2. Замечание: Пользователь Administrator создаётся при создании компании автоматически с паролем по умолчанию - "wf". В дальнейшем, зайдя в веб-приложение, можно установить свой пароль пользователя Administrator (в настройках пользователя - пункт меню "Исполнители").
  3. Зайдите в систему RunaWFE под учётной записью Administrator.
  4. Появится окно приложения. Перейдите в раздел «Редактор процессов».
  5. Создайте новый проект - "Занятие 05". Создайте в нём новый бизнес-процесс "Пример 05-1". Используйте следующие элементы для создания бизнес-процесса в соответствии с Рис.2.01:
  6.  • Начало
     • Задача сценария
     • Действие
     • Параллельный шлюз
     • Исключающий шлюз
     • Подпроцесс. 
    
    Рисунок 2.01. Схема бизнес-процесса "Пример 05-1"

    Создайте роли:

     • Руководитель
     • Сотрудник
     • Отдел кадров
     • Директор
     • Бухгалтер.
    

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

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

  7. Создайте группы:
  8.  • Директор 
     • Отдел кадров
     • Бухгалтеры
     • Сотрудники. 
    

    (см. "Вводное занятие". [Прядок выполнения работы] Пункт 5, Рис.5.6).

  9. Инициализируйте роли "Директор", "Отдел кадров", "Бухгалтер" с помощью соответствующих групп (Директор, Отдел кадров, Бухгалтеры).
  10. Для этого вернитесь в редакторе к разрабатываемому процессу, перейдите на вкладку Роли, выберите роль и щёлкните на кнопку "Edit", находящуюся перед ней. Используйте инициализацию с помощью групп wf (подробнее см. Практическое занятие "Изучение перспективы операций", Порядок выполнения работы, Пункт 13, Рис.5.13-5.14).
  11. Создайте указанных ниже исполнителей и распределите их по группам:
  12. Добавьте в группу "Директор" исполнителей:

     • Стрекозин Александр Николаевич.  
    

    Добавьте в группу "Бухгалтеры" исполнителей:

     • Жуков Иван Ильич
     • Бражникова Ольга Иосифовна. 
    

    Добавьте в группу "Отдел кадров" исполнителей:

     • Личинкин Василий Федорович 
     • Гусеницын Михаил Васильевич. 
    

    Добавьте в группу "Сотрудники" исполнителей:

     • Жуков Иван Ильич 
     • Бражникова Ольга Иосифовна 
     • Личинкин Василий Федорович 
     • Гусеницын Михаил Васильевич 
     • Сверчков Иван Иванович
     • Паучков Петр Петрович 
     • Стрекозин Александр Николаевич.    
    
  13. Создайте отношение "Руководитель" (См. пример создания отношения в пунктах 10-11 раздела "Практическое занятие "Изучение перспективы ресурсов", Рис.3.5-3.6).
  14. Откройте отношение "Руководитель" и создайте пару "Паучков " - "Сверчков" (см.Рис.2.01а).
    Рисунок 2.01а. Отношение Руководитель


    Таким образом, Паучков руководитель Сверчкова.

  15. Создайте переменные в соответствии с Рис.2.02.
  16. Рисунок 2.02. Переменные бизнес-процесса


    Для переменной "Отношение" необходимо использовать значение по умолчанию "Руководитель".

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

    Щёлкните правой кнопкой по стартовому узлу и выберите пункт "Create custom form" ("Создайте пользовательскую форму") (Рис.2.03).

    Рисунок 2.03. Бланк пользовательской формы

    Для создания поля щёлкните в этом меню кнопку "add new component". В меню формирования компонента из выпадающего списка "component" выберите компонент формы "Choose executor by relation" ("Выбрать пользователя по отношению [с параметром]"). Данный компонент формирует список выбора пользователя по отношению, отфильтрованного по параметру отношения (при этом группы в список не попадают) (Рис.2.04).

    Рисунок 2.04. Выбор типа компонента формы

    В появившемся меню заполните поля как показано на Рис.2.05 и выберите кнопку "create".

    Рисунок 2.05. Создание в форме поля "Сотрудник"

    Аналогичным образом создайте поля "Размер премии" и "Описание выполненных работ". Эти поля имеют текстовое заполнение и для них следует выбирать тип компонента "Input variable" (Рис.2.04). Окончательный вид меню создания формы для стартового узла представлен на Рис.2.06.

    Рисунок 2.06. Окончательный вид интерфейса создания формы стартового узла

    HTML-текст заголовка на форме "Заявка на премирование сотрудника"

    <P style="text-align: center;">
    <SPAN style="font-size: 20px;"><SRTONG>Заявка на премирование сотрудника</STRONG></SPAN>
    </P>
    

    необходимо ввести руками в режиме редактирования HTML на форме. Для входа в него выберите ссылку "edit" справа от ссылки "html", с помощью которой можно управлять видимостью HTML-скрипта формы. Для сохранения введённого в скрипт изменения выберите ссылку "update" над скриптом.

  19. Настройте задачи сценариев.
  20. По задаче сценария "ФИО сотрудника" щёлкните правой кнопкой мыши и из выпавшего меню выберите команду "Configurate script" ("Отконфигурировать скрипт"). В поле "Handler" появившегося меню выберите обработчик "Get executor unfo" ("Получить информацию об исполнителе"). Меню приобретёт вид, показанный на Рис.2.07. Заполните остальные поля согласно этому рисунку и выберите кнопку "update".

    Рисунок 2.07. Параметры задачи сценария "ФИО сотрудника"

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

    Но в служебной записке и приказе на премирование должно использоваться ФИО в дательном падеже. Это значение позволит получить следующая задача сценария "ФИО сотрудника в дательном падеже", в конфигурации которого необходимо выбрать класс обработчика "Execute formula" ("Выполнить формулу"). В текстовое поле конфигурации обработчика добавьте следующую формулу:

    'ФИО сотрудника 3'=FIO_case_ru('ФИО сотрудника', 3, "F i o"); 
    

    'ФИО сотрудника 3' - переменная, в которую будет сохранено ФИО в дательном падеже,

    FIO_case_ru(fio, caseNumber, mode) - функция, склоняющая ФИО, имеет параметры:

    • fio - фамилия, имя и отчество в именительном падеже (в нашем случае задана с помощью переменной 'ФИО сотрудника')
    • caseNumber - номер падежа от 1 до 6 (в нашем случае 3 - это Дательный падеж)
    • mode - строка форматирования:
       Символы форматирования F, I и O заменяются на фамилию, имя или отчество в соответствующем падеже 
       Символы форматирования f, i и o заменяются на первую букву фамилии, имени или отчества.
    

    Т.е. данный обработчик сформирует Фамилию в дательном падеже, добавив к ней первую букву Имени и первую букву Отчества, например "Иванову И.И.".

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

    Рисунок 2.08. Получение ФИО сотрудника в дательном падеже


    Следующая задача сценария (Рис.2.09) - это "Определение текущей даты". Здесь также используется обработчик "Execute formula" ("Выполнить формулу"). Конфигурация имеет следующее выражение

     'Текущая дата' = current_date();
    

    Функция current_date определяет текущую дату и сохраняет результат в переменную "Текущая дата".

    Рисунок 2.09. Определение текущей даты

    Следующая задача сценария "Генерация служебной записки" создаст файл служебной записки.

    Предварительно в редакторе Word-файлов (они имеют расширение .DOCX) необходимо создать файл с шаблоном служебной записки, вид которого изображён на Рис.2.10.

    Рисунок 2.10. Шаблон служебной записки на премирование сотрудника

    При выполнении экземпляра бизнес-процесса обработчик заменит выражения вида ${Переменная} на текущие значения одноимённых переменных из процесса в формате, определенном в среде разработки.

    Кроме ранее рассмотренных переменных, тут также используется поле fullName, определяющее ФИО пользователя (в именительном падеже) роли Руководитель (как свойство объекта Руководитель).

    Сохраните шаблон и закройте редактор Word-файлов.


    Далее откройте меню конфигурирования узла-сценария "Генерация служебной записки". В качестве класса обработчика выберите - "Word handler". Заполните поля как показано на Рис.2.11.

    Для того, чтобы привязать к данной конфигурации созданный нами файл с шаблоном служебной записки, выберите кнопку "Выбрать файл". Откроется файловое меню, в котором надо будет найти и выбрать созданный шаблон. Сохраните созданную конфигурацию ("update"). В результате содержимое файла будет включено в контент процесса и меню примет окончательный вид (Рис.2.11).

    Рисунок 2.11. Конфигурирование задачи "Генерация служебной записки"
  21. Создайте пользовательскую форму для узла "Подписать служебную записку и отдать ее в отдел кадров".
  22. Отконфигурируйте файловую переменную "Служебная записка" как показано на Рис.2.12.
    Рисунок 2.12. Конфигурирование переменной "Служебная записка"

    Это будет единственное поле на форме (Рис.2.13).

    Рисунок 2.13. Форма "Подписать служебную записку и отдать ее в отдел кадров"

    Т.е. на данной форме Руководитель получит ссылку на файл служебной записки, которую необходимо подписать и отдать в бумажном виде в отдел кадров.

  23. Создайте пользовательскую форму для узла "Получить подписанную служебную записку на премию сотруднику".
  24. Задание "Получить подписанную служебную записку на премию сотруднику" предназначено для фиксации факта получения бумажной служебной записки от Руководителя. Здесь важем сам факт прохождения документа, который и фиксируется фактом выполнения данного задания. Поэтому форма этого узла-действия не имеет полей.
  25. Создайте форму для узла "Рассмотреть заявку на премию" (Рис.2.14).
  26. Blank.png
    Рисунок 2.14. Форма "Рассмотреть заявку на премию"

    Расположите 4 компоненты "Отобразить переменную". Для отображения роли "Руководитель" (будет выведено ФИО Руководителя), переменных "ФИО сотрудника", "Размер премии" - используйте форму отображения "Как строку". Для отображения переменной "Описание выполненных работ" используйте в качестве формы отображения вариант "Как неактивный компонент ввода".

    Добавьте компонент для ввода переменной "Комментарий директора".

    В этой форме Директор рассматривает заявку, вводит комментарии и одобряет или отказывает в премировании.

  27. Создайте форму для узла "Ознакомиться с решением об отказе" (Рис.2.15).
  28. Рисунок 2.15. Форма "Ознакомиться с решением об отказе"

    Сделайте отображение значений переменных "ФИО сотрудника", "Размер премии", "Описание выполненных работ", "Комментарий директора". При этом для строковых переменных используйте отображение "Как строка", для текстовых переменных - "Как неактивный компонент ввода".

    В HTML-скрипт формы добавьте заголовок:

    <P style="text-align: center;">
    <STRONG><SPAN style="font-size: 20px;">Отказ от премирования</SPAN></STRONG>
    </P> 
    
  29. Создайте форму для узла "Ознакомиться с сообщением о согласии" (Рис.2.16).
  30. Т.к. данная форма отличается от формы "Ознакомиться с решением об отказе" лишь заголовком, то можно воспользоваться функцией создания формы на основе существующей (Подробнее см. Практическое занятие "Изучение перспективы данных", Порядок выполнения работы, Пункт 6, Рис.4.30-4.31).
    Рисунок 2.16. Форма "Ознакомиться с сообщением о согласии"

    Необходимо только изменить заголовок в тексте формы.

  31. Создайте композицию для узла "Издание приказа и начисление премии".
  32. Композиция похожа на подпроцесс, однако является более «легкой» конструкцией, т.к. для композиции не порождается нового экземпляра процесса. Следовательно, у неё нет своих собственных переменных, инициализаторов ролей и т.д.. Выделите на схеме узел-композицию "Издание приказа и начисление премии", затем щёлкните на данном элементе правой кнопкой мыши и выберите пункт "Новая композиция" (Рис.2.17).
    Рисунок 2.17. Вызов функции создания композиции

    В появившемся окне введите название "Начисление" (допустимо не более 16 символов):

    Рисунок 2.18. Форма создания композиции

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

  33. Создайте композицию вида, изображенного на Рис.2.19.
  34. Blank.png
    Рисунок 2.19. Схема композиции "Издание приказа и начисление премии"

    Проинициализируйте задачи ролями в соответствии с Рис.2.19.

  35. Создайте пользовательскую (Custom) форму для узла "Издать приказ о премировании".
  36. Расположите на ней единственный компонент для ввода переменной "Номер приказа".
    Рисунок 2.20. Форма "Издать приказ о премировании"
  37. Настройте задачи сценария.
  38. В задаче сценария "ФИО директора", используя класс обработчика "Получить информацию об исполнителе", определите фамилию, имя и отчество Директора (Рис.2.21).
    Рисунок 2.21. Определение ФИО директора

    Для задачи сценария "Сгенерировать текст приказа" выберите класс обработчика "Выполнить формулу".

    Рисунок 2.22. Задача "Сгенерировать текст приказа"

    Используйте следующую конфигурацию для данного обработчика:

    'Текст приказа о премировании'="Начислить сотруднику " + 'ФИО сотрудника 3' + " премию за высокие достижения в работе в сумме " + 'Размер премии' + " руб."
    

    Здесь используются переменные: 'Текст приказа о премировании' , 'ФИО сотрудника 3' и 'Размер премии' .

  39. Сконфигурируйте узел-сценария "Сгенерировать приказ".
  40. Предварительно в любом редакторе сформируйте DOCX-файл с шаблоном приказа, как показано на Рис.2.23.
    Рисунок 2.23. Шаблон приказа

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

    Рисунок 2.24. Меню конфигурирования сценария "Сгенерировать приказ"
  41. Создайте пользовательскую форму для узла "Ознакомиться с приказом" (Рис.2.25).
  42. На ней файловую переменную "Приказ" с помощью компонента "Display variable" ("Отобразить переменную") отобразите "Как строку".
    Рисунок 2.25. Форма "Ознакомиться с приказом"

    Чтобы вставить в форму заголовок "Вам необходимо подойти в Отдел кадров и ознакомиться с приказом под подпись", выберите ссылку "edit" поля "html code" и вставьте этот текст как заголовок второго уровня в начале текста. Выберите ссылку "update" для сохранения.

  43. Создайте пользовательскую форму для узла "Получить подпись сотрудника об ознакомлении с приказом".
  44. Графическая форма может быть создана на основании формы "Ознакомиться с приказом" и содержит только поля "Сотрудник" и "Приказ". В созданной по прототипу форме добавьте поле "Сотрудник" и замените заголовок в поле "html code" (Рис.2.26):

    <h2>Ознакомить сотрудника с приказом под подпись.</h2>
    

    Выберите ссылку "update".

    Рисунок 2.26. Создание формы "Ознакомить сотрудника с приказом"

    Теперь в поле "html code" поменяйте местами блоки кода, относящиеся к полям "Приказ" и "Струдник" (Рис.2.27). Выберите ссылку "update" для сохранения внесённых правок. Обратите внимание, что порядок полей в списке тоже изменился.

    Рисунок 2.27. Окончательный вид формы "Ознакомить сотрудника с приказом"
  45. Создайте пользовательскую форму для узла "Начислить премию сотруднику" с полями "ФИО сотрудника", "Размер премии", "Описание выполненных работ", "Приказ".
  46. При этом для текстовой переменной "Описание выполненных работ" используйте форму отображения "Как неактивный компонент ввода", для остальных - "Как строка" (Рис.2.28). При создании этой формы вы можете использовать форму узла "Получить подпись сотрудника об ознакомлении с приказом" в качестве прототипа.
    Рисунок 2.28. Форма "Начислить премию сотруднику"
    Создайте в форме недостающие поля, в поле "html code" добавьте заголовок:

    <P style="text-align: center;">
    <SPAN style="font-size: 20px;"><SRTONG>Начислить премию сотруднику</STRONG></SPAN>
    </P>
    

    Выберите ссылку update. Отстройте порядок полей как показано на Рис.2.28.

  47. Создайте пользовательскую форму для узла "Ознакомиться с начислением премии" (Рис.2.29). В качестве прототипа целесообразно использовать предыдущую форму (Рис.2-28).
  48. Рисунок 2.29. Форма "Ознакомиться с начислением премии"
  49. Экспортируйте разработанный процесс "Пример 05-1" в раздел "Запустить процесс" RunaWFE.
  50. Для этого щёлкните разработанный бизнес-процесс правой кнопкой, в выпавшем меню выберите команду "Deploy".
  51. Войдите на сервер под пользователем Administrator.
  52. Процесс "Пример 05-1" должен запускать "Руководитель", поэтому дайте права на чтение, запуск и чтение экземпляров для пользователя "Паучков" (который является руководителем Сверчкова). Подробнее см. "Практикум. Вводное занятие", Порядок выполнения работы, Пункты 28-32.
    Рисунок 2.30. Обладатели полномочий на процесс "Пример 05-1"

    Разрешите для группы "Сотрудники" вход в систему (см. "Практикум. Вводное занятие", [выполнения работы] пункты 7-9, Рис.5.7-5.9 ).

    Дайте полномочия группе "Сотрудники" на чтение на всех созданных пользователей (см. "Практикум. Вводное занятие", Порядок выполнения работы, Пункты 12-13, Рис.5.12-5.13).

  53. Выполните процесс "Пример 05-1".
  54. Войдите в систему под пользователем "Паучков", запустите процесс. Введите данные на стартовой форме и нажмите "Запустить" (Рис.2.31).
    Blank.png
    Рисунок 2.31. Стартовая форма процесса "Пример 05-1"

    После стартового ввода данных "Паучков" получит задачу "Проверка данных для оформления служебной записки" (Рис.2.31а).

    Рисунок 2.31а. Проверка данных для оформления служебной записки

    Если данные введены правильно, "Паучков" должен выбрать кнопку "Правильно" для продолжения процесса.

    Далее "Паучков" получит задачу "Подписать служебную записку и передать её в отдел кадров". Откройте задание, нажмите на ссылку "Служебная записка о начислении премии.docx", скачайте/откройте сформированную с помощью обработчика "Word handler" на основе шаблона служебную записку (Рис.2.32).

    Рисунок 2.32. Служебная записка о начислении премии

    Распечатайте служебную записку. Выполните задание.

    Параллельно "Отдел кадров" получает задание "Получить подписанную служебную записку на премию сотруднику".

    Войдите в систему под пользователем, входящим в группу "Отдел кадров", например, "Личинкин". Возьмите задачу на выполнение и исполните её (Рис.2.33).

    Рисунок 2.33. Задание "Получить подписанную служебную записку на премию сотруднику"

    Член группы "Директор" (в нашем случае это пользователь Стрекозин) получает задание "Рассмотреть заявку на премию".

    Войдите в систему под пользователем "Стрекозин", возьмите задание на выполнение, введите комментарий и одобрите заявку на премию (Рис.2.34).

    Рисунок 2.34. Задание "Рассмотреть заявку на премию"

    Руководитель (Паучков) получит задание "Ознакомиться с сообщением о согласии", параллельно с этим будет запущена композиция "Издание приказа и начисление премии", в которой "Отделу кадров" поступит задание "Издать приказ о премировании".

    Войдите в систему под пользователем "Паучков", выполните активное задание (Рис.2.35).

    Рисунок 2.35. Задание "Ознакомиться с сообщением о согласии"

    Войдите в систему под пользователем "Личинкин", входящим в группу "Отдел кадров", возьмите на выполнение задание, введите "Номер приказа" и выполните задачу (Рис.2.36).

    Рисунок 2.36. Задание "Издание приказа и начисление премии"

    Войдите в систему под пользователем "Сверчков", откройте задание "Ознакомиться с приказом".

    Нажмите ссылку на сгенерированный с помощью Word сценария файл "Приказ.docx"

    Рисунок 2.37. Задание "Ознакомиться с приказом"


    Рисунок 2.38. Сгенерированный приказ

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

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

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

Для генерации приказа на отпуск используйте тот же шаблон для документа "Приказ", который был использован в процессе "Пример 05-1".


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

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

В компоненте форм "Выбор из членов группы" в качестве параметра "Группа" можно использовать предварительно созданную переменную формата "Группа", проинициализированную значением "Директор и заместители" (Подобный пример см. в Практическое занятие "Изучение перспективы данных", Порядок выполнения работы, Пункт 6, Рис.4.16).

Используйте задачи сценария для определения и формирования:

 • ФИО сотрудника
 • Даты запуска процесса
 • Даты ввода номера приказа
 • ФИО директора
 • ФИО сотрудника в необходимом падеже
 • Текста приказа. 
Рисунок 2.39. Схема бизнес-процесса "Пример 05-2" Оформление отпуска для самостоятельной разработки


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

Документ "Заявление на отпуск" должен содержать:

 • ФИО Сотрудника
 • Даты начала и окончания отпуска
 • Дату заявления (совпадает с датой запуска бизнес-процесса). 

Документ "Приказ" должен содержать:

 • Номер приказа
 • Текст приказа с ФИО сотрудника в необходимом падеже, с датами начала и окончания отпуска
 • Дату приказа (совпадает с датой ввода номера приказа сотрудником отдела кадров)
 • ФИО Сотрудника
 • ФИО Директора. 

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

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

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

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

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

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

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

  1. Где задается имя файла, в который будет помещен сгенерированный документ?

 

Практическое занятие 06: "Работа с MS Excel-документами"

Целью занятия является изучение работы с MS Excel-документами.

Необходимые теоретические сведения изложены в разделе "Стандарты и концепции, связанные с СУБПиАР".

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

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

Зайдите в систему Runa-WEB под учётной записью Administrator.

Создайте в разделе «Редактор процессов» новый проект - "Занятие 06" (Подробнее см. "Практикум. Вводное занятие", Порядок выполнения работы, Пункт 16, Рис.5.15).


Запись в файл Excel

  1. Создайте новый бизнес-процесс "Пример 06-1".
  2. Добавьте элементы на схему бизнес-процесса в соответствии с Рис.3.01. Используйте элементы:
  3. Blank.png
     • Начало 
     • Действие 
     • Задача сценария 
     • Окончание.
    
    Рисунок 3.01. Схема бизнес-процесса "Пример 06-1"


    (Подробнее см. Практическое занятие "05 Работа с Word-документами", Порядок выполнения работы, Пункт 1, Замечание, Рис.2.2).

  4. Создайте роли.
  5. В данном процессе используется единственная роль:

     ● "Преподаватель" - роль будет инициализирована пользователем, запустившим процесс.
    

    Выберите для узлов роли в соответствии с Рис.3.01.

  6. Создайте переменные для бизнес-процесса "Пример 06-1" согласно Рис.3.02.
  7. Blank.png
    Рисунок 3.02. Переменные бизнес-процесса "Пример 06-1"


    Замечание. Обратите внимание на переменную "перечень дисциплин", имеющую формат "Список(Строка)". При создании переменной типа "Список" в интерфейсе выбора формата также необходимо будет выбрать и формат элементов списка ("Строка" в данном случае) (Рис.3.03).


    Рисунок 3.03. Выбор формата переменной "перечень дисциплин" бизнес-процесса "Пример 06-1"


  8. Создайте формы.
  9. Сначала создайте пользовательскую стартовую форму "Ввести данные для сохранения в Excel-документе" вида, представленного на Рис.3.04 (Подробнее см. Практическое занятие "03 Изучение перспективы данных", Порядок выполнения работы, Пункт 6, Рис.4.11-4.12).


    Рисунок 3.04. Стартовая форма "Ввести данные для сохранения в Excel-документе" бизнес-процесса "Пример 06-1"


    Размещаемые компоненты снабдите надписями:

     ● "Специальность" 
     ● "Номер курса"
     ● "Перечень дисциплин".
    

    Напротив строки "Специальность" расположите компонент "Ввод переменной" для переменной - "специальность" (Подробнее см. Практическое занятие "Изучение перспективы данных", Порядок выполнения работы, Пункт 6, Рис.4.21-4.22).

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

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


    Добавьте валидаторы для переменных внизу формы:

     ● "специальность" - обязательное поле
     ● "перечень дисциплин" - обязательное поле
     ● "номер курса" - обязательное поле. 
    


    Создайте пользовательскую форму для задания "Просмотреть данные перед сохранением в Excel-документе" вида, представленного на Рис.3.05.


    Рисунок 3.05. Форма "Просмотреть данные перед сохранением в Excel-документе"


    На этой форме отображаются данные, введенные в стартовом узле.

    Для переменных "Специальность" и "Номер курса" для компонента "Display variable" ("Отобразить переменную") используется форма отображения "string" ("Как строку") (Рис.3.06).


    Рисунок 3.06. Отобразить переменную "Специальность" как строку


    Для вывода списка "перечень дисциплин" используйте компонент "Display linked lists" ("Отобразить связанные списки").


    Рисунок 3.07. Отобразить связанные списки


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


    Рисунок 3.08. Форма "Получить созданный Excel-документ"


    Используйте компонент "Display variable" ("Отобразить переменную") для файловой переменной "полученный excel файл".


    Рисунок 3.09. Использование компонента "Отобразить переменную" для ссылки


  10. Создайте обработчик.
  11. Выберите класс обработчика "Execute formula" ("Выполнить формулу") в задаче сценария "Определение даты создания документа" (см. Практическое занятие "03 Изучение перспективы данных", Порядок выполнения работы, Пункт 8, Рис.4.39-4.40).
    В качестве конфигурации используйте скрипт "'дата создания документа'=current_date();". Таким образом с помощью функции current_date() будет определена текущая дата и сохранена в переменную "дата создания документа".
  12. Выберите класс и сконфигурируйте обработчик для узла-сценария "Сохранить данные в Excel-документе". Для этого щёлкните правой кнопкой по этому узлу и выберите в выпавшем меню пункт "Configure script" ("Сконфигурировать обработчик") для показа списка обработчиков (Рис.3.10а).
  13. Blank.png


    Рисунок 3.10. Вызов конфигуратора обработчика


    В появившемся интерфейсе из выпадающего списка "Handler" выберите обработчик "ExcelSaveHandler" (Сохранить данные в Excel файл), а затем выберите кнопку "update".


    Рисунок 3.11. Вызов списка обработчиков и выбор обработчика ExcelSaveHandler


    В поле "Input file" выбираем значение "Файл" (то есть файл шаблона, локализованный в процессе).

    Следующим шагом во внешнем редакторе создайте файл шаблона template.xlsx (Рис.3.12).


    Рисунок 3.12. Текст Excel-шаблона


    Теперь в интерфейсе, изображённом на Рис.3.11, выберите кнопку "Выбрать файл". На экран будет выдан интерфейс выбора файла из дерева файлов. Необходимо в нём найти созданный только что файл шаблона template.xlsx и его загрузить. После этого выберите кнопку "update".


    В разделе "Output file" определите параметры "File variable" и "File name" как показано на Рис.3.15.


    Используя ссылки:

    • Добавить ячейку
    • Добавить горизонтально
    • Добавить вертикально,

    определите структуру данных выходного файла, приведенную на Рис.3.15.


    Рисунок 3.15. Структура данных выходного файла


    На Рис.3.15 действуют обозначения:

    • входной файл - это файл шаблона, на основе которого будет создан выходной Excel-файл с именем file.xlsx
    • выходной файл - задан с помощью параметра "выходной файл", его имя - file.xlsx; это Excel-файл, который будет создан при выполнении процесса на основе шаблона и в который будут записаны данные, взятые из указанных при его конфигурировании переменных
    • отдельная ячейка (страница 1, столбец 2, строка 1) - по данному адресу в таблицe Excel будет записано значение переменной "специальность"
    • отдельная ячейка (страница 1, столбец 2, строка 2) - по данному адресу в таблицe Excel будет записано значение переменной "номер курса"
    • отдельная ячейка (страница 1, столбец 2, строка 3) - по данному адресу в таблицe Excel будет записано значение переменной "дата создания документа"
    • массив по вертикали (страница 1, столбец 1, строка 6) - начиная с данного адреса в таблицe Excel будут записаны значения списковой переменной "перечень дисциплин", причём элементы списка будут располагаться вертикально, следующий под предыдущим.

    Замечание. Альтернативно для задания входного и выходного файлов могут использоваться файловые переменные.

  14. В разделе script будет автоматически сформирован скрипт формирования значений параметров.
  15.   
  16. Сохраните процесс.
  17. Экспортируйте разработанный процесс "Пример 06-1" в раздел "Запустить процесс" RunaWFE.
  18. Для этого щёлкните разработанный бизнес-процесс правой кнопкой, в выпавшем меню выберите команду "Deploy".
  19. Войдите в систему под пользователем Administrator, пароль – wf.
  20. Дайте полномочия группе "Преподаватели" на запуск и чтение процесса и чтение экземпляра процесса "Пример 06-1".
  21. Войдите в систему под пользователем, входящим в группу "Преподаватели", например "Стрекозин", пароль - 123.
  22. Запустите экземпляр бизнес-процесса "Пример 06-1".
  23. Введите данные на стартовой форме, например:


    Рисунок 3.16. Ввод данных на стартовой форме


    Нажмите "Запустить", выполните полученное задание "Просмотреть данные перед сохранением в Excel-документе".


    Рисунок 3.17. Задание "Перед записью в файл"


    Сценарий "Сохранить данные в Excel-документе" выполнит задачу "Записать данные в файл". Значения переменных можно увидеть, открыв экземпляр запущенного процесса (Рис.3.18).


    Рисунок 3.18. Граф выполнения процесса "Пример 06-1"


    Будет получено задание со ссылкой на созданный Excel-файл. Выберите эту ссылку:


    Рисунок 3.19. Ссылка на созданный Excel-файл


    Будет загружен file.xlsx. Сохраните его на C:\. Откройте файл.


    Рисунок 3.20. Созданный с помощью обработчика файл file.xlsx


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

  24. Процесс завершён.

Чтение из файла Excel

  1. Перейдите в "Редактор процессов" в роли Administrator.
  2. Создайте новый бизнес-процесс "Пример 06-2" командой "Сохранить как" по правой кнопке мыши из "Пример 06-1".

  3. Создание процесса в веб-редакторе из другого командой "Сохранить как"
    Рисунок 3.21. Создание процесса в веб-редакторе из другого командой "Сохранить как"


  4. Измените схему бизнес-процесса в соответствии с Рис.3.22.

  5. Схема процесса "Пример 06-2"
    Рисунок 3.22. Схема бизнес-процесса "Пример 06-2"


    Здесь используются те же элементы, что и в процессе "Пример 06-1". Задаче сценария дайте название "Прочесть данные из Excel файла".

  6. Переименуйте роль Преподаватель на Студент.
  7. Переименование роли в веб-редакторе
    Рисунок 3.22а. Переименование роли в веб-редакторе
  8. Переменные в этом процессе те же, что и в "Пример 06-1". За исключением переменной "полученный excel файл", которую удаляем.
  9. Преобразуйте формы.
  10. Используйте компонент "Отобразить переменную" для переменных: "специальность", "номер курса", "дата создания документа".

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

    Удалите форму для стартового узла - она не требуется.

    Удалите форму для узла-действия "Выполнить задание перед чтением из Excel-документа" и создайте форму вида, представленного на Рис.3.23.


    Рисунок 3.23. Форма "Выполнить задание перед чтением из Excel-документа"


    Форму для узла "Просмотреть данные, считанные из Excel документа" приведите к виду, представленному на Рис.3.24.


    Рисунок 3.24. Форма "Просмотреть данные, считанные из Excel-документа"


  11. Задайте конфигурацию узла-сценария "Прочесть данные из файла".

  12. Выбор класса обработчика и конфигурации "Чтение из файла Excel"
    Рисунок 3.25. Выбор класса обработчика и конфигурации "Чтение из файла Excel"


    Т.е. предполагается чтение из файла file.xlsx, который был создан при выполнении бизнес-процесса "Пример 06-1", использующего узел-сценарий "Сохранить данные в Excel документе". Этот сформированный файл и загружается в конфигурацию (обведено рамкой на Рис.3.25). Альтернативно можно использовать файловую переменную, предварительно загрузив в неё этот файл.

    Считанные по соответствующим адресам значения будут сохранены непосредственно в переменные бизнес-процесса "Пример 06-2".

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

  13. Сохраните бизнес-процесс.
  14. Экспортируйте бизнес-процесс "Пример 06-2" в раздел "Запустить процесс", используя команду Deploy.
  15. Войдите в систему под пользователем Administrator, пароль –wf.
  16. Дайте права "Чтение", "Запуск", "Чтение экземпляра" на процесс "Пример 06-2" для группы "Группа МИБ-1".
  17. Войдите в систему под пользователем, входящим в группу "Группа МИБ-1", например "Гусеницын".
  18. Запустите экземпляр бизнес-процесса "Пример 06-2" и доведите его до завершения.
  19. В задании "Просмотреть данные, считанные из Excel документа", будут выведены данные, считанные из файла file.xlsx в переменные процесса (см. Рис.3.26).

    Рисунок 3.26. Задание "Просмотреть данные, считанные из Excel документа"

    Считанные значения соответствуют данным, введённым во время выполнения процесса "Пример 06-1".

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

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

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

1) Скриншоты основных действий, совершенных на занятии, с пояснениями.

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

3) Скриншоты, содержащие созданные на занятии переменные и основные формы.

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

  1. Как можно задать Excel-файл, в который обработчик будет записывать данные?
  2. Где выбирается Excel-файл, в который обработчик будет записывать данные?
  3. Как можно задать Excel-файл, из которого обработчик будет читать данные?
  4. Где задается Excel-файл, из которого обработчик будет читать данные?

Практическое занятие 07: "Задания для самостоятельной работы"

Цель работы

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

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

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

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

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

 

Общие замечания для всех заданий

Замечание 1

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

Замечание 2

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


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


Замечание 3

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

Замечание 4

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

Замечание 5

Желательно, чтобы линии переходов, соответствующих одновременно выполняющимся потокам действий, были параллельными, т.к. это увеличивает понятность схемы.

Замечание 6

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

При этом в подпроцессах и мультиподпроцессах завершение их происходит именно через элемент «завершение потока управления». При этом точка управления передаётся в родительский процесс. Использование элементов «окончание бизнес-процесса» в подпроцессах и мультиподпроцессах среда разработки не допускает.

Замечание 7

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


Рисунок 4.02. Пример неправильной схемы


На Рис.4.02 показан пример неправильной схемы, в котором задача (в меньшем овале) останавливает выполнение блока действий (указанного в большем овале).

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


Рисунок 4.03. Пример неправильной схемы


Рисунок 4.04. Пример правильной схемы


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


Замечание 8

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


Задания по разработке бизнес-процессов

Задание по разработке бизнес-процесса "Ежегодный отпуск"

1. Возможное содержание страницы описания бизнес-процесса (не обязательно)

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


2. Описание последовательностей действий в бизнес-процессе


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

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

Следующее задание «Рассмотреть заявку на отпуск» получит руководитель сотрудника (руководитель определяется отношением "Руководитель"). Руководитель одобряет или не одобряет заявку. Подавший заявку сотрудник знакомится с решением руководителя. Если решение руководителя было отрицательным, то далее процесс завершается.

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

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

Приказ должен содержать:

  1. В верхней части листа - название условной компании
  2. Фразу "Приказ номер"
  3. Справа от этой фразы - значение "номер приказа", введенное инспектором кадровой службы
  4. слово "от"
  5. Справа от этого слова - дату запуска экземпляра бизнес-процесса
  6. Далее - "Предоставить сотруднику <ФИО сотрудника> ежегодный основной оплачиваемый отпуск"
  7. Далее - "с", за ней "дата начала отпуска", введенная на стартовой форме
  8. Далее - "по", за ним "дата окончания отпуска", введенная на стартовой форме
  9. Далее - место для подписи Генерального директора (несколько знаков подчеркивания), ФИО условного генерального директора компании, дата запуска экземпляра бизнес-процесса
  10. Внизу - "С приказом ознакомлен", место для подписи сотрудника (несколько знаков подчеркивания), ФИО сотрудника, дата запуска экземпляра бизнес-процесса.

Далее Word-сценарий получает задание "Сгенерировать заявление на ежегодный отпуск".

Заявление должно содержать:

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

После выполнения этих заданий Word-сценарием сотрудник должен выполнить задачу «Сдать в КС заявление и подписать приказ». В форме этого задания должна быть ссылка для загрузки сформированного сценарием документа "Заявление на ежегодный отпуск". Инспектору кадровой службы направляется задача «Получить заявление и подпись на приказе». В форме этого задания должна быть ссылка для загрузки сформированного сценарием документа "Приказ на ежегодный отпуск". После выполнения этого задания бизнес-процесс должен дождаться момента времени за две недели до начала отпуска, после этого задание "Выплатить отпускные" получает бухгалтер (определяется членством в группе "Бухгалтеры").

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


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

 

Задание по разработке бизнес-процесса "Больничный"

1. Возможное содержание страницы описания бизнес-процесса (не обязательно)

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


2. Описание последовательностей действий в бизнес-процессе

Если сотрудник заболел, то он или какой-то другой сотрудник запускает на выполнение бизнес-процесс "Больничный".

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

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

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

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

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

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

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

Справка должна содержать:

  1. В верхней части листа - название условной компании
  2. Фразу "Справка о болезни сотрудника"
  3. Далее - ФИО сотрудника
  4. Далее - "Начало болезни", "дата начала болезни", введенная на стартовой форме
  5. Далее - "Окончание болезни", "дата окончания болезни", введенная инспектором КС в задании "Получить от сотрудника больничный"
  6. Далее - место для подписи бухгалтера (несколько знаков подчеркивания).

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

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


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

 

Задание по разработке бизнес-процесса "Командировка в другой регион"

1. Возможное содержание страницы описания бизнес-процесса (не обязательно)

Служебная командировка - поездка работника на определенный срок для выполнения служебного поручения вне места постоянной работы.


2. Описание последовательностей действий в бизнес-процессе


Бизнес-процесс начинается с того, что пользователь в стартовой форме заполняет данные, относящиеся к командировке:

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

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

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

Если командировка одобрена, то подавший заявку сотрудник знакомится с положительным решением руководителя, инспектор кадровой службы (определяется членством в группе "Инспекторы КС") получает задание "Издать приказ".

В форме задания "Издать приказ" инспектор кадровой службы вводит номер приказа (значение типа "Строка"). После выполнения задания инспектором кадровой службы Word-сценарий получает задание "Сгенерировать приказ на командировку".


Приказ должен содержать:

  1. В верхней части листа - название условной компании
  2. Фразу "Приказ о направлении в командировку номер"
  3. Справа от этой фразы - значение "номер приказа", введенное инспектором кадровой службы
  4. слово "от"
  5. Справа от этого слова - дату запуска экземпляра бизнес-процесса
  6. Далее - "Направить в командировку сотрудника <ФИО сотрудника>"
  7. "в г.", "город", введенный на стартовой форме
  8. "в организацию:", "организация", введенная на стартовой форме
  9. "с целью:", "цель", введенная на стартовой форме
  10. Далее - "с", "дата начала командировки", введенная на стартовой форме
  11. Далее - "по", "дата окончания командировки", введенная на стартовой форме
  12. Далее - место для подписи Генерального директора (несколько знаков подчеркивания), ФИО условного генерального директора компании, дата запуска экземпляра бизнес-процесса
  13. Внизу - "С приказом ознакомлен", место для подписи сотрудника (несколько знаков подчеркивания), ФИО сотрудника, дата запуска экземпляра бизнес-процесса.

Далее Word-сценарий получает задание "Сгенерировать командировочное удостоверение".

Командировочное удостоверение должно содержать:

  1. В верхней части листа - название условной компании
  2. Фразу "Командировочное удостоверение"
  3. ФИО сотрудника
  4. Организация
  5. Внизу:
  6. "Генеральный директор", название условной компании, место для подписи Генерального директора (несколько знаков подчеркивания), ФИО условного генерального директора компании
  7. "Работник", место для подписи сотрудника (несколько знаков подчеркивания), ФИО сотрудника
  8. Дата запуска экземпляра бизнес-процесса.

На следующей странице (обороте):

  1. "Отметки о выбытии в служебную поездку, прибытии в пункты назначения и выбытии из них и прибытии в место постоянной работы"
  2. Далее содержится таблица из четырех блоков


R a1.png


(из двух строк и двух колонок)


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

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

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

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

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

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


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

 

Задание по разработке бизнес-процесса "Местная командировка"

1. Возможное содержание страницы описания бизнес-процесса (не обязательно)

Служебная командировка - поездка работника на определенный срок для выполнения служебного поручения вне места постоянной работы.


2. Описание последовательностей действий в бизнес-процессе


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

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

Служебная записка должна содержать:

  1. Фразу "Служебная записка"
  2. Фразу "Прошу направить меня в местную командировку"
  3. Дату, время начала и время окончания местной командировки, введенные на стартовой форме
  4. Организацию и причину, введенные на стартовой форме
  5. Дату запуска экземпляра бизнес-процесса
  6. Место для подписи сотрудника (несколько знаков подчеркивания)
  7. ФИО сотрудника.

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

Руководитель сотрудника получает задание "Получить служебную записку".

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


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

 

Задание по разработке бизнес-процесса "Отгул"

1. Возможное содержание страницы описания бизнес-процесса (не обязательно)

Руководитель может предоставить сотруднику отгул в качестве поощрения за хорошую работу. Отгул дается не более чем на 4 часа рабочего времени.


2. Описание последовательностей действий в бизнес-процессе

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

Далее задание «Рассмотреть заявку на отгул» направляется непосредственному руководителю сотрудника (руководитель определяется отношением "Руководитель"). Руководитель одобряет или не одобряет отгул. Подавший заявку знакомится с решением руководителя.

Если отгул одобрен, то бизнес-процесс проверяет, затребован ли отгул задним числом. Если отгул затребован задним числом, то задание «Утвердить заявку на отгул» получает руководитель отдела (определяется отношением "Руководитель отдела"), после чего подавший заявку струдник знакомится с решением руководителя отдела.

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


Служебная записка должна содержать:

  1. Фразу "Служебная записка"
  2. Фразу "Прошу предоставить мне отгул"
  3. Дату, время начала и количество часов отгула, введенные на стартовой форме
  4. Дату запуска экземпляра бизнес-процесса
  5. Место для подписи сотрудника (несколько знаков подчеркивания)
  6. ФИО сотрудника.

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

Руководитель сотрудника получает задание "Получить служебную записку".

Если отгул не подтвержден, то соответствующие лица получают об этом сообщения.

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

 

Задание по разработке бизнес-процесса "Отпуск по уходу за ребенком"

1. Возможное содержание страницы описания бизнес-процесса (не обязательно)

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


2. Описание последовательностей действий в бизнес-процессе

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

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

Если законы и технологии соблюдены, то руководитель (руководитель определяется отношением "Руководитель") уведомляется об уходе сотрудника в отпуск, одновременно с этим инспектор кадровой службы получает задачу «Издать приказ».

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


Приказ должен содержать:

  1. В верхней части листа - название условной компании
  2. Фразу "Приказ номер"
  3. Справа от этой фразы - значение "номер приказа", введенное инспектором кадровой службы"
  4. слово "от"
  5. Справа от этого слова - дату запуска экземпляра бизнес-процесса
  6. Далее - "Предоставить сотруднику <ФИО сотрудника> отпуск по уходу за ребенком"
  7. Далее - "с", "дата начала отпуска", введенная на стартовой форме
  8. Далее - "по", "дата окончания отпуска", введенная на стартовой форме
  9. Далее - место для подписи Генерального директора (несколько знаков подчеркивания), ФИО условного генерального директора компании, дата запуска экземпляра бизнес-процесса
  10. Внизу - "С приказом ознакомлен", место для подписи сотрудника (несколько знаков подчеркивания), ФИО сотрудника, дата запуска экземпляра бизнес-процесса.

Далее Word-сценарием получает задание "Сгенерировать заявление на отпуск по уходу за ребенком".

Заявление должно содержать:

  1. В верхней части листа "Генеральному директору" - название условной компании, ФИО условного Генерального директора, "от сотрудника"
  2. ФИО уходящего в отпуск сотрудника
  3. Фразу "Заявление"
  4. На следующей строке "Прошу предоставить мне отпуск по уходу за ребенком с", "дата начала отпуска", введенная на стартовой форме, "по", "дата окончания отпуска", введенная на стартовой форме
  5. Внизу - ФИО сотрудника, место для подписи сотрудника (несколько знаков подчеркивания), дата запуска экземпляра бизнес-процесса.

После выполнения этих заданий Word-сценарием сотрудник должен выполнить задачу «Отдать в КС заявление и подписать приказ». В форме этого задания должна быть ссылка для загрузки сформированного сценарием документа "Заявление на отпуск по уходу за ребенком". Инспектору кадровой службы направляется задача «Получить заявление и подпись на приказе». В форме этого задания должна быть ссылка для загрузки сформированного сценарием документа "Приказ на отпуск по уходу за ребенком".

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

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

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

 

Задание по разработке бизнес-процесса "Сдвиг  графика работы"

1. Возможное содержание страницы описания бизнес-процесса (не обязательно)

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


2. Описание последовательностей действий в бизнес-процессе

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

  • день недели (содержится в строке таблицы, не вводится пользователем, значения в строках таблицы - пн. вт. ср. чт. пт. сб. вс.)
  • время прихода (вводится пользователем для каждой строки; если прихода в этот день не предполагается, то остаётся значение 00:00)
  • время ухода (вводится пользователем для каждой строки; если прихода не предполагается, то остаётся значение 00:00)
  • величина обеденного перерыва (выбор из списка: 30 минут, 1 час).

После выбора команды "Запустить" создается новый экземпляр бизнес-процесса. Далее задание «Рассмотреть заявку на сдвиг графика» направляется руководителю Сотрудника (руководитель определяется отношением "Руководитель").

Руководитель одобряет или не одобряет заявку.

Если решение руководителя отрицательно, то Сотрудник знакомится с отрицательным решением руководителя, далее бизнес-процесс завершается.

Если решение руководителя положительно, то Сотрудник знакомится с положительным решением руководителя, параллельно с этим заданием задание на утверждение заявки направляется руководителю руководителя Сотрудника. Руководитель руководителя также может подтвердить или не подтвердить заявку. Сотрудник и руководитель сотрудника знакомятся с положительным (или отрицательным) решением руководителя руководителя.

Если решение руководителя руководителя положительно, то Word-сценарий получает задание "Сгенерировать служебную записку на сдвиг графика".


Служебная записка должна содержать:

  1. Фразу "Служебная записка"
  2. Фразу "Прошу утвердить мой индивидуальный график работы для периода времени:"
  3. Даты начала и окончания действия графика работы, введенные на стартовой форме
  4. Таблицу введенных на стартовой форме приходов и уходов по дням недели
  5. Дату запуска экземпляра бизнес-процесса
  6. Место для подписи сотрудника (несколько знаков подчеркивания)
  7. ФИО сотрудника.

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


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


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

 

Задание по разработке бизнес-процесса "Отпуск без сохранения зарплаты"

1. Возможное содержание страницы описания бизнес-процесса (не обязательно)

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


2. Описание последовательностей действий в бизнес-процессе

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

В появившейся стартовой форме надо ввести требуемые данные: ввести даты начала и окончания отпуска, причину и комментарий.

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

Следующее задание «Рассмотреть заявку на отпуск» получит руководитель сотрудника (руководитель определяется отношением "Руководитель"). Руководитель одобряет или не одобряет заявку. Если решение руководителя было отрицательным, то подавший заявку сотрудник знакомится с отрицательным решением руководителя, далее процесс завершается.

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

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

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

Если решение директора положительное – инспектору кадровой службы направляется задание "Издать приказ". В форме задания "Издать приказ" инспектор кадровой службы вводит номер приказа (значение типа строка). После выполнения задания инспектором кадровой службы Word-сценарий получает задание "Сгенерировать приказ на отпуск без сохранения зарплаты".


Приказ должен содержать:

  1. В верхней части листа - название условной компании
  2. Фразу "Приказ номер"
  3. Справа от этой фразы - значение "номер приказа", введенное инспектором кадровой службы"
  4. слово "от"
  5. Справа от этого слова - дату запуска экземпляра бизнес-процесса
  6. Далее - "Предоставить сотруднику <ФИО сотрудника> отпуск без сохранения зарплаты"
  7. Далее - "с", "дата начала отпуска", введенная на стартовой форме
  8. Далее - "по", "дата окончания отпуска", введенная на стартовой форме
  9. Далее - место для подписи Генерального директора (несколько знаков подчеркивания), ФИО условного генерального директора компании, дата запуска экземпляра бизнес-процесса
  10. Внизу - "С приказом ознакомлен", место для подписи сотрудника (несколько знаков подчеркивания), ФИО сотрудника, дата запуска экземпляра бизнес-процесса.

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

Заявление должно содержать:

  1. В верхней части листа "Генеральному директору" - название условной компании, ФИО условного Генерального директора, "от сотрудника"
  2. ФИО уходящего в отпуск сотрудника
  3. Фразу "Заявление"
  4. На следующей строке фразу "Прошу предоставить мне отпуск без сохранения зарплаты с", дата начала отпуска, введенная на стартовой форме, "по", дата окончания отпуска, введенная на стартовой форме
  5. Внизу - ФИО сотрудника, место для подписи сотрудника (несколько знаков подчеркивания), дата запуска экземпляра бизнес-процесса.

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


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


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

 

Задание по разработке бизнес-процесса "Сверхурочные"

1. Предлагаемое содержание страницы описания бизнес-процесса (не обязательно)

Сверхурочные работы проводятся только тогда, когда проведение данных работ в рабочее время нарушит нормальную работу офиса компании.


2. Описание последовательностей действий в бизнес-процессе

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

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

Сотрудник соглашается или не соглашается на сверхурочные работы. Подавший заявку знакомится с решением сотрудника. Если решение сотрудника было положительным, то задание «рассмотреть заявку на сверхурочные» направляется руководителю сотрудника (руководитель определяется отношением "Руководитель").

Руководитель одобряет или не одобряет сверхурочные. Подавший заявку струдник и выбранный сотрудник знакомятся с решением руководителя. Если руководитель одобрил заявку, то далее задание «Утвердить заявку» направляется в Директорат (определяется членством в группе "Директор и заместители").

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

Если руководитель сотрудника подтвердил выполнение сверхурочных, то инспектор кадровой службы (определяется членством в группе "Инспекторы КС") получает задание "Издать приказ".

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


Приказ должен содержать:

  1. В верхней части листа - название условной компании
  2. Фразу "Приказ о сверхурочных работах номер"
  3. Справа от этой фразы - значение "номер приказа", введенное инспектором кадровой службы
  4. слово "от"
  5. Справа от этого слова - дату запуска экземпляра бизнес-процесса
  6. Далее - "Привлечь к сверхурочным работам сотрудника <ФИО сотрудника>"
  7. Далее - "в период", "время начала", "время окончания", "дата сверхурочных работ" (введенные на стартовой форме)
  8. Далее - место для подписи Генерального директора (несколько знаков подчеркивания), ФИО условного генерального директора компании, дата запуска экземпляра бизнес-процесса
  9. Внизу - "С приказом ознакомлен", место для подписи сотрудника (несколько знаков подчеркивания), ФИО сотрудника, дата запуска экземпляра бизнес-процесса.

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

После выполнения задания "Получить подпись сотрудника на приказе" инспектором КС - бухгалтер (определяется членством в группе "Бухгалтеры") получает задание "Начислить деньги за сверхурочные".


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

 

Задание по разработке бизнес-процесса "Отсутствие по неизвестной причине"

1. Возможное содержание страницы описания бизнес-процесса (не обязательно):

Это оформление отсутствия сотрудника на работе, причина которого неизвестна.


2. Описание последовательностей действий в бизнес-процессе

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

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

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

Далее запустившему бизнес-процесс руководителю направляется задание "Сообщить об окончании отсутствия".

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


Далее процесс разделяется на две параллельные ветки.


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

Далее Word-сценарий получает задание "Сгенерировать объяснительную записку по незапланированному отсутствию".


Объяснительная записка должна содержать:

  1. Фразу "Объяснительная записка по факту отсутствия на работе в период с"
  2. Дату начала отсутствия
  3. "по", дату окончания отсутствия
  4. Текст объяснительной записки, введенный в форме предыдущего узла-действия
  5. Текущую дату
  6. Место для подписи сотрудника (несколько знаков подчеркивания)
  7. ФИО сотрудника.

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

Руководитель сотрудника получает задание "Получить объяснительную записку".


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

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

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

Далее запустившему бизнес-процесс руководителю направляется задание «Ознакомиться с сообщением о завершении процесса», после чего бизнес-процесс завершается.


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


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

 

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

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

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

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

 

Ссылки

  1. Документация Runa WFE [официальный сайт проекта]. URL: https://runawfe.ru/rus/Документация


Необходимые доработки

  1. Необходимо актуализировать ссылки, переадресовав их на страницы из раздела "Cloud".
  2. Для обработчика "Word Handler" необходимо значение "Файл" параметра "Input file" переименовать на "Файл в процессе".
  3. В описании "без прав" Светлана сократила часть описания и картинки в нём. Надо сделать как там.
  4. Поскольку дублирование id шаблонов документов устранено, можно удалить из графа процесса "Пример 05-1" узел промежуточного просмотра результатов. Соответственно необходимо изменить описание.