Complete Enrollment
Last updated
Last updated
Рассмотрим пример робота, который предназначен для автоматического оформления документации при окончании студентами (слушателями) учебного курса. Входными данными для данного робота служит реестр ранее зачисленных студентов (слушателей). Помимо приказа о завершении курса и сертификата о прохождении курса, для каждого студента робот подготавливает нормативную форму реестра ФРДО, установленную законодательством. Данный процесс часто используется в учебных заведениях и кадровых агентствах.
Проект робота состоит из четырех диаграмм и четырех файлов, два из которых в формате xlsx, а остальные – в формате docx. Если описывать пошагово, то данный робот работает следующим образом:
Загружает шаблон “П1_Обучение_шаблон.xlsx”
Перебирает ячейки с номером приказа.
Переходит к сценарию из диаграммы “CompleteEnrollmentProcessCreateWord”, которая вносит данные "П1_Шаблон приказа о завершении.docx"
Переходит к сценарию из диаграммы “CompleteEnrollmentPrintCertificate”, который заполняет "П1_Шаблон удостоверения.docx" и отправляет его на печать.
Переходит к сценарию из диаграммы “CompleteEnrollment_CreateFRDO”, который заполняет "П1_Форма реестра ФРДО.xlsx" и отправляет ее на указанную электронную почту.
Основная диаграмма проекта
Основная диаграмма проекта выглядит так (для удобства блоки диаграммы пронумерованы):
Блок “Старт” (с этого блока начинается любая диаграмма).
Блок “Загрузить Таблицу Данных” позволяет загрузить “Таблицу Данных” из Excel-документа. Для данного блока указаны следующие свойства:
Путь к файлу (путь к Excel-документу, из которого необходимо загрузить информацию в Таблицу Данных);
Заголовок (при установленном флаге первая строка будет использована в качестве заголовка);
Лист (порядковый номер листа, данные из которого необходимо прочитать в Таблицу Данных).
Блок “Цикл для каждого (Таблица Данных)” циклично перебирает все строки таблицы данных.
Блок “Процесс” позволяет создавать сценарии, состоящие из нескольких диаграмм. Выполнение сценария продолжится с блока “Старт” указанной диаграммы проекта. Выполнение сценария вернется к текущему блоку и продолжится в текущей диаграмме, как только будет достигнут блок “Конец” во внешней диаграмме. Для блока “Процесс” указано свойство “Имя диаграммы” (имя файла диаграммы, в которой продолжится выполнение сценария, в данном случае: CompleteEnrollmentProcessCreateWord).
Блок “Процесс” позволяет создавать сценарии, состоящие из нескольких диаграмм. Выполнение сценария продолжится с блока “Старт” указанной диаграммы проекта. Выполнение сценария вернется к текущему блоку и продолжится в текущей диаграмме, как только будет достигнут блок “Конец” во внешней диаграмме. Для блока “Процесс” указано свойство “Имя диаграммы” (имя файла диаграммы, в которой продолжится выполнение сценария, в данном случае: CompleteEnrollmentPrintCertificate).
Блок “Процесс” позволяет создавать сценарии, состоящие из нескольких диаграмм. Выполнение сценария продолжится с блока “Старт” указанной диаграммы проекта. Выполнение сценария вернется к текущему блоку и продолжится в текущей диаграмме, как только будет достигнут блок “Конец” во внешней диаграмме. Для блока “Процесс” указано свойство “Имя диаграммы” (имя файла диаграммы, в которой продолжится выполнение сценария, в данном случае: CompleteEnrollment_CreateFRDO).
Блок “Условие” проверяет указанное условие на истинность, после чего выполнение сценария продолжается в сторону выхода “Да” (если условие выполняется) или в сторону выхода “Нет” (если условие не выполнилось).
Условие записывается в формате: “переменная” равна (==)/ больше (>)/ меньше (<) “значение”.
Например: $a == “Привет”, то есть, если значение переменной $a равно “Привет”, то выход “Да”, в противном случае – выход “Нет”.
$Result > 5, то есть, если значение переменной $Result меньше 5, то выход “Да”, в противном случае – выход “Нет”.
В данном случае, в качестве условия установлено: -Not [string]::IsNullOrEmpty($Row[0]). Т. е., проверяет, что значение нулевой ячейки в этой строке не пустое.
Блок “Присвоить значение переменной” устанавливает новые значения для одной или нескольких переменных. В данном случае, в свойствах указано три значения, которые необходимо присвоить трем переменным, соответственно.
Блок “Присвоить значение переменной” устанавливает новые значения для одной или нескольких переменных. В данном случае, в свойствах указано одно значение, которое необходимо присвоить конкретной переменной.
Блок “Выполнить выражение PowerShell” запускает выполнение одного или нескольких выражений на языке, совместимом с PowerShell. В данном случае используется одно выражение: $ListFIO.Add($fio). Оно добавляет в список $ListFIO добавляет значение $fio.
Блок “Конец” (этим блоком завершается работа сценария или возврат диаграммы подпроцесса в основной процесс).
Блок “Лог” позволяет выводить в лог произвольные сообщения и/или значения переменных в процессе работы сценария робота. Для данного блока указано свойство “Значение”. В кавычках указана текстовая константа, а имя переменной начинается с символа $. Т.е., данный блок записывает в лог робота сообщение об ошибке.
Блок “Конец” (этим блоком завершается работа сценария или возврат диаграммы подпроцесса в основной процесс).
Диаграмма “CompleteEnrollmentProcessCreateWord”
Блок “Старт” (с этого блока начинается любая диаграмма).
Блок “Цикл” позволяет повторить цепочку действий (блоков) несколько раз и при этом посчитать количество итераций цикла, записывая текущее количество в специальную переменную (указанную в свойстве “Цикл”), которую можно затем использовать в других блоках. При первом входе в блок значение переменной из свойства “Цикл” приравнивается к “Начальному значению” (в данном случае оно равно 0), а затем выполнение сценария продолжается в сторону выхода “Цикл” данного блока (в, так называемое, “тело цикла”). Как только выполнение сценария вновь дойдет до данного блока, значение переменной “Цикл” увеличится на значение “Шаг” (в данном случае, он равен 1), и вновь произойдет переход в сторону выхода «Цикл». Как только значение переменной “Цикл” станет больше или равно “Конечному значению” (в данном случае, оно задано переменной $ListFIO.Count), выполнение сценария продолжится в сторону нижнего выхода блока. Не забудьте соединить выход последнего блока в теле цикла со входом данного блока или какого-либо из предшествующих блоков.
Блок “Получить путь к файлу” получает полный путь к файлу с указанным именем. Для данного блока указано одно свойство “Имя файла” (имя файла вместе с его форматом).
Блок “Открыть документ” позволяет открыть Word-документ. Для данного блока указаны следующие свойства:
Использовать COM (при установленном флаге работа будет производиться с помощью установленного Word);
Путь к файлу (путь к Word-файлу, который требуется открыть).
Блок “Заменить все переменные в тексте” позволяет осуществить замену всех переменных %variable% в Word-документе. Для данного блока указаны следующие свойства:
Ссылка на Word (ссылка на процесс обработки Word-документа. Название переменной в данном свойстве должно совпадать с названием переменной в свойстве "Ссылка на Word", блоков "Создать документ" или "Открыть документ" из группы Word, которые ранее использовались для создания или открытия данного документа);
Ссылка на документ (ссылка на открытый Word-документ, в котором в данный момент происходит работа. Название переменной в данном свойстве должно совпадать с названием переменной в свойстве "Ссылка на документ", блоков "Создать документ" или "Открыть документ" из группы Word, которые ранее использовались для создания или открытия данного документа).
Блок “Получить путь к файлу” получает полный путь к файлу с указанным именем. Для данного блока указано одно свойство “Имя файла” (имя файла вместе с его форматом).
Блок “Сохранить документ” позволяет сохранить Word-документ. Для данного блока указаны следующие свойства:
Ссылка на Word (ссылка на процесс обработки Word-документа, название переменной в данном свойстве должно совпадать с названием переменной в свойстве "Ссылка на Word", блоков "Создать документ" или "Открыть документ" из группы Word, которые ранее использовались для создания или открытия данного документа);
Ссылка на документ (ссылка на документ, который необходимо сохранить. Название переменной в данном свойстве должно совпадать с названием переменной в свойстве "Ссылка на документ", блоков "Создать документ" или "Открыть документ" из группы Word, которые ранее использовались для создания или открытия данного документа);
Путь к файлу (путь к Word-документу).
Блок “Распечатать документ” позволяет отправить на печать Word-документ. Для данного блока указаны следующие свойства:
Ссылка на Word (ссылка на процесс обработки Word-документа. Название переменной в данном свойстве должно совпадать с названием переменной в свойстве "Ссылка на Word", блоков "Создать документ" или "Открыть документ" из группы Word, которые ранее использовались для создания или открытия данного документа);
Ссылка на документ (ссылка на открытый Word-документ, в котором в данный момент происходит работа. Название переменной в данном свойстве должно совпадать с названием переменной в свойстве "Ссылка на документ", блоков "Создать документ" или "Открыть документ" из группы Word, которые ранее использовались для создания или открытия данного документа).
Блок “Закрыть документ” позволяет закрыть Word-документ. Для данного блока указаны следующие свойства:
Ссылка на Word (ссылка на процесс обработки Word-документа. Название переменной в данном свойстве должно совпадать с названием переменной в свойстве "Ссылка на Word", блоков "Создать документ" или "Открыть документ" из группы Word, которые ранее использовались для создания или открытия данного документа);
Ссылка на документ (ссылка на документ, который необходимо закрыть. Название переменной в данном свойстве должно совпадать с названием переменной в свойстве "Ссылка на документ", блоков "Создать документ" или "Открыть документ" из группы Word, которые ранее использовались для создания или открытия данного документа).
Блок “Выполнить выражение PowerShell” запускает выполнение одного или нескольких выражений на языке, совместимом с PowerShell. В данном случае, используется одно выражение: $ListFIOString += ($Index+1).ToString() + ". " + $ListFIO[$Index] + [Environment]::NewLine. Оно добавляет к строке новую строку вида “1. Иванов Иван Иванович\r\n”.
Блок “Лог” позволяет выводить в лог произвольные сообщения и/или значения переменных в процессе работы сценария робота. Для данного блока указано свойство “Значение”. В кавычках указана текстовая константа, а имя переменной начинается с символа $. Т.е., данный блок записывает в лог робота сообщение об ошибке.
и 13. Блок “Конец” (этим блоком завершается работа сценария или возврат диаграммы подпроцесса в основной процесс).
Диаграмма “CompleteEnrollmentPrintCertificate”
Блок “Старт” (с этого блока начинается любая диаграмма).
Блок “Окно с сообщением” позволяет показать пользователю модальное диалоговое окно с заданным заголовком, текстом и набором кнопок. Если используется окно с несколькими кнопками, блок позволяет записать в переменную текстовую константу, соответствующую нажатой пользователем кнопке. Для данного блока указаны следующие свойства:
Заголовок (текст, который будет отображен в заголовке диалогового окна);
Сообщение (текст, который будет отображен внутри диалогового окна);
Кнопки (кнопки, которые будут доступны пользователю для нажатия);
Изображение (изображение, которое будет отображаться в диалоговом окне).
Блок “Условие” проверяет указанное условие на истинность, после чего выполнение сценария продолжается в сторону выхода “Да” (если условие выполняется) или в сторону выхода “Нет” (если условие не выполнилось).
Условие записывается в формате: “переменная” равна (==)/ больше (>)/ меньше (<) “значение”.
Например: $a == “Привет”, то есть, если значение переменной $a равно “Привет”, то выход “Да”, в противном случае – выход “Нет”.
$Result > 5, то есть, если значение переменной $Result меньше 5, то выход “Да”, в противном случае – выход “Нет”.
В данном случае, в качестве условия установлено: $Result == "Yes". Т. е., значение переменной $Result, которая будет на выходе из предыдущего блока должно быть равно “Yes” (т.е., в открывшемся окне с сообщением пользователь должен нажать кнопку “Yes”).
Блок “Конец” (этим блоком завершается работа сценария или возврат диаграммы подпроцесса в основной процесс).
Блок “Цикл для каждого (Таблица Данных)” циклично перебирает все строки таблицы данных.
Блок “Условие” проверяет указанное условие на истинность, после чего выполнение сценария продолжается в сторону выхода “Да” (если условие выполняется) или в сторону выхода “Нет” (если условие не выполнилось).
Условие записывается в формате: “переменная” равна (==)/ больше (>)/ меньше (<) “значение”.
Например: $a == “Привет”, то есть, если значение переменной $a равно “Привет”, то выход “Да”, в противном случае – выход “Нет”.
$Result > 5, то есть, если значение переменной $Result меньше 5, то выход “Да”, в противном случае – выход “Нет”.
В данном случае, в качестве условия установлено: -Not [string]::IsNullOrEmpty($Row[0]). Т.е., проверяет, что значение нулевой ячейки в этой строке не пустое.
Блок “Присвоить значение переменной” устанавливает новые значения для одной или нескольких переменных. В данном случае, в свойствах указано три значения которые необходимо присвоить трем переменным, соответственно.
Блок “Присвоить значение переменной” устанавливает новые значения для одной или нескольких переменных. В данном случае, в свойствах указано три значения, которые необходимо присвоить трем переменным, соответственно.
Блок “Получить путь к файлу” получает полный путь к файлу с указанным именем. Для данного блока указано одно свойство “Имя файла” (имя файла вместе с его форматом).
Блок “Открыть документ” позволяет открыть Word-документ. Для данного блока указаны следующие свойства:
Использовать COM (при установленном флаге работа будет производиться с помощью установленного Word);
Путь к файлу (путь к Word-файлу, который требуется открыть).
Блок “Заменить все переменные в тексте” позволяет осуществить замену всех переменных %variable% в Word-документе. Для данного блока указаны следующие свойства:
Ссылка на Word (ссылка на процесс обработки Word-документа. Название переменной в данном свойстве должно совпадать с названием переменной в свойстве "Ссылка на Word", блоков "Создать документ" или "Открыть документ" из группы Word, которые ранее использовались для создания или открытия данного документа);
Ссылка на документ (ссылка на открытый Word-документ, в котором в данный момент происходит работа. Название переменной в данном свойстве должно совпадать с названием переменной в свойстве "Ссылка на документ", блоков "Создать документ" или "Открыть документ" из группы Word, которые ранее использовались для создания или открытия данного документа).
Блок “New File”
Блок “Сохранить документ” позволяет сохранить Word-документ. Для данного блока указаны следующие свойства:
Ссылка на Word (ссылка на процесс обработки Word-документа, название переменной в данном свойстве должно совпадать с названием переменной в свойстве "Ссылка на Word", блоков "Создать документ" или "Открыть документ" из группы Word, которые ранее использовались для создания или открытия данного документа);
Ссылка на документ (ссылка на документ, который необходимо сохранить. Название переменной в данном свойстве должно совпадать с названием переменной в свойстве "Ссылка на документ", блоков "Создать документ" или "Открыть документ" из группы Word, которые ранее использовались для создания или открытия данного документа);
Путь к файлу (путь к Word-документу).
Блок “Распечатать документ” позволяет отправить на печать Word-документ. Для данного блока указаны следующие свойства:
Ссылка на Word (ссылка на процесс обработки Word-документа. Название переменной в данном свойстве должно совпадать с названием переменной в свойстве "Ссылка на Word", блоков "Создать документ" или "Открыть документ" из группы Word, которые ранее использовались для создания или открытия данного документа);
Ссылка на документ (ссылка на открытый Word-документ, в котором в данный момент происходит работа. Название переменной в данном свойстве должно совпадать с названием переменной в свойстве "Ссылка на документ", блоков "Создать документ" или "Открыть документ" из группы Word, которые ранее использовались для создания или открытия данного документа).
Блок “Закрыть документ” позволяет закрыть Word-документ. Для данного блока указаны следующие свойства:
Ссылка на Word (ссылка на процесс обработки Word-документа. Название переменной в данном свойстве должно совпадать с названием переменной в свойстве "Ссылка на Word", блоков "Создать документ" или "Открыть документ" из группы Word, которые ранее использовались для создания или открытия данного документа);
Ссылка на документ (ссылка на документ, который необходимо закрыть. Название переменной в данном свойстве должно совпадать с названием переменной в свойстве "Ссылка на документ", блоков "Создать документ" или "Открыть документ" из группы Word, которые ранее использовались для создания или открытия данного документа).
Блок “Лог” позволяет выводить в лог произвольные сообщения и/или значения переменных в процессе работы сценария робота. Для данного блока указано свойство “Значение”. В кавычках указана текстовая константа, а имя переменной начинается с символа $. Т.е., данный блок записывает в лог робота сообщение об ошибке.
и 18. Блок “Конец” (этим блоком завершается работа сценария или возврат диаграммы подпроцесса в основной процесс).
Диаграмма “CompleteEnrollment_CreateFRDO”
Блок “Старт” (с этого блока начинается любая диаграмма).
Блок “Присвоить значение переменной” устанавливает новые значения для одной или нескольких переменных. В данном случае, в свойствах указано одно значение, которое необходимо присвоить конкретной переменной.
Блок “Получить путь к файлу” получает полный путь к файлу с указанным именем. Для данного блока указано одно свойство “Имя файла” (имя файла вместе с его форматом).
Блок “Открыть документ” позволяет открыть Excel-документ. Для данного блока указано свойство “Путь к файлу” (путь к Excel-документ, который требуется открыть).
Блок “Цикл для каждого (Таблица Данных)” циклично перебирает все строки таблицы данных.
Блок “Получить путь к файлу” получает полный путь к файлу с указанным именем. Для данного блока указано одно свойство “Имя файла” (имя файла вместе с его форматом).
Блок “Сохранить документ” позволяет сохранить Excel-документ. Для данного блока указаны следующие свойства:
Ссылка на Excel (ссылка на процесс обработки Word-документа, название переменной в данном свойстве должно совпадать с названием переменной в свойстве "Ссылка на Excel", блоков "Создать документ" или "Открыть документ" из группы Excel, которые ранее использовались для создания или открытия данного документа);
Ссылка на документ (ссылка на документ, который необходимо сохранить. Название переменной в данном свойстве должно совпадать с названием переменной в свойстве "Ссылка на документ", блоков "Создать документ" или "Открыть документ" из группы Excel, которые ранее использовались для создания или открытия данного документа);
Путь к файлу (путь к Excel-документу).
Блок “Закрыть документ” позволяет закрыть Excel-документ. Для данного блока указаны следующие свойства:
Ссылка на Excel (ссылка на процесс обработки Excel-документа. Название переменной в данном свойстве должно совпадать с названием переменной в свойстве "Ссылка на Excel", блоков "Создать документ" или "Открыть документ" из группы Excel, которые ранее использовались для создания или открытия данного документа);
Ссылка на документ (ссылка на документ, который необходимо закрыть. Название переменной в данном свойстве должно совпадать с названием переменной в свойстве "Ссылка на документ", блоков "Создать документ" или "Открыть документ" из группы Excel, которые ранее использовались для создания или открытия данного документа).
Блок “Добавить элемент в список” добавляет указанный элемент в конец списка. Для данного блока указаны следующие свойства:
Список (список в который требуется добавить новый элемент);
Элемент (элемент, указанный в данном случае переменной, который требуется добавить в список).
Блок “Отправить письмо” позволяет отправить письмо с использованием протокола SMTP. Для данного блока указаны следующие свойства:
Сервер;
Логин (логин, необходимый для авторизации на сервере);
Пароль (пароль, необходимый для авторизации на сервере);
SSL (установленный флаг включает, использование защищенного соединения);
Email отправителя (указывается E-mail, с которого будет отправлено письмо);
Email получателя (E-mail получателя, которому необходимо отправить письмо);
Тема письма (тема письма);
Текст письма (содержимое письма);
HTML-разметка (установленный флаг включает функцию отправки содержимого письма как HTML-страницы, которая может содержать теги);
Вложения (список путей к файлам, которые будут прикреплены к письму);
Timeout (Время ожидания ответа от сервера в милисекундах); Примечание: в более поздних версиях Sherpa Designer данное свойство называется “Время ожидания” и указывается в секундах.
Блок “Лог” позволяет выводить в лог произвольные сообщения и/или значения переменных в процессе работы сценария робота. Для данного блока указано свойство “Значение”. В кавычках указана текстовая константа, а имя переменной начинается с символа $. Т.е., данный блок записывает в лог робота файлы вложений, указанные с помощью переменной.
Блок “Лог” позволяет выводить в лог произвольные сообщения и/или значения переменных в процессе работы сценария робота. Для данного блока указано свойство “Значение”. В кавычках указана текстовая константа, а имя переменной начинается с символа $. Т.е., данный блок записывает в лог робота сообщение об ошибке.
Блок “Условие” проверяет указанное условие на истинность, после чего выполнение сценария продолжается в сторону выхода “Да” (если условие выполняется) или в сторону выхода “Нет” (если условие не выполнилось).
Условие записывается в формате: “переменная” равна (==)/ больше (>)/ меньше (<) “значение”.
Например: $a == “Привет”, то есть, если значение переменной $a равно “Привет”, то выход “Да”, в противном случае – выход “Нет”.
$Result > 5, то есть, если значение переменной $Result меньше 5, то выход “Да”, в противном случае – выход “Нет”.
В данном случае, в качестве условия установлено: -Not [string]::IsNullOrEmpty($Row[0]). Т. е., проверяет, что значение нулевой ячейки в этой строке не пустое.
Блок “Цикл” позволяет повторить цепочку действий (блоков) несколько раз и при этом посчитать количество итераций цикла, записывая текущее количество в специальную переменную (указанную в свойстве “Цикл”), которую можно затем использовать в других блоках. При первом входе в блок значение переменной из свойства “Цикл” приравнивается к “Начальному значению” (в данном случае оно равно 1), а затем выполнение сценария продолжается в сторону выхода “Цикл” данного блока (в, так называемое, “тело цикла”). Как только выполнение сценария вновь дойдет до данного блока, значение переменной “Цикл” увеличится на значение “Шаг” (в данном случае, он равен 1), и вновь произойдет переход в сторону выхода «Цикл». Как только значение переменной “Цикл” станет больше или равно “Конечному значению” (в данном случае, оно равно 37), выполнение сценария продолжится в сторону нижнего выхода блока. Не забудьте соединить выход последнего блока в теле цикла со входом данного блока или какого-либо из предшествующих блоков.
Блок “Выполнить выражение PowerShell” запускает выполнение одного или нескольких выражений на языке, совместимом с PowerShell. В данном случае используется одно выражение: $TableFRDOIndex. Оно прибавляет к переменной единицу.
Блок “Записать значение в ячейку” позволяет записать значение в ячейку Excel-документа. Для данного блока указаны следующие свойства:
Ссылка на документ (ссылка на документ, с которым в данный момент происходит работа. Название переменной в данном свойстве должно совпадать с названием переменной в свойстве "Ссылка на документ", блоков "Создать документ" или "Открыть документ" из группы Excel, которые ранее использовались для создания или открытия данного документа);
Лист (порядковый номер листа, на котором расположена требуемая ячейка. Нумерация начинается с 1);
Строка (Номер строки, на которой расположена требуемая ячейка. Нумерация начинается с 1);
Столбец (Номер столбца, в котором расположена требуемая ячейка. Нумерация начинается с 1);
Значение (переменная, которую необходимо записать в требуемую ячейку).
и 18. Блок “Конец” (этим блоком завершается работа сценария или возврат диаграммы подпроцесса в основной процесс).