TrainingMaterials Timers: различия между версиями

Материал из RunaWFE
Перейти к навигации Перейти к поиску
 
(не показаны 43 промежуточные версии 3 участников)
Строка 1: Строка 1:
{{PageHeading|RunaWFE. Практикум. Межпроцессное взаимодействие, работа с таймерами, обработчиками, мульти-подпроцессами.}}
{{PageHeading|RunaWFE. Практикум. Межпроцессное взаимодействие, работа с таймерами, обработчиками, мульти-подпроцессами}}


{{Licensing}}
{{Licensing}}
Строка 14: Строка 14:
* перспектива ресурсов (resource perspective)
* перспектива ресурсов (resource perspective)
* перспектива данных (data perspective)
* перспектива данных (data perspective)
* перспектива операций (operational perspective)
* перспектива операций (operational perspective).


В разделе "Практикум. Работа с MS Word и MS Excel документами" рассмотрена и объяснена работа с MS Word и MS Excel документами, приведено описание самостоятельного занятия.
В разделе "Практикум. Работа с MS Word и MS Excel документами" рассмотрена и объяснена работа с MS Word и MS Excel документами, приведено описание самостоятельного занятия.
Строка 20: Строка 20:
Все вышеперечисленные разделы практикума можно найти на сайте проекта RunaWFE Free в разделе "Документация/Документация для пользователя", документ "RunaWFE. Учебные материалы по процессному управлению".
Все вышеперечисленные разделы практикума можно найти на сайте проекта RunaWFE Free в разделе "Документация/Документация для пользователя", документ "RunaWFE. Учебные материалы по процессному управлению".


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


В данном разделе практикума рассмотрено межпроцессное взаимодействие, работа с таймерами, обработчиками, мульти-подпроцессами.
<center>[[Image:r37_ru_2_2.png]]</center>


Система RunaWFE Free свободно распространяется вместе со своими исходными кодами на условиях открытой лицензии LGPL. Система бесплатная, ее можно свободно установить на любое количество компьютеров без каких-либо ограничений. Скачать дистрибутивы и исходный код ее можно через интернет с портала разработчиков свободного программного обеспечения sourceforge.net по адресу: [http://sourceforge.net/projects/runawfe http://sourceforge.net/projects/runawfe].
<center>Рисунок 1.01. Включение проверки прав доступа к объектам системы RunaWFE</center>


= Общая информация =
= Общая информация =
Строка 37: Строка 40:
== Теоретические сведения ==
== Теоретические сведения ==


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


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


В некоторых случаях одно сообщение может быть обработано несколькими получателями. Адресат сообщения может быть определен следующим образом:  
В некоторых случаях одно сообщение может быть обработано несколькими получателями. Адресат сообщения может быть определен следующим образом:  
* по названию бизнес-процесса (processDefinitionName)  
* по названию бизнес-процесса (processDefinitionName)  
* по названию узла бизнес-процесса (processNodeName)  
* по названию узла бизнес-процесса (processNodeName)  
* по идентификатору экземпляра бизнес-процесса (processInstanceId)  
* по идентификатору экземпляра бизнес-процесса (processInstanceId).


Для задания этих параметров можно использовать:  
Для задания этих параметров можно использовать:  
* переменные экземпляра бизнес-процесса, например, processDefinitionName=${Переменная1}, где "Переменная1"– это переменная содержащая название процесса
* переменные экземпляра бизнес-процесса, например, processDefinitionName=${Переменная1}, где "Переменная1"– это переменная содержащая название процесса
* константное значение, например processNodeName = Процесс1, где Процесс1 это название процесса
* константное значение, например processNodeName = Процесс1, где Процесс1 это название процесса
* предопределенные значения: по названию текущего определения процесса ( ${currentDefinitionName} ), по названию текущего узла ( ${currentNodeName} ), по номеру текущего экземпляра процесса ( ${currentInstanceId} )
* предопределенные значения:  
*: А. по названию текущего определения процесса ( ${currentDefinitionName} )
*: Б. по названию текущего узла ( ${currentNodeName} )
*: В. по номеру текущего экземпляра процесса ( ${currentInstanceId} ).


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


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


В данном занятии рассматриваются бизнес-процессы, иллюстрирующие  механизм межпроцессного взаимодействия: Бизнес-процесс "Пример 8-1" отправляет сообщение в бизнес-процесс "Пример 8-2". Используется маршрутизация “по названию процесса”. В качестве данных, пересылаемых в сообщении, используется введённый пользователем текст, а также id экземпляра бизнес-процесса "Пример 8-1"  
В данном занятии рассматриваются бизнес-процессы, иллюстрирующие  механизм межпроцессного взаимодействия: Бизнес-процесс "Пример 8-1" отправляет сообщение в бизнес-процесс "Пример 8-2". Используется маршрутизация “по названию процесса”. В качестве данных, пересылаемых в сообщении, используется введённый пользователем текст, а также id экземпляра бизнес-процесса "Пример 8-1".


Бизнес-процесс "Пример 8-2" получает данные, пользователь изменяет полученное значение текстовой переменной, и высылает сообщение обратно в бизнес-процесс "Пример 8-1", при этом используется маршрутизация “по ID процесса”.
Бизнес-процесс "Пример 8-2" получает данные, пользователь изменяет полученное значение текстовой переменной, и высылает сообщение обратно в бизнес-процесс "Пример 8-1", при этом используется маршрутизация “по ID процесса”.


Откройте среду разработки системы RunaWFE Free
Откройте среду разработки системы RunaWFE Free.
<ol>
<ol>
<li>'''Создайте''' новый проект -  Занятие 8
<li>'''Создайте''' новый проект -  Занятие 8.
</li>
</li>


Строка 75: Строка 81:
</li>
</li>


<li>'''Введите''' название процесса – "Пример 8-1"
<li>'''Введите''' название процесса – "Пример 8-1".
</li>
</li>


<li>'''Добавьте''' элементы на схему бизнес-процесса в соответствии с рисунком 3.1
<li>'''Добавьте''' элементы на схему бизнес-процесса в соответствии с Рис.3.01.
</li>
</li>


Строка 84: Строка 90:
<center>[[Image:r253e_ru.png]]</center>
<center>[[Image:r253e_ru.png]]</center>


<center>Рисунок 3.1 Схема бизнес процесса "Пример 8-1"</center>
<center>Рисунок 3.01. Схема бизнес процесса "Пример 8-1"</center>




В бизнес-процессе используется следующие элементы: “Начало”, “Окончание”, “Действие”, “Задача сценария”, узел “Отправить сообщение” и “Получить сообщение”. Для изменения названий по-умолчанию, выделите элемент, кликнув на него, перейдите в свойства, введите новое значение в поле Название.  
В бизнес-процессе используется следующие элементы: “Начало”, “Окончание”, “Действие”, “Задача сценария”, узел “Отправить сообщение” и “Получить сообщение”. Для изменения названий по-умолчанию, выделите элемент, щёлкнув его, перейдите в свойства, введите новое значение в поле Название.  


Для элемента "Задача сценария" используйте опцию компактный вид (см. ''пункт 1 раздела "Практическое занятие "Работа с Word-ботом". Порядок выполнения работы.", Замечание. рис. 2.2'')
Для элемента "Задача сценария" используйте опцию компактный вид (см. ''пункт 1 раздела "Практическое занятие "Работа с Word-ботом". [[TrainingMaterials_4_4_1_Documents#.D0.9F.D0.BE.D1.80.D1.8F.D0.B4.D0.BE.D0.BA_.D0.B2.D1.8B.D0.BF.D0.BE.D0.BB.D0.BD.D0.B5.D0.BD.D0.B8.D1.8F_.D1.80.D0.B0.D0.B1.D0.BE.D1.82.D1.8B|Порядок выполнения работы.]]", Замечание. Рис.2.02'').


<li>'''Создайте''' бизнес-процесс "Пример 8-2" в соответствии с рисунком 3.2.
<li>'''Создайте''' бизнес-процесс "Пример 8-2" в соответствии с Рис.3.02.
</li>
</li>


Строка 97: Строка 103:
<center>[[Image:r254e_ru.png]]</center>
<center>[[Image:r254e_ru.png]]</center>


<center>Рисунок 3.2 Схема бизнес процесса "Пример 8-2"</center>
<center>Рисунок 3.02. Схема бизнес процесса "Пример 8-2"</center>




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


<li>'''Создайте''' роли
<li>'''Создайте''' роли.
</li>
</li>


В разрабатываемых процессах используются следующие Роли:  
В разрабатываемых процессах используются следующие Роли:  


* "сотрудник", используется в процессе "Пример 8-1", будет инициализирована пользователем, запустившим процесс.
* "сотрудник", используется в процессе "Пример 8-1", будет инициализирована пользователем, запустившим процесс  
* "отдел кадров", используется в процессе "Пример 8-2", будет инициализирована пользователем, запустившим процесс.
* "отдел кадров", используется в процессе "Пример 8-2", будет инициализирована пользователем, запустившим процесс.


<li>'''Создайте''' переменные
<li>'''Создайте''' переменные.
</li>
</li>
   
   
Строка 116: Строка 122:


* "отправленное сообщение", это переменная формата "Текст", которую вводит пользователь в узле “Ввести сообщение для отправки” и отправляет в экземпляры процесса "Пример 8-2"  
* "отправленное сообщение", это переменная формата "Текст", которую вводит пользователь в узле “Ввести сообщение для отправки” и отправляет в экземпляры процесса "Пример 8-2"  
* "id отправителя", это переменная формата "Строка", содержит id экземпляра процесса "Пример 8-1", также отправляется в сообщении. Должна быть проинициализирована в задаче сценария "Получение id экземпляра процесса" с помощью обработчика "Выполнить формулу"
* "id отправителя", это переменная формата "Строка", содержит id экземпляра процесса "Пример 8-1", также отправляется в сообщении. Должна быть проинициализирована в задаче сценария "Получение id экземпляра процесса" с помощью обработчика "Выполнить формулу".


В процессе "Пример 8-2" используются следующие переменные:  
В процессе "Пример 8-2" используются следующие переменные:  
Строка 123: Строка 129:
* "id отправителя", это переменная формата "Строка", содержит id экземпляра процесса "Пример 8-1". Принимает значение из сообщения, и необходима для определения получателя, т.е. используется в свойствах маршрутизации.
* "id отправителя", это переменная формата "Строка", содержит id экземпляра процесса "Пример 8-1". Принимает значение из сообщения, и необходима для определения получателя, т.е. используется в свойствах маршрутизации.


Для создания переменной перейдите на вкладку "Переменные" и нажмите "Создать" (См. Рис. 3.3).  
Для создания переменной перейдите на вкладку "Переменные" и нажмите "Создать" (См. Рис.3.03).  
В появившейся форме введите название переменной (См. Рис. 3.4), нажмите "Далее" и выберите ее формат (См. Рис. 3.5).
В появившейся форме введите название переменной (См. Рис.3.04), нажмите "Далее" и выберите ее формат (См. Рис.3.05).




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


<center>Рисунок 3.3 Создание переменных</center>
<center>Рисунок 3.03. Создание переменных</center>




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


<center>Рисунок 3.4 Ввод названия переменной</center>
<center>Рисунок 3.04. Ввод названия переменной</center>




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


<center>Рисунок 3.5 Выбор формата переменной</center>
<center>Рисунок 3.05. Выбор формата переменной</center>




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


<center>Рисунок 3.6 Переменные бизнес-процесса "Пример 8-1"</center>
<center>Рисунок 3.06. Переменные бизнес-процесса "Пример 8-1"</center>




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


<center>Рисунок 3.7 Переменные бизнес-процесса "Пример 8-2"</center>
<center>Рисунок 3.07. Переменные бизнес-процесса "Пример 8-2"</center>


<li>'''Выберите''' класс обработчика в задачи сценария "Получение id экземпляра процесса"
<li>'''Выберите''' класс обработчика в задачи сценария "Получение id экземпляра процесса".
</li>
</li>


В процессе "Пример 8-1" необходимо использовать обработчик "Выполнить формулу", в котором определить id данного экземпляра и проинициализировать полученным значением переменную "id отправителя". Для этого выделите на схеме элемент Задача сценария, перейдите в его свойства и кликните в поле “Класс обработчика” (См. Рис. 3.8)
В процессе "Пример 8-1" необходимо использовать обработчик "Выполнить формулу", в котором определить id данного экземпляра и проинициализировать полученным значением переменную "id отправителя". Для этого выделите на схеме элемент Задача сценария, перейдите в его свойства и щёлкните поле “Класс обработчика” (См. Рис.3.08).




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


<center>Рисунок 3.8 Задача сценария "Получение id экземпляра процесса"</center>
<center>Рисунок 3.08. Задача сценария "Получение id экземпляра процесса"</center>


В появившейся форме выберите из списка обработчик "Выполнить формулу" и нажмите ОК. Вернитесь в свойства задачи сценария, нажмите на поле "Конфигурация".
В появившейся форме выберите из списка обработчик "Выполнить формулу" и нажмите ОК. Вернитесь в свойства задачи сценария, нажмите на поле "Конфигурация".
Строка 166: Строка 172:
  'id отправителя'=get_process_id();
  'id отправителя'=get_process_id();


Здесь используется функция get_process_id, которая возвращает номер текущего экземпляра процесса
Здесь используется функция get_process_id, которая возвращает номер текущего экземпляра процесса.




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


<center>Рисунок 3.9 Конфигурация обработчика "Выполнить формулу"</center>
<center>Рисунок 3.09. Конфигурация обработчика "Выполнить формулу"</center>


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


<li>'''Создайте''' графические формы
<li>'''Создайте''' графические формы.
</li>
</li>


Кликните на узел «Ввести сообщение для отправки» графа процесса "Пример 8-1" правой кнопкой мыши и выберите команду «Форма» > «Создать форму» (левой кнопкой мыши) - См. Рис. 3.10
Щёлкните узел «Ввести сообщение для отправки» графа процесса "Пример 8-1" правой кнопкой мыши и выберите команду «Форма» > «Создать форму» (левой кнопкой мыши) - См. Рис.3.10.




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


<center>Рисунок 3.10 Создание графической формы</center>
<center>Рисунок 3.10. Создание графической формы</center>
 




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




В появившимся выпадающем списке выберите тип формы «Произвольная форма».
В появившимся выпадающем списке выберите тип формы «Произвольная форма».


Поместите на форму компонент "Ввод переменной" для ввода значения переменной "отправленное сообщение" (См. Рис. 3.11)
Поместите на форму компонент "Ввод переменной" для ввода значения переменной "отправленное сообщение" (См. Рис.3.11).




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


<center>Рисунок 3.11 Форма "Ввести сообщение для отправки"</center>
<center>Рисунок 3.11. Форма "Ввести сообщение для отправки"</center>


В процессе "Пример 8-2" также создайте форму в узле “Редактировать полученное сообщение”, процесс создания аналогичен описанному примеру. На форме необходимо расположить компонент "Ввод переменной" для редактирования значения переменной "полученное сообщение" (См. Рис. 3.12)
В процессе "Пример 8-2" также создайте форму в узле “Редактировать полученное сообщение”, процесс создания аналогичен описанному примеру. На форме необходимо расположить компонент "Ввод переменной" для редактирования значения переменной "полученное сообщение" (См. Рис.3.12).




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


<center>Рисунок 3.12 Форма "Редактирование полученного сообщения"</center>
<center>Рисунок 3.12. Форма "Редактирование полученного сообщения"</center>


Создайте форму для отображения значения переменной после взаимодействия между процессами.  
Создайте форму для отображения значения переменной после взаимодействия между процессами.  
Кликните на узел «Ознакомиться с полученным сообщением» графа процесса "Пример 8-1" правой кнопкой мыши и выберите команду «Форма» > «Создать форму» (левой кнопкой мыши), после чего расположите на форме компонент “Отобразить переменную” для "отправленное сообщение", в поле "Форма отображения" выберите "Как неактивный компонент ввода" (См. Рис. 3.13)
Щёлкните узел «Ознакомиться с полученным сообщением» графа процесса "Пример 8-1" правой кнопкой мыши и выберите команду «Форма» > «Создать форму» (левой кнопкой мыши), после чего расположите на форме компонент “Отобразить переменную” для "отправленное сообщение", в поле "Форма отображения" выберите "Как неактивный компонент ввода" (См. Рис.3.13).




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


<center>Рисунок 3.13 Создание графической формы для узла "Ознакомиться с полученным сообщением"</center>
<center>Рисунок 3.13. Создание графической формы для узла "Ознакомиться с полученным сообщением"</center>




<li>'''Настройте''' межпроцессное взаимодействие
<li>'''Настройте''' межпроцессное взаимодействие.
</li>
</li>


Настройка отправителя сообщения в процессе "Пример 8-1"
Настройка отправителя сообщения в процессе "Пример 8-1".
Для настройки отправки кликните правой клавишей мыши на элементе “отправить сообщение”, и выберите пункт "Конфигурация" (См. Рис. 3.14)
Для настройки отправки щёлкните правой клавишей мыши на элементе “отправить сообщение”, и выберите пункт "Конфигурация" (См. Рис.3.14).
 


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


<center>Рисунок 3.14 Вызов диалога настройки отправителя сообщения в бизнес-процессе "Пример 8-1"</center>
<center>Рисунок 3.14. Вызов диалога настройки отправителя сообщения в бизнес-процессе "Пример 8-1"</center>
 
В свойствах маршрутизации укажите следующие настройки  (См. Рис. 3.15)


В свойствах маршрутизации укажите настройки согласно Рис.3.15.


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


<center>Рисунок 3.15 Настройка свойств маршрутизации сообщения в бизнес-процессе "Пример 8-1"</center>
<center>Рисунок 3.15. Настройка свойств маршрутизации сообщения в бизнес-процессе "Пример 8-1"</center>


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


В появившейся форме введите в поле "Значение" - Пример 8-2, поле "Название" оставьте неизменным. Нажмите "ОК"
В появившейся форме введите в поле "Значение" - Пример 8-2, поле "Название" оставьте неизменным. Нажмите "ОК".


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


Таким образом в соответствии с параметрами представленными на рисунке 3.15, будут отправлены значения переменных "id отправителя" и "отправленное сообщение" экземпляра бизнес-процесса "Пример 8-1".
Таким образом в соответствии с параметрами представленными на Рис.3.15, будут отправлены значения переменных "id отправителя" и "отправленное сообщение" экземпляра бизнес-процесса "Пример 8-1".


Также нужно настроить время жизни сообщения. Для этого выберите пункт "Время жизни сообщения" контекстного меню вызванного на элементе "отправить сообщение" (См. Рис. 3.14).
Также нужно настроить время жизни сообщения. Для этого выберите пункт "Время жизни сообщения" контекстного меню вызванного на элементе "отправить сообщение" (См. Рис.3.14).
В появившемся окне установить задержку 1 день, как показано на рисунке 3.16
В появившемся окне установить задержку 1 день, как показано на Рис.3.16.


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


<center>Рисунок 3.16 Диалог настройки времени жизни сообщения</center>
<center>Рисунок 3.16. Диалог настройки времени жизни сообщения</center>




Настройка получателя в процессе "Пример 8-2".
Настройка получателя в процессе "Пример 8-2".


Кликните правой клавишей мыши на элементе “получить сообщение”, и выберите "Конфигурация" (См. Рис. 3.17)
Щёлкните правой клавишей мыши элемент “получить сообщение” и выберите "Конфигурация" (См. Рис.3.17).




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


<center>Рисунок 3.17 Вызов диалога настройки получателя сообщения в бизнес-процессе  "Пример 8-2"</center>
<center>Рисунок 3.17. Вызов диалога настройки получателя сообщения в бизнес-процессе  "Пример 8-2"</center>


В свойствах маршрутизации укажите следующие настройки (См. Рис. 3.18)
В свойствах маршрутизации укажите настройки согласно Рис.3.18.




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


<center>Рисунок 3.18 Настройка свойств маршрутизации сообщения в бизнес-процессе "Пример 8-2"</center>
<center>Рисунок 3.18. Настройка свойств маршрутизации сообщения в бизнес-процессе "Пример 8-2"</center>


Используйте маршрутизацию по названию текущего определения процесса (currentDefinitionName), для этого в области свойств маршрутизации нажмите на стрелку расположенную на кнопке "Добавить", выберите из выпадающего списка пункт "По названию процесса". Добавьте переменные в сообщении в соответствии с рисунком 3.18.
Используйте маршрутизацию по названию текущего определения процесса (currentDefinitionName), для этого в области свойств маршрутизации нажмите на стрелку расположенную на кнопке "Добавить", выберите из выпадающего списка пункт "По названию процесса". Добавьте переменные в сообщении в соответствии с Рис.3.18.


Таким образом, будут получены:  
Таким образом, будут получены:  


* значение переменной "id отправителя" из сообщения в переменную "id отправителя" экземпляра процесса "Пример 8-2"
* значение переменной "id отправителя" из сообщения в переменную "id отправителя" экземпляра процесса "Пример 8-2"
* значение переменной "отправленное сообщение" в переменную "полученное сообщение"
* значение переменной "отправленное сообщение" в переменную "полученное сообщение".




Настройка отправителя в процессе "Пример 8-2".
Настройка отправителя в процессе "Пример 8-2".


После получения и обработки сообщения, процесс "Пример 8-2" возвращает обработанные данные в экземпляр процесса "Пример 8-1", для этого используются следующие настройки (См. Рис. 3.19-3.23):
После получения и обработки сообщения, процесс "Пример 8-2" возвращает обработанные данные в экземпляр процесса "Пример 8-1", для этого используются следующие настройки (См. Рис.3.19-3.23):




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


<center>Рисунок 3.19 Вызов диалога настройки отправителя сообщения в бизнес-процессе "Пример 8-2"</center>
<center>Рисунок 3.19. Вызов диалога настройки отправителя сообщения в бизнес-процессе "Пример 8-2"</center>


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




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


<center>Рисунок 3.20 Маршрутизация по ID процесса</center>
<center>Рисунок 3.20. Маршрутизация по ID процесса</center>


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


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




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


<center>Рисунок 3.21 Добавление переменной</center>
<center>Рисунок 3.21. Добавление переменной</center>




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


<center>Рисунок 3.22 Итоговая конфигурация</center>
<center>Рисунок 3.22. Итоговая конфигурация</center>




Также нужно настроить время жизни сообщения. Для этого выберите пункт "Время жизни сообщения" контекстного меню вызванного на элементе "отправить сообщение" (См. Рис. 3.19).
Также нужно настроить время жизни сообщения. Для этого выберите пункт "Время жизни сообщения" контекстного меню вызванного на элементе "отправить сообщение" (См. Рис.3.19).
В появившемся окне установить задержку 1 день, как показано на рисунке 3.16
В появившемся окне установить задержку 1 день, как показано на Рис.3.16.




Настройка получателя в процессе "Пример 8-1"
Настройка получателя в процессе "Пример 8-1".


Обработанные в бизнес-процессе "Пример 8-2" данные возвращаются в "Пример 8-1", для принятия этих данных необходимо настроить элемент “Принять сообщение” следующим образом (См. Рис. 3.23)
Обработанные в бизнес-процессе "Пример 8-2" данные возвращаются в "Пример 8-1", для принятия этих данных необходимо настроить элемент “Принять сообщение” следующим образом (См. Рис.3.23).




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


<center>Рисунок 3.23 Переменные сообщения</center>
<center>Рисунок 3.23. Переменные сообщения</center>


Свойство маршрутизации задано как processId = ${currentProcessId}, то есть по id процесса, а соответствие переменных установлено как "отправленное сообщение"="полученное сообщение", то есть присланное в переменной "полученное сообщение" значение будет сохранено в переменную "отправленное сообщение"
Свойство маршрутизации задано как processId = ${currentProcessId}, то есть по id процесса, а соответствие переменных установлено как "отправленное сообщение"="полученное сообщение", то есть присланное в переменной "полученное сообщение" значение будет сохранено в переменную "отправленное сообщение".


<li>'''Загрузите''' бизнес-процесс на RunaWFE сервер
<li>'''Загрузите''' бизнес-процесс на RunaWFE сервер.
</li>
</li>


Загрузите разработанные бизнес-процессы в систему, используя пункт меню “Файл/Экспорт процесса” (Подробнее см. ''"Практикум. Перспективы исполнимых бизнес-процессов.", практическое занятие "Изучение перспективы потока управления", Порядок выполнения работы, Пункт 11-14'').  
Загрузите разработанные бизнес-процессы в систему, используя пункт меню “Файл/Экспорт процесса” (Подробнее см. ''"Практикум. Перспективы исполнимых бизнес-процессов.", практическое занятие "Изучение перспективы потока управления", [[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'').  


Войдите в web-интерфейс системы RunaWFE Free под пользователем Administrator.
Войдите в web-интерфейс системы RunaWFE Free под пользователем Administrator.
Строка 328: Строка 331:
После загрузки необходимо настроить обладателей полномочий на данные процессы.  
После загрузки необходимо настроить обладателей полномочий на данные процессы.  


Для "Пример 8-1" нужно добавить в обладатели полномочий группу "Сотрудники" с правами на чтение, чтение экземпляра и запуск, а для "Пример 8-2" группу "Отдел кадров", также с правами на чтение, чтение экземпляра и запуск (Подробнее см. ''"Практикум. Вводное занятие", Порядок выполнения работы, Пункт 28-31'').
Для "Пример 8-1" нужно добавить в обладатели полномочий группу "Сотрудники" с правами на чтение, чтение экземпляра и запуск, а для "Пример 8-2" группу "Отдел кадров", также с правами на чтение, чтение экземпляра и запуск (Подробнее см. ''"Практикум. Вводное занятие", [[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-31'').


<li>'''Запустите''' бизнес-процессы и доведите экземпляры процессов до завершения.
<li>'''Запустите''' бизнес-процессы и доведите экземпляры процессов до завершения.
Строка 338: Строка 341:
Пользователь вводит текст отправляемого сообщения в переменную "отправленное сообщение". Затем происходит отправка сообщения в экземпляр процесса "Пример 8-2", передаются значения переменных "отправленное сообщение" и "id отправителя". Процесс "Пример 8-1" переходит в следующий узел, ожидая сообщения с результатом обработки.  
Пользователь вводит текст отправляемого сообщения в переменную "отправленное сообщение". Затем происходит отправка сообщения в экземпляр процесса "Пример 8-2", передаются значения переменных "отправленное сообщение" и "id отправителя". Процесс "Пример 8-1" переходит в следующий узел, ожидая сообщения с результатом обработки.  


Пользователь, принадлежащий группе "Отдел кадров", запускает экземпляр процесса "Пример 8-2", сразу после запуска экземпляра бизнес-процесса точка управления останавливается в узле “Получить сообщение”, ожидая данные. После получения сообщения, происходит загрузка значений в переменные "полученное сообщение" и "id отправителя". Далее точка управления переходит в узел “Редактировать полученное сообщение”, где пользователь редактирует значение переменной "полученное сообщение". Затем происходит отправка отредактированного значения обратно в экземпляр "Пример 8-1", при этом используется полученное ранее значение id этого экземпляра. Экземпляр бизнес-процесса "Пример 8-1" получает из сообщения значение "отправленное сообщение" и точка управления переходит в узел “Ознакомиться с полученным сообщением”
Пользователь, принадлежащий группе "Отдел кадров", запускает экземпляр процесса "Пример 8-2", сразу после запуска экземпляра бизнес-процесса точка управления останавливается в узле “Получить сообщение”, ожидая данные. После получения сообщения, происходит загрузка значений в переменные "полученное сообщение" и "id отправителя". Далее точка управления переходит в узел “Редактировать полученное сообщение”, где пользователь редактирует значение переменной "полученное сообщение". Затем происходит отправка отредактированного значения обратно в экземпляр "Пример 8-1", при этом используется полученное ранее значение id этого экземпляра. Экземпляр бизнес-процесса "Пример 8-1" получает из сообщения значение "отправленное сообщение" и точка управления переходит в узел “Ознакомиться с полученным сообщением”.




Выполнение бизнес-процессов по шагам.
Выполнение бизнес-процессов по шагам.


Для запуска процесса "Пример 8-1" войдите в систему под пользователем из группы "Сотрудники", например "Сверчков" и кликните на имя процесса в общем списке бизнес-процессов (См. Рис. 3.24):  
Для запуска процесса "Пример 8-1" войдите в систему под пользователем из группы "Сотрудники", например "Сверчков", и щёлкните имя процесса в общем списке бизнес-процессов (См. Рис.3.24):  




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


<center>Рисунок 3.24 Список бизнес-процессов</center>
<center>Рисунок 3.24. Список бизнес-процессов</center>


Будет создан новый экземпляр бизнес-процесса, в котором точка  управления перейдет в узел “Ввести сообщение для отправки”  (См. Рис. 3.25)
Будет создан новый экземпляр бизнес-процесса, в котором точка  управления перейдет в узел “Ввести сообщение для отправки”  (См. Рис.3.25).


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


<center>Рисунок 3.25 Задание, соответствующее узлу “Ввести сообщение для отправки”</center>
<center>Рисунок 3.25. Задание, соответствующее узлу “Ввести сообщение для отправки”</center>


В форме задания этого узла введите текст сообщения для отправки, например: “Hello” (См. Рис. 3.26)
В форме задания этого узла введите текст сообщения для отправки, например: “Hello” (См. Рис.3.26).


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


<center>Рисунок 3.26 Ввод текста, который будет отправлен другому экземпляру бизнес-процесса</center>
<center>Рисунок 3.26. Ввод текста, который будет отправлен другому экземпляру бизнес-процесса</center>


На следующем шаге бизнес-процесса произойдет определение id данного экземпляра процесса и отправка сообщения, содержащего переменные "отправленное сообщение" и "id отправителя" (См. Рис. 3.27).
На следующем шаге бизнес-процесса произойдет определение id данного экземпляра процесса и отправка сообщения, содержащего переменные "отправленное сообщение" и "id отправителя" (См. Рис.3.27).


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


<center>Рисунок 3.27 Фрагмент формы истории экземпляра бизнес-процесса, показывающий последовательность событий экземпляра бизнес-процесса</center>
<center>Рисунок 3.27. Фрагмент формы истории экземпляра бизнес-процесса, показывающий последовательность событий экземпляра бизнес-процесса</center>


Управление перейдет в узел “Принять сообщение”, в котором оно будет находиться до тех пор, пока не получит сообщение от процесса "Пример 8-2"
Управление перейдет в узел “Принять сообщение”, в котором оно будет находиться до тех пор, пока не получит сообщение от процесса "Пример 8-2".


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


<center>Рисунок 3.28 Ожидание сообщения экземпляром бизнес-процесса "Пример 8-1"</center>
<center>Рисунок 3.28. Ожидание сообщения экземпляром бизнес-процесса "Пример 8-1"</center>


Запустите экземпляр бизнес-процесса "Пример 8-2".  
Запустите экземпляр бизнес-процесса "Пример 8-2".  


Войдите в систему под пользователем, входящим в группу "Отдел кадров", например Личинкин и кликните на имени бизнес-процесса "Пример 8-2" (См. Рис. 3.29).
Войдите в систему под пользователем, входящим в группу "Отдел кадров", например Личинкин и щёлкните имя бизнес-процесса "Пример 8-2" (См. Рис.3.29).


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


<center>Рисунок 3.29 Список бизнес-процессов</center>
<center>Рисунок 3.29. Список бизнес-процессов</center>


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


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


<center>Рисунок 3.30 Состояние экземпляра бизнес-процесса</center>
<center>Рисунок 3.30. Состояние экземпляра бизнес-процесса</center>


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


<center>Рисунок 3.31 История экземпляра бизнес-процесса</center>
<center>Рисунок 3.31. История экземпляра бизнес-процесса</center>


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


<center>Рисунок 3.32 Список заданий</center>
<center>Рисунок 3.32. Список заданий</center>


В форме задания узла дополните полученное сообщение (См. Рис. 3.33-3.34)
В форме задания узла дополните полученное сообщение (См. Рис.3.33-3.34).


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


<center>Рисунок 3.33 Форма задания с исходным значением</center>
<center>Рисунок 3.33. Форма задания с исходным значением</center>


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


<center>Рисунок 3.34 Форма задания с измененным значением</center>
<center>Рисунок 3.34. Форма задания с измененным значением</center>


После выполнения задания произойдет отправка сообщения (Hello World!!!), в экземпляр процесса выбранного по id, далее экземпляр бизнес-процесса "Пример 8-2" завершится (См. Рис. 3.35)
После выполнения задания произойдет отправка сообщения (Hello World!!!), в экземпляр процесса выбранного по id, далее экземпляр бизнес-процесса "Пример 8-2" завершится (См. Рис.3.35).


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


<center>Рисунок 3.35 История экземпляра бизнес-процесса "Пример 8-2"</center>
<center>Рисунок 3.35. История экземпляра бизнес-процесса "Пример 8-2"</center>


Экземпляр бизнес-процесса "Пример 8-1" получит сообщение, содержащее переменную "полученное сообщение". Переменная "отправленное сообщение" будет проинициализирована значением "Hello World!!!" и ее значение будет выведено на форму узла “Ознакомиться с полученным сообщением” (См. Рис. 3.36)
Экземпляр бизнес-процесса "Пример 8-1" получит сообщение, содержащее переменную "полученное сообщение". Переменная "отправленное сообщение" будет проинициализирована значением "Hello World!!!" и ее значение будет выведено на форму узла “Ознакомиться с полученным сообщением” (См. Рис.3.36).


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


<center>Рисунок 3.36 Список заданий</center>
<center>Рисунок 3.36. Список заданий</center>


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


<center>Рисунок 3.37 Форма задания</center>
<center>Рисунок 3.37. Форма задания</center>


После выполнения задания бизнес-процесс завершится (См. Рис. 3.38)
После выполнения задания бизнес-процесс завершится (См. Рис.3.38).


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


<center>Рисунок 3.38 История экземпляра бизнес-процесса</center>
<center>Рисунок 3.38. История экземпляра бизнес-процесса</center>


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


Разработайте бизнес-процессы "Пример 8-3" и "Пример 8-4", схемы которых изображены на рисунках 3.38 и 3.39   
Разработайте бизнес-процессы "Пример 8-3" и "Пример 8-4", схемы которых изображены на Рис.3.38,3.39.  
"Пример 8-3" отправляет в сообщении введённые пользователем данные в процесс "Пример 8-4". Используется маршрутизация “по названию процесса”. "Пример 8-4" получает данные и отображает их на форме.
"Пример 8-3" отправляет в сообщении введённые пользователем данные в процесс "Пример 8-4". Используется маршрутизация “по названию процесса”. "Пример 8-4" получает данные и отображает их на форме.


Строка 436: Строка 439:
<center>[[Image:r288e_ru.png]]</center>
<center>[[Image:r288e_ru.png]]</center>


<center>Рисунок 3.38 Схема бизнес-процесса "Пример 8-3" для самостоятельной разработки </center>
<center>Рисунок 3.38. Схема бизнес-процесса "Пример 8-3" для самостоятельной разработки </center>


В "Пример 8-3", используйте элемент “Отправить сообщение” для отправки данных.   
В "Пример 8-3", используйте элемент “Отправить сообщение” для отправки данных.   
Строка 442: Строка 445:
<center>[[Image:r289e_ru.png]]</center>
<center>[[Image:r289e_ru.png]]</center>


<center>Рисунок 3.39 Схема бизнес-процесса "Пример 8-4" для самостоятельной разработки </center>
<center>Рисунок 3.39. Схема бизнес-процесса "Пример 8-4" для самостоятельной разработки </center>


В "Пример 8-4", используйте элемент “Получить сообщение” для получения данных.   
В "Пример 8-4", используйте элемент “Получить сообщение” для получения данных.   




''Описание ролей.''
''Описание ролей''


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


* Роль "сотрудники", используется в процессе "Пример 8-3", будет инициализирована пользователем, запустившим процесс.
* Роль "сотрудники", используется в процессе "Пример 8-3", будет инициализирована пользователем, запустившим процесс  
* Роль "отдел кадров", используется в процессе "Пример 8-4", будет инициализирована пользователем из группы "Отдел кадров", запустившим процесс.
* Роль "отдел кадров", используется в процессе "Пример 8-4", будет инициализирована пользователем из группы "Отдел кадров", запустившим процесс.




''Описание переменных.''
''Описание переменных''


В процессе "Пример 8-3" используйте переменную формата Текст – “отправленное сообщение”, которая предназначена для отправки в сообщении. Переменная инициализируется значением введённым пользователем в узле “Ввести сообщение для отправки”, а затем передаётся в процесс "Пример 8-4" с помощью механизма сообщений.  
В процессе "Пример 8-3" используйте переменную формата Текст – “отправленное сообщение”, которая предназначена для отправки в сообщении. Переменная инициализируется значением введённым пользователем в узле “Ввести сообщение для отправки”, а затем передаётся в процесс "Пример 8-4" с помощью механизма сообщений.  
Строка 462: Строка 465:




''Описание графических форм.''
''Описание графических форм''


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




Строка 471: Строка 474:




''Задание проверок значений, введенных в элементы форм (валидация)''.
''Задание проверок значений, введенных в элементы форм (валидация)''


В процессе "Пример 8-3" необходимо задать проверку переменной “отправленное сообщение”, выбрав валидатор “Обязательное поле” и задав текст сообщения об ошибке (см. ''Практическое занятие "Изучение перспективы операций", Пункт 15, рис. 5.27, 5.28'').   
В процессе "Пример 8-3" необходимо задать проверку переменной “отправленное сообщение”, выбрав валидатор “Обязательное поле” и задав текст сообщения об ошибке (см. ''Практическое занятие "Изучение перспективы операций", [[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'').   




''Настройка межпроцессного взаимодействия.''
''Настройка межпроцессного взаимодействия''
   
   
Настройка отправителя.
Настройка отправителя.


В процессе "Пример 8-3" необходимо настроить отправку сообщения. Используйте отправку “По названию процесса”, в качестве названия процесса используйте - Пример 8-4
В процессе "Пример 8-3" необходимо настроить отправку сообщения. Используйте отправку “По названию процесса”, в качестве названия процесса используйте - Пример 8-4.


Задайте переменные, которые будут отправлены в сообщении. Выберите переменную "отправленное сообщение".  
Задайте переменные, которые будут отправлены в сообщении. Выберите переменную "отправленное сообщение".  
Строка 486: Строка 489:
Настройка получателя сообщения.
Настройка получателя сообщения.


В процессе "Пример 8-4" настройте параметры получения сообщения, для этого кликните правой клавишей мыши на узле “Получить данные” и выберите пункт “Конфигурация”.
В процессе "Пример 8-4" настройте параметры получения сообщения, для этого щёлкните правой клавишей мыши узел “Получить данные” и выберите пункт “Конфигурация”.


В появившейся форме добавьте свойства маршрутизации, а также соответствие переменных для получения данных. Используйте получение “По названию процесса”, для этого необходимо кликнуть на соответствующую кнопку, в результате в свойствах появится: processDefinitionName = ${currentDefinitionName}, где currentDefinitionName указывает на текущее название процесса.
В появившейся форме добавьте свойства маршрутизации, а также соответствие переменных для получения данных. Используйте получение “По названию процесса”, для этого необходимо щёлкнуть соответствующую кнопку, в результате в свойствах появится: processDefinitionName = ${currentDefinitionName}, где currentDefinitionName указывает на текущее название процесса.


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


Таким образом будет установлено соответствие между посылаемой в сообщении переменной "отправленное сообщение" процесса "Пример 8-3" и переменной "полученное сообщение" в процессе "Пример 8-4". Загрузите бизнес-процессы в систему, установите на них необходимые права (выполняется аналогично процессам "Пример 8-1/8-2", см. ''Практическое занятие "Межпроцессное взаимодействие", пункт 11'').
Таким образом будет установлено соответствие между посылаемой в сообщении переменной "отправленное сообщение" процесса "Пример 8-3" и переменной "полученное сообщение" в процессе "Пример 8-4". Загрузите бизнес-процессы в систему, установите на них необходимые права (выполняется аналогично процессам "Пример 8-1/8-2", см. ''[[TrainingMaterials_4_4_1_Timers#.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'').




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


Описание действий пользователей.
Описание действий пользователей.
Строка 505: Строка 508:




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


1). '''Первый сценарий''' - "Один получатель"
1). '''Первый сценарий''' - "Один получатель".


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


Запустится экземпляр процесса, и управление остановится на узле “Получить данные” ожидая сообщение.
Запустится экземпляр процесса, и управление остановится на узле “Получить данные” ожидая сообщение.
Строка 518: Строка 521:
пользователь Личинкин видит присланное сообщение на форме.
пользователь Личинкин видит присланное сообщение на форме.


2). '''Второй сценарий''' - "Несколько получателей"
2). '''Второй сценарий''' - "Несколько получателей".


Реализуйте сценарий отправки сообщения сразу нескольким экземплярам "Пример 8-4".
Реализуйте сценарий отправки сообщения сразу нескольким экземплярам "Пример 8-4".
   
   
Запустите экземпляры процесса "Пример 8-4" под всеми пользователями входящими в группу "Отдел кадров":  
Запустите экземпляры процесса "Пример 8-4" под всеми пользователями, входящими в группу "Отдел кадров":  
* Личинкин  
* Личинкин  
* Гусеницын
* Гусеницын.


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


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


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


== Контрольные вопросы ==
== Контрольные вопросы ==
Строка 547: Строка 550:
a. Элемент  [[Image:z7_c_p1.png]]
a. Элемент  [[Image:z7_c_p1.png]]


b. Элемент  [[Image:z7_c_p2.png]]
b. Элемент  [[Image:z7_c_p2.png]].


2. Может ли экземпляр бизнес-процесса, соответствующий одному определению бизнес-процесса, послать сообщения экземпляру, соответствующему другому определению бизнес-процесса?
2. Может ли экземпляр бизнес-процесса, соответствующий одному определению бизнес-процесса, послать сообщения экземпляру, соответствующему другому определению бизнес-процесса?
Строка 555: Строка 558:
a. Точка управления сразу переходит в следующий узел
a. Точка управления сразу переходит в следующий узел


b. Точка управления ждет ответа на сообщение
b. Точка управления ждет ответа на сообщение.


= Практическое занятие "Таймеры и обработчики" =
= Практическое занятие "Таймеры и обработчики" =
Строка 583: Строка 586:
</li>
</li>


<li>'''Создайте''' новый проект -  Занятие 9
<li>'''Создайте''' новый проект -  Занятие 9.
</li>
</li>


Строка 589: Строка 592:
</li>
</li>


Название процесса – "Пример 9-1"
Название процесса – "Пример 9-1".


<li>'''Добавьте''' элементы на схему бизнес-процесса в соответствии с рисунком 4.1
<li>'''Добавьте''' элементы на схему бизнес-процесса в соответствии с Рис.4.01.
</li>
</li>


Строка 597: Строка 600:
<center>[[Image:r290e_ru.png]]</center>
<center>[[Image:r290e_ru.png]]</center>


<center>Рисунок 4.1 Схема бизнес-процесса "Пример 9-1"</center>
<center>Рисунок 4.01. Схема бизнес-процесса "Пример 9-1"</center>




"Пример 9-1" является упрощенным вариантом бизнес-процесса "Тестирование".
"Пример 9-1" является упрощенным вариантом бизнес-процесса "Тестирование".


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




В бизнес-процессе используется следующие элементы: “Начало”, “Окончание”, “Действие”, “Задача сценария”, “Аннотация”, “Параллельный шлюз” и “Таймер”.  
В бизнес-процессе используются следующие элементы палитры: “Начало”, “Окончание”, “Действие”, “Задача сценария”, “Аннотация”, “Параллельный шлюз” и “Таймер”.  


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




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


Из "Выполнить тестирование" выходит два перехода: из таймера и непосредственно действия.
Из узла "Выполнить тестирование" выходит два перехода: из таймера и непосредственно из узла-действия.
Для добавления перехода из Таймера воспользуйтесь одним из следующих вариантов:
Для добавления перехода из Таймера воспользуйтесь одним из следующих вариантов:


* наведите курсор мыши на таймер присоединенный к узлу, появится значок "стрелка", захватите ее и перетяните в необходимый узел для создания перехода (см. рис. 4.2)
* наведите курсор мыши на таймер, присоединенный к узлу; появится значок "стрелка"; захватите ее и перетяните в необходимый узел для создания перехода (см. Рис.4.02)
* выберите в палитре элемент "Переход", кликните на таймер в узле, переведите курсор на необходимый элемент, кликните левой клавишей мыши еще раз для создания перехода между элементами (см. 4.3)
* выберите в палитре элемент "Переход", щёлкните таймер в узле, переведите курсор на необходимый элемент, щёлкните его левой кнопкой мыши еще раз для создания перехода между элементами (см. Рис.4.03).


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




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


<center>Рисунок 4.2 Создание перехода из таймера присоединенного к узлу</center>
<center>Рисунок 4.02. Создание перехода из таймера, присоединенного к узлу</center>




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


<center>Рисунок 4.3 Создание перехода из таймера присоединенного к узлу с помощью элемента "Переход"</center>
<center>Рисунок 4.03. Создание перехода из таймера, присоединенного к узлу с помощью элемента "Переход"</center>




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


Для придания наглядности схемы расположите напротив "Задачи сценария" элемент "Аннотация". Введите "Описание" аннотации, для этого перейдите в одноименное свойство элемента.
Для придания наглядности схемы расположите напротив "Задачи сценария" элемент "Аннотация". Введите "Описание" аннотации, для этого перейдите в одноименное свойство элемента.


<li>'''Создайте''' роли
<li>'''Создайте''' роли.
</li>
</li>


В разрабатываемом процессе используются следующие Роли:
В разрабатываемом процессе используются следующие Роли:
* Студент
* Студент
* Преподаватель
* Преподаватель.


Роль "Студент" будет инициализирована пользователем, запустившим процесс, поэтому не требует инициализатора.
Роль "Студент" будет инициализирована пользователем, запустившим процесс, поэтому не требует инициализатора.


Роль "Преподаватель" должна быть проинициализирована с помощью отношения "Преподаватель". Выделите созданную роль, нажмите "Изменить", перейдите на закладку "Задать роль с помощью отношения", введите название отношения и выберите параметр отношения - Студент, как показано на рисунке 4.4
Роль "Преподаватель" должна быть проинициализирована с помощью отношения "Преподаватель". Выделите созданную роль, нажмите "Изменить", перейдите на закладку "Задать роль с помощью отношения", введите название отношения и выберите параметр отношения - "Студент", как показано на Рис.4.04.




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


<center>Рисунок 4.4 Инициализация роли с помощью отношения</center>
<center>Рисунок 4.04. Инициализация роли с помощью отношения</center>


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


<li>'''Свяжите''' с начальным узлом бизнес-процесса роль "Студент", с остальными узлами свяжите роли в соответствии с рисунком 4.1
<li>'''Свяжите''' с начальным узлом бизнес-процесса роль "Студент", с остальными узлами свяжите роли в соответствии с Рис.4.01.
</li>
</li>


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


Строка 663: Строка 666:
* Вопросы - переменная формата Список(Строк), вводится Преподавателем в узле "Ввести данные тестирования"
* Вопросы - переменная формата Список(Строк), вводится Преподавателем в узле "Ввести данные тестирования"
* Ответы - переменная формата Список(Строк), вводится Студентом в узле "Выполнить тестирование"
* Ответы - переменная формата Список(Строк), вводится Студентом в узле "Выполнить тестирование"
* Дата и время окончания тестирования - переменная формата Дата со временем, определяется в обработчике "Выполнить формулу" задачи сценария
* Дата и время окончания тестирования - переменная формата "Дата со временем", определяется в обработчике "Выполнить формулу" задачи-сценария "Определение даты и времени окончания тестирования"
* Длительность тестирования - переменная формата Целое число, вводится Преподавателем в узле "Ввести данные тестирования"
* Длительность тестирования - переменная формата "Целое число", вводится Преподавателем в узле "Ввести данные тестирования".




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


<center>Рисунок 4.5 Переменные бизнес-процесса "Пример 9-1"</center>
<center>Рисунок 4.05. Переменные бизнес-процесса "Пример 9-1"</center>




<li>'''Выберите''' класс обработчика в задачи сценария "Определение даты и времени окончания тестирования"
<li>'''Выберите''' класс обработчика в задаче-сценарии "Определение даты и времени окончания тестирования".
</li>
</li>


Выделите на схеме элемент "Задача сценария", перейдите в его свойства и кликните в поле “Класс обработчика”, после чего выберите из списка обработчик "Выполнить формулу".
Выделите на схеме элемент "Задача-сценарий", перейдите в его свойства и щёлкните поле “Класс обработчика”, после чего выберите из списка обработчик "Выполнить формулу".


Добавьте конфигурацию следующего вида:
Добавьте конфигурацию следующего вида:
Строка 681: Строка 684:
  'Дата и время окончания тестирования'=current_date_time()+'Длительность тестирования';
  'Дата и время окончания тестирования'=current_date_time()+'Длительность тестирования';


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




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


<center>Рисунок 4.6 Определение Даты и времени окончания тестирования с помощью обработчика</center>
<center>Рисунок 4.06. Определение Даты и времени окончания тестирования с помощью обработчика</center>




<li>'''Настройте''' таймер в узле "Выполнить тестирование"
<li>'''Настройте''' таймер в узле "Выполнить тестирование".
</li>
</li>


Выделите таймер, перейдите в его свойства, выберите поле "Задержка" (см. Рис. 4.7)
Выделите таймер, перейдите в его свойства, выберите поле "Задержка" (см. Рис.4.07).




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


<center>Рисунок 4.7 Вызов настройки задержки таймера</center>
<center>Рисунок 4.07. Вызов настройки задержки таймера</center>


В появившейся форме необходимо выбрать "Единицу измерения" - "минуты", "Задержка таймера" - "+1", "Базовая дата" - "Дата и время окончания тестирования" (см. рис. 4.8)
В появившейся форме необходимо выбрать "Единицу измерения" - "минуты", "Задержка таймера" - "+1", "Базовая дата" - "Дата и время окончания тестирования" (см. Рис.4.08).




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


<center>Рисунок 4.8 Задержка таймера</center>
<center>Рисунок 4.08. Задержка таймера</center>




Нажмите на значок для вызова формы выбора единицы измерения (см. рис. 4.8), выберите "минуты" (см. рис. 4.9)
Нажмите на значок для вызова формы выбора единицы измерения (см. Рис.4.08), выберите "минуты" (см. Рис.4.09).




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


<center>Рисунок 4.9 Выбор единицы измерения</center>
<center>Рисунок 4.09. Выбор единицы измерения</center>




Нажмите на значок для вызова формы ввода задержки таймера относительно базовой даты (см. рис. 4.8), введите значение +1 (см. рис. 4.10)
Нажмите на значок для вызова формы ввода задержки таймера относительно базовой даты (см. Рис.4.08), введите значение +1 (см. Рис.4.10).


'''Замечание'''. Задержка должна содержать только знак и непосредственно значение задержки. Использование пробелов и других символов недопустимо.
'''Замечание'''. Задержка должна содержать только знак и непосредственно значение задержки. Использование пробелов и других символов недопустимо.
Строка 722: Строка 725:
<center>[[Image:r295d_ru.png]]</center>
<center>[[Image:r295d_ru.png]]</center>


<center>Рисунок 4.10 Ввод задержки таймера</center>
<center>Рисунок 4.10. Ввод задержки таймера</center>




Нажмите на значок для вызова формы выбора базовой даты (см. рис. 4.8), выберите переменную "Дата и время окончания тестирования" (см. рис. 4.11)
Нажмите на значок для вызова формы выбора базовой даты (см. Рис.4.08), выберите переменную "Дата и время окончания тестирования" (см. Рис.4.11).




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


<center>Рисунок 4.11 Выбор базовой даты</center>
<center>Рисунок 4.11. Выбор базовой даты</center>




Таким образом в случае если Студент не выполнит задачу "Выполнить тестирование" до "Дата и время окончания тестирования", то спустя 1 минуту после этого, задание будет просрочено.
Таким образом в случае если Студент не выполнит задачу "Выполнить тестирование" до "Дата и время окончания тестирования", то спустя 1 минуту после этого, задание будет просрочено.
<li>'''Создайте''' графические формы
<li>'''Создайте''' графические формы.
</li>
</li>




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


(Подробнее см. ''Практическое занятие "Изучение перспективы данных", Порядок выполнения работы, Пункт 6, Замечание, Рис. 4.11-4.12'').
Щёлкните узел «Ввести данные тестирования» графа процесса "Пример 9-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.11-4.12'').<br>


На данной форме Преподаватель задает длительность тестирования (в минутах) и вводит список вопросов.
На данной форме Преподаватель задает длительность тестирования (в минутах) и вводит список вопросов.


Поместите на форму два экземпляра компонента форм - "Ввод переменной" для ввода значений в переменные "Длительность тестирования" и "Вопросы" соответственно (см. Рис. 4.12)
Поместите на форму два экземпляра компонента форм - "Ввод переменной" для ввода значений в переменные "Длительность тестирования" и "Вопросы" соответственно (см. Рис.4.12).
 
(Подробнее см. ''Практическое занятие "Изучение перспективы операций", [[TrainingMaterials_4_4_1_Perspectives#.D0.9F.D0.BE.D1.80.D1.8F.D0.B4.D0.BE.D0.BA_.D0.B2.D1.8B.D0.BF.D0.BE.D0.BB.D0.BD.D0.B5.D0.BD.D0.B8.D1.8F_.D1.80.D0.B0.D0.B1.D0.BE.D1.82.D1.8B_4|Порядок выполнения работы]], Пункт 14, Рис.5.17-5.18'').
(Подробнее см. ''Практическое занятие "Изучение перспективы операций", Порядок выполнения работы, Пункт 14, Рис. 5.17, 5.18'').




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


<center>Рисунок 4.12 Форма "Ввести данные тестирования"</center>
<center>Рисунок 4.12. Форма "Ввести данные тестирования"</center>




Строка 760: Строка 760:




'''Задайте''' валидацию для переменных формы "Ввести данные тестирования"
'''Задайте''' валидацию для переменных формы "Ввести данные тестирования".


Для этого кликните на узле "Ввести данные тестирования" правой клавишей мыши и выберите пункт "Форма > Проверка переменных формы", в появившейся форме выделяйте переменные и устанавливайте необходимые валидаторы. (Подробнее см. ''Практическое занятие "Изучение перспективы операций", Пункт 15, рис. 5.27, 5.28'').
Для этого щёлкните узел "Ввести данные тестирования" правой клавишей мыши и выберите пункт "Форма > Проверка переменных формы", в появившейся форме выделяйте переменные и устанавливайте необходимые валидаторы. (Подробнее см. ''Практическое занятие "Изучение перспективы операций",[[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|Порядок выполнения работы]],  Пункт 15, Рис.5.27-5.28'').


Для переменной "Вопросы" добавьте валидатор "Обязательное поле". В поле "Сообщение об ошибке" введите - "Вопросы - обязательное поле".
Для переменной "Вопросы" добавьте валидатор "Обязательное поле". В поле "Сообщение об ошибке" введите - "Вопросы - обязательное поле".


Для переменной "Длительность тестирования" добавьте валидатор "Обязательное поле" (в поле "Сообщение об ошибке" введите - "Длительность - обязательное поле"), а также "Диапазон числа" установив минимальное значение в "1" включительно (см. Рис. 4.13), при этом в поле "Сообщение об ошибке" введите - "Минимальная длительность тестирования 1 минута"
Для переменной "Длительность тестирования" добавьте валидатор "Обязательное поле" (в поле "Сообщение об ошибке" введите - "Длительность - обязательное поле"), а также "Диапазон числа" установив минимальное значение в "1" включительно (см. Рис.4.13), при этом в поле "Сообщение об ошибке" введите - "Минимальная длительность тестирования 1 минута".




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


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




'''Создайте''' форму для узла "Выполнить тестирование" (см. рис. 4.14)
'''Создайте''' форму для узла "Выполнить тестирование" (см. Рис.4.14).


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


Перетяните на форму с помощью мыши компонент "Редактировать связанные списки", дважды кликните по нему или вызовите контекстное меню и выберите пункт "Параметры компонента". Установите параметры Добавления/Изменения/Удаления в значение "true". В поле "Название переменной" необходимо выбрать переменную "Ответы" (см. Рис. 4.15)
Перетяните на форму с помощью мыши компонент "Редактировать связанные списки", дважды щёлкните по нему или вызовите контекстное меню и выберите пункт "Параметры компонента". Установите параметры Добавления/Изменения/Удаления в значение "true". В поле "Название переменной" необходимо выбрать переменную "Ответы" (см. Рис.4.15).




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


<center>Рисунок 4.14 Форма "Выполнить тестирование"</center>
<center>Рисунок 4.14. Форма "Выполнить тестирование"</center>




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


<center>Рисунок 4.15 Редактировать связанные списки для переменной "Ответы"</center>
<center>Рисунок 4.15. Редактировать связанные списки для переменной "Ответы"</center>




Аналогично '''создайте''' остальные формы согласно рисункам 4.16, 4.17, 4.18
Аналогично '''создайте''' остальные формы согласно Рис.4.16-4.18.




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


<center>Рисунок 4.16 Форма "Уведомление для преподавателя о закрытии тестирования"</center>
<center>Рисунок 4.16. Форма "Уведомление для преподавателя о закрытии тестирования"</center>




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


<center>Рисунок 4.17 Форма "Уведомление для студента о закрытии тестирования"</center>
<center>Рисунок 4.17. Форма "Уведомление для студента о закрытии тестирования"</center>




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




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


<center>Рисунок 4.18 Форма "Ознакомиться с выполненным тестированием"</center>
<center>Рисунок 4.18. Форма "Ознакомиться с выполненным тестированием"</center>




<li>'''Загрузите''' бизнес-процесс на RunaWFE сервер
<li>'''Загрузите''' бизнес-процесс на RunaWFE сервер.
</li>
</li>


Загрузите разработанный бизнес-процесс на сервер, используя пункт меню “Файл/Экспорт процесса” (Подробнее см. '' Практическое занятие "Изучение перспективы потока управления", Порядок выполнения работы, Пункт 11-14'').
Загрузите разработанный бизнес-процесс на сервер, используя пункт меню “Файл/Экспорт процесса” (Подробнее см. '' Практическое занятие "Изучение перспективы потока управления", [[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'').


Войдите в web-интерфейс RunaWFE Free под пользователем Administrator.
Войдите в web-интерфейс RunaWFE Free под пользователем Administrator.
Строка 823: Строка 823:
После загрузки необходимо настроить обладателей полномочий на данный процесс.
После загрузки необходимо настроить обладателей полномочий на данный процесс.


Для "Пример 9-1" нужно добавить в обладатели полномочий группу "Группа МИБ-1" с правами на чтение, чтение экземпляра и запуск, а также группу "Преподаватели" с правами на чтение и чтение экземпляра (Подробнее см. ''"Практикум. Вводное занятие", Порядок выполнения работы, Пункт 28-31'').
Для "Пример 9-1" нужно добавить в обладатели полномочий группу "Группа МИБ-1" с правами на чтение, чтение экземпляра и запуск, а также группу "Преподаватели" с правами на чтение и чтение экземпляра (Подробнее см. ''"Практикум. Вводное занятие", [[TrainingMaterials_4_4_1_Introduction#TrainingMaterials_4_4_1_Introduction#|Порядок выполнения работы]], Пункт 28-31'').


<li>'''Запустите''' бизнес-процесс "Пример 9-1" и доведите экземпляр процесса до завершения.
<li>'''Запустите''' бизнес-процесс "Пример 9-1" и доведите экземпляр процесса до завершения.
Строка 837: Строка 837:
Выполнение бизнес-процессов по шагам.
Выполнение бизнес-процессов по шагам.


Для запуска процесса "Пример 9-1" войдите в систему под пользователем из группы "Группа МИБ-1", например "Мухин" и кликните на имя процесса в общем списке бизнес-процессов (См. Рис. 4.19)
Для запуска процесса "Пример 9-1" войдите в систему под пользователем из группы "Группа МИБ-1", например "Мухин", и щёлкните имя процесса в общем списке бизнес-процессов (См. Рис.4.19).




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


<center>Рисунок 4.19 Запуск бизнес-процесса "Пример 9-1"</center>
<center>Рисунок 4.19. Запуск бизнес-процесса "Пример 9-1"</center>


Войдите в систему под пользователем "Бабочкин", который является Преподавателем студента Мухина(см. Рис. 4.20).
Войдите в систему под пользователем "Бабочкин", который является Преподавателем студента Мухина(см. Рис.4.20).


В списке заданий будет активное задание - "Ввести данные тестирования" (см. Рис. 4.21)
В списке заданий будет активное задание - "Ввести данные тестирования" (см. Рис.4.21).




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


<center>Рисунок 4.20 Отношение "Преподаватель"</center>
<center>Рисунок 4.20. Отношение "Преподаватель"</center>




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


<center>Рисунок 4.21 Задание, соответствующее узлу “Ввести данные тестирования”</center>
<center>Рисунок 4.21. Задание, соответствующее узлу “Ввести данные тестирования”</center>


Возьмите задание на выполнение, введите длительность тестирования - 2 (минуты), а также список вопросов (см. Рис. 4.22)
Возьмите задание на выполнение, введите длительность тестирования - 2 (минуты), а также список вопросов (см. Рис.4.22).




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


<center>Рисунок 4.22 Ввод данных тестирования</center>
<center>Рисунок 4.22. Ввод данных тестирования</center>




Выполните задачу.
Выполните задачу.


Далее сработает обработчик, который определит "Дату и время окончания тестирования" (см. Рис. 4.23)
Далее сработает обработчик, который определит "Дату и время окончания тестирования" (см. Рис.4.23).




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


<center>Рисунок 4.23 Определение даты и времени окончания тестирования</center>
<center>Рисунок 4.23. Определение даты и времени окончания тестирования</center>




Как видно из рисунка 4.23, задание "Ввести данные" было выполнено в 21:37:01, после чего сработал обработчик, функция current_date_time вернет текущую дату и время - 08.04.2014 21:37:01, к полученному значению будет прибавлено 2 минуты (Длительность тестирования), в результате переменная "Дата и время окончания тестирования" будет инициализирована значением 08.04.2014 21:39:01
Как видно из Рис.4.23, задание "Ввести данные" было выполнено в 21:37:01, после чего сработал обработчик, функция current_date_time вернет текущую дату и время - 08.04.2014 21:37:01, к полученному значению будет прибавлено 2 минуты (Длительность тестирования), в результате переменная "Дата и время окончания тестирования" будет инициализирована значением 08.04.2014 21:39:01.


Точка управления перейдет в узел "Выполнить тестирование". Одновременно с этим будет запущен таймер на задержку 1 минута относительно базовой даты, переменной "Дата и время окончания тестирования" (т.е. в 08.04.2014 21:40).
Точка управления перейдет в узел "Выполнить тестирование". Одновременно с этим будет запущен таймер на задержку 1 минута относительно базовой даты, переменной "Дата и время окончания тестирования" (т.е. в 08.04.2014 21:40).
Строка 883: Строка 883:
Войдите в систему под пользователем Мухин. В списке активных задач будет "Выполнить тестирование".  
Войдите в систему под пользователем Мухин. В списке активных задач будет "Выполнить тестирование".  


Откройте задачу, введите ответы на вопросы, но не завершайте ее в течении 3-х минут (см. Рис. 4.24) т.е. пока не сработает таймер.  
Откройте задачу, введите ответы на вопросы, но не завершайте ее в течении 3-х минут (см. Рис.4.24) т.е. пока не сработает таймер.  




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


<center>Рисунок 4.24 Задача "Выполнить тестирование"</center>
<center>Рисунок 4.24. Задача "Выполнить тестирование"</center>




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




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


<center>Рисунок 4.25 Задача "Выполнить тестирование" просрочена</center>
<center>Рисунок 4.25. Задача "Выполнить тестирование" просрочена</center>




Строка 905: Строка 905:


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




Строка 914: Строка 913:
Разработайте на основе "Пример 9-1" бизнес-процесс "Пример 9-2".
Разработайте на основе "Пример 9-1" бизнес-процесс "Пример 9-2".


Можно воспользоваться функцией копирования процесса (подробнее см. ''Практическое занятие "Изучение перспективы потока управления", Задание для самостоятельной работы, Пункты 1,2,3''), после чего внести изменения в соответствии со схемой изображенной на рисунке 4.26
Можно воспользоваться функцией копирования процесса (подробнее см. ''Практическое занятие "Изучение перспективы потока управления", [[TrainingMaterials_4_4_1_Perspectives#.D0.97.D0.B0.D0.B4.D0.B0.D0.BD.D0.B8.D1.8F_.D0.B4.D0.BB.D1.8F_.D1.81.D0.B0.D0.BC.D0.BE.D1.81.D1.82.D0.BE.D1.8F.D1.82.D0.B5.D0.BB.D1.8C.D0.BD.D0.BE.D0.B9_.D1.80.D0.B0.D0.B1.D0.BE.D1.82.D1.8B|Задание для самостоятельной работы]], Пункты 1,2,3''), после чего внести изменения в соответствии со схемой изображенной на Рис.4.26.


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


<center>Рисунок 4.26 Схема бизнес-процесса "Пример 9-2"</center>
<center>Рисунок 4.26. Схема бизнес-процесса "Пример 9-2"</center>




Строка 924: Строка 923:




''Описание ролей.''
''Описание ролей''


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




''Описание переменных.''
''Описание переменных''


Добавьте дополнительно переменную "Дата и время начала тестирования" формата "Дата со временем" (см. Рис. 4.27)
Добавьте дополнительно переменную "Дата и время начала тестирования" формата "Дата со временем" (см. Рис. 4.27).




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


<center>Рисунок 4.27 Переменные бизнес-процесса "Пример 9-2"</center>
<center>Рисунок 4.27. Переменные бизнес-процесса "Пример 9-2"</center>




''Описание графических форм.''
''Описание графических форм''


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




Измените форму узла "Ввести данные тестирования" в соответствии с рисунком 4.28, добавьте компонент Ввод переменной для "Дата и время начала тестирования"
Измените форму узла "Ввести данные тестирования" в соответствии с Рис.4.28, добавьте компонент Ввод переменной для "Дата и время начала тестирования".




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


<center>Рисунок 4.28 Форма "Ввести данные тестирования"</center>
<center>Рисунок 4.28. Форма "Ввести данные тестирования"</center>




Кроме того, добавьте валидаторы для переменной "Дата и время начала тестирования"
Кроме того, добавьте валидаторы для переменной "Дата и время начала тестирования":


* обязательное поле
* обязательное поле
* диапазон даты относительно текущей (см. рис 4.29)
* диапазон даты относительно текущей (см. Рис.4.29).


Для валидатора "Диапазон даты относительно текущей" в поле "Сдвиг в прошлое (в днях)" введите значение 0. Таким образом будет проверяться, что введенная преподавателем дата и время начала тестирования позже текущих даты и времени.
Для валидатора "Диапазон даты относительно текущей" в поле "Сдвиг в прошлое (в днях)" введите значение 0. Таким образом будет проверяться, что введенная преподавателем дата и время начала тестирования позже текущих даты и времени.
Строка 962: Строка 961:
<center>[[Image:r312_st.png]]</center>
<center>[[Image:r312_st.png]]</center>


<center>Рисунок 4.29 Валидатор "Диапазон даты относительно текущей"</center>
<center>Рисунок 4.29. Валидатор "Диапазон даты относительно текущей"</center>




Создайте форму для узла "Ознакомиться с датой и временем проведения тестирования" (см. Рис. 4.30)
Создайте форму для узла "Ознакомиться с датой и временем проведения тестирования" (см. Рис.4.30).




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


<center>Рисунок 4.30 Форма узла "Ознакомиться с датой и временем проведения тестирования"</center>
<center>Рисунок 4.30. Форма узла "Ознакомиться с датой и временем проведения тестирования"</center>


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




''Описание обработчиков.''
''Описание обработчиков''


Измените конфигурацию обработчика задачи сценария "Определение даты и времени окончания тестирования". Для этого выделите задачу сценария, перейдите в свойства и вызовите конфигуратор обработчика "Выполнить формулу".
Измените конфигурацию обработчика задачи сценария "Определение даты и времени окончания тестирования". Для этого выделите задачу сценария, перейдите в свойства и вызовите конфигуратор обработчика "Выполнить формулу".
Строка 985: Строка 984:
  'Дата и время окончания тестирования'='Дата и время начала тестирования'+'Длительность тестирования';
  'Дата и время окончания тестирования'='Дата и время начала тестирования'+'Длительность тестирования';


Таким образом "Дата и время окончания тестирования" теперь определяется относительно "Дата и время начала тестирования" а не результата функции current_date_time() т.е. текущего времени (Пример 9-1)
Таким образом "Дата и время окончания тестирования" теперь определяется относительно "Дата и время начала тестирования", а не результата функции current_date_time(), т.е. текущего времени (Пример 9-1).




''Настройка задержки начала тестирования.''
''Настройка задержки начала тестирования''


Выделите таймер, расположенный перед узлом "Выполнение тестирования", перейдите в свойства, и вызовите конфигуратор задержки. Выберите в качестве базовой даты - переменную "Дата и время начала тестирования", задержка - 0 минут (см. Рис. 4.31)
Выделите таймер, расположенный перед узлом "Выполнение тестирования", перейдите в свойства и вызовите конфигуратор задержки. Выберите в качестве базовой даты - переменную "Дата и время начала тестирования", задержка - 0 минут (см. Рис.4.31).




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


<center>Рисунок 4.31 Настройка задержки начала тестирования</center>
<center>Рисунок 4.31. Настройка задержки начала тестирования</center>


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


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




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


Проверьте оба сценария выполнения:  
Проверьте оба сценария выполнения:  


* студент успевает выполнить работу за отведенное время
* студент успевает выполнить работу за отведенное время
* студент не успевает выполнить работу за отведенное время
* студент не успевает выполнить работу за отведенное время.


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




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


<center>Рисунок 4.32 Ввод данных преподавателем</center>
<center>Рисунок 4.32. Ввод данных преподавателем</center>


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


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


== Контрольные вопросы ==
== Контрольные вопросы ==
Строка 1054: Строка 1053:
* значением специальной «присоединенной» переменной формата список
* значением специальной «присоединенной» переменной формата список
* по группе
* по группе
* по отношению
* по отношению.




''Мульти-подпроцесс по переменной.''
''Мульти-подпроцесс по переменной''


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




''Мульти-подпроцесс по группе.''
''Мульти-подпроцесс по группе''


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




''Мульти-подпроцесс по отношению.''
''Мульти-подпроцесс по отношению''


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




''Сопоставление переменных процесса и подпроцесса.''
''Сопоставление переменных процесса и подпроцесса''


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


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


В случае использования в сопоставлении переменной формата "Список" родительского процесса, используется следующие правила:  
В случае использования в сопоставлении переменной формата "Список" родительского процесса, используется следующие правила:  


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


== Порядок выполнения работы ==
== Порядок выполнения работы ==
Строка 1091: Строка 1090:
В данном занятии рассматривается разработка упрощенного варианта бизнес-процесса "Выпуск номера журнала", в котором используется мульти-подпроцесс.
В данном занятии рассматривается разработка упрощенного варианта бизнес-процесса "Выпуск номера журнала", в котором используется мульти-подпроцесс.


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


Шеф-редактор запускает бизнес-процесс выпуска очередного номера журнала. В стартовой форме он вводит номер журнала, год, месяц, к которому относится выпуск, и постер на обложку. Далее запускается мульти-подпроцесс по членам группы "Редакторы". Предполагается, что каждый член группы "Редакторы" (редактор рубрики) отвечает за одну рубрику журнала.  
Шеф-редактор запускает бизнес-процесс выпуска очередного номера журнала. В стартовой форме он вводит номер журнала, год, месяц, к которому относится выпуск, и постер на обложку. Далее запускается мульти-подпроцесс по членам группы "Редакторы". Предполагается, что каждый член группы "Редакторы" (редактор рубрики) отвечает за одну рубрику журнала.  
Строка 1099: Строка 1098:
В родительском процессе после завершения всех экземпляров подпроцесса, задание на создание верстки получает верстальщик (определяется группой "Верстальщик", в которую должен входить единственный пользователь). Верстальщик правит тексты всех рубрик. Далее обработчик Word собирает из введенных на стартовую форму данных и текстов рубрик, docx-файл номера журнала. Задание "Принять решение о выпуске журнала" получает шеф-редактор (который запускал бизнес-процесс), в форме отображается ссылка на сформированный docx-файл номера журнала. Шеф-редактор или утверждает номер журнала, или вводит обязательный комментарий и отправляет журнал на доработку. Комментарий от шеф-редактора отображается на формах заданий редакторов, обозревателей и верстальщика.
В родительском процессе после завершения всех экземпляров подпроцесса, задание на создание верстки получает верстальщик (определяется группой "Верстальщик", в которую должен входить единственный пользователь). Верстальщик правит тексты всех рубрик. Далее обработчик Word собирает из введенных на стартовую форму данных и текстов рубрик, docx-файл номера журнала. Задание "Принять решение о выпуске журнала" получает шеф-редактор (который запускал бизнес-процесс), в форме отображается ссылка на сформированный docx-файл номера журнала. Шеф-редактор или утверждает номер журнала, или вводит обязательный комментарий и отправляет журнал на доработку. Комментарий от шеф-редактора отображается на формах заданий редакторов, обозревателей и верстальщика.


''Разработка бизнес-процесса.''
''Разработка бизнес-процесса''


<ol>
<ol>


<li>'''Запустите''' RunaWFE симулятор, для этого дважды кликните по ярлыку «Start Simulation» на рабочем столе, или выполните команду меню Пуск / Программы / RunaWFE Free/ Start Simulation. (Подробнее см. ''"Практикум. Вводное занятие", Порядок выполнения работы, Пункт 1'')
<li>'''Запустите''' RunaWFE Симулятор, для этого дважды щёлкните по ярлыку «Start Simulation» на рабочем столе, или выполните команду меню Пуск / Программы / RunaWFE Free/ Start Simulation. (Подробнее см. ''"Практикум. Вводное занятие", [[TrainingMaterials_4_4_1_Introduction#Запустите RunaWFE Симулятор|Порядок выполнения работы]], Пункт 1'').
</li>
</li>


<li>'''Войдите''' в web-интерфейс системы RunaWFE Free под пользователем Administrator. (см. ''"Практикум. Вводное занятие", Порядок выполнения работы, Пункт 2, Рис. 5.2'') Замечание. По умолчанию пароль пользователя Administrator - "wf".
<li>'''Войдите''' в web-интерфейс системы RunaWFE Free под пользователем Administrator. (см. ''"Практикум. Вводное занятие", [[TrainingMaterials_4_4_1_Introduction#Откройте окно браузера|Порядок выполнения работы]], Пункт 2, Рис.5.02'') Замечание. По умолчанию пароль пользователя Administrator - "wf".
</li>
</li>


<li>'''Создайте''' следующих пользователей: (см. ''"Практикум. Вводное занятие", Порядок выполнения работы, Пункты 10 - 11, Рис. 5.10, 5.11'')
<li>'''Создайте''' следующих пользователей: (см. ''"Практикум. Вводное занятие", [[TrainingMaterials_4_4_1_Introduction#Создание учётных записей|Порядок выполнения работы]], Пункты 10-11, Рис.5.10-5.11'')
</li>
</li>


Строка 1123: Строка 1122:
* Андреев Николай Викторович
* Андреев Николай Викторович
* Дмитров Арсений Яковлевич
* Дмитров Арсений Яковлевич
* Юрьев Сергей Сергеевич
* Юрьев Сергей Сергеевич.


При создании, введите пароль для каждого пользователя (например - 123), знать старый пароль пользователя при этом не требуется (см. ''Практическое занятие "Изучение перспективы ресурсов", Порядок выполнения работы, Пункты 4 - 5, Рис. 3.1, 3.2'').
При создании, введите пароль для каждого пользователя (например - 123), знать старый пароль пользователя при этом не требуется (см. ''Практическое занятие "Изучение перспективы ресурсов", [[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|Порядок выполнения работы]], Пункты 4-5, Рис.3.01-3.02'').


<li>'''Создайте''' группы (см. ''"Практикум. Вводное занятие", Порядок выполнения работы, Пункты 4 - 6, Рис. 5.5, 5.6'')
<li>'''Создайте''' группы (см. ''"Практикум. Вводное занятие", [[TrainingMaterials_4_4_1_Introduction#Список исполнителей|Порядок выполнения работы]], Пункты 4-6, Рис.5.05-5.06''):
</li>
</li>


Строка 1133: Строка 1132:
* Верстальщик
* Верстальщик
* Редакторы
* Редакторы
* Обозреватели
* Обозреватели.


<li>'''Добавьте''' пользователей в группы  
<li>'''Добавьте''' пользователей в группы:
</li>
</li>


группа '''"ШЕФ редакторы"''':  
группа '''"ШЕФ редакторы"''':  
* Петров Сергей Петрович
* Петров Сергей Петрович
* Константинов Игорь Сергеевич
* Константинов Игорь Сергеевич,


группа '''"Редакторы"''':
группа '''"Редакторы"''':
* Сидоров Валентин Игоревич
* Сидоров Валентин Игоревич
* Сергеев Николай Иванович
* Сергеев Николай Иванович
* Николаев Виктор Александрович
* Николаев Виктор Александрович,


группа '''"Верстальщик"''':
группа '''"Верстальщик"''':
* Иванов Иван Иванович
* Иванов Иван Иванович,


группа '''"Обозреватели"''':
группа '''"Обозреватели"''':
* Андреев Николай Викторович
* Андреев Николай Викторович
* Дмитров Арсений Яковлевич
* Дмитров Арсений Яковлевич
* Юрьев Сергей Сергеевич
* Юрьев Сергей Сергеевич.


Кроме того, добавьте всех созданных пользователей в группу '''"Сотрудники"'''
Кроме того, добавьте всех созданных пользователей в группу '''"Сотрудники"'''.


<li>'''Дайте''' полномочия группе "Сотрудники" на вход в систему (см. ''"Практикум. Вводное занятие", пункты 7-9, Рис. 5.7 - 5.9'' )
<li>'''Дайте''' полномочия группе "Сотрудники" на вход в систему (см. ''"Практикум. Вводное занятие", [[TrainingMaterials_4_4_1_Introduction#Пункт меню Система|Порядок выполнения работы]], пункты 7-9, Рис.5.07-5.09'' ).
</li>
</li>


<li>'''Дайте''' полномочия группе "Редакторы" на чтение группы "Обозреватели"
<li>'''Дайте''' полномочия группе "Редакторы" на чтение группы "Обозреватели".
</li>
</li>


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


Добавьте в список группу "Редакторы", установите права "Читать" (см. Рис. 5.1)
Добавьте в список группу "Редакторы", установите права "Читать" (см. Рис.5.01).




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


<center>Рисунок 5.1 Обладатели полномочий на группу "Обозреватели" </center>
<center>Рисунок 5.01. Обладатели полномочий на группу "Обозреватели" </center>




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


Для этого выберите пользователя, перейдите в обладатели полномочия, и добавьте группу "Редакторы" с правами на чтение (см. Рис. 5.2)
Для этого выберите пользователя, перейдите в обладатели полномочия, и добавьте группу "Редакторы" с правами на чтение (см. Рис.5.02).




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


<center>Рисунок 5.2 Обладатели полномочий на пользователя "Андреев" входящего в группу "Обозреватели" </center>
<center>Рисунок 5.02. Обладатели полномочий на пользователя "Андреев" входящего в группу "Обозреватели" </center>




<li>'''Откройте''' среду разработки
<li>'''Откройте''' среду разработки.
</li>
</li>


<li>'''Создайте''' новый проект "Занятие 10"
<li>'''Создайте''' новый проект "Занятие 10".
</li>
</li>


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


<li>'''Добавьте''' элементы на схему бизнес-процесса в соответствии с рисунком 5.3
<li>'''Добавьте''' элементы на схему бизнес-процесса в соответствии с Рис.5.03.
</li>
</li>


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


<center>Рисунок 5.3 Схема бизнес-процесса "Пример 10-1"</center>
<center>Рисунок 5.03. Схема бизнес-процесса "Пример 10-1"</center>




В бизнес-процессе используется следующие элементы: Начало, Мульти-подпроцесс, Действие, Задача сценария, Окончание, Аннотация.
В бизнес-процессе используется следующие элементы: Начало, Мульти-подпроцесс, Действие, Задача сценария, Окончание, Аннотация.


Для элемента "Задача сценария" используйте опцию компактный вид (см. ''пункт 1 раздела "Практическое занятие "Работа с Word-ботом". Порядок выполнения работы.",Замечание. рис. 2.2'')
Для элемента "Задача сценария" используйте опцию компактный вид (см. ''пункт 1 раздела "Практическое занятие "Работа с Word-ботом". [[TrainingMaterials_4_4_1_Documents#.D0.9F.D0.BE.D1.80.D1.8F.D0.B4.D0.BE.D0.BA_.D0.B2.D1.8B.D0.BF.D0.BE.D0.BB.D0.BD.D0.B5.D0.BD.D0.B8.D1.8F_.D1.80.D0.B0.D0.B1.D0.BE.D1.82.D1.8B|Порядок выполнения работы]].",Замечание. Рис.2.02'').


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


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


<li>'''Создайте''' роли
<li>'''Создайте''' роли.
</li>
</li>


Строка 1215: Строка 1214:


* Шеф-редактор
* Шеф-редактор
* Верстальщик
* Верстальщик.


Роль "Шеф-редактор" будет инициализирована пользователем, запустившим процесс, не требует инициализатора.
Роль "Шеф-редактор" будет инициализирована пользователем, запустившим процесс, не требует инициализатора.


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


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


<center>Рисунок 5.4 Инициализатор роли "Шеф-редактор" </center>
<center>Рисунок 5.04. Инициализатор роли "Шеф-редактор" </center>




<li>'''Свяжите''' с начальным узлом бизнес-процесса роль "Шеф-редактор", с остальными узлами свяжите роли в соответствии с рисунком 5.3
<li>'''Свяжите''' с начальным узлом бизнес-процесса роль "Шеф-редактор", с остальными узлами свяжите роли в соответствии с Рис.5.03.
</li>
</li>


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


Строка 1244: Строка 1243:
<center>[[Image:r354e_ru.png]]</center>
<center>[[Image:r354e_ru.png]]</center>


<center>Рисунок 5.5 Переменные бизнес-процесса "Пример 10-1" </center>
<center>Рисунок 5.05. Переменные бизнес-процесса "Пример 10-1" </center>




<li>'''Создайте''' графические формы
<li>'''Создайте''' графические формы.
</li>
</li>


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




Выделите узел «Начало» графа процесса "Пример 10-1" правой кнопкой мыши и выберите команду «Форма» > «Создать форму» (Подробнее см. ''Практическое занятие "Изучение перспективы данных", Порядок выполнения работы, Пункт 6, Замечание, Рис. 4.11-4.12'').
Выделите узел «Начало» графа процесса "Пример 10-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.11-4.12'').


На данной форме Шеф-редактор вводит переменные "номер журнала", "год", "месяц", "постер".
На данной форме Шеф-редактор вводит переменные "номер журнала", "год", "месяц", "постер".


Нажмите на иконку вставки в форму таблицы (см. рис. 5.6), введите свойства таблицы в соответствии с рисунком 5.7
Нажмите на иконку вставки в форму таблицы (см. Рис.5.06), введите свойства таблицы в соответствии с Рис.5.07.




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


<center>Рисунок 5.6 Вставка таблицы на форму</center>
<center>Рисунок 5.06. Вставка таблицы на форму</center>




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


<center>Рисунок 5.7 Свойства таблицы</center>
<center>Рисунок 5.07. Свойства таблицы</center>




Заполните колонки таблицы как показано на рисунке 5.8. Во втором столбце используйте компоненты "Ввод переменной" для ввода соответствующей переменной.
Заполните колонки таблицы как показано на Рис.5.08. Во втором столбце используйте компоненты "Ввод переменной" для ввода соответствующей переменной.




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


<center>Рисунок 5.8 Форма узла "Начало"</center>
<center>Рисунок 5.08. Форма узла "Начало"</center>




Сохраните и закройте форму.
Сохраните и закройте форму.


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


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




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


<center>Рисунок 5.9 Валидаторы переменных стартовой формы</center>
<center>Рисунок 5.09. Валидаторы переменных стартовой формы</center>




Кроме того добавьте скрипт формы. Для этого кликните правой клавишей мыши на стартовом узле, выберите "Форма > Скрипт формы" (см. Рис. 5.10)
Кроме того добавьте скрипт формы. Для этого щёлкните правой клавишей мыши на стартовом узле, выберите "Форма > Скрипт формы" (см. Рис.5.10).




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


<center>Рисунок 5.10 Создание скрипта формы</center>
<center>Рисунок 5.10. Создание скрипта формы</center>




Строка 1313: Строка 1312:
  });
  });


Данный код подключает выбор из предопределённых значений для переменной "месяц"
Данный код подключает выбор из предопределённых значений для переменной "месяц".




Строка 1321: Строка 1320:
<center>[[Image:r356ae_ru.png]]</center>
<center>[[Image:r356ae_ru.png]]</center>


<center>Рисунок 5.11 Форма узла "Корректировка рубрик"</center>
<center>Рисунок 5.11. Форма узла "Корректировка рубрик"</center>




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




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


<center>Рисунок 5.12 Форма узла "Редактировать связанные списки"</center>
<center>Рисунок 5.12. Форма узла "Редактировать связанные списки"</center>




Строка 1337: Строка 1336:
<center>[[Image:r357e_ru.png]]</center>
<center>[[Image:r357e_ru.png]]</center>


<center>Рисунок 5.13 Форма узла "Принять решение о выпуске журнала"</center>
<center>Рисунок 5.13. Форма узла "Принять решение о выпуске журнала"</center>




Добавьте валидатор для переменной "Комментарий Шеф-редактора" (см. ''Практическое занятие "Изучение перспективы операций", Пункт 15, рис. 5.27, 5.28'').
Добавьте валидатор для переменной "Комментарий Шеф-редактора" (см. ''Практическое занятие "Изучение перспективы операций", [[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'').


Используйте валидатор "Обязательное поле", проверка должна выполняться в контексте перехода по ветке "Отправить всем заново" (см. Рис. 5.14)
Используйте валидатор "Обязательное поле", проверка должна выполняться в контексте перехода по ветке "Отправить всем заново" (см. Рис.5.14).




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


<center>Рисунок 5.14 Валидатор "Обязательное поле" в контексте перехода "Отправить всем заново"</center>
<center>Рисунок 5.14. Валидатор "Обязательное поле" в контексте перехода "Отправить всем заново"</center>




<li>'''Выберите''' класс обработчика в задаче сценария "Оформить выпуск"
<li>'''Выберите''' класс обработчика в задаче сценария "Оформить выпуск".
</li>
</li>


Выделите на схеме элемент "Задача сценария", перейдите в его свойства и кликните в поле “Класс обработчика”, после чего выберите из списка обработчик "Word: формирование документа DOCX используя шаблон" (см. Рис. 5.15).
Выделите на схеме элемент "Задача сценария", перейдите в его свойства и щёлкните в поле “Класс обработчика”, после чего выберите из списка обработчик "Word: формирование документа DOCX используя шаблон" (см. Рис.5.15).




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


<center>Рисунок 5.15 Выбор обработчика</center>
<center>Рисунок 5.15. Выбор обработчика</center>




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


В появившейся форме введите параметры выходного файла, файловый параметр - "выпуск журнала", имя "журнал.docx". Для входного файла шаблона используйте вариант "Файл в процессе". (см. Рис. 5.16)
В появившейся форме введите параметры выходного файла, файловый параметр - "выпуск журнала", имя "журнал.docx". Для входного файла шаблона используйте вариант "Файл в процессе". (см. Рис.5.16).




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


<center>Рисунок 5.16 Конфигурация обработчика Word</center>
<center>Рисунок 5.16. Конфигурация обработчика Word</center>




Нажмите на "Создать" для создания шаблона (см. Рис. 5.17). Будет открыт редактор docx файлов, в котором необходимо создать шаблон.
Нажмите на "Создать" для создания шаблона (см. Рис.5.17). Будет открыт редактор docx файлов, в котором необходимо создать шаблон.




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


<center>Рисунок 5.17 Конфигурация обработчика Word</center>
<center>Рисунок 5.17. Конфигурация обработчика Word</center>




<li>'''Создайте''' шаблон для docx файла журнала
<li>'''Создайте''' шаблон для docx файла журнала.
</li>
</li>


Используйте  шаблон изображенный на рисунке 5.18
Используйте  шаблон изображенный на Рис.5.18.




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


<center>Рисунок 5.18 Шаблон для создания docx файла журнала</center>
<center>Рисунок 5.18. Шаблон для создания docx файла журнала</center>




Строка 1397: Строка 1396:
* items - это итератор, означающий итерацию по значениям
* items - это итератор, означающий итерацию по значениям
* тексты рубрик - переменная список
* тексты рубрик - переменная список
* рубрика - переменная, которая будет хранить текущее значение итератора (используется стандартный механизм замены, вида ${Переменная})
* рубрика - переменная, которая будет хранить текущее значение итератора (используется стандартный механизм замены, вида ${Переменная}).


Для обозначения окончания цикла используется выражение ${/items}
Для обозначения окончания цикла используется выражение ${/items}.


На основе данной шаблона  будет сформирован docx файл журнала.
На основе данной шаблона  будет сформирован docx файл журнала.
Строка 1409: Строка 1408:
"Пример 10-2" будет использован как мульти-подпроцесс вызываемый из "Пример 10-1", предназначенный для формирования текста рубрики.
"Пример 10-2" будет использован как мульти-подпроцесс вызываемый из "Пример 10-1", предназначенный для формирования текста рубрики.


''Описание процесса.''
''Описание процесса''


Редактор выбирает обозревателя, который добавляет внутренний контент рубрики, далее формируется контент рубрики на основе внутреннего контента и ФИО обозревателя. Редактор утверждает контент.
Редактор выбирает обозревателя, который добавляет внутренний контент рубрики, далее формируется контент рубрики на основе внутреннего контента и ФИО обозревателя. Редактор утверждает контент.
Строка 1417: Строка 1416:




Соедините элементы, и введите названия узлов в соответствии с рисунком 5.19
Соедините элементы, и введите названия узлов в соответствии с Рис.5.19.




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


<center>Рисунок 5.19 Схема подпроцесса "Пример 10-2"</center>
<center>Рисунок 5.19. Схема подпроцесса "Пример 10-2"</center>




Для задачи сценария дайте название "Сформировать текст рубрики". Кроме того используйте опцию "компактный вид" (см. ''пункт 1 раздела "Практическое занятие "Работа с Word-ботом". Порядок выполнения работы.",Замечание. рис. 2.2'')
Для задачи сценария дайте название "Сформировать текст рубрики". Кроме того используйте опцию "компактный вид" (см. ''пункт 1 раздела "Практическое занятие "Работа с Word-ботом". [[TrainingMaterials_4_4_1_Documents#.D0.9F.D0.BE.D1.80.D1.8F.D0.B4.D0.BE.D0.BA_.D0.B2.D1.8B.D0.BF.D0.BE.D0.BB.D0.BD.D0.B5.D0.BD.D0.B8.D1.8F_.D1.80.D0.B0.D0.B1.D0.BE.D1.82.D1.8B|Порядок выполнения работы]].",Замечание. Рис.2.02'').


<li>'''Создайте''' роли
<li>'''Создайте''' роли:
</li>
</li>


* Редактор
* Редактор
* Обозреватель
* Обозреватель.


Роль "Редактор" будет инициализирована пользователем из группы "Редакторы", по которой будет настроен мульти-подпроцесс "Пример 10-2" вызываемый из "Пример 10-1".
Роль "Редактор" будет инициализирована пользователем из группы "Редакторы", по которой будет настроен мульти-подпроцесс "Пример 10-2" вызываемый из "Пример 10-1".
Строка 1437: Строка 1436:
Роль "Обозреватель", будет инициализирована пользователем из группы "Обозреватели" в форме узла "Выбор исполнителей для создания контента рубрики" с помощью компонента "Выбор из членов группы"
Роль "Обозреватель", будет инициализирована пользователем из группы "Обозреватели" в форме узла "Выбор исполнителей для создания контента рубрики" с помощью компонента "Выбор из членов группы"


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


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


Строка 1448: Строка 1447:
* Комментарий от Шеф-редактора - формата "Текст", передается из основного процесса (Пример 10-1)
* Комментарий от Шеф-редактора - формата "Текст", передается из основного процесса (Пример 10-1)
* Комментарий редактора - формата "Текст", вводится редактором в задании "Выбрать исполнителей для создания контента рубрики"
* Комментарий редактора - формата "Текст", вводится редактором в задании "Выбрать исполнителей для создания контента рубрики"
* ФИО обозревателя - формата "Строка", формируется в задаче сценария "Получить ФИО обозревателя" с помощью обработчика "Получить информацию об исполнителе"
* ФИО обозревателя - формата "Строка", формируется в задаче сценария "Получить ФИО обозревателя" с помощью обработчика "Получить информацию об исполнителе".


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




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


<center>Рисунок 5.20 Значение по умолчанию для переменной Обозреватели</center>
<center>Рисунок 5.20. Значение по умолчанию для переменной Обозреватели</center>




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


<center>Рисунок 5.21 Список переменных подпроцесса "Пример 10-2"</center>
<center>Рисунок 5.21. Список переменных подпроцесса "Пример 10-2"</center>




<li>'''Создайте''' графические формы заданий  
<li>'''Создайте''' графические формы заданий.
</li>
</li>


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




Кликните правой клавишей мыши на узле для вызова меню. Выберите "Форма > Создать форму". В появившемся окне выберите тип формы - "Произвольная форма" и нажмите "ОК".
Щёлкните правой клавишей мыши по узлу для вызова меню. Выберите "Форма > Создать форму". В появившемся окне выберите тип формы - "Произвольная форма" и нажмите "ОК".


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


В качестве параметра "Пользователь" выберите роль "Обозреватель".
В качестве параметра "Пользователь" выберите роль "Обозреватель".


В качестве группы необходимо выбрать переменную "Обозреватели" (см. ''Практическое занятие "Изучение перспективы данных", Пункт 6, рис. 4.16, 4.17, 4.18'')  
В качестве группы необходимо выбрать переменную "Обозреватели" (см. ''Практическое занятие "Изучение перспективы данных", [[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-4.18'').




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


<center>Рисунок 5.22 Выбор из членов группы "Обозреватели</center>
<center>Рисунок 5.22. Выбор из членов группы "Обозреватели</center>




Также добавьте компонент "Отобразить переменную" для переменной "Комментарий от Шеф-редактора" и "Ввод переменной" для переменной "Комментарий редактора" (см. рис. 5.23)
Также добавьте компонент "Отобразить переменную" для переменной "Комментарий от Шеф-редактора" и "Ввод переменной" для переменной "Комментарий редактора" (см. Рис.5.23).




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


<center>Рисунок 5.23 Форма задания "Выбрать исполнителей для создания контента рубрики"</center>
<center>Рисунок 5.23. Форма задания "Выбрать исполнителей для создания контента рубрики"</center>




Используйте для '''роли''' "Обозреватель" валидатор "Обязательно поле". Для этого вызовите "проверка переменных формы" (см. ''Практическое занятие "Изучение перспективы операций", Пункт 15, рис. 5.27''), перейдите на вкладку Роли, выберите роль Обозреватель, валидатор "Обязательно поле" (см. рис. 5.24)
Используйте для '''роли''' "Обозреватель" валидатор "Обязательно поле". Для этого вызовите "проверка переменных формы" (см. ''Практическое занятие "Изучение перспективы операций", [[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.24).




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


<center>Рисунок 5.24 Валидация роли Обозреватель</center>
<center>Рисунок 5.24. Валидация роли Обозреватель</center>




Строка 1504: Строка 1503:
<center>[[Image:r364e_ru.png]]</center>
<center>[[Image:r364e_ru.png]]</center>


<center>Рисунок 5.25 Форма задания "Создать внутренний контент рубрики"</center>
<center>Рисунок 5.25. Форма задания "Создать внутренний контент рубрики"</center>




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




'''Добавьте''' валидатор "Обязательно поле" для переменной "Внутренний контент" (см. ''Практическое занятие "Изучение перспективы операций", Пункт 15, рис. 5.27, 5.28'').
'''Добавьте''' валидатор "Обязательно поле" для переменной "Внутренний контент" (см. ''Практическое занятие "Изучение перспективы операций", [[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'').




В форме задания "Утвердить текст рубрики" расположите компонент "Отобразить переменную" для отображения значения переменной "Контент рубрики". Используйте отображение "Как неактивный компонент вывода" (см. Рис. 5.26)
В форме задания "Утвердить текст рубрики" расположите компонент "Отобразить переменную" для отображения значения переменной "Контент рубрики". Используйте отображение "Как неактивный компонент вывода" (см. Рис.5.26).




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


<center>Рисунок 5.26 Форма задания "Утвердить текст рубрики"</center>
<center>Рисунок 5.26. Форма задания "Утвердить текст рубрики"</center>


<li>'''Выберите''' обработчик в задаче сценария "Получить ФИО обозревателя"
<li>'''Выберите''' обработчик в задаче сценария "Получить ФИО обозревателя".
</li>
</li>


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




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


<center>Рисунок 5.27 Выбор класса обработчика</center>
<center>Рисунок 5.27. Выбор класса обработчика</center>




Строка 1535: Строка 1534:
<center>[[Image:r366_4_ru.png]]</center>
<center>[[Image:r366_4_ru.png]]</center>


<center>Рисунок 5.28 Получение информации об исполнителе</center>
<center>Рисунок 5.28. Получение информации об исполнителе</center>




Строка 1544: Строка 1543:
</li>
</li>


Используйте обработчик "Выполнить формулу". Выделите задачу сценария, перейдите в ее свойства, выберите свойство "Класс обработчика", в появившейся форме выберите из списка "Выполнить формулу" (см. рис. 5.29).
Используйте обработчик "Выполнить формулу". Выделите задачу сценария, перейдите в ее свойства, выберите свойство "Класс обработчика", в появившейся форме выберите из списка "Выполнить формулу" (см. Рис.5.29).




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


<center>Рисунок 5.29 Выбор класса обработчика</center>
<center>Рисунок 5.29. Выбор класса обработчика</center>




Строка 1571: Строка 1570:
<center>[[Image:r367_2_ru.png]]</center>
<center>[[Image:r367_2_ru.png]]</center>


<center>Рисунок 5.30 Конфигурация обработчика</center>
<center>Рисунок 5.30. Конфигурация обработчика</center>




<li>'''Сохраните''' и '''закройте''' процесс "Пример 10-2"
<li>'''Сохраните''' и '''закройте''' процесс "Пример 10-2".
</li>
</li>




<li>'''Откройте''' бизнес-процесс "Пример 10-1"
<li>'''Откройте''' бизнес-процесс "Пример 10-1".
</li>
</li>


Вернемся к разработке бизнес-процесса выпуска номера журнала "Пример 10-1"
Вернемся к разработке бизнес-процесса выпуска номера журнала "Пример 10-1".


<li>'''Настройте''' мульти-подпроцесс "Создание контента для рубрик" в процессе "Пример 10-1"
<li>'''Настройте''' мульти-подпроцесс "Создание контента для рубрик" в процессе "Пример 10-1".
</li>
</li>


Кликните правой клавишей мыши на элементе "Мульти-подпроцесс" и выберите вариант "Использовать подпроцесс"
Щёлкните правой клавишей мыши по элементу "Мульти-подпроцесс" и выберите вариант "Использовать подпроцесс".




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


<center>Рисунок 5.31 Использовать подпроцесс</center>
<center>Рисунок 5.31. Использовать подпроцесс</center>




С узлом Мульти-подпроцесс связывается бизнес-процесс, экземпляры которого будут запускаться как подпроцессы. Выберите из списка в качестве подпроцесса - "Пример 10-2" (см. Рис. 5.32).
С узлом Мульти-подпроцесс связывается бизнес-процесс, экземпляры которого будут запускаться как подпроцессы. Выберите из списка в качестве подпроцесса - "Пример 10-2" (см. Рис.5.32).


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




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


<center>Рисунок 5.32 Выбор мульти-подпроцесса по группе</center>
<center>Рисунок 5.32. Выбор мульти-подпроцесса по группе</center>




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


<center>Рисунок 5.33 Ввод названия группы</center>
<center>Рисунок 5.33. Ввод названия группы</center>




Выберите роль "Редактор" подпроцесса "Пример 10-2" (см. Рис. 5.34)
Выберите роль "Редактор" подпроцесса "Пример 10-2" (см. Рис.5.34).




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


<center>Рисунок 5.34 Выбор переменной подпроцесса</center>
<center>Рисунок 5.34. Выбор переменной подпроцесса</center>




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


Далее необходимо задать сопоставление переменных процесса и подпроцесса. Нажмите "Добавить", в появившейся форме выберите переменные "тексты рубрик" и "Контент рубрики". Разрешите использование для чтения и записи (см. Рис. 5.35).
Далее необходимо задать сопоставление переменных процесса и подпроцесса. Нажмите "Добавить", в появившейся форме выберите переменные "тексты рубрик" и "Контент рубрики". Разрешите использование для чтения и записи (см. Рис.5.35).




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


<center>Рисунок 5.35 Сопоставление переменных "тексты рубрик" - "Контент рубрики"</center>
<center>Рисунок 5.35. Сопоставление переменных "тексты рубрик" - "Контент рубрики"</center>




Таким же образом добавьте сопоставление переменных "Комментарий Шеф-редактора" - "Комментарий от Шеф-редактора". Разрешите использование только для чтения (см. Рис. 5.36).
Таким же образом добавьте сопоставление переменных "Комментарий Шеф-редактора" - "Комментарий от Шеф-редактора". Разрешите использование только для чтения (см. Рис.5.36).




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


<center>Рисунок 5.36 Сопоставление переменных процесса и подпроцесса</center>
<center>Рисунок 5.36. Сопоставление переменных процесса и подпроцесса</center>




Нажмите "ОК", сохраните и закройте процесс.
Нажмите "ОК", сохраните и закройте процесс.


<li>'''Экспортируйте''' разработанные бизнес-процессы на сервер  (Подробнее см. ''Практическое занятие "Изучение перспективы потока управления", Порядок выполнения работы, Пункты 11-14'')
<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>
</li>


<li>'''Войдите''' на сервер под пользователем Administrator
<li>'''Войдите''' на сервер под пользователем Administrator.
</li>
</li>


<li>'''Добавьте''' обладателей полномочий
<li>'''Добавьте''' обладателей полномочий.
</li>
</li>


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


Дайте группе "Шеф-редакторы" права на чтение, чтение экземпляра и запуск. Для группы "Сотрудники" дайте права на чтение и чтение экземпляра (Подробнее см. ''"Практикум. Вводное занятие", Порядок выполнения работы, Пункт 28-31'').
Дайте группе "Шеф-редакторы" права на чтение, чтение экземпляра и запуск. Для группы "Сотрудники" дайте права на чтение и чтение экземпляра (Подробнее см. ''"Практикум. Вводное занятие", [[TrainingMaterials_4_4_1_Introduction#Ссылка Свойства на странице Загрузить процесс|Порядок выполнения работы]], Пункт 28-31'').




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


<center>Рисунок 5.37 Обладатели полномочий на бизнес-процесс "Пример 10-1"</center>
<center>Рисунок 5.37. Обладатели полномочий на бизнес-процесс "Пример 10-1"</center>




Строка 1660: Строка 1659:




''Выполнение бизнес-процессов по шагам.''
''Выполнение бизнес-процессов по шагам''


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


Кликните на имя процесса в общем списке бизнес-процессов (См. Рис. 5.38)
Щёлкните имя процесса в общем списке бизнес-процессов (См. Рис.5.38).




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


<center>Рисунок 5.38 Запуск бизнес-процесса "Пример 10-1"</center>
<center>Рисунок 5.38. Запуск бизнес-процесса "Пример 10-1"</center>




Строка 1679: Строка 1678:
<center>[[Image:r371e_ru.png]]</center>
<center>[[Image:r371e_ru.png]]</center>


<center>Рисунок 5.39 Ввод данных на стартовой форме бизнес-процесса "Пример 10-1"</center>
<center>Рисунок 5.39. Ввод данных на стартовой форме бизнес-процесса "Пример 10-1"</center>




Строка 1686: Строка 1685:
Управление из стартового узла перейдет в мульти-подпроцесс "Создание контента для рубрик", который настроен по группе "Редакторы".  
Управление из стартового узла перейдет в мульти-подпроцесс "Создание контента для рубрик", который настроен по группе "Редакторы".  


Таким образом будут запущены 3 экземпляра подпроцесса "Пример 10-2", редакторы "Сидоров", "Сергеев", "Николаев" получат задание "Выбрать исполнителей для создания контента рубрики"
Таким образом будут запущены 3 экземпляра подпроцесса "Пример 10-2", редакторы "Сидоров", "Сергеев", "Николаев" получат задание "Выбрать исполнителей для создания контента рубрики".




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


<center>Рисунок 5.40 Запущено 3 экземпляра подпроцесса "Пример 10-2"</center>
<center>Рисунок 5.40. Запущено 3 экземпляра подпроцесса "Пример 10-2"</center>




Строка 1701: Строка 1700:
<center>[[Image:r373e_ru.png]]</center>
<center>[[Image:r373e_ru.png]]</center>


<center>Рисунок 5.41 Активное задание "Выбрать исполнителей для создания контента рубрики"</center>
<center>Рисунок 5.41. Активное задание "Выбрать исполнителей для создания контента рубрики"</center>




Строка 1709: Строка 1708:
<center>[[Image:r374e_ru.png]]</center>
<center>[[Image:r374e_ru.png]]</center>


<center>Рисунок 5.42 Выбор обозревателя</center>
<center>Рисунок 5.42. Выбор обозревателя</center>




Строка 1722: Строка 1721:
<center>[[Image:r375e_ru.png]]</center>
<center>[[Image:r375e_ru.png]]</center>


<center>Рисунок 5.43 Ввод контента рубрики обозревателем Андреев</center>
<center>Рисунок 5.43. Ввод контента рубрики обозревателем Андреев</center>




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


<center>Рисунок 5.44 Ввод контента рубрики обозревателем Дмитров</center>
<center>Рисунок 5.44. Ввод контента рубрики обозревателем Дмитров</center>




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


<center>Рисунок 5.45 Ввод контента рубрики обозревателем Юрьев</center>
<center>Рисунок 5.45. Ввод контента рубрики обозревателем Юрьев</center>




Строка 1744: Строка 1743:
<center>[[Image:r378e_ru.png]]</center>
<center>[[Image:r378e_ru.png]]</center>


<center>Рисунок 5.46 Утверждение контента рубрики редактором "Сидоров"</center>
<center>Рисунок 5.46. Утверждение контента рубрики редактором "Сидоров"</center>




Строка 1756: Строка 1755:
<center>[[Image:r379e_ru.png]]</center>
<center>[[Image:r379e_ru.png]]</center>


<center>Рисунок 5.47 Задание "Корректировка рубрик"</center>
<center>Рисунок 5.47. Задание "Корректировка рубрик"</center>




Строка 1768: Строка 1767:
<center>[[Image:r380e_ru.png]]</center>
<center>[[Image:r380e_ru.png]]</center>


<center>Рисунок 5.48 Задание "Корректировать рубрики"</center>
<center>Рисунок 5.48. Задание "Корректировать рубрики"</center>




Строка 1774: Строка 1773:




<center>[[Image:r381e_ru.png]]</center>
[[Файл:R381e ru.png|обрамить|центр|альт=Рисунок 5.49. Созданный DOCX файл нового выпуска номера журнала|Рисунок 5.49. Созданный DOCX файл нового выпуска номера журнала]]
 
<center>Рисунок 5.49 Созданный DOCX файл нового выпуска номера журнала</center>




Строка 1784: Строка 1781:
<center>[[Image:r381ae_ru.png]]</center>
<center>[[Image:r381ae_ru.png]]</center>


<center>Рисунок 5.50 Отправка номера журнала на доработку</center>
<center>Рисунок 5.50. Отправка номера журнала на доработку</center>




Строка 1792: Строка 1789:
<center>[[Image:r381be_ru.png]]</center>
<center>[[Image:r381be_ru.png]]</center>


<center>Рисунок 5.51 Повторный запуск подпроцессов</center>
<center>Рисунок 5.51. Повторный запуск подпроцессов</center>




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




Строка 1802: Строка 1799:
== Задание для самостоятельной работы ==
== Задание для самостоятельной работы ==


''Описание самостоятельной работы.''
''Описание самостоятельной работы''


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


''Подготовка данных на сервере.''
''Подготовка данных на сервере''


Войдите на сервер под пользователем Администратор.
Войдите на сервер под пользователем Администратор.


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


Добавьте в него, например следующие пары:
Добавьте в него, например следующие пары:
Строка 1818: Строка 1815:
* Петров-Сидоров
* Петров-Сидоров
* Петров-Сергеев
* Петров-Сергеев
* Константинов-Николаев
* Константинов-Николаев.




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


<center>Рисунок 5.52 Отношение Шеф-редактор</center>
<center>Рисунок 5.52. Отношение Шеф-редактор</center>




Строка 1829: Строка 1826:


Создайте группу
Создайте группу
* Авторы
* Авторы.


Создайте пользователей и добавьте их в группу Авторы:
Создайте пользователей и добавьте их в группу Авторы:
Строка 1835: Строка 1832:
* Максимов Роман Александрович
* Максимов Роман Александрович
* Егоров Вадим Анатольевич
* Егоров Вадим Анатольевич
* Владимиров Евгений Юрьевич
* Владимиров Евгений Юрьевич.


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


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


<center>Рисунок 5.53 Группа "Авторы"</center>
<center>Рисунок 5.53. Группа "Авторы"</center>




Не забудьте дать полномочия группе "Редакторы" на чтение группы "Авторы".Для этого откройте список исполнителей, выберите группу "Авторы", нажмите на "Обладатели полномочий".
Не забудьте дать полномочия группе "Редакторы" на чтение группы "Авторы". Для этого откройте список исполнителей, выберите группу "Авторы", нажмите на "Обладатели полномочий".
Добавьте в список группу "Редакторы", установите полномочие "Читать". Также не забудьте дать полномочия группе "Редакторы" на чтение на всех пользователей, входящих в группу "Авторы"
Добавьте в список группу "Редакторы", установите полномочие "Читать". Также не забудьте дать полномочия группе "Редакторы" на чтение на всех пользователей, входящих в группу "Авторы".
Для этого выберите пользователя, перейдите в обладатели полномочия, и добавьте группу "Редакторы" с правами на чтение. (В качестве примера можно посмотреть добавление обладателей полномочий на группу "Обозреватели" в'' Практическое занятие "Работа с мульти-подпроцессами", порядок выполнения, пункты 7,8 рис. 5.1, 5.2'')
Для этого выберите пользователя, перейдите в обладатели полномочия, и добавьте группу "Редакторы" с правами на чтение. (В качестве примера можно посмотреть добавление обладателей полномочий на группу "Обозреватели" в'' Практическое занятие "Работа с мульти-подпроцессами", порядок выполнения, Пункты 7,8, Рис.5.01-5.02'').




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


Создайте на основе бизнес-процессов "Пример 10-1" и "Пример 10-2" бизнес-процессы "Пример 10-3" и "Пример 10-4" соответственно.
Создайте на основе бизнес-процессов "Пример 10-1" и "Пример 10-2" бизнес-процессы "Пример 10-3" и "Пример 10-4" соответственно.


Для этого воспользуйтесь функцией копирования (подробнее см. ''Практическое занятие "Изучение перспективы потока управления", Задание для самостоятельной работы, Пункты 1,2,3'').
Для этого воспользуйтесь функцией копирования (подробнее см. ''Практическое занятие "Изучение перспективы потока управления", [[TrainingMaterials_4_4_1_Perspectives#.D0.97.D0.B0.D0.B4.D0.B0.D0.BD.D0.B8.D1.8F_.D0.B4.D0.BB.D1.8F_.D1.81.D0.B0.D0.BC.D0.BE.D1.81.D1.82.D0.BE.D1.8F.D1.82.D0.B5.D0.BB.D1.8C.D0.BD.D0.BE.D0.B9_.D1.80.D0.B0.D0.B1.D0.BE.D1.82.D1.8B|Задание для самостоятельной работы]], Пункты 1,2,3'').




Измените граф схемы бизнес-процессов в соответствии с рисунками 5.54, 5.55
Измените граф схемы бизнес-процессов в соответствии с Рис.5.54-5.55.


'''Замечание'''. Схема бизнес-процесса "Пример 10-3" не отличается от "Пример 10-1", изменения будут только в параметрах элемента Мульти-подпроцесс.
'''Замечание'''. Схема бизнес-процесса "Пример 10-3" не отличается от "Пример 10-1", изменения будут только в параметрах элемента Мульти-подпроцесс.
Строка 1862: Строка 1859:
<center>[[Image:r384e_ru.png]]</center>
<center>[[Image:r384e_ru.png]]</center>


<center>Рисунок 5.54 Схема бизнес-процесса для самостоятельной работы "Пример 10-3"</center>
<center>Рисунок 5.54. Схема бизнес-процесса для самостоятельной работы "Пример 10-3"</center>




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


<center>Рисунок 5.55 Схема мульти-подпроцесса "Пример 10-4"</center>
<center>Рисунок 5.55. Схема мульти-подпроцесса "Пример 10-4"</center>




Строка 1875: Строка 1872:
<center>[[Image:r386_ru.png]]</center>
<center>[[Image:r386_ru.png]]</center>


<center>Рисунок 5.56 Роли в бизнес-процессе "Пример 10-4"</center>
<center>Рисунок 5.56. Роли в бизнес-процессе "Пример 10-4"</center>




Строка 1881: Строка 1878:
* Внешний контент - формата Текст
* Внешний контент - формата Текст
* Авторы - формата Группа, при этом задайте значение по умолчанию - "Авторы" (см. ''пример установки значения по умолчанию для группы Обозреватели в "Пример 10-2"'')
* Авторы - формата Группа, при этом задайте значение по умолчанию - "Авторы" (см. ''пример установки значения по умолчанию для группы Обозреватели в "Пример 10-2"'')
* ФИО автора - формата "Строка"
* ФИО автора - формата "Строка".




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


<center>Рисунок 5.57 Переменные бизнес-процесса "Пример 10-4"</center>
<center>Рисунок 5.57. Переменные бизнес-процесса "Пример 10-4"</center>




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




Измените форму задания "Выбрать исполнителей для создания контента рубрики", добавьте компонент форм "Выбор из членов группы" (используйте в качестве параметров роль Автор и переменную Авторы, см. Рис. 5.58, 5.59)
Измените форму задания "Выбрать исполнителей для создания контента рубрики", добавьте компонент форм "Выбор из членов группы" (используйте в качестве параметров роль Автор и переменную Авторы, см. Рис.5.58-5.59).




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


<center>Рисунок 5.58 Форма задания "Выбор исполнителей для создания контента рубрики"</center>
<center>Рисунок 5.58. Форма задания "Выбор исполнителей для создания контента рубрики"</center>




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


<center>Рисунок 5.59 Выбор из членов группы "Авторы"</center>
<center>Рисунок 5.59. Выбор из членов группы "Авторы"</center>


То есть, здесь редактор выбирает Автора и Обозревателя которые будут создавать контент рубрики.
То есть, здесь редактор выбирает Автора и Обозревателя которые будут создавать контент рубрики.
Строка 1908: Строка 1905:
Для роли "Автор" добавьте валидатор роли "Обязательное поле" (см. ''валидатор для роли Обозреватель в "Пример 10-2"'').
Для роли "Автор" добавьте валидатор роли "Обязательное поле" (см. ''валидатор для роли Обозреватель в "Пример 10-2"'').


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


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


<center>Рисунок 5.60 Ввод переменной "Внешний контент"</center>
<center>Рисунок 5.60. Ввод переменной "Внешний контент"</center>


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




Аналогично получению ФИО обозревателя с помощью обработчика "Получить информацию об исполнителе", получите ФИО автора
Аналогично получению ФИО обозревателя с помощью обработчика "Получить информацию об исполнителе", получите ФИО автора.


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


<center>Рисунок 5.61 Получение ФИО автора</center>
<center>Рисунок 5.61. Получение ФИО автора</center>






Измените конфигурацию обработчика в задаче сценария "Сформировать текст рубрики"
Измените конфигурацию обработчика в задаче сценария "Сформировать текст рубрики":


  'Контент рубрики' =  "От автора " + 'ФИО автора' + "
  'Контент рубрики' =  "От автора " + 'ФИО автора' + "
Строка 1939: Строка 1936:
<center>[[Image:r390_2_ru.png]]</center>
<center>[[Image:r390_2_ru.png]]</center>


<center>Рисунок 5.62 Конфигурация обработчика в задаче сценария "Сформировать текст рубрики"</center>
<center>Рисунок 5.62. Конфигурация обработчика в задаче сценария "Сформировать текст рубрики"</center>




Таким образом "Контент рубрики" теперь будет складываться еще и из "внешнего контента" введенного Автором.
Таким образом "Контент рубрики" теперь будет складываться еще и из "внешнего контента" введенного Автором.


Откройте процесс "Пример 10-3", вызовите настройку мульти-подпроцесса "Создание контента для рубрик". Здесь перейдите на вкладку "По отношению", в качестве подпроцесса выберите "Пример 10-4". Выполните синхронизацию с сервером и выберите отношение с названием "Шеф-редактор", в качестве параметра отношения используйте роль "Шеф-редактор". Обратите внимание на опцию "Обратное отношение", она должна быть установлена. Переменная в подпроцессе и сопоставление переменных процесса и подпроцесса оставьте неизменными (см. Рис. 5.63).
Откройте процесс "Пример 10-3", вызовите настройку мульти-подпроцесса "Создание контента для рубрик". Здесь перейдите на вкладку "По отношению", в качестве подпроцесса выберите "Пример 10-4". Выполните синхронизацию с сервером и выберите отношение с названием "Шеф-редактор", в качестве параметра отношения используйте роль "Шеф-редактор". Обратите внимание на опцию "Обратное отношение", она должна быть установлена. Переменная в подпроцессе и сопоставление переменных процесса и подпроцесса оставьте неизменными (см. Рис.5.63).




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


<center>Рисунок 5.63 Настройка мульти-подпроцесса по обратному отношению</center>
<center>Рисунок 5.63. Настройка мульти-подпроцесса по обратному отношению</center>




''Выполнение бизнес-процессов.''
''Выполнение бизнес-процессов''


Экспортируйте разработанные бизнес-процессы "Пример 10-3" и "Пример 10-4" на сервер.
Экспортируйте разработанные бизнес-процессы "Пример 10-3" и "Пример 10-4" на сервер.
Строка 1972: Строка 1969:
2) Скриншоты, содержащие маршруты точек управления для экземпляров бизнес-процессов, и мульти-подпроцессов доведенных до завершения.
2) Скриншоты, содержащие маршруты точек управления для экземпляров бизнес-процессов, и мульти-подпроцессов доведенных до завершения.


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


== Контрольные вопросы ==
== Контрольные вопросы ==
Строка 1982: Строка 1979:
= Ссылки =
= Ссылки =
   
   
# <nowiki>Документация Runa WFE [официальный сайт проекта]. </nowiki>''URL: [https://{{SERVERNAME}}/Документация2 https://{{SERVERNAME}}/][https://{{SERVERNAME}}/Документация2 Документация]
# <nowiki>Документация Runa WFE [официальный сайт проекта]. </nowiki>''URL: [https://{{SERVERNAME}}/ https://{{SERVERNAME}}/][https://{{SERVERNAME}}/Документация2 Документация]

Текущая версия на 21:46, 15 июля 2023

RunaWFE. Практикум. Межпроцессное взаимодействие, работа с таймерами, обработчиками, мульти-подпроцессами

Версия 4.6.0

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

Введение

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

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

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

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

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

Все вышеперечисленные разделы практикума можно найти на сайте проекта RunaWFE Free в разделе "Документация/Документация для пользователя", документ "RunaWFE. Учебные материалы по процессному управлению".

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


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

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

Общая информация

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


Практическое занятие "Межпроцессное взаимодействие"

Цель занятия

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

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

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

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

В сообщении содержится следующая информация:

  • кому предназначено сообщение
  • передаваемые значения переменных бизнес-процесса.

В некоторых случаях одно сообщение может быть обработано несколькими получателями. Адресат сообщения может быть определен следующим образом:

  • по названию бизнес-процесса (processDefinitionName)
  • по названию узла бизнес-процесса (processNodeName)
  • по идентификатору экземпляра бизнес-процесса (processInstanceId).

Для задания этих параметров можно использовать:

  • переменные экземпляра бизнес-процесса, например, processDefinitionName=${Переменная1}, где "Переменная1"– это переменная содержащая название процесса
  • константное значение, например processNodeName = Процесс1, где Процесс1 это название процесса
  • предопределенные значения:
    А. по названию текущего определения процесса ( ${currentDefinitionName} )
    Б. по названию текущего узла ( ${currentNodeName} )
    В. по номеру текущего экземпляра процесса ( ${currentInstanceId} ).

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

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

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

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

В данном занятии рассматриваются бизнес-процессы, иллюстрирующие механизм межпроцессного взаимодействия: Бизнес-процесс "Пример 8-1" отправляет сообщение в бизнес-процесс "Пример 8-2". Используется маршрутизация “по названию процесса”. В качестве данных, пересылаемых в сообщении, используется введённый пользователем текст, а также id экземпляра бизнес-процесса "Пример 8-1".

Бизнес-процесс "Пример 8-2" получает данные, пользователь изменяет полученное значение текстовой переменной, и высылает сообщение обратно в бизнес-процесс "Пример 8-1", при этом используется маршрутизация “по ID процесса”.

Откройте среду разработки системы RunaWFE Free.

  1. Создайте новый проект - Занятие 8.
  2. Создайте новый процесс:
  3. Введите название процесса – "Пример 8-1".
  4. Добавьте элементы на схему бизнес-процесса в соответствии с Рис.3.01.
  5. R253e ru.png
    Рисунок 3.01. Схема бизнес процесса "Пример 8-1"


    В бизнес-процессе используется следующие элементы: “Начало”, “Окончание”, “Действие”, “Задача сценария”, узел “Отправить сообщение” и “Получить сообщение”. Для изменения названий по-умолчанию, выделите элемент, щёлкнув его, перейдите в свойства, введите новое значение в поле Название.

    Для элемента "Задача сценария" используйте опцию компактный вид (см. пункт 1 раздела "Практическое занятие "Работа с Word-ботом". Порядок выполнения работы.", Замечание. Рис.2.02).

  6. Создайте бизнес-процесс "Пример 8-2" в соответствии с Рис.3.02.
  7. R254e ru.png
    Рисунок 3.02. Схема бизнес процесса "Пример 8-2"


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

  8. Создайте роли.
  9. В разрабатываемых процессах используются следующие Роли:
    • "сотрудник", используется в процессе "Пример 8-1", будет инициализирована пользователем, запустившим процесс
    • "отдел кадров", используется в процессе "Пример 8-2", будет инициализирована пользователем, запустившим процесс.
  10. Создайте переменные.
  11. В процессе "Пример 8-1" используются следующие переменные:
    • "отправленное сообщение", это переменная формата "Текст", которую вводит пользователь в узле “Ввести сообщение для отправки” и отправляет в экземпляры процесса "Пример 8-2"
    • "id отправителя", это переменная формата "Строка", содержит id экземпляра процесса "Пример 8-1", также отправляется в сообщении. Должна быть проинициализирована в задаче сценария "Получение id экземпляра процесса" с помощью обработчика "Выполнить формулу".
    В процессе "Пример 8-2" используются следующие переменные:
    • "полученное сообщение", это переменная формата "Текст", которую процесс получает из присланного сообщения, обрабатывает и отправляет обратно в экземпляр "Пример 8-2"
    • "id отправителя", это переменная формата "Строка", содержит id экземпляра процесса "Пример 8-1". Принимает значение из сообщения, и необходима для определения получателя, т.е. используется в свойствах маршрутизации.
    Для создания переменной перейдите на вкладку "Переменные" и нажмите "Создать" (См. Рис.3.03). В появившейся форме введите название переменной (См. Рис.3.04), нажмите "Далее" и выберите ее формат (См. Рис.3.05).
    R255a ru.png
    Рисунок 3.03. Создание переменных


    R255be ru.png
    Рисунок 3.04. Ввод названия переменной


    R255ce ru.png
    Рисунок 3.05. Выбор формата переменной


    R256 ru.png
    Рисунок 3.06. Переменные бизнес-процесса "Пример 8-1"


    R257 ru.png
    Рисунок 3.07. Переменные бизнес-процесса "Пример 8-2"
  12. Выберите класс обработчика в задачи сценария "Получение id экземпляра процесса".
  13. В процессе "Пример 8-1" необходимо использовать обработчик "Выполнить формулу", в котором определить id данного экземпляра и проинициализировать полученным значением переменную "id отправителя". Для этого выделите на схеме элемент Задача сценария, перейдите в его свойства и щёлкните поле “Класс обработчика” (См. Рис.3.08).
    R258 ru e8.png
    Рисунок 3.08. Задача сценария "Получение id экземпляра процесса"

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

    Добавьте конфигурацию следующего вида:

    'id отправителя'=get_process_id();
    

    Здесь используется функция get_process_id, которая возвращает номер текущего экземпляра процесса.


    R259 ru.png
    Рисунок 3.09. Конфигурация обработчика "Выполнить формулу"

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

  14. Создайте графические формы.
  15. Щёлкните узел «Ввести сообщение для отправки» графа процесса "Пример 8-1" правой кнопкой мыши и выберите команду «Форма» > «Создать форму» (левой кнопкой мыши) - См. Рис.3.10.
    R260e ru.png
    Рисунок 3.10. Создание графической формы


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


    В появившимся выпадающем списке выберите тип формы «Произвольная форма».

    Поместите на форму компонент "Ввод переменной" для ввода значения переменной "отправленное сообщение" (См. Рис.3.11).


    R261e8 ru.png
    Рисунок 3.11. Форма "Ввести сообщение для отправки"

    В процессе "Пример 8-2" также создайте форму в узле “Редактировать полученное сообщение”, процесс создания аналогичен описанному примеру. На форме необходимо расположить компонент "Ввод переменной" для редактирования значения переменной "полученное сообщение" (См. Рис.3.12).


    R262e8 ru.png
    Рисунок 3.12. Форма "Редактирование полученного сообщения"

    Создайте форму для отображения значения переменной после взаимодействия между процессами. Щёлкните узел «Ознакомиться с полученным сообщением» графа процесса "Пример 8-1" правой кнопкой мыши и выберите команду «Форма» > «Создать форму» (левой кнопкой мыши), после чего расположите на форме компонент “Отобразить переменную” для "отправленное сообщение", в поле "Форма отображения" выберите "Как неактивный компонент ввода" (См. Рис.3.13).


    R263e8 ru.png
    Рисунок 3.13. Создание графической формы для узла "Ознакомиться с полученным сообщением"


  16. Настройте межпроцессное взаимодействие.
  17. Настройка отправителя сообщения в процессе "Пример 8-1". Для настройки отправки щёлкните правой клавишей мыши на элементе “отправить сообщение”, и выберите пункт "Конфигурация" (См. Рис.3.14).
    R264e8 ru.png
    Рисунок 3.14. Вызов диалога настройки отправителя сообщения в бизнес-процессе "Пример 8-1"

    В свойствах маршрутизации укажите настройки согласно Рис.3.15.

    R265e8 ru.png
    Рисунок 3.15. Настройка свойств маршрутизации сообщения в бизнес-процессе "Пример 8-1"

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

    В появившейся форме введите в поле "Значение" - Пример 8-2, поле "Название" оставьте неизменным. Нажмите "ОК".

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

    Таким образом в соответствии с параметрами представленными на Рис.3.15, будут отправлены значения переменных "id отправителя" и "отправленное сообщение" экземпляра бизнес-процесса "Пример 8-1".

    Также нужно настроить время жизни сообщения. Для этого выберите пункт "Время жизни сообщения" контекстного меню вызванного на элементе "отправить сообщение" (См. Рис.3.14). В появившемся окне установить задержку 1 день, как показано на Рис.3.16.

    R mes t1 ru.png
    Рисунок 3.16. Диалог настройки времени жизни сообщения


    Настройка получателя в процессе "Пример 8-2".

    Щёлкните правой клавишей мыши элемент “получить сообщение” и выберите "Конфигурация" (См. Рис.3.17).


    R266e8 ru.png
    Рисунок 3.17. Вызов диалога настройки получателя сообщения в бизнес-процессе "Пример 8-2"

    В свойствах маршрутизации укажите настройки согласно Рис.3.18.


    R267e ru.png
    Рисунок 3.18. Настройка свойств маршрутизации сообщения в бизнес-процессе "Пример 8-2"

    Используйте маршрутизацию по названию текущего определения процесса (currentDefinitionName), для этого в области свойств маршрутизации нажмите на стрелку расположенную на кнопке "Добавить", выберите из выпадающего списка пункт "По названию процесса". Добавьте переменные в сообщении в соответствии с Рис.3.18.

    Таким образом, будут получены:

    • значение переменной "id отправителя" из сообщения в переменную "id отправителя" экземпляра процесса "Пример 8-2"
    • значение переменной "отправленное сообщение" в переменную "полученное сообщение".


    Настройка отправителя в процессе "Пример 8-2".

    После получения и обработки сообщения, процесс "Пример 8-2" возвращает обработанные данные в экземпляр процесса "Пример 8-1", для этого используются следующие настройки (См. Рис.3.19-3.23):


    R268e8 ru.png
    Рисунок 3.19. Вызов диалога настройки отправителя сообщения в бизнес-процессе "Пример 8-2"

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


    R269 ru.png
    Рисунок 3.20. Маршрутизация по ID процесса

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

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


    R270 ru.png
    Рисунок 3.21. Добавление переменной


    R271e ru.png
    Рисунок 3.22. Итоговая конфигурация


    Также нужно настроить время жизни сообщения. Для этого выберите пункт "Время жизни сообщения" контекстного меню вызванного на элементе "отправить сообщение" (См. Рис.3.19). В появившемся окне установить задержку 1 день, как показано на Рис.3.16.


    Настройка получателя в процессе "Пример 8-1".

    Обработанные в бизнес-процессе "Пример 8-2" данные возвращаются в "Пример 8-1", для принятия этих данных необходимо настроить элемент “Принять сообщение” следующим образом (См. Рис.3.23).


    R272e ru.png
    Рисунок 3.23. Переменные сообщения

    Свойство маршрутизации задано как processId = ${currentProcessId}, то есть по id процесса, а соответствие переменных установлено как "отправленное сообщение"="полученное сообщение", то есть присланное в переменной "полученное сообщение" значение будет сохранено в переменную "отправленное сообщение".

  18. Загрузите бизнес-процесс на RunaWFE сервер.
  19. Загрузите разработанные бизнес-процессы в систему, используя пункт меню “Файл/Экспорт процесса” (Подробнее см. "Практикум. Перспективы исполнимых бизнес-процессов.", практическое занятие "Изучение перспективы потока управления", Порядок выполнения работы, Пункт 11-14). Войдите в web-интерфейс системы RunaWFE Free под пользователем Administrator. После загрузки необходимо настроить обладателей полномочий на данные процессы. Для "Пример 8-1" нужно добавить в обладатели полномочий группу "Сотрудники" с правами на чтение, чтение экземпляра и запуск, а для "Пример 8-2" группу "Отдел кадров", также с правами на чтение, чтение экземпляра и запуск (Подробнее см. "Практикум. Вводное занятие", Порядок выполнения работы, Пункт 28-31).
  20. Запустите бизнес-процессы и доведите экземпляры процессов до завершения.
  21. Описание порядка выполнения бизнес-процесса взаимодействия. Пользователь запускает экземпляр процесса "Пример 8-1", срабатывает обработчик, в котором определяется id данного экземпляра процесса. Пользователь вводит текст отправляемого сообщения в переменную "отправленное сообщение". Затем происходит отправка сообщения в экземпляр процесса "Пример 8-2", передаются значения переменных "отправленное сообщение" и "id отправителя". Процесс "Пример 8-1" переходит в следующий узел, ожидая сообщения с результатом обработки. Пользователь, принадлежащий группе "Отдел кадров", запускает экземпляр процесса "Пример 8-2", сразу после запуска экземпляра бизнес-процесса точка управления останавливается в узле “Получить сообщение”, ожидая данные. После получения сообщения, происходит загрузка значений в переменные "полученное сообщение" и "id отправителя". Далее точка управления переходит в узел “Редактировать полученное сообщение”, где пользователь редактирует значение переменной "полученное сообщение". Затем происходит отправка отредактированного значения обратно в экземпляр "Пример 8-1", при этом используется полученное ранее значение id этого экземпляра. Экземпляр бизнес-процесса "Пример 8-1" получает из сообщения значение "отправленное сообщение" и точка управления переходит в узел “Ознакомиться с полученным сообщением”. Выполнение бизнес-процессов по шагам. Для запуска процесса "Пример 8-1" войдите в систему под пользователем из группы "Сотрудники", например "Сверчков", и щёлкните имя процесса в общем списке бизнес-процессов (См. Рис.3.24):
    R273e8 ru.png
    Рисунок 3.24. Список бизнес-процессов

    Будет создан новый экземпляр бизнес-процесса, в котором точка управления перейдет в узел “Ввести сообщение для отправки” (См. Рис.3.25).

    R274e8 ru.png
    Рисунок 3.25. Задание, соответствующее узлу “Ввести сообщение для отправки”

    В форме задания этого узла введите текст сообщения для отправки, например: “Hello” (См. Рис.3.26).

    R275e8 ru.png
    Рисунок 3.26. Ввод текста, который будет отправлен другому экземпляру бизнес-процесса

    На следующем шаге бизнес-процесса произойдет определение id данного экземпляра процесса и отправка сообщения, содержащего переменные "отправленное сообщение" и "id отправителя" (См. Рис.3.27).

    R276e8 ru.png
    Рисунок 3.27. Фрагмент формы истории экземпляра бизнес-процесса, показывающий последовательность событий экземпляра бизнес-процесса

    Управление перейдет в узел “Принять сообщение”, в котором оно будет находиться до тех пор, пока не получит сообщение от процесса "Пример 8-2".

    R277e ru.png
    Рисунок 3.28. Ожидание сообщения экземпляром бизнес-процесса "Пример 8-1"

    Запустите экземпляр бизнес-процесса "Пример 8-2".

    Войдите в систему под пользователем, входящим в группу "Отдел кадров", например Личинкин и щёлкните имя бизнес-процесса "Пример 8-2" (См. Рис.3.29).

    R278e8 ru.png
    Рисунок 3.29. Список бизнес-процессов

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

    R279e ru.png
    Рисунок 3.30. Состояние экземпляра бизнес-процесса
    R280e8 ru.png
    Рисунок 3.31. История экземпляра бизнес-процесса
    R281e8 ru.png
    Рисунок 3.32. Список заданий

    В форме задания узла дополните полученное сообщение (См. Рис.3.33-3.34).

    R282e8 ru.png
    Рисунок 3.33. Форма задания с исходным значением
    R283e8 ru.png
    Рисунок 3.34. Форма задания с измененным значением

    После выполнения задания произойдет отправка сообщения (Hello World!!!), в экземпляр процесса выбранного по id, далее экземпляр бизнес-процесса "Пример 8-2" завершится (См. Рис.3.35).

    R284e8 ru.png
    Рисунок 3.35. История экземпляра бизнес-процесса "Пример 8-2"

    Экземпляр бизнес-процесса "Пример 8-1" получит сообщение, содержащее переменную "полученное сообщение". Переменная "отправленное сообщение" будет проинициализирована значением "Hello World!!!" и ее значение будет выведено на форму узла “Ознакомиться с полученным сообщением” (См. Рис.3.36).

    R285e8 ru.png
    Рисунок 3.36. Список заданий
    R286e8 ru.png
    Рисунок 3.37. Форма задания

    После выполнения задания бизнес-процесс завершится (См. Рис.3.38).

    R287e8 ru.png
    Рисунок 3.38. История экземпляра бизнес-процесса

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

    Разработайте бизнес-процессы "Пример 8-3" и "Пример 8-4", схемы которых изображены на Рис.3.38,3.39. "Пример 8-3" отправляет в сообщении введённые пользователем данные в процесс "Пример 8-4". Используется маршрутизация “по названию процесса”. "Пример 8-4" получает данные и отображает их на форме.


    R288e ru.png
    Рисунок 3.38. Схема бизнес-процесса "Пример 8-3" для самостоятельной разработки

    В "Пример 8-3", используйте элемент “Отправить сообщение” для отправки данных.

    R289e ru.png
    Рисунок 3.39. Схема бизнес-процесса "Пример 8-4" для самостоятельной разработки

    В "Пример 8-4", используйте элемент “Получить сообщение” для получения данных.


    Описание ролей

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

    • Роль "сотрудники", используется в процессе "Пример 8-3", будет инициализирована пользователем, запустившим процесс
    • Роль "отдел кадров", используется в процессе "Пример 8-4", будет инициализирована пользователем из группы "Отдел кадров", запустившим процесс.


    Описание переменных

    В процессе "Пример 8-3" используйте переменную формата Текст – “отправленное сообщение”, которая предназначена для отправки в сообщении. Переменная инициализируется значением введённым пользователем в узле “Ввести сообщение для отправки”, а затем передаётся в процесс "Пример 8-4" с помощью механизма сообщений.

    В процессе "Пример 8-4" используйте переменную “полученное сообщение” формата Текст. Переменная должна принимать значение в сообщении от "Пример 8-3".


    Описание графических форм

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


    В процессе "Пример 8-3" создайте форму в узле “Ввести сообщение для отправки”. Для ввода “отправленное сообщение” используйте компонент форм "Ввод переменной". В процессе "Пример 8-4" создайте форму в узле “Ознакомиться с полученным сообщением”. На форме необходимо расположить компонент форм “Отобразить переменную” для вывода значения переменной "полученное сообщение".


    Задание проверок значений, введенных в элементы форм (валидация)

    В процессе "Пример 8-3" необходимо задать проверку переменной “отправленное сообщение”, выбрав валидатор “Обязательное поле” и задав текст сообщения об ошибке (см. Практическое занятие "Изучение перспективы операций", Порядок выполнения работы Пункт 15, Рис.5.27-5.28).


    Настройка межпроцессного взаимодействия

    Настройка отправителя.

    В процессе "Пример 8-3" необходимо настроить отправку сообщения. Используйте отправку “По названию процесса”, в качестве названия процесса используйте - Пример 8-4.

    Задайте переменные, которые будут отправлены в сообщении. Выберите переменную "отправленное сообщение".

    Настройка получателя сообщения.

    В процессе "Пример 8-4" настройте параметры получения сообщения, для этого щёлкните правой клавишей мыши узел “Получить данные” и выберите пункт “Конфигурация”.

    В появившейся форме добавьте свойства маршрутизации, а также соответствие переменных для получения данных. Используйте получение “По названию процесса”, для этого необходимо щёлкнуть соответствующую кнопку, в результате в свойствах появится: processDefinitionName = ${currentDefinitionName}, где currentDefinitionName указывает на текущее название процесса.

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

    Таким образом будет установлено соответствие между посылаемой в сообщении переменной "отправленное сообщение" процесса "Пример 8-3" и переменной "полученное сообщение" в процессе "Пример 8-4". Загрузите бизнес-процессы в систему, установите на них необходимые права (выполняется аналогично процессам "Пример 8-1/8-2", см. Практическое занятие "Межпроцессное взаимодействие", пункт 11).


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

    Описание действий пользователей.

    Пользователь запускает экземпляр процесса "Пример 8-3", вводит текст отправляемого сообщения, после чего происходит отправка в экземпляры процесса "Пример 8-4". Процесс "Пример 8-3" переходит в состояние “завершения”.

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


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

    1). Первый сценарий - "Один получатель".

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

    Запустится экземпляр процесса, и управление остановится на узле “Получить данные” ожидая сообщение. Далее пользователь входящий в группу "Сотрудники" (например Сверчков) запускает экземпляр процесса "Пример 8-3", вводит текст посылаемого сообщения.

    Экземпляр процесса "Пример 8-3" завершается. При этом экземпляр процесса "Пример 8-4", получает сообщение и управление переходит в узел “Ознакомиться с полученным сообщением”, пользователь Личинкин видит присланное сообщение на форме.

    2). Второй сценарий - "Несколько получателей".

    Реализуйте сценарий отправки сообщения сразу нескольким экземплярам "Пример 8-4".

    Запустите экземпляры процесса "Пример 8-4" под всеми пользователями, входящими в группу "Отдел кадров":

    • Личинкин
    • Гусеницын.

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

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

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

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

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

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

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

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

    1. Какой из элементов соответствует отправке сообщения?

    a. Элемент Z7 c p1.png

    b. Элемент Z7 c p2.png.

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

    3. В элементе «Отправить сообщение»

    a. Точка управления сразу переходит в следующий узел

    b. Точка управления ждет ответа на сообщение.

    Практическое занятие "Таймеры и обработчики"

    Цель занятия

    Целью работы является изучение работы с элементами бизнес-процессов - таймерами и обработчиками.

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

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

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


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

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

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

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

    1. Откройте среду разработки.
    2. Создайте новый проект - Занятие 9.
    3. Создайте новый бизнес-процесс:
    4. Название процесса – "Пример 9-1".
    5. Добавьте элементы на схему бизнес-процесса в соответствии с Рис.4.01.
    6. R290e ru.png
      Рисунок 4.01. Схема бизнес-процесса "Пример 9-1"


      "Пример 9-1" является упрощенным вариантом бизнес-процесса "Тестирование".

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


      В бизнес-процессе используются следующие элементы палитры: “Начало”, “Окончание”, “Действие”, “Задача сценария”, “Аннотация”, “Параллельный шлюз” и “Таймер”.

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


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

      Из узла "Выполнить тестирование" выходит два перехода: из таймера и непосредственно из узла-действия. Для добавления перехода из Таймера воспользуйтесь одним из следующих вариантов:

      • наведите курсор мыши на таймер, присоединенный к узлу; появится значок "стрелка"; захватите ее и перетяните в необходимый узел для создания перехода (см. Рис.4.02)
      • выберите в палитре элемент "Переход", щёлкните таймер в узле, переведите курсор на необходимый элемент, щёлкните его левой кнопкой мыши еще раз для создания перехода между элементами (см. Рис.4.03).

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


      R291a ru.png
      Рисунок 4.02. Создание перехода из таймера, присоединенного к узлу


      R291b ru.png
      Рисунок 4.03. Создание перехода из таймера, присоединенного к узлу с помощью элемента "Переход"


      Для узла "Задача сценария" используйте опцию компактный вид (см. пункт 1 раздела "Практическое занятие "Работа с Word-ботом". Порядок выполнения работы.",Замечание. Рис.2.02).

      Для придания наглядности схемы расположите напротив "Задачи сценария" элемент "Аннотация". Введите "Описание" аннотации, для этого перейдите в одноименное свойство элемента.

    7. Создайте роли.
    8. В разрабатываемом процессе используются следующие Роли:
      • Студент
      • Преподаватель.
      Роль "Студент" будет инициализирована пользователем, запустившим процесс, поэтому не требует инициализатора. Роль "Преподаватель" должна быть проинициализирована с помощью отношения "Преподаватель". Выделите созданную роль, нажмите "Изменить", перейдите на закладку "Задать роль с помощью отношения", введите название отношения и выберите параметр отношения - "Студент", как показано на Рис.4.04.
      R292e8 ru.png
      Рисунок 4.04. Инициализация роли с помощью отношения

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

    9. Свяжите с начальным узлом бизнес-процесса роль "Студент", с остальными узлами свяжите роли в соответствии с Рис.4.01.
    10. Создайте переменные.
    11. В процессе "Пример 9-1" используются следующие переменные:
      • Вопросы - переменная формата Список(Строк), вводится Преподавателем в узле "Ввести данные тестирования"
      • Ответы - переменная формата Список(Строк), вводится Студентом в узле "Выполнить тестирование"
      • Дата и время окончания тестирования - переменная формата "Дата со временем", определяется в обработчике "Выполнить формулу" задачи-сценария "Определение даты и времени окончания тестирования"
      • Длительность тестирования - переменная формата "Целое число", вводится Преподавателем в узле "Ввести данные тестирования".
      R293e8 ru.png
      Рисунок 4.05. Переменные бизнес-процесса "Пример 9-1"


    12. Выберите класс обработчика в задаче-сценарии "Определение даты и времени окончания тестирования".
    13. Выделите на схеме элемент "Задача-сценарий", перейдите в его свойства и щёлкните поле “Класс обработчика”, после чего выберите из списка обработчик "Выполнить формулу". Добавьте конфигурацию следующего вида: 'Дата и время окончания тестирования'=current_date_time()+'Длительность тестирования'; Здесь используется функция current_date_time(), определяющая текущую дату и время, к результату данной функции прибавляется значение переменной "Длительность тестирования" (задано в минутах). Полученное значение сохраняется в переменной "Дата и время окончания тестирования".
      R294 ru.png
      Рисунок 4.06. Определение Даты и времени окончания тестирования с помощью обработчика


    14. Настройте таймер в узле "Выполнить тестирование".
    15. Выделите таймер, перейдите в его свойства, выберите поле "Задержка" (см. Рис.4.07).
      R295a ru.png
      Рисунок 4.07. Вызов настройки задержки таймера

      В появившейся форме необходимо выбрать "Единицу измерения" - "минуты", "Задержка таймера" - "+1", "Базовая дата" - "Дата и время окончания тестирования" (см. Рис.4.08).


      R295b ru.png
      Рисунок 4.08. Задержка таймера


      Нажмите на значок для вызова формы выбора единицы измерения (см. Рис.4.08), выберите "минуты" (см. Рис.4.09).


      R295c ru.png
      Рисунок 4.09. Выбор единицы измерения


      Нажмите на значок для вызова формы ввода задержки таймера относительно базовой даты (см. Рис.4.08), введите значение +1 (см. Рис.4.10).

      Замечание. Задержка должна содержать только знак и непосредственно значение задержки. Использование пробелов и других символов недопустимо.


      R295d ru.png
      Рисунок 4.10. Ввод задержки таймера


      Нажмите на значок для вызова формы выбора базовой даты (см. Рис.4.08), выберите переменную "Дата и время окончания тестирования" (см. Рис.4.11).


      R295e ru.png
      Рисунок 4.11. Выбор базовой даты


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

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

      Щёлкните узел «Ввести данные тестирования» графа процесса "Пример 9-1" правой кнопкой мыши и выберите команду «Форма» > «Создать форму» (левой кнопкой мыши). (Подробнее см. Практическое занятие "Изучение перспективы данных", Порядок выполнения работы, Пункт 6, Замечание, Рис.4.11-4.12).

      На данной форме Преподаватель задает длительность тестирования (в минутах) и вводит список вопросов.

      Поместите на форму два экземпляра компонента форм - "Ввод переменной" для ввода значений в переменные "Длительность тестирования" и "Вопросы" соответственно (см. Рис.4.12). (Подробнее см. Практическое занятие "Изучение перспективы операций", Порядок выполнения работы, Пункт 14, Рис.5.17-5.18).


      R296e8 ru.png
      Рисунок 4.12. Форма "Ввести данные тестирования"


      Сохраните и закройте форму.


      Задайте валидацию для переменных формы "Ввести данные тестирования".

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

      Для переменной "Вопросы" добавьте валидатор "Обязательное поле". В поле "Сообщение об ошибке" введите - "Вопросы - обязательное поле".

      Для переменной "Длительность тестирования" добавьте валидатор "Обязательное поле" (в поле "Сообщение об ошибке" введите - "Длительность - обязательное поле"), а также "Диапазон числа" установив минимальное значение в "1" включительно (см. Рис.4.13), при этом в поле "Сообщение об ошибке" введите - "Минимальная длительность тестирования 1 минута".


      R297 st.png
      Рисунок 4.13. Валидатор "Диапазон числа" для переменной "Длительность тестирования"


      Создайте форму для узла "Выполнить тестирование" (см. Рис.4.14).

      Здесь студент отвечает на тестовые вопросы.

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

      Перетяните на форму с помощью мыши компонент "Редактировать связанные списки", дважды щёлкните по нему или вызовите контекстное меню и выберите пункт "Параметры компонента". Установите параметры Добавления/Изменения/Удаления в значение "true". В поле "Название переменной" необходимо выбрать переменную "Ответы" (см. Рис.4.15).


      R298e8 ru.png
      Рисунок 4.14. Форма "Выполнить тестирование"


      R299e8 ru.png
      Рисунок 4.15. Редактировать связанные списки для переменной "Ответы"


      Аналогично создайте остальные формы согласно Рис.4.16-4.18.


      R300e8 ru.png
      Рисунок 4.16. Форма "Уведомление для преподавателя о закрытии тестирования"


      R301e8 ru.png
      Рисунок 4.17. Форма "Уведомление для студента о закрытии тестирования"


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


      R302e8 ru.png
      Рисунок 4.18. Форма "Ознакомиться с выполненным тестированием"


    18. Загрузите бизнес-процесс на RunaWFE сервер.
    19. Загрузите разработанный бизнес-процесс на сервер, используя пункт меню “Файл/Экспорт процесса” (Подробнее см. Практическое занятие "Изучение перспективы потока управления", Порядок выполнения работы, Пункт 11-14). Войдите в web-интерфейс RunaWFE Free под пользователем Administrator. После загрузки необходимо настроить обладателей полномочий на данный процесс. Для "Пример 9-1" нужно добавить в обладатели полномочий группу "Группа МИБ-1" с правами на чтение, чтение экземпляра и запуск, а также группу "Преподаватели" с правами на чтение и чтение экземпляра (Подробнее см. "Практикум. Вводное занятие", Порядок выполнения работы, Пункт 28-31).
    20. Запустите бизнес-процесс "Пример 9-1" и доведите экземпляр процесса до завершения.
    21. Описание порядка выполнения бизнес-процесса взаимодействия. Студент из группы "Группа МИБ-1" запускает процесс "Пример 9-1", по отношению "Преподаватель" выбирается соответствующий Преподаватель данного Студента. Преподаватель вводит список вопросов для тестирования, а также задает длительность тестирования в минутах. Срабатывает обработчик который определяет Дату и время окончания тестирования на основе текущей даты/времени и выбранной длительности тестирования. Студент получает задание "Выполнить тестирование", где отвечает на тестовые вопросы. Создается таймер. Если Студент не выполнит задание до "Дата и время окончания тестирования" + 1 минута, то таймер сработает, и задание "Выполнить тестирование" будет просрочено. Тестирование будет закрыто, Преподаватель и Студент получат соответствующие уведомления. В случае же если студент успеет выполнить задание за отведенное время, Преподаватель получит уведомление со списком введенных Студентом ответов на тестовые вопросы. При выполнении процесса необходимо проверить оба варианта сценария выполнения. Выполнение бизнес-процессов по шагам. Для запуска процесса "Пример 9-1" войдите в систему под пользователем из группы "Группа МИБ-1", например "Мухин", и щёлкните имя процесса в общем списке бизнес-процессов (См. Рис.4.19).
      R303e8 ru.png
      Рисунок 4.19. Запуск бизнес-процесса "Пример 9-1"

      Войдите в систему под пользователем "Бабочкин", который является Преподавателем студента Мухина(см. Рис.4.20).

      В списке заданий будет активное задание - "Ввести данные тестирования" (см. Рис.4.21).


      R304a ru.png
      Рисунок 4.20. Отношение "Преподаватель"


      R304be8 ru.png
      Рисунок 4.21. Задание, соответствующее узлу “Ввести данные тестирования”

      Возьмите задание на выполнение, введите длительность тестирования - 2 (минуты), а также список вопросов (см. Рис.4.22).


      R305e8 ru.png
      Рисунок 4.22. Ввод данных тестирования


      Выполните задачу.

      Далее сработает обработчик, который определит "Дату и время окончания тестирования" (см. Рис.4.23).


      R306 ru.png
      Рисунок 4.23. Определение даты и времени окончания тестирования


      Как видно из Рис.4.23, задание "Ввести данные" было выполнено в 21:37:01, после чего сработал обработчик, функция current_date_time вернет текущую дату и время - 08.04.2014 21:37:01, к полученному значению будет прибавлено 2 минуты (Длительность тестирования), в результате переменная "Дата и время окончания тестирования" будет инициализирована значением 08.04.2014 21:39:01.

      Точка управления перейдет в узел "Выполнить тестирование". Одновременно с этим будет запущен таймер на задержку 1 минута относительно базовой даты, переменной "Дата и время окончания тестирования" (т.е. в 08.04.2014 21:40).


      Войдите в систему под пользователем Мухин. В списке активных задач будет "Выполнить тестирование".

      Откройте задачу, введите ответы на вопросы, но не завершайте ее в течении 3-х минут (см. Рис.4.24) т.е. пока не сработает таймер.


      R307e8 ru.png
      Рисунок 4.24. Задача "Выполнить тестирование"


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


      R308e8 ru.png
      Рисунок 4.25. Задача "Выполнить тестирование" просрочена


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

      Выполните эти задачи и завершите процесс.


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


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

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

    Можно воспользоваться функцией копирования процесса (подробнее см. Практическое занятие "Изучение перспективы потока управления", Задание для самостоятельной работы, Пункты 1,2,3), после чего внести изменения в соответствии со схемой изображенной на Рис.4.26.

    R345e ru.png
    Рисунок 4.26. Схема бизнес-процесса "Пример 9-2"


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


    Описание ролей

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


    Описание переменных

    Добавьте дополнительно переменную "Дата и время начала тестирования" формата "Дата со временем" (см. Рис. 4.27).


    R310 ru.png
    Рисунок 4.27. Переменные бизнес-процесса "Пример 9-2"


    Описание графических форм

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


    Измените форму узла "Ввести данные тестирования" в соответствии с Рис.4.28, добавьте компонент Ввод переменной для "Дата и время начала тестирования".


    R311e8 ru.png
    Рисунок 4.28. Форма "Ввести данные тестирования"


    Кроме того, добавьте валидаторы для переменной "Дата и время начала тестирования":

    • обязательное поле
    • диапазон даты относительно текущей (см. Рис.4.29).

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


    R312 st.png
    Рисунок 4.29. Валидатор "Диапазон даты относительно текущей"


    Создайте форму для узла "Ознакомиться с датой и временем проведения тестирования" (см. Рис.4.30).


    R313e8 ru.png
    Рисунок 4.30. Форма узла "Ознакомиться с датой и временем проведения тестирования"

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

    Остальные формы соответствуют формам процесса "Пример 9-1".


    Описание обработчиков

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

    Введите следующую конфигурацию:

    'Дата и время окончания тестирования'='Дата и время начала тестирования'+'Длительность тестирования';
    

    Таким образом "Дата и время окончания тестирования" теперь определяется относительно "Дата и время начала тестирования", а не результата функции current_date_time(), т.е. текущего времени (Пример 9-1).


    Настройка задержки начала тестирования

    Выделите таймер, расположенный перед узлом "Выполнение тестирования", перейдите в свойства и вызовите конфигуратор задержки. Выберите в качестве базовой даты - переменную "Дата и время начала тестирования", задержка - 0 минут (см. Рис.4.31).


    R314 ru.png
    Рисунок 4.31. Настройка задержки начала тестирования

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

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


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

    Проверьте оба сценария выполнения:

    • студент успевает выполнить работу за отведенное время
    • студент не успевает выполнить работу за отведенное время.

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


    R315 ru.png
    Рисунок 4.32. Ввод данных преподавателем

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

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


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

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

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

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

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

    1.Что такое Таймер? Как он используется?

    2.Что такое Обработчик? Как он используется?

    3.Можно ли поместить Таймер на переход?

    4.Можно ли присоединить Обработчик к Действию?

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

    Цель занятия

    Целью занятия является изучение мульти-подпроцессов.

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

    Мульти-подпроцесс.

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

    Количество экземпляров мульти-подпроцесса может определяться:

    • значением специальной «присоединенной» переменной формата список
    • по группе
    • по отношению.


    Мульти-подпроцесс по переменной

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


    Мульти-подпроцесс по группе

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


    Мульти-подпроцесс по отношению

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

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


    Сопоставление переменных процесса и подпроцесса

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

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

    В случае использования в сопоставлении переменной формата "Список" родительского процесса, используется следующие правила:

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

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

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

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

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

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

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

    Разработка бизнес-процесса

    1. Запустите RunaWFE Симулятор, для этого дважды щёлкните по ярлыку «Start Simulation» на рабочем столе, или выполните команду меню Пуск / Программы / RunaWFE Free/ Start Simulation. (Подробнее см. "Практикум. Вводное занятие", Порядок выполнения работы, Пункт 1).
    2. Войдите в web-интерфейс системы RunaWFE Free под пользователем Administrator. (см. "Практикум. Вводное занятие", Порядок выполнения работы, Пункт 2, Рис.5.02) Замечание. По умолчанию пароль пользователя Administrator - "wf".
    3. Создайте следующих пользователей: (см. "Практикум. Вводное занятие", Порядок выполнения работы, Пункты 10-11, Рис.5.10-5.11)
      • Петров Сергей Петрович
      • Константинов Игорь Сергеевич
      • Иванов Иван Иванович
      • Сидоров Валентин Игоревич
      • Сергеев Николай Иванович
      • Николаев Виктор Александрович
      • Андреев Николай Викторович
      • Дмитров Арсений Яковлевич
      • Юрьев Сергей Сергеевич.
      При создании, введите пароль для каждого пользователя (например - 123), знать старый пароль пользователя при этом не требуется (см. Практическое занятие "Изучение перспективы ресурсов", Порядок выполнения работы, Пункты 4-5, Рис.3.01-3.02).
    4. Создайте группы (см. "Практикум. Вводное занятие", Порядок выполнения работы, Пункты 4-6, Рис.5.05-5.06):
      • Шеф-редакторы
      • Верстальщик
      • Редакторы
      • Обозреватели.
    5. Добавьте пользователей в группы:
    6. группа "ШЕФ редакторы":
      • Петров Сергей Петрович
      • Константинов Игорь Сергеевич,
      группа "Редакторы":
      • Сидоров Валентин Игоревич
      • Сергеев Николай Иванович
      • Николаев Виктор Александрович,
      группа "Верстальщик":
      • Иванов Иван Иванович,
      группа "Обозреватели":
      • Андреев Николай Викторович
      • Дмитров Арсений Яковлевич
      • Юрьев Сергей Сергеевич.
      Кроме того, добавьте всех созданных пользователей в группу "Сотрудники".
    7. Дайте полномочия группе "Сотрудники" на вход в систему (см. "Практикум. Вводное занятие", Порядок выполнения работы, пункты 7-9, Рис.5.07-5.09 ).
    8. Дайте полномочия группе "Редакторы" на чтение группы "Обозреватели".
    9. Для этого откройте список исполнителей, выберите группу "Обозреватели", нажмите на "Обладатели полномочий". Добавьте в список группу "Редакторы", установите права "Читать" (см. Рис.5.01).
      R350 e ru441.png
      Рисунок 5.01. Обладатели полномочий на группу "Обозреватели"


    10. Дайте полномочия группе "Редакторы" на чтение на всех пользователей, входящих в группу "Обозреватели".
    11. Для этого выберите пользователя, перейдите в обладатели полномочия, и добавьте группу "Редакторы" с правами на чтение (см. Рис.5.02).
      R351 e ru441.png
      Рисунок 5.02. Обладатели полномочий на пользователя "Андреев" входящего в группу "Обозреватели"


    12. Откройте среду разработки.
    13. Создайте новый проект "Занятие 10".
    14. Создайте новый процесс "Пример 10-1".
    15. Добавьте элементы на схему бизнес-процесса в соответствии с Рис.5.03.
    16. R352e ru.png
      Рисунок 5.03. Схема бизнес-процесса "Пример 10-1"


      В бизнес-процессе используется следующие элементы: Начало, Мульти-подпроцесс, Действие, Задача сценария, Окончание, Аннотация.

      Для элемента "Задача сценария" используйте опцию компактный вид (см. пункт 1 раздела "Практическое занятие "Работа с Word-ботом". Порядок выполнения работы.",Замечание. Рис.2.02).

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

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

    17. Создайте роли.
    18. В разрабатываемом процессе используются следующие Роли:
      • Шеф-редактор
      • Верстальщик.
      Роль "Шеф-редактор" будет инициализирована пользователем, запустившим процесс, не требует инициализатора. Роль "Верстальщик" должна быть проинициализирована группой "Верстальщик" с помощью оргфункции. Выделите созданную роль, нажмите "Изменить", перейдите на вкладку "Группы и пользователи WF". Здесь необходимо выполнить синхронизацию с сервером, после чего "Выбрать" из списка группу "Верстальщик" (см. Рис.5.04). Для проверки и ввода параметров соединения с сервером воспользуйтесь ссылкой "Настройки соединения".
      R353 ru.png
      Рисунок 5.04. Инициализатор роли "Шеф-редактор"


    19. Свяжите с начальным узлом бизнес-процесса роль "Шеф-редактор", с остальными узлами свяжите роли в соответствии с Рис.5.03.
    20. Создайте переменные.
    21. В процессе "Пример 10-1" используются следующие переменные:
      • тексты рубрик - переменная формата "Список(Текст)". Содержит список текстов рубрик, сформированных в мульти-подпроцессах
      • выпуск журнала - переменная формата "Файл". Это docx файл журнала, формируется в задаче сценария "Оформить выпуск", с помощью обработчика Word
      • номер журнала - переменная формата "Целое число", вводится Шеф-редактором на стартовой форме процесса
      • год - переменная формата "Целое число", вводится Шеф-редактором на стартовой форме процесса
      • месяц - переменная формата "Строка", вводится Шеф-редактором на стартовой форме процесса
      • постер - переменная формата "Файл". Это файл постера для обложки журнала, вводится Шеф-редактором на стартовой форме процесса
      • Комментарий Шеф-редактора - переменная формата "Текст". Вводится шеф-редактором в задании "Принять решение о выпуске журнала" в случае отправки журнала на доработку.
      R354e ru.png
      Рисунок 5.05. Переменные бизнес-процесса "Пример 10-1"


    22. Создайте графические формы.
    23. Замечание. В случае если в системе установлен браузер Microsoft Internet Explorer устаревшей версии 7 (IE7) или 6 (IE6), то в качестве редактора форм должен быть использован FCKEditor2 (как переключить редактор см. в Практическое занятие "Изучение перспективы данных", Порядок выполнения работы, Пункт 6, Рис.4.09-4.10 ). Выделите узел «Начало» графа процесса "Пример 10-1" правой кнопкой мыши и выберите команду «Форма» > «Создать форму» (Подробнее см. Практическое занятие "Изучение перспективы данных", Порядок выполнения работы, Пункт 6, Замечание, Рис.4.11-4.12). На данной форме Шеф-редактор вводит переменные "номер журнала", "год", "месяц", "постер". Нажмите на иконку вставки в форму таблицы (см. Рис.5.06), введите свойства таблицы в соответствии с Рис.5.07.
      R355ae ru.png
      Рисунок 5.06. Вставка таблицы на форму


      R355be ru.png
      Рисунок 5.07. Свойства таблицы


      Заполните колонки таблицы как показано на Рис.5.08. Во втором столбце используйте компоненты "Ввод переменной" для ввода соответствующей переменной.


      R355ce ru.png
      Рисунок 5.08. Форма узла "Начало"


      Сохраните и закройте форму.

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

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


      R355d st.png
      Рисунок 5.09. Валидаторы переменных стартовой формы


      Кроме того добавьте скрипт формы. Для этого щёлкните правой клавишей мыши на стартовом узле, выберите "Форма > Скрипт формы" (см. Рис.5.10).


      R355ee ru.png
      Рисунок 5.10. Создание скрипта формы


      В появившемся окне введите следующий код:

      var monthNames = ["январь", "февраль", "март", "апрель", "май", "июнь", "июль", "август", "сентябрь", "октябрь", "ноябрь", "декабрь"];
         
      $(document).ready(function() {
        $("input[name='месяц']").autocomplete( {
         delay: 300,
         minLength: 0,
         source: monthNames
        });
        $("input[name='месяц']").focus(function() {
         $(this).autocomplete("search", $(this).val());
        });
      });
      

      Данный код подключает выбор из предопределённых значений для переменной "месяц".


      Создайте форму для узла "Корректировать рубрики".


      R356ae ru.png
      Рисунок 5.11. Форма узла "Корректировка рубрик"


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


      R356be ru.png
      Рисунок 5.12. Форма узла "Редактировать связанные списки"


      Создайте форму для узла "Принять решение о выпуске журнала". Используйте компонент "Отобразить переменную" для переменной "выпуск журнала", а также компонент "Ввод переменной" для переменной "Комментарий Шеф-редактора".


      R357e ru.png
      Рисунок 5.13. Форма узла "Принять решение о выпуске журнала"


      Добавьте валидатор для переменной "Комментарий Шеф-редактора" (см. Практическое занятие "Изучение перспективы операций", Порядок выполнения работы. Пункт 15, Рис.5.27-5.28).

      Используйте валидатор "Обязательное поле", проверка должна выполняться в контексте перехода по ветке "Отправить всем заново" (см. Рис.5.14).


      R357ae st.png
      Рисунок 5.14. Валидатор "Обязательное поле" в контексте перехода "Отправить всем заново"


    24. Выберите класс обработчика в задаче сценария "Оформить выпуск".
    25. Выделите на схеме элемент "Задача сценария", перейдите в его свойства и щёлкните в поле “Класс обработчика”, после чего выберите из списка обработчик "Word: формирование документа DOCX используя шаблон" (см. Рис.5.15).
      R358a ru.png
      Рисунок 5.15. Выбор обработчика


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

      В появившейся форме введите параметры выходного файла, файловый параметр - "выпуск журнала", имя "журнал.docx". Для входного файла шаблона используйте вариант "Файл в процессе". (см. Рис.5.16).


      R358b st441.png
      Рисунок 5.16. Конфигурация обработчика Word


      Нажмите на "Создать" для создания шаблона (см. Рис.5.17). Будет открыт редактор docx файлов, в котором необходимо создать шаблон.


      R358c st441.png
      Рисунок 5.17. Конфигурация обработчика Word


    26. Создайте шаблон для docx файла журнала.
    27. Используйте шаблон изображенный на Рис.5.18.
      R359 ru.png
      Рисунок 5.18. Шаблон для создания docx файла журнала


      Здесь выражения вида ${Переменная} будут заменены на значение переменной Переменная, в формате, определённом в среде разработки.

      Кроме того, здесь используется "Цикл" для вывода каждой рубрики из списка "тексты рубрик". Цикл определяется 3-мя элементами: начало цикла, блок цикла и окончание цикла.

      Начало цикла в данном случае задано как ${items:тексты рубрик as рубрика}, где

      • items - это итератор, означающий итерацию по значениям
      • тексты рубрик - переменная список
      • рубрика - переменная, которая будет хранить текущее значение итератора (используется стандартный механизм замены, вида ${Переменная}).

      Для обозначения окончания цикла используется выражение ${/items}.

      На основе данной шаблона будет сформирован docx файл журнала.


    28. Создайте новый процесс "Пример 10-2"
    29. "Пример 10-2" будет использован как мульти-подпроцесс вызываемый из "Пример 10-1", предназначенный для формирования текста рубрики. Описание процесса Редактор выбирает обозревателя, который добавляет внутренний контент рубрики, далее формируется контент рубрики на основе внутреннего контента и ФИО обозревателя. Редактор утверждает контент.
    30. Добавьте из палитры объектов на схему элементы "Начало", "Действие", "Задача сценария", "Аннотация", "Окончание".
    31. Соедините элементы, и введите названия узлов в соответствии с Рис.5.19.
      R360e 2 ru.png
      Рисунок 5.19. Схема подпроцесса "Пример 10-2"


      Для задачи сценария дайте название "Сформировать текст рубрики". Кроме того используйте опцию "компактный вид" (см. пункт 1 раздела "Практическое занятие "Работа с Word-ботом". Порядок выполнения работы.",Замечание. Рис.2.02).

    32. Создайте роли:
      • Редактор
      • Обозреватель.
      Роль "Редактор" будет инициализирована пользователем из группы "Редакторы", по которой будет настроен мульти-подпроцесс "Пример 10-2" вызываемый из "Пример 10-1". Роль "Обозреватель", будет инициализирована пользователем из группы "Обозреватели" в форме узла "Выбор исполнителей для создания контента рубрики" с помощью компонента "Выбор из членов группы"
    33. Свяжите с начальным узлом бизнес-процесса роль "Редактор", с остальными узлами свяжите роли в соответствии с Рис.5.18.
    34. Создайте переменные:
      • Внутренний контент - формата "Текст", вводится обозревателем в форме "Создание внутреннего контента рубрики"
      • Контент рубрики - формата "Текст", формируется в задаче сценария "Сформировать текст рубрики" с помощью обработчика "Выполнить формулу"
      • Обозреватели - формата "Группа", имеет значение по умолчанию - "Обозреватели"
      • Комментарий от Шеф-редактора - формата "Текст", передается из основного процесса (Пример 10-1)
      • Комментарий редактора - формата "Текст", вводится редактором в задании "Выбрать исполнителей для создания контента рубрики"
      • ФИО обозревателя - формата "Строка", формируется в задаче сценария "Получить ФИО обозревателя" с помощью обработчика "Получить информацию об исполнителе".
      Для установки значения по умолчанию "Обозреватели", после ввода названия и выбора формата переменной, нажмите "Далее", переключитесь на вариант "Использовать значение по умолчанию" и введите "Обозреватели" (см. Рис.5.20).
      R361 ru.png
      Рисунок 5.20. Значение по умолчанию для переменной Обозреватели


      R362e 2 ru.png
      Рисунок 5.21. Список переменных подпроцесса "Пример 10-2"


    35. Создайте графические формы заданий.
    36. Замечание. В случае если в системе установлен браузер Microsoft Internet Explorer устаревшей версии 7 (IE7) или 6 (IE6), то в качестве редактора форм должен быть использован FCKEditor2 (как переключить редактор см. в Практическое занятие "Изучение перспективы данных", Порядок выполнения работы, Пункт 6, Рис.4.09-4.10 ). Щёлкните правой клавишей мыши по узлу для вызова меню. Выберите "Форма > Создать форму". В появившемся окне выберите тип формы - "Произвольная форма" и нажмите "ОК". Создайте форму для задания "Выбрать исполнителей для создания контента рубрики". Расположите компонент "Выбор из членов группы" с параметрами представленными на Рис.5.22, для инициализации роли "Обозреватель". В качестве параметра "Пользователь" выберите роль "Обозреватель". В качестве группы необходимо выбрать переменную "Обозреватели" (см. Практическое занятие "Изучение перспективы данных", Порядок выполнения работы. Пункт 6, Рис.4.16-4.18).
      R363ae ru.png
      Рисунок 5.22. Выбор из членов группы "Обозреватели


      Также добавьте компонент "Отобразить переменную" для переменной "Комментарий от Шеф-редактора" и "Ввод переменной" для переменной "Комментарий редактора" (см. Рис.5.23).


      R363be ru.png
      Рисунок 5.23. Форма задания "Выбрать исполнителей для создания контента рубрики"


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


      R363b st.png
      Рисунок 5.24. Валидация роли Обозреватель


      Создайте форму для задания "Создание внутреннего контента рубрики".


      R364e ru.png
      Рисунок 5.25. Форма задания "Создать внутренний контент рубрики"


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


      Добавьте валидатор "Обязательно поле" для переменной "Внутренний контент" (см. Практическое занятие "Изучение перспективы операций", Порядок выполнения рабты. Пункт 15, Рис.5.27-5.28).


      В форме задания "Утвердить текст рубрики" расположите компонент "Отобразить переменную" для отображения значения переменной "Контент рубрики". Используйте отображение "Как неактивный компонент вывода" (см. Рис.5.26).


      R365e ru.png
      Рисунок 5.26. Форма задания "Утвердить текст рубрики"
    37. Выберите обработчик в задаче сценария "Получить ФИО обозревателя".
    38. Используйте обработчик "Получить информацию об исполнителе". Выделите задачу сценария, перейдите в ее свойства, выберите свойство "Класс обработчика", в появившейся форме выберите из списка "Получить информацию об исполнителе" (см. Рис.5.27).
      R366 3 ru.png
      Рисунок 5.27. Выбор класса обработчика


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

      R366 4 ru.png
      Рисунок 5.28. Получение информации об исполнителе


      Данный обработчик получают полное имя обозревателя.


    39. Выберите обработчик в задаче сценария "Сформировать текст рубрики"
    40. Используйте обработчик "Выполнить формулу". Выделите задачу сценария, перейдите в ее свойства, выберите свойство "Класс обработчика", в появившейся форме выберите из списка "Выполнить формулу" (см. Рис.5.29).
      R366 2 ru.png
      Рисунок 5.29. Выбор класса обработчика


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

      'Контент рубрики' =   "От обозревателя " + 'ФИО обозревателя' + "
      
      " + 'Внутренний контент' + "
      
      ";
      


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

      Для вставки переменных (Контент рубрики, Внутренний контент) используйте "Вставить переменную".

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


      R367 2 ru.png
      Рисунок 5.30. Конфигурация обработчика


    41. Сохраните и закройте процесс "Пример 10-2".
    42. Откройте бизнес-процесс "Пример 10-1".
    43. Вернемся к разработке бизнес-процесса выпуска номера журнала "Пример 10-1".
    44. Настройте мульти-подпроцесс "Создание контента для рубрик" в процессе "Пример 10-1".
    45. Щёлкните правой клавишей мыши по элементу "Мульти-подпроцесс" и выберите вариант "Использовать подпроцесс".
      R368e ru.png
      Рисунок 5.31. Использовать подпроцесс


      С узлом Мульти-подпроцесс связывается бизнес-процесс, экземпляры которого будут запускаться как подпроцессы. Выберите из списка в качестве подпроцесса - "Пример 10-2" (см. Рис.5.32).

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


      R368a ru.png
      Рисунок 5.32. Выбор мульти-подпроцесса по группе


      R368b ru.png
      Рисунок 5.33. Ввод названия группы


      Выберите роль "Редактор" подпроцесса "Пример 10-2" (см. Рис.5.34).


      R368c ru.png
      Рисунок 5.34. Выбор переменной подпроцесса


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

      Далее необходимо задать сопоставление переменных процесса и подпроцесса. Нажмите "Добавить", в появившейся форме выберите переменные "тексты рубрик" и "Контент рубрики". Разрешите использование для чтения и записи (см. Рис.5.35).


      R368d st.png
      Рисунок 5.35. Сопоставление переменных "тексты рубрик" - "Контент рубрики"


      Таким же образом добавьте сопоставление переменных "Комментарий Шеф-редактора" - "Комментарий от Шеф-редактора". Разрешите использование только для чтения (см. Рис.5.36).


      R368de st.png
      Рисунок 5.36. Сопоставление переменных процесса и подпроцесса


      Нажмите "ОК", сохраните и закройте процесс.

    46. Экспортируйте разработанные бизнес-процессы на сервер (Подробнее см. Практическое занятие "Изучение перспективы потока управления", Порядок выполнения работы, Пункты 11-14).
    47. Войдите на сервер под пользователем Administrator.
    48. Добавьте обладателей полномочий.
    49. Для бизнес-процесса "Пример 10-1" добавьте в обладателей полномочий группы "Шеф-редакторы" и "Сотрудники". Дайте группе "Шеф-редакторы" права на чтение, чтение экземпляра и запуск. Для группы "Сотрудники" дайте права на чтение и чтение экземпляра (Подробнее см. "Практикум. Вводное занятие", Порядок выполнения работы, Пункт 28-31).
      R369 e ru441.png
      Рисунок 5.37. Обладатели полномочий на бизнес-процесс "Пример 10-1"


    50. Запустите бизнес-процесс "Пример 10-1" и доведите экземпляр процесса до завершения.
    51. Выполнение бизнес-процессов по шагам Войдите в систему под пользователем входящим в группу "Шеф-редакторы", например "Петров Сергей Петрович". Щёлкните имя процесса в общем списке бизнес-процессов (См. Рис.5.38).
      R370 ru.png
      Рисунок 5.38. Запуск бизнес-процесса "Пример 10-1"


      Будет отображена стартовая форма бизнес-процесса "Пример 10-1", введите номер журнала, год, выберите из предлагаемых вариантов месяц.

      Нажмите на "Загрузить файл". Выберите файл постера (jpg или png) на обложку журнала.


      R371e ru.png
      Рисунок 5.39. Ввод данных на стартовой форме бизнес-процесса "Пример 10-1"


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

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

      Таким образом будут запущены 3 экземпляра подпроцесса "Пример 10-2", редакторы "Сидоров", "Сергеев", "Николаев" получат задание "Выбрать исполнителей для создания контента рубрики".


      R372e ru.png
      Рисунок 5.40. Запущено 3 экземпляра подпроцесса "Пример 10-2"


      Зайдите в систему под пользователем "Сидоров".

      Возьмите на выполнение активную задачу.


      R373e ru.png
      Рисунок 5.41. Активное задание "Выбрать исполнителей для создания контента рубрики"


      Выберите "Андреев" в качестве обозревателя и нажмите "Задание исполнено".


      R374e ru.png
      Рисунок 5.42. Выбор обозревателя


      Зайдите в систему под остальными пользователями входящими в группу "Редакторы" - "Сергеев", "Николаев" и выполните задание "Выбор исполнителей для создания контента рубрики", выбрав в качестве обозревателя "Дмитров" и "Юрьев" соответственно.


      Обозреватели "Андреев", "Дмитров" и "Юрьев" получат задание "Создать внутренний контента рубрики".

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


      R375e ru.png
      Рисунок 5.43. Ввод контента рубрики обозревателем Андреев


      R376e ru.png
      Рисунок 5.44. Ввод контента рубрики обозревателем Дмитров


      R377e ru.png
      Рисунок 5.45. Ввод контента рубрики обозревателем Юрьев


      Далее в каждом экземпляре "Пример 10-2" сработает обработчик формирующий контент рубрики, который будет передан редактору рубрики на утверждение.

      Редакторы "Сидоров", "Сергеев", "Николаев" получат задание "Утвердить текст рубрики".

      Зайдите в систему под каждым из редакторов и утвердите тексты рубрик.


      R378e ru.png
      Рисунок 5.46. Утверждение контента рубрики редактором "Сидоров"


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

      Верстальщик "Иванов" получит задание "Корректировать рубрики".

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


      R379e ru.png
      Рисунок 5.47. Задание "Корректировка рубрик"


      Выполните задание.

      Войдите в систему под пользователем "Петров".

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


      R380e ru.png
      Рисунок 5.48. Задание "Корректировать рубрики"


      Нажмите на ссылку "журнал.docx", будет загружен и открыт созданный файл журнала.


      Рисунок 5.49. Созданный DOCX файл нового выпуска номера журнала
      Рисунок 5.49. Созданный DOCX файл нового выпуска номера журнала


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


      R381ae ru.png
      Рисунок 5.50. Отправка номера журнала на доработку


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


      R381be ru.png
      Рисунок 5.51. Повторный запуск подпроцессов


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


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

    Описание самостоятельной работы

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

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

    Подготовка данных на сервере

    Войдите на сервер под пользователем Администратор.

    Создайте отношение «Шеф-Редактор» (См. пример создания отношения в пунктах 10-11 раздела "Практическое занятие "Изучение перспективы ресурсов", Порядок выполнения работы Рис.3.05-3.06).

    Добавьте в него, например следующие пары:

    • Петров-Сидоров
    • Петров-Сергеев
    • Константинов-Николаев.


    R382 ru.png
    Рисунок 5.52. Отношение Шеф-редактор


    Таким образом получаем, что Петров является шеф-редактором для пользователей редакторов Сидоров и Сергеев, а Константинов шеф-редактор пользователя редактора Николаев.

    Создайте группу

    • Авторы.

    Создайте пользователей и добавьте их в группу Авторы:

    • Максимов Роман Александрович
    • Егоров Вадим Анатольевич
    • Владимиров Евгений Юрьевич.

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

    R383 ru.png
    Рисунок 5.53. Группа "Авторы"


    Не забудьте дать полномочия группе "Редакторы" на чтение группы "Авторы". Для этого откройте список исполнителей, выберите группу "Авторы", нажмите на "Обладатели полномочий". Добавьте в список группу "Редакторы", установите полномочие "Читать". Также не забудьте дать полномочия группе "Редакторы" на чтение на всех пользователей, входящих в группу "Авторы". Для этого выберите пользователя, перейдите в обладатели полномочия, и добавьте группу "Редакторы" с правами на чтение. (В качестве примера можно посмотреть добавление обладателей полномочий на группу "Обозреватели" в Практическое занятие "Работа с мульти-подпроцессами", порядок выполнения, Пункты 7,8, Рис.5.01-5.02).


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

    Создайте на основе бизнес-процессов "Пример 10-1" и "Пример 10-2" бизнес-процессы "Пример 10-3" и "Пример 10-4" соответственно.

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


    Измените граф схемы бизнес-процессов в соответствии с Рис.5.54-5.55.

    Замечание. Схема бизнес-процесса "Пример 10-3" не отличается от "Пример 10-1", изменения будут только в параметрах элемента Мульти-подпроцесс.

    R384e ru.png
    Рисунок 5.54. Схема бизнес-процесса для самостоятельной работы "Пример 10-3"


    R385e 2 ru.png
    Рисунок 5.55. Схема мульти-подпроцесса "Пример 10-4"


    Добавьте к уже существующим ролям в бизнес-процессе "Пример 10-4", роль Автор без инициализатора:


    R386 ru.png
    Рисунок 5.56. Роли в бизнес-процессе "Пример 10-4"


    Добавьте переменные

    • Внешний контент - формата Текст
    • Авторы - формата Группа, при этом задайте значение по умолчанию - "Авторы" (см. пример установки значения по умолчанию для группы Обозреватели в "Пример 10-2")
    • ФИО автора - формата "Строка".


    R387e 2 ru.png
    Рисунок 5.57. Переменные бизнес-процесса "Пример 10-4"


    Замечание. В случае если в системе установлен браузер Microsoft Internet Explorer устаревшей версии 7 (IE7) или 6 (IE6), то в качестве редактора форм должен быть использован FCKEditor2 (как переключить редактор см. в Практическое занятие "Изучение перспективы данных", Порядок выполнения работы, Пункт 6, Рис.4.09-4.10 ).


    Измените форму задания "Выбрать исполнителей для создания контента рубрики", добавьте компонент форм "Выбор из членов группы" (используйте в качестве параметров роль Автор и переменную Авторы, см. Рис.5.58-5.59).


    R388ae ru.png
    Рисунок 5.58. Форма задания "Выбор исполнителей для создания контента рубрики"


    R388be ru.png
    Рисунок 5.59. Выбор из членов группы "Авторы"

    То есть, здесь редактор выбирает Автора и Обозревателя которые будут создавать контент рубрики.

    Для роли "Автор" добавьте валидатор роли "Обязательное поле" (см. валидатор для роли Обозреватель в "Пример 10-2").

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

    R389e ru.png
    Рисунок 5.60. Ввод переменной "Внешний контент"

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


    Аналогично получению ФИО обозревателя с помощью обработчика "Получить информацию об исполнителе", получите ФИО автора.

    R389e 2 ru.png
    Рисунок 5.61. Получение ФИО автора


    Измените конфигурацию обработчика в задаче сценария "Сформировать текст рубрики":

    'Контент рубрики' =   "От автора " + 'ФИО автора' + "
    
    " + 'Внешний контент' + "
    
    " + "От обозревателя " + 'ФИО обозревателя' + "
    
    " + 'Внутренний контент' + "
    
    ";
    
    R390 2 ru.png
    Рисунок 5.62. Конфигурация обработчика в задаче сценария "Сформировать текст рубрики"


    Таким образом "Контент рубрики" теперь будет складываться еще и из "внешнего контента" введенного Автором.

    Откройте процесс "Пример 10-3", вызовите настройку мульти-подпроцесса "Создание контента для рубрик". Здесь перейдите на вкладку "По отношению", в качестве подпроцесса выберите "Пример 10-4". Выполните синхронизацию с сервером и выберите отношение с названием "Шеф-редактор", в качестве параметра отношения используйте роль "Шеф-редактор". Обратите внимание на опцию "Обратное отношение", она должна быть установлена. Переменная в подпроцессе и сопоставление переменных процесса и подпроцесса оставьте неизменными (см. Рис.5.63).


    R391e st.png
    Рисунок 5.63. Настройка мульти-подпроцесса по обратному отношению


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

    Экспортируйте разработанные бизнес-процессы "Пример 10-3" и "Пример 10-4" на сервер.

    Дайте полномочия на чтение, чтение экземпляра и запуск бизнес-процесса "Пример 10-3" для группы "Шеф-редакторы", а для группы "Сотрудники" дайте право на чтение и чтение экземпляра.

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

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

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


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

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

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

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

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

    1. Что такое мульти-подпроцесс?
    2. Чем может определяться количество запускаемых экземпляров мульти-подпроцесса?
    3. Как используются Отношения в мульти-подпроцессе, что такое Обратное отношение?

    Ссылки

    1. Документация Runa WFE [официальный сайт проекта]. URL: https://runawfe.ru/Документация