Описание программы Robot
Релизы

Принципы создания workflow

В данном материале рассматриваются основные принципы создания workflow в платформе "ElectroNeek"

Введение

Для разработки workflow необходимо открыть программу "ElectroNeek Studio". При открытии "ElectroNeek Studio" автоматически запускается программа "ElectroNeek Robot", которая используется для того, чтобы выполнить разработанный пользователем workflow.

Интерфейс

На рисунке ниже представлен интерфейс программы "ElectroNeek Studio".

Цифры на рисунке означают следующее:

  1. Группа кнопок для создания, открытия и сохранения файла с workflow. Последняя кнопка в данной группе - "Подключить к Orchestrator", позволяющая добавить workflow в Личный кабинет для того, чтобы задать расписание для последующих запусков.

  2. Блок с действиями, сгруппированными по принципу того, что эти действия позволяют автоматизировать.

  3. Кнопка запуска workflow. В момент работы workflow рядом отображается кнопка остановки.

  4. Строка для поиска действия по его названию.

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

  6. Название workflow. При наведении на элемент - отображается путь к открытому файлу с workflow (если создать новый workflow и не сохранить его, то вместо пути отображается фраза "Новый файл", как на рисунке выше).

  7. Кнопка открытия новой вкладки для работы с несколькими workflow внутри программы "ElectroNeek Studio".

  8. Кнопка, открывающая строку для проведения поиска по находящимся в данном workflow действиям, переменным и комментариям.

  9. Вкладка "Свойства", позволяющая узнать описание данного действия и задать для него параметры.

  10. Слева-направо: кнопки смены языка программы, кнопка проведения тура по интерфейсу, кнопка для вывода информации о текущем аккаунте и доступных ресурсах, логотип платформы (при клике на него открывается данная База знаний).

  11. Блок с переменными, в котором после работы робота отображаются все переменные, инициализированные в данном workflow. Также здесь находится группа кнопок по работе с переменными - кнопки для обновления и удаления текущих значений переменных, кнопка для добавления новой переменной и чекбокс для автоматической очистки значений переменных после завершения workflow.

  12. Рабочее пространство, куда добавляются и соединяются между собой блоки.

  13. Консоль, где появляются сообщения о статусе работы робота.

Workflow

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

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

Все переменные (кроме тех, которые созданы внутри блока "Выполнить код") являются глобальными и сохраняются в текущем аккаунте. То есть эти переменные доступны из любого файла ".neek" и из любого блока.

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

Блок

Для добавления блока в рабочую область из панели слева необходимо либо дважды кликнуть по наименованию действия, либо перетащить блок при помощи drag'n'drop.

Для задания параметров блока необходимо щёлкнуть левой кнопкой мыши по блоку. Окно с параметрами находится на вкладке "Свойства" справа. Красной звездой отмечены те параметры, которые обязательны для заполнения. Также каждый блок содержит поле "Комментарий". Это поле позволяет дать описание текущему блоку, чтобы впоследствии было проще понять, что делает данное действие в workflow.

Пример параметров функции "Отправить письмо"

Если блок подсвечивается красным цветом, то это значит, что некоторые необходимые параметры были не заполнены.

Пример блока с незаполненными значениями обязательных свойств.

Каждый блок содержит по крайней мере два порта (варианта продолжения). Ветка, идущая из стандартного порта соответствует успешному результату выполнения данного блока. Ветка, идущая из красного порта "Ошибка", срабатывает в том случае, если в момент выполнения блока произошло какое-либо исключение. Блоки логического характера имеют три порта: "Да", "Нет" и "Ошибка".

Блоки можно перемещать, удалять и копировать. Возможно выделить несколько блоков, удерживая клавишу "Ctrl" и нажимая левой кнопкой мыши по желаемым блокам либо выделить область на которой находятся необходимые блоки. Несколько блоков одновременно можно удалить, переместить, копировать и вставить.

Советы

При разработке workflow рекомендуется придерживаться следующих практик:

  1. Разбивать один большой проект на различные подпрограммы, исходя из смысла, целей и логики workflow. Это позволит лучше видеть структуру workflow, проще понимать его суть и легче вносить изменения.

  2. Стараться делать workflow аккуратным и читаемым. Для этого рекомендуется удалять "лишние" блоки, то есть те блоки, которые использовались для отладки и которые не несут в себе практической пользы. Также рекомендуется вносить комментарии в блоки или использовать блок "TODO" для того. Это особенно полезно, если над проектом работают несколько человек. В таком случае наличие осмысленных комментариев позволит лучше и быстрее ориентироваться в коде.

  3. Перед запуском workflow очищать значения переменных:

4. Давать подпрограммам и переменным читаемые названия. Название переменной должно четко отражать ее смысл, то же касается названия подпрограмм. Также существуют различные устоявшиеся виды нотаций (некоторые примеры приведены в таблице ниже), и в workflow рекомендуется придерживаться единой нотации.

Название нотации

Пример

Верблюжья

ListOfContragents

Змеиная

list_of_contragents

Венгерская

arrListOfContragents

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