TrainingMaterialsCloud 4 4 1 Documents

Материал из RunaWFE
Перейти к навигации Перейти к поиску

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

Версия 4.4.2

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


Введение

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

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

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

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

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

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


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

Цель занятия

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

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

  1. Запустите среду разработки.
  2. Создайте новый проект - "Занятие 05". Создайте в нём новый бизнес-процесс "Пример 05-1". Используйте следующие элементы для создания бизнес-процесса в соответствии с Рис.2.01:
    Blank.png
     • Начало
     • Задача сценария
     • Действие
     • Параллельный шлюз
     • Исключающий шлюз
     • Подпроцесс
    


    Рисунок 2.01. Схема бизнес процесса "Пример 05-1"


    Замечание: Для узлов типа "Задача сценария" используйте компактный вид. Для этого щёлкните на элементе правой клавишей мыши и выберите пункт "Опции/Компактный вид" (Рис.2.02), после чего элемент примет вид, изображенный на Рисунке 2.01. Используйте данную опцию для всех 4 узлов-сценариев.

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

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

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

    Далее выберите для узлов роли в соответствии с рисунком 2.01.

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

  3. Войдите в систему Runa-WEB под пользователем Administrator (стандартный пароль - wf).
  4. Создайте в системе Runa-WEB отношение "Руководитель" (См. пример создания отношения в пунктах 10-11 раздела "Практическое занятие "Изучение перспективы ресурсов", рис. 3.5, 3.6).
  5. Откройте отношение "Руководитель" и создайте пару "Паучков"-"Сверчков" (Рис.2.03).
    Blank.png


    Рисунок 2.03. Отношение Руководитель


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

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

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

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


    Рисунок 2.04. Переменные бизнес-процесса


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


    Рисунок 2.05. Ввод значения по умолчанию для переменной
    Рисунок 2.06. Вид списка переменных при использовании IE11


  12. Создайте форму для стартового узла "Подать заявку на премию" (Рис.2.07).
  13. Blank.png

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

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


    Рисунок 2.07. Форма стартового узла


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

    Дважды кликните по добавленному на форму компоненту, далее в поле "Пользователь" выберите роль "Сотрудник". Поля "Название отношения" и "Параметр" необходимо заполнить с помощью переменных, для этого нажмите на кнопку "..." напротив поля, а затем кликните на ссылку "Выберите переменную" (Рис.2.08), после чего откроется список доступных для выбора переменных.

    В поле "Название отношения" выберите строковую переменную "Отношение", в качестве параметра выберите роль "Руководитель".

    Кроме того, используйте обратное отношение (Рис.2.09).


    Рисунок 2.08. Выбор переменной в качестве названия отношения


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


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

    Напротив строки "Сумма" расположите компонент для ввода переменной "Размер премии" (Рис.2.10). Также разместите компонент для ввода переменной "Описание выполненных работ".


    Рисунок 2.10. Ввод переменной "Размер премии"


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


  14. Задайте валидацию для переменных и роли стартовой формы.
  15. Blank.png

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

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


    Рисунок 2.11. Валидатор для роли "Сотрудник"


    Нажмите Finish и сохраните процесс.

  16. Настройте задачи сценариев.
  17. Blank.png

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


    Рисунок 2.12. Задача сценария "определение ФИО Сотрудника"


    Рисунок 2.13. Выбор класса обработчика


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


    Рисунок 2.14. Конфигурация обработчика "Получить информацию об исполнителе"


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


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

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

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

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

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

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

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


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


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

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

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


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


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


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


    Вызовите конфигуратор данного обработчика (Рис.2.18).

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


    Рисунок 2.18. Конфигуратор docx обработчика


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


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


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

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

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

  18. Создайте форму для узла "Подписать служебную записку и отдать ее в отдел кадров".
  19. Blank.png

    Отобразите файловую переменную "Служебная записка".


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


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

  20. Создайте форму для узла "Рассмотреть заявку на премию" (Рис.2.21).
  21. Blank.png


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


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

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

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

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

  22. Создайте форму для узла "Ознакомиться с сообщением об отказе".
  23. Рисунок 2.22 Форма "Ознакомиться с сообщением об отказе"


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


  24. Создайте форму для узла "Ознакомиться с сообщением о согласии" (Рис.2.23).
  25. Т.к. данная форма отличается от формы "Ознакомиться с сообщением об отказе" лишь заголовком, то можно воспользоваться функцией создания формы на основе существующей (Подробнее см. Практическое занятие "Изучение перспективы данных", Порядок выполнения работы, Пункт 6, Рис. 4.30, 4.31).
    Рисунок 2.23. Форма "Ознакомиться с сообщением о согласии"


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


    В появившемся окне введите название "Издание приказа и начисление премии".


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


  28. Создайте композицию вида, изображенного на Рис.2.26.
  29. Blank.png


    Рисунок 2.26. Схема композиции "Издание приказа и начисление премии"


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


    Рисунок 2.27. Переинициализация роли "Отдел кадров"


  30. Создайте форму для узла "Издать приказ о премировании".
  31. Расположите здесь компонент для ввода переменной "Номер приказа".
    Рисунок 2.28. Форма "Издать приказ о премировании"


    Для переменной "Номер приказа" добавьте валидатор "Обязательное поле" (Рис.2.29).


    Рисунок 2.29. Валидатор для переменной "Номер приказа"


  32. Настройте задачи сценария.
  33. В задаче сценария "ФИО директора", используя класс обработчика "Получить информацию об исполнителе", определите фамилию, имя и отчество Директора (Рис.2.30).
    Рисунок 2.30. Определение ФИО директора


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


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


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

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

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

    Сохраните и закройте процесс с композицией.

  34. Выберите класс обработчика для узла-сценария "Сгенерировать приказ". Для этого щёлкните правой кнопкой по этому узлу и выберите в выпавшем меню пункт "Выбрать класс обработчика" для показа списка обработчиков (Рис.2.32).
  35. Blank.png


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


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


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


    Снова щёлкните правой кнопкой по узлу "Сгенерировать приказ" и выберите в выпавшем меню пункт "Конфигурация" (Рис.2.32). На экране появится интерфейс "Конфигурация шаблона docx" (Рис.2.34).


    Рисунок 2.34. Создать шаблон docx


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


    Рисунок 2.35. Шаблон приказа


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

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

     • В поле "Имя файла" введите "Приказ.docx" 
     • Из выпадающего списка параметров выберите "Файловый параметр" 
     • Из выпадающего списка переменных процесса выберите "Приказ"
    


    Рисунок 2.36. Полностью определённая конфигурация шаблона


    Выберите ОК, сохраните процесс.


  36. Создайте форму для узла "Ознакомиться с приказом" (Рис.2.37).
  37. Blank.png

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


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


    Для узла "Получить подпись сотрудника об ознакомлении сприказом" графическая форма может быть создана на основании формы "Ознакомиться с приказом" и содержит только поля "Сотрудник" и "Приказ" (Рис.2.38).


    Рисунок 2.38. Форма "Ознакомить сотрудника с приказом"


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


    Рисунок 2.39. Форма "Начислить премию сотруднику"


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


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


  38. Экспортируйте разработанный процесс на сервер Runa-WEB.
  39. Щёлкните на разработанный бизнес-процесс, в меню выберите команду "Файл / Экспорт процесса" (Подробнее см. Практическое занятие "Изучение перспективы потока управления", Порядок выполнения работы, Пункты 11-14).
  40. Войдите на сервер под пользователем Administrator.
  41. Процесс "Пример 05-1" должен запускать "Руководитель", поэтому дайте права на чтение, запуск и чтение экземпляров для пользователя "Паучков" (который является руководителем Сверчкова). Подробнее см. "Практикум. Вводное занятие", Порядок выполнения работы, Пункты 28-32.
    Blank.png
    Рисунок 2.41. Обладатели полномочий на процесс "Пример 05-1"


    Добавьте в группу "Бухгалтеры" пользователей "Жуков" и "Бражникова".

    Добавьте в группу "Отдел кадров" пользователей "Личинкин" и "Гусеницын".

    Добавьте в группу "Сотрудники" пользователей: Жуков, Бражникова, Личинкин, Гусеницын, а также Сверчков и Паучков.

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

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

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


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


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


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

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

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


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


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

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


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


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

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


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


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

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


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


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

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


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


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


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


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

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

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


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

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


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

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

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

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


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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

    1. Запустите среду разработки.
    2. Создайте новый проект - "Занятие 06".
    3. Создайте новый бизнес-процесс "Пример 06-1" (Подробнее см. "Практикум. Вводное занятие", Порядок выполнения работы, Пункт 16, Рис 5.15).
    4. Добавьте элементы на схему бизнес-процесса в соответствии с Рис.3.01.
    5. Blank.png
      Рисунок 3.01. Схема бизнес-процесса "Пример 06-1"


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

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

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

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

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

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

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

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


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


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


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

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


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


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

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

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


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


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

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

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

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


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


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


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


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


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


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


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


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


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


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


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


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


      Рисунок 3.12. Начало конфигурирования обработчика записи в Excel-файл


      Используйте конфигурацию выходного файла, приведенную на Рис.3.13.


      Рисунок 3.13. Конфигурация выходного файла


      Здесь:

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

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


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

    16. Создайте текст шаблона (Рис.3.14).
    17.  

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


    18. Сохраните процесс.
    19. Экспортируйте процесс на сервер
    20. (Подробнее см. "Практикум. Перспективы исполнимых бизнес-процессов", Практическое занятие "Изучение перспективы потока управления", Порядок выполнения работы, Пункт 11-14).
    21. Экспортируйте Excel бот с задачей на сервер
    22. (Подробнее см. Практическое занятие "Работа с Word-ботом", Порядок выполнения работы, Пункт 20, рис. 2.51 - 2.52).
    23. Войдите в систему под пользователем Administrator, пароль –wf
    24. Дайте полномочия группе "Преподаватели" на запуск, чтение и чтение экземпляра процесса "Пример 6-1"
    25. Запустите периодическую активацию ботов
    26. (Подробнее см. Практическое занятие "Изучение перспективы операций", Порядок выполнения работы, Пункт 12, рис. 5.11).
    27. Войдите в систему под пользователем, входящим в группу "Преподаватели", например "Стрекозин", пароль - 123
    28. Запустите экземпляр бизнес-процесса "Пример 6-1" и доведите его до завершения.
    29. Введите данные на стартовой форме, например:
      Lab4 r9 19e.png
      Рисунок 3.20 Ввод данных на стартовой форме

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


      Lab4 r9 20e.png
      Рисунок 3.21 Задание "Перед записью в файл"

      Excel бот выполнит задачу "Записать данные в файл"


      Lab4 r9 21e.png
      Рисунок 3.22 Граф выполнения процесса "Пример 6-1"

      Будет получено задание, со ссылкой на созданный Excel файл, нажмите на ссылку


      Lab4 r9 22e.png
      Рисунок 3.23 Ссылка на созданный Excel файл

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


      Lab4 r9 23e.png
      Рисунок 3.24 Созданный с помощью Excel бота file.xlsx

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

    30. Завершите процесс
    31. Запустите среду разработки.
    32. Создайте новый бизнес-процесс "Пример 6-2".
    33. Добавьте элементы на схему бизнес-процесса в соответствии с рисунком 3.25
    34. Lab4 r9 24e.png
      Рисунок 3.25 Схема бизнес-процесса "Пример 6-2"

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

    35. Создайте роль Студент
    36. Выберите данную роль для стартового узла и действий.
    37. Создайте переменные
    38. В данном процессе используются те же переменные что и в "Пример 6-1", за исключением переменной "полученный excel файл". Откройте процесс "Пример 6-1", перейдите на вкладку переменные, выделите переменные (за исключением полученный excel файл") и нажмите кнопку "Копировать" (см. Рис. 3.26).
      Lab4 r9 25ae1.png
      Рисунок 3.26 Копирование переменных

      Затем откройте процесс "Пример 6-2", перейдите на вкладку "Переменные" и нажмите кнопку "Вставить", переменные добавятся в список (см. Рис. 3.27).


      Lab4 r9 25be1.png
      Рисунок 3.27 Вставка переменных