Практика процессного управления на облачном программном обеспечении

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

Разбить на страницы
Показывать лекцию целиком

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

Здесь видео для этого занятия: https://altube.ru/channel/intuit/playlists/laboratornyy-praktikum-po-runawfe?video=KP0vCQXYfQ5p"> https://altube.ru/channel/intuit/playlists/laboratornyy-praktikum-po-runawfe?video=KP0vCQXYfQ5p">https://altube.ru/channel/intuit/playlists/laboratornyy-praktikum-po-runawfe?video=KP0vCQXYfQ5p " type="url"/>

1. Зайдите в систему RunaWFE под учётной записью Administrator. Перейдите в раздел "Редактор процессов".

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

  • Начало
  • Задача сценария
  • Действие
  • Параллельный шлюз
  • Исключающий шлюз
  • Подпроцесс - композиция с названием "Издание приказа и начисление премии"
  • Создайте роли на вкладке редактора Roles:

  • Руководитель
  • Сотрудник
  • Отдел кадров
  • Директор
  • Бухгалтер.
  • Далее для узлов бизнес-процесса выберите роли в соответствии с Рис.10.1.

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

    3. Создайте группы на вкладке слева "Исполнители" (в среде исполнения):

  • Директор
  • Отдел кадров
  • Бухгалтеры
  • Сотрудники
  • Сотрудники Паучкова.
  • 4. Инициализируйте роли "Директор", "Отдел кадров", "Бухгалтер" и "Сотрудник" с помощью соответствующих групп (Директор, Отдел кадров, Бухгалтеры, Сотрудники Паучкова).

    Для этого вернитесь в редакторе к разрабатываемому процессу, перейдите на вкладку Роли, выберите роль и щёлкните на кнопку "Edit", находящуюся перед ней. Используйте инициализацию с помощью групп wf.

    5. Создайте указанных ниже исполнителей и распределите их по группам:

    Добавьте в группу "Директор" пользователей:

  • Стрекозин Александр Николаевич
  • Добавьте в группу "Бухгалтеры" пользователей:

  • Жуков Иван Ильич
  • Бражникова Ольга Иосифовна.
  • Добавьте в группу "Отдел кадров" пользователей:

  • Личинкин Василий Федорович
  • Гусеницын Михаил Васильевич.
  • Добавьте в группу "Сотрудники" пользователей:

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

  • Мотыльков
  • Мухин
  • Сверчков.
  • 6. Создайте переменные в соответствии с Рис.10.2.

    7. Создайте форму для стартового узла "Подать заявку на премию".

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

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

    Для создания поля щёлкните в этом меню кнопку "addnewcomponent". Значение поля "Сотрудник" будет выбираться из списка - из группы "Сотрудники Паучкова". Поэтому в меню формирования компонента в поле "component" выбираем значение "Selectionfromgroupmembers" ("Выбор из членов группы") (Рис.10.4).

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

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

    8. Настройте задачи сценариев.

    По задаче сценария "ФИО сотрудника" щёлкните правой кнопкой мыши и из выпавшего меню выберите команду "Configuratescript" ("Отконфигурировать скрипт"). В поле "Handler" появившегося меню выберите "Getexecutorunfo" ("Получить информацию об исполнителе"). Меню приобретёт вид, показанный на Рис.10.7. Заполните остальные поля согласно этому рисунку и выберите кнопку "update".

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

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

    'ФИО сотрудника 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 заменяются на первую букву фамилии, имени или отчества.

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

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

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

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

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

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

    ФИО сотрудникаРазмер премииОписание выполненных работТекущая дата,

    как показано на Рис.10.9а .

    Как видно из Рис. 10.1, этот узел имеет 2 исходящих соединения: "Ошибка" и "Правильно". При обнаружении ошибки процесс будет завершён и Руководитель может снова его запустить для подачи служебной записки с правильными данными.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    12. Создайте форму для узла "Ознакомиться с сообщением о согласии" (Рис.10.16).

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

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

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

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

    14. Создайте композицию вида, изображенного на Рис.10.19.

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

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

    Расположите на ней единственный компонент для ввода переменной "Номер приказа".

    16. Настройте задачи сценария.

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

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

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

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

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

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

    Предварительно в любом редакторе сформируйте DOCX-файл с шаблоном приказа, как показано на Рис.10.23.

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

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

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

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

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

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

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

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

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

    Создайте в форме недостающие поля, в поле "htmlcode" удалите заголовок и отстройте порядок полей как показано на Рис.10.28. Сохраните композицию (синяя дискета).

    21. Создайте пользовательскую форму для узла "Ознакомиться с начислением премии" (Рис.10.29). В качестве прототипа целесообразно использовать предыдущую форму.

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

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

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

    Процесс "Пример 05-1" должен запускать "Руководитель" - пользователь "Паучков" (который является руководителем Сверчкова).

    24. Выполните процесс "Пример 05-1".

    Войдите в систему под пользователем "Паучков", запустите процесс. Введите данные на стартовой форме и нажмите "Запустить" (Рис.05.31).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Номер приказа
  • Текст приказа с ФИО сотрудника в необходимом падеже, с датами начала и окончания отпуска
  • Дату приказа (совпадает с датой ввода номера приказа сотрудником отдела кадров)
  • ФИО Сотрудника
  • ФИО Директора
  • Замечание. В отличие от приказа из процесса "Пример 05-1", в данном приказе на отпуск используется дата, совпадающая с датой ввода номера приказа сотрудником отдела кадров, а не с датой запуска бизнес-процесса.

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

  • В результате выполнения лабораторной работы должен быть предоставлен доступ к компании на http://cloud.runawfe.ru"> http://cloud.runawfe.ru">http://cloud.runawfe.ru " type="url"/> посредством предоставления названия созданной компании и пароля пользователя Administrator, если он отличается от wf.
  • В указанной компании должны быть представлены разработанные в веб-редакторе процессы и запущенные экземпляры этих процессов (вкладка "запущенные процессы")
  • Описание возникших при выполнении задания проблем (лучше со скриншотами) и найденных путей их решения (не обязательно, только если возникли проблемы при выполнении задания).
  • Контрольные вопросы

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

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

    Здесь видео для этого занятия: https://altube.ru/channel/intuit/playlists/laboratornyy-praktikum-po-runawfe?video=KP0vCQXYfQ5p"> https://altube.ru/channel/intuit/playlists/laboratornyy-praktikum-po-runawfe?video=KP0vCQXYfQ5p">https://altube.ru/channel/intuit/playlists/laboratornyy-praktikum-po-runawfe?video=KP0vCQXYfQ5p " type="url"/>

    1. Зайдите в систему RunaWFE под учётной записью Administrator. Перейдите в раздел "Редактор процессов".

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

  • Начало
  • Задача сценария
  • Действие
  • Параллельный шлюз
  • Исключающий шлюз
  • Подпроцесс - композиция с названием "Издание приказа и начисление премии"
  • Создайте роли на вкладке редактора Roles:

  • Руководитель
  • Сотрудник
  • Отдел кадров
  • Директор
  • Бухгалтер.
  • Далее для узлов бизнес-процесса выберите роли в соответствии с Рис.10.1.

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

    3. Создайте группы на вкладке слева "Исполнители" (в среде исполнения):

  • Директор
  • Отдел кадров
  • Бухгалтеры
  • Сотрудники
  • Сотрудники Паучкова.
  • 4. Инициализируйте роли "Директор", "Отдел кадров", "Бухгалтер" и "Сотрудник" с помощью соответствующих групп (Директор, Отдел кадров, Бухгалтеры, Сотрудники Паучкова).

    Для этого вернитесь в редакторе к разрабатываемому процессу, перейдите на вкладку Роли, выберите роль и щёлкните на кнопку "Edit", находящуюся перед ней. Используйте инициализацию с помощью групп wf.

    5. Создайте указанных ниже исполнителей и распределите их по группам:

    Добавьте в группу "Директор" пользователей:

  • Стрекозин Александр Николаевич
  • Добавьте в группу "Бухгалтеры" пользователей:

  • Жуков Иван Ильич
  • Бражникова Ольга Иосифовна.
  • Добавьте в группу "Отдел кадров" пользователей:

  • Личинкин Василий Федорович
  • Гусеницын Михаил Васильевич.
  • Добавьте в группу "Сотрудники" пользователей:

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

  • Мотыльков
  • Мухин
  • Сверчков.
  • 6. Создайте переменные в соответствии с Рис.10.2.

    7. Создайте форму для стартового узла "Подать заявку на премию".

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

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

    Для создания поля щёлкните в этом меню кнопку "addnewcomponent". Значение поля "Сотрудник" будет выбираться из списка - из группы "Сотрудники Паучкова". Поэтому в меню формирования компонента в поле "component" выбираем значение "Selectionfromgroupmembers" ("Выбор из членов группы") (Рис.10.4).

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

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

    8. Настройте задачи сценариев.

    По задаче сценария "ФИО сотрудника" щёлкните правой кнопкой мыши и из выпавшего меню выберите команду "Configuratescript" ("Отконфигурировать скрипт"). В поле "Handler" появившегося меню выберите "Getexecutorunfo" ("Получить информацию об исполнителе"). Меню приобретёт вид, показанный на Рис.10.7. Заполните остальные поля согласно этому рисунку и выберите кнопку "update".

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

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

    'ФИО сотрудника 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 заменяются на первую букву фамилии, имени или отчества.

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

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

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

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

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

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

    ФИО сотрудникаРазмер премииОписание выполненных работТекущая дата,

    как показано на Рис.10.9а .

    Как видно из Рис. 10.1, этот узел имеет 2 исходящих соединения: "Ошибка" и "Правильно". При обнаружении ошибки процесс будет завершён и Руководитель может снова его запустить для подачи служебной записки с правильными данными.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    12. Создайте форму для узла "Ознакомиться с сообщением о согласии" (Рис.10.16).

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

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

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

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

    14. Создайте композицию вида, изображенного на Рис.10.19.

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

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

    Расположите на ней единственный компонент для ввода переменной "Номер приказа".

    16. Настройте задачи сценария.

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

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

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

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

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

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

    Предварительно в любом редакторе сформируйте DOCX-файл с шаблоном приказа, как показано на Рис.10.23.

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

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

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

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

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

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

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

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

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

    Создайте в форме недостающие поля, в поле "htmlcode" удалите заголовок и отстройте порядок полей как показано на Рис.10.28. Сохраните композицию (синяя дискета).

    21. Создайте пользовательскую форму для узла "Ознакомиться с начислением премии" (Рис.10.29). В качестве прототипа целесообразно использовать предыдущую форму.

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

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

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

    Процесс "Пример 05-1" должен запускать "Руководитель" - пользователь "Паучков" (который является руководителем Сверчкова).

    24. Выполните процесс "Пример 05-1".

    Войдите в систему под пользователем "Паучков", запустите процесс. Введите данные на стартовой форме и нажмите "Запустить" (Рис.05.31).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Номер приказа
  • Текст приказа с ФИО сотрудника в необходимом падеже, с датами начала и окончания отпуска
  • Дату приказа (совпадает с датой ввода номера приказа сотрудником отдела кадров)
  • ФИО Сотрудника
  • ФИО Директора
  • Замечание. В отличие от приказа из процесса "Пример 05-1", в данном приказе на отпуск используется дата, совпадающая с датой ввода номера приказа сотрудником отдела кадров, а не с датой запуска бизнес-процесса.

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

  • В результате выполнения лабораторной работы должен быть предоставлен доступ к компании на http://cloud.runawfe.ru"> http://cloud.runawfe.ru">http://cloud.runawfe.ru " type="url"/> посредством предоставления названия созданной компании и пароля пользователя Administrator, если он отличается от wf.
  • В указанной компании должны быть представлены разработанные в веб-редакторе процессы и запущенные экземпляры этих процессов (вкладка "запущенные процессы")
  • Описание возникших при выполнении задания проблем (лучше со скриншотами) и найденных путей их решения (не обязательно, только если возникли проблемы при выполнении задания).
  • Контрольные вопросы

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