Глоссарий
Сценарий (workflow)
Сценарий это упорядоченный набор шагов, который машина повторяет одинаково каждый раз, получая ту же работу.
Из чего состоит сценарий
Сценарий это имя, упорядоченный список шагов, свои переменные и профили, на которые он нацелен. Всё это принадлежит самому сценарию, поэтому выбор никуда не денется к завтрашнему дню.
Шаги
По порядку, каждый одного из известных видов и с теми полями, которые этому виду нужны.
Переменные
Именованные значения, которые несут шаги, и набираются они заново для каждого профиля.
Целевые профили
Для кого этот прогон: выбирается один раз и помнится вместе с шагами.
Итог
Что прошло, что провалилось и на каком профиле: записано, а не оставлено на память.
Шаги действия и шаги решения
Большая часть сценария что-то делает со страницей, а остальное решает, что будет дальше. Решающие виды и отличают сценарий от списка нажатий.
Действие
Открыть адрес, нажать, набрать в поле, прокрутить, послать клавишу, снять страницу.
Решение
Проверить страницу или значение и уйти в одну из двух веток, повторить тело или пройти им по каждому элементу списка.
Ожидание
Подождать заданное время, случайный разброс, появление куска страницы или запрос названного адреса.
Один сценарий и много профилей
Одни и те же шаги идут по каждому выбранному профилю, а значения у профилей разные. Так один сценарий входит в двадцать аккаунтов без двадцати своих копий.
Профили берутся очередью, а не залпом, и работник, не нашедший свободного места, ждёт его, а не списывает профиль в провал.
Проверка до первого прогона
Сценарий, сломанный тихо, хуже явно незаконченного. Сборщик ищет именно тихую поломку прямо во время правки и называет номер найденного шага.
- 1
Нажатие в пустоту
Шаг, которому цель так и не указали.
- 2
Ожидание без конца
Ни срока, ни куска страницы, появления которого ждать.
- 3
Чтение в никуда
Текст снят со страницы, а имени, под которым его хранить, нет.
Сохранение никогда не задерживают
Когда сценарий уходит с машины
Сценарий это файл, который передают друг другу, поэтому выгрузка не берёт ни набранные в шагах значения, ни значения печенья, ни значения переменных. Имена и ссылки на них остаются, и получивший видит, что заполнить.
Библиотека, которая ездит через ваш аккаунт, эти значения сохраняет, и на вашей второй машине сценарий сразу рабочий. Библиотека у рабочего пространства одна, поэтому содержимое отправленного сценария читает каждый, кто в нём состоит.
Часто путают с этим
Записывалка действий
Записывалка смотрит за человеком и проигрывает подсмотренное. Здесь каждый шаг заводится из формы, и записывалки нет вовсе.
Робот
От робота ждут, что он справится с непредвиденным. Сценарий повторяет написанное вами с заданными паузами, и сдвинутая кнопка его ломает.
Расписание
Сценарий это сама работа. Расписание это только час, в который она случится, и одно без другого существует спокойно.
Чего это не делает
- Записывалки здесь нет. Никто не следит за вашими нажатиями и не превращает их в шаги: каждый шаг заводится руками из формы.
- Сценарий это скрипт, а не человек. Он повторяет написанное вами с заданными паузами, и сайт, сдвинувший кнопку, ломает шаг, который её искал.
- Библиотеки готовых сценариев для установки нет. Единственные шаги, которые программа пишет за вас, это обход обычных сайтов, собираемый роботом печенья для нового профиля.
- Работает он на вашей машине и пока программа открыта. Закрытие программы обрывает идущий прогон, и продолжать его в чужом центре обработки данных некому.
Проверить
Что сценарий может держать, кто вправе его менять и какие стенды держат оба ответа.
- Что сценарий может держать и какие потолки делают правленый руками файл безобидным
- apps/desktop/src/lib/rpa.js
- Сборщик называет сломанное и никогда не задерживает сохранение
- apps/desktop/src/lib/flowCheck.js · apps/desktop/test/flow-check.js
- Готово значит шаги прошли: профиль с провалами докладывается провалившимся
- apps/desktop/src/main/main.js · apps/desktop/test/run-result-honest.js
- Библиотека ездит через ваш аккаунт, а запись в неё это право управляющего
- apps/server/src/flows/flows.controller.ts · apps/server/test/flows-shared.js
Вопросы
- Что будет, если один шаг провалится?
- Он записывается вместе с причиной, счётчик этого профиля растёт, и берётся следующий шаг. Профиль с провалившимися шагами докладывается провалившимся, а не зелёным, и весь прогон тоже.
- Может ли шагом быть мой собственный код?
- Да. Один из видов исполняет ваш код прямо в странице и хранит то, что он вернул, и у него есть свой предел по времени, поэтому неуспокаивающийся код страницы кончается обычной ошибкой шага.
- Может ли запустить сценарий программа с этой машины?
- Да. Местный ход показывает список ваших сценариев и запускает прогон по названным профилям, а в ответ отдаёт опознаватель прогона.
- Работают ли те же шаги на телефонном профиле?
- Да. На телефонном профиле нажатие превращается в касания вместо событий мыши, потому что мобильная страница часто слушает касание и обычного нажатия мыши не видит вовсе.
- Уедут ли мои пароли к коллеге вместе со сценарием?
- Через выгрузку нет. Набранные значения, значения печенья и значения переменных в этот файл нарочно не попадают, а имена остаются, и получивший знает, что заполнить.
Напишите один раз и прогоните двадцать
Сборщик, переменные и журнал прогона лежат в самой программе, а сценарий остаётся на вашем компьютере, пока вы его куда-то не отправите.