Московский институт стали и сплавов
Опубликован: 24.09.2015 | Доступ: свободный | Студентов: 657 / 50 | Длительность: 24:54:00
Специальности: Руководитель
Практическое занятие 10:

Работа с мульти-подпроцессами

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

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

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

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

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

  • по значению специальной "присоединенной" переменной типа список
  • по группе
  • по отношению

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3. Создайте следующих пользователей: (см. "Изучение интерфейса системы RunaWFE" )

  • Петров Сергей Петрович
  • Константинов Игорь Сергеевич
  • Иванов Иван Иванович
  • Сидоров Валентин Игоревич
  • Сергеев Николай Иванович
  • Николаев Виктор Александрович
  • Андреев Николай Викторович
  • Дмитров Арсений Яковлевич
  • Юрьев Сергей Сергеевич

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

4. Создайте группы (см. "Изучение интерфейса системы RunaWFE" )

  • Шеф-редакторы
  • Верстальщик
  • Редакторы
  • Обозреватели

5. Добавьте пользователей в группы

группа "ШЕФ редакторы":

  • Петров Сергей Петрович
  • Константинов Игорь Сергеевич

группа "Редакторы":

  • Сидоров Валентин Игоревич
  • Сергеев Николай Иванович
  • Николаев Виктор Александрович

группа "Верстальщик":

  • Иванов Иван Иванович

группа "Обозреватели":

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

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

6. Дайте полномочия группе "Сотрудники" на вход в систему (см. "Изучение интерфейса системы RunaWFE" )

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

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

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

Обладатели полномочий на группу "Обозреватели"

Рис. 15.1. Обладатели полномочий на группу "Обозреватели"

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

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

Обладатели полномочий на пользователя "Андреев" входящего в группу "Обозреватели"

Рис. 15.2. Обладатели полномочий на пользователя "Андреев" входящего в группу "Обозреватели"

9. Откройте среду разработки

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

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

12. Добавьте элементы на схему бизнес-процесса в соответствии с рис. 15.3

Схема бизнес-процесса "Пример 10-1"

Рис. 15.3. Схема бизнес-процесса "Пример 10-1"

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

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

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

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

13. Создайте роли

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

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

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

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

Инициализатор роли "Верстальщик"

Рис. 15.4. Инициализатор роли "Верстальщик"

14. Свяжите с начальным узлом бизнес-процесса роль "Шеф-редактор", с остальными узлами свяжите роли в соответствии с рис. 15.3

15. Создайте переменные

В процессе "Пример 10-1" используются следующие переменные:

  • тексты рубрик - переменная формата "Список(Текст)". Содержит список текстов рубрик, сформированных в мульти-подпроцессах
  • выпуск журнала - переменная формата "Файл". Это docx файл журнала, формируется в задаче сценария "Оформить выпуск", с помощью обработчика Word
  • номер журнала - переменная формата "Целое число", вводится Шеф-редактором на стартовой форме процесса
  • год - переменная формата "Целое число", вводится Шеф-редактором на стартовой форме процесса
  • месяц - переменная формата "Строка", вводится Шеф-редактором на стартовой форме процесса
  • постер - переменная формата "Файл". Это файл постера для обложки журнала, вводится Шеф-редактором на стартовой форме процесса
  • Комментарий Шеф-редактора - переменная формата "Текст". Вводится шеф-редактором в задании "Принять решение о выпуске журнала" в случае отправки журнала на доработку.
Переменные бизнес-процесса "Пример 10-1"

Рис. 15.5. Переменные бизнес-процесса "Пример 10-1"

16. Создайте графические формы

Замечание. В случае если в системе установлен браузер Microsoft Internet Explorer устаревшей версии 7 (IE7) или 6 (IE6), то в качестве редактора форм должен быть использован FCKEditor2 (как переключить редактор см. в "Изучение перспективы данных" )

Выделите узел "Начало" графа процесса "Пример 10-1" правой кнопкой мыши и выберите команду "Форма" > "Создать форму" (Подробнее см. "Изучение перспективы данных" ).

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

Нажмите на иконку вставки в форму таблицы (см. рис. 15.6), введите свойства таблицы в соответствии с рис. 15.7

Вставка таблицы на форму

Рис. 15.6. Вставка таблицы на форму
Свойства таблицы

Рис. 15.7. Свойства таблицы

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

Форма узла "Начало"

Рис. 15.8. Форма узла "Начало"

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

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

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

Валидаторы переменных стартовой формы

Рис. 15.9. Валидаторы переменных стартовой формы

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

Создание скрипта формы

Рис. 15.10. Создание скрипта формы

В появившемся окне введите следующий код:

var monthNames = ["январь", "февраль", "март", "апрель", "май", "июнь", "июль", "август", "сентябрь", "октябрь", "ноябрь", "декабрь"];
$(document).ready(function() {
$("input[name='месяц']").autocomplete( {
delay: 300,
minLength: 0,
source: monthNames
});
$("input[name='месяц']").focus(function() {
$(this).autocomplete("search", $(this).val());
});
});

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

Создайте форму для узла "Корректировать рубрики".

Форма узла "Корректировка рубрик"

Рис. 15.11. Форма узла "Корректировка рубрик"

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

Форма узла "Редактировать связанные списки"

Рис. 15.12. Форма узла "Редактировать связанные списки"

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

Форма узла "Принять решение о выпуске журнала"

увеличить изображение
Рис. 15.13. Форма узла "Принять решение о выпуске журнала"

Добавьте валидатор для переменной "Комментарий Шеф-редактора" (см. "Изучение перспективы операций" ).

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

Валидатор "Обязательное поле" в контексте перехода "Отправить всем заново"

увеличить изображение
Рис. 15.14. Валидатор "Обязательное поле" в контексте перехода "Отправить всем заново"

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

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

Выбор обработчика

Рис. 15.15. Выбор обработчика

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

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

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

Рис. 15.16. Конфигурация обработчика Word

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

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

Рис. 15.17. Конфигурация обработчика Word

18. Создайте шаблон для docx файла журнала

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

Шаблон для создания docx файла журнала

Рис. 15.18. Шаблон для создания docx файла журнала

Здесь выражения вида ${Переменная} будут заменены на значение переменной Переменная, в формате, определённом в среде разработки.

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

Начало цикла в данном случае задано как ${items:тексты рубрик as рубрика}, где

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

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

На основе данной шаблона будет сформирован docx файл журнала.

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

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

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

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

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

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

Схема подпроцесса "Пример 10-2"

Рис. 15.19. Схема подпроцесса "Пример 10-2"

Для задачи сценария дайте название "Сформировать текст рубрики". Кроме того используйте опцию "компактный вид" (см. "Работа с MS Word-ботом" )

21. Создайте роли

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

Роль "Редактор" будет инициализирована пользователем из группы "Редакторы", по которой будет настроен мульти-подпроцесс "Пример 10-2" вызываемый из "Пример 10-1".

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

22. Свяжите с начальным узлом бизнес-процесса роль "Редактор", с остальными узлами свяжите роли в соответствии с рис. 15.18

23. Создайте переменные

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

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

Значение по умолчанию для переменной Обозреватели

Рис. 15.20. Значение по умолчанию для переменной Обозреватели
Список переменных подпроцесса "Пример 10-2"

Рис. 15.21. Список переменных подпроцесса "Пример 10-2"

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

Замечание. В случае если в системе установлен браузер Microsoft Internet Explorer устаревшей версии 7 (IE7) или 6 (IE6), то в качестве редактора форм должен быть использован FCKEditor2 (как переключить редактор см. в "Изучение перспективы данных" )

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

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

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

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

Выбор из членов группы "Обозреватели

Рис. 15.22. Выбор из членов группы "Обозреватели

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

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

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

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

Валидация роли Обозреватель

Рис. 15.24. Валидация роли Обозреватель

Создайте форму для задания "Создание внутреннего контента рубрики".

Форма задания "Создать внутренний контент рубрики"

Рис. 15.25. Форма задания "Создать внутренний контент рубрики"

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

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

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

Форма задания "Утвердить текст рубрики"

Рис. 15.26. Форма задания "Утвердить текст рубрики"

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

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

Выбор класса обработчика

Рис. 15.27. Выбор класса обработчика

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

Контент_рубрики = "От обозревателя " + Обозреватель.getFullName();
Контент_рубрики += "\r\n\r\n";
Контент_рубрики += Внутренний_контент;
Контент_рубрики += "\r\n\r\n";

Данный код формирует контент рубрики с помощью конкатенации значения переменной "Внутренний контент", ФИО обозревателя, строки "От обозревателя " и последовательностей "\r\n".

Для вставки переменных (Контент рубрики, роль Обозреватель) используйте "Вставить переменную".

Для определения ФИО обозревателя используется функция getFullName().

Последовательность символов "\r\n" используется для перевода позиции (в формируемой строке) в начало следующей строки.

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

Рис. 15.28. Конфигурация обработчика

26. Сохраните и закройте процесс "Пример 10-2"

27. Откройте бизнес-процесс "Пример 10-1"

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

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

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

Использовать подпроцесс

Рис. 15.29. Использовать подпроцесс

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

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

Выбор мульти-подпроцесса по группе

Рис. 15.30. Выбор мульти-подпроцесса по группе
Ввод названия группы

Рис. 15.31. Ввод названия группы

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

Выбор переменной подпроцесса

Рис. 15.32. Выбор переменной подпроцесса

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

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

Сопоставление переменных "тексты рубрик" - "Контент рубрики"

Рис. 15.33. Сопоставление переменных "тексты рубрик" - "Контент рубрики"

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

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

увеличить изображение
Рис. 15.34. Сопоставление переменных процесса и подпроцесса

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

29. Экспортируйте разработанные бизнес-процессы на сервер (Подробнее см. "Изучение перспективы потока управления" )

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

31. Добавьте обладателей полномочий

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

Дайте группе "Шеф-редакторы" права на чтение, чтение экземпляра и запуск. Для группы "Сотрудники" дайте права на чтение и чтение экземпляра (Подробнее см. "Изучение интерфейса системы RunaWFE" ).

Обладатели полномочий на бизнес-процесс "Пример 10-1"

Рис. 15.35. Обладатели полномочий на бизнес-процесс "Пример 10-1"

32. Запустите бизнес-процесс "Пример 10-1" и доведите экземпляр процесса до завершения.

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

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

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

Запуск бизнес-процесса "Пример 10-1"

Рис. 15.36. Запуск бизнес-процесса "Пример 10-1"

Будет отображена стартовая форма бизнес-процесса "Пример 10-1", введите номер журнала, год, выберите из предлагаемых вариантов месяц.

Нажмите "Загрузить файл". Выберите файл постера (jpg или png) на обложку журнала.

Ввод данных на стартовой форме бизнес-процесса "Пример 10-1"

увеличить изображение
Рис. 15.37. Ввод данных на стартовой форме бизнес-процесса "Пример 10-1"

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

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

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

Запущено 3 экземпляра подпроцесса "Пример 10-2"

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

Зайдите в систему под пользователем "Сидоров".

Возьмите на выполнение активную задачу.

Активное задание "Выбрать исполнителей для создания контента рубрики"

увеличить изображение
Рис. 15.39. Активное задание "Выбрать исполнителей для создания контента рубрики"

Выберите "Андреев" в качестве обозревателя и нажмите "Задание исполнено".

Выбор обозревателя

увеличить изображение
Рис. 15.40. Выбор обозревателя

Зайдите в систему под остальными пользователями входящими в группу "Редакторы" - "Сергеев", "Николаев" и выполните задание "Выбор исполнителей для создания контента рубрики", выбрав в качестве обозревателя "Дмитров" и "Юрьев" соответственно.

Обозреватели "Андреев", "Дмитров" и "Юрьев" получат задание "Создать внутренний контента рубрики".

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

Ввод контента рубрики обозревателем Андреев

увеличить изображение
Рис. 15.41. Ввод контента рубрики обозревателем Андреев
Ввод контента рубрики обозревателем Дмитров

Рис. 15.42. Ввод контента рубрики обозревателем Дмитров
Ввод контента рубрики обозревателем Юрьев

увеличить изображение
Рис. 15.43. Ввод контента рубрики обозревателем Юрьев

Далее в каждом экземпляре "Пример 10-2" сработает обработчик формирующий контент рубрики, который будет передан редактору рубрики на утверждение.

Редакторы "Сидоров", "Сергеев", "Николаев" получат задание "Утвердить текст рубрики".

Зайдите в систему под каждым из редакторов и утвердите тексты рубрик.

Утверждение контента рубрики редактором "Сидоров"

увеличить изображение
Рис. 15.44. Утверждение контента рубрики редактором "Сидоров"

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

Верстальщик "Иванов" получит задание "Корректировать рубрики".

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

Задание "Корректировка рубрик"

Рис. 15.45. Задание "Корректировка рубрик"

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

Войдите в систему под пользователем "Петров".

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

Задание "Корректировать рубрики"

увеличить изображение
Рис. 15.46. Задание "Корректировать рубрики"

Нажмите на ссылку "журнал.docx", будет загружен и открыт созданный файл журнала.

Созданный DOCX файл нового выпуска номера журнала

увеличить изображение
Рис. 15.47. Созданный DOCX файл нового выпуска номера журнала

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

Отправка номера журнала на доработку

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

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

Повторный запуск подпроцессов

Рис. 15.49. Повторный запуск подпроцессов

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

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

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

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

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

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

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

Создайте отношение "Шеф-Редактор" (См. "Изучение перспективы ресурсов" ).

Добавьте в него, например следующие пары:

  • Петров-Сидоров
  • Петров-Сергеев
  • Константинов-Николаев
Отношение Шеф-редактор

Рис. 15.50. Отношение Шеф-редактор

Таким образом получаем, что Петров является шеф-редактором для пользователей редакторов Сидоров и Сергеев, а Константинов шеф-редактор пользователя редактора Николаев.

Создайте группу

  • Авторы

Создайте пользователей и добавьте их в группу Авторы:

  • Максимов Роман Александрович
  • Егоров Вадим Анатольевич
  • Владимиров Евгений Юрьевич
Группа "Авторы"

Рис. 15.51. Группа "Авторы"

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

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

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

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

Измените граф схемы бизнес-процессов в соответствии с рисунками 15.52, 15.53

Замечание. Схема бизнес-процесса "Пример 10-3" не отличается от "Пример 10-1", изменения будут только в параметрах элемента Мульти-подпроцесс.

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

Рис. 15.52. Схема бизнес-процесса для самостоятельной работы "Пример 10-3"
Схема мульти-подпроцесса "Пример 10-4"

Рис. 15.53. Схема мульти-подпроцесса "Пример 10-4"

Добавьте к уже существующим ролям в бизнес-процессе "Пример 10-4", роль Автор без инициализатора:

Роли в бизнес-процессе "Пример 10-4"

Рис. 15.54. Роли в бизнес-процессе "Пример 10-4"

Добавьте переменные

  • Внешний контент - формата Текст
  • Авторы - формата Группа, при этом задайте значение по умолчанию - "Авторы" (см. пример установки значения по умолчанию для группы Обозреватели в "Пример 10-2")
Переменные бизнес-процесса "Пример 10-4"

Рис. 15.55. Переменные бизнес-процесса "Пример 10-4"

Замечание. В случае, если в системе установлен браузер Microsoft Internet Explorer устаревшей версии 7 (IE7) или 6 (IE6), то в качестве редактора форм должен быть использован FCKEditor2 (как переключить редактор см. в "Изучение перспективы данных" )

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

Форма задания "Выбор исполнителей для создания контента рубрики"

Рис. 15.56. Форма задания "Выбор исполнителей для создания контента рубрики"
Выбор из членов группы "Авторы"

Рис. 15.57. Выбор из членов группы "Авторы"

То есть, в данном случае редактор выбирает Автора и Обозревателя которые будут создавать контент рубрики.

Для роли "Автор" добавьте валидатор роли "Обязательное поле" (см. валидатор для роли Обозреватель в "Пример 10-2").

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

Ввод переменной "Внешний контент"

Рис. 15.58. Ввод переменной "Внешний контент"

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

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

Контент_рубрики = "От автора " + Автор.getFullName();
Контент_рубрики += "\r\n\r\n";
Контент_рубрики += Внешний_контент;
Контент_рубрики += "\r\n\r\n";
Контент_рубрики += "От обозревателя " + Обозреватель.getFullName();
Контент_рубрики += "\r\n\r\n";
Контент_рубрики += Внутренний_контент;
Контент_рубрики += "\r\n\r\n";
Конфигурация обработчика в задаче сценария "Сформировать текст рубрики"

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

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

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

Настройка мульти-подпроцесса по обратному отношению

увеличить изображение
Рис. 15.60. Настройка мульти-подпроцесса по обратному отношению

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

Экспортируйте разработанные бизнес-процессы "Пример 10-3" и "Пример 10-4" на сервер.

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

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

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

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

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

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

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

  1. Что такое мульти-подпроцесс?
  2. Чем может определяться количество запускаемых экземпляров мульти-подпроцесса?
  3. Как используются Отношения в мульти-подпроцессе, что такое Обратное отношение?
Александр Шальных-Булатов
Александр Шальных-Булатов

Вижу по теме информацию о том, что преподавателю нужно отправить отчет и контрольный файл.

Всего вопросов 2.

1. Куда и как отправлять преподавателю контрольный файл?

2. Какой отчет, о чем писать?

Инна Инна
Инна Инна

Та же проблема, что и у Марины. Содержание черного окошка и версию Java отправила на указанный почтовый адрес.