Конструктор рабочих процессов
Визуальный робот Human Emulator — файл .wf: последовательность шагов с условиями, циклами, переменными и вызовами тех же объектов API, что доступны скрипту на PHP или C#. В восьмой линейке такой файл открывается структурой — шаги деревом, свойства в панели, подходящие действия в палитре, — и правится без текста разметки. Это руководство про рабочий процесс: как собрать, отладить, что делает редактор с файлом и где границы переноса между 7.x и 8.x.
Что такое .wf
Файл визуального робота живёт в папке скриптов проекта (в 8.x новый робот создаётся командой Файл → Создать → Workflow и попадает в «Мои скрипты»). Внутри — документ рабочего процесса: блоки «если», «для каждого», «пока», присваивания и активности из библиотеки продукта — те же navigate, click, set_value, работа с Excel, PDF, почтой, которые скрипт вызывает напрямую.
Отличие от обычного скрипта не в возможностях, а в форме: шаги видно как дерево, их порядок и свойства правятся на месте, а исполняется всё то же обращение к приложению. Если задача — «нажать, дождаться, записать», робот на .wf и робот на PHP делают одно и то же; там, где нужна ветка «пока не появится элемент», удобнее смотреть на структуру, чем читать вложенные if.
Новый робот 8.x открывается готовым примером: открыть https://ya.ru, напечатать текст в строке поиска и нажать Enter. До 7.0.78 и до 8.1.6 этот шаблон присваивал текст полю, и поиск не срабатывал — если вы собрали робота по старой поставке, проверьте, что действие именно «ввести».
Открытие и панель проверки
Сразу после открытия .wf панель проверки говорит, что с этим роботом можно делать здесь. Формулировок пять, и каждая — про конкретное состояние файла:
- «исполняется здесь» — робот собран из переносимых узлов, можно править и запускать;
- «исполняет только Windows Studio с плагином» — в файле есть шаги, которые видит только классическая среда;
- «здесь не исполняется: в файле есть узлы вне подмножества net8» — названы места, которые восьмой движок не переносит;
- «формат не распознан» — файл не похож на рабочий процесс;
- «воркер не разобрал документ до конца» — частичный разбор: что видно, то правится, остальное названо.
Замечания панели — не лента строк: замечания одного шага стоят под одним заголовком, заголовок словами говорит, что с этим шагом («блокирует» или «правится здесь»), и печатает число замечаний; блокирующие поднимаются выше исправляемых, а порядок внутри следует порядку файла. Восьмая линейка дополнительно называет робота числом шагов, а не обещанием.
Сборка: палитра, шаги, свойства
Палитра — каталог подходящих действий, собранный семьями по компонентам: браузер, интерфейс, Excel, PDF, Word, почта, файлы, папки, S3, WebDAV, Telegram и поток управления. Категории и подписи повторяют тулбокс Studio 7: робот не теряет действий при переезде в восьмую линейку. Поиск открывается иконкой, счётчики — чипами, семьи по умолчанию свёрнуты; внизу — легенда с именем шага и подсказкой, какие аргументы обязательны.
3.wf — палитра слева, «Структура» в центре, «Свойства» выбранного узла справа. Разбор всех трёх колонок и счётчиков — в «Панели Studio 8».Способов добавить шаг несколько: двойной клик или Enter по строке палитры, перетаскивание, контекстное меню шага («вставить перед/после», «вставить в…» для контейнеров), контекстное меню активности в палитре. Можно вставить сразу несколько шагов.
Панель свойств правит выбранный шаг: имя (переименовывается прямо в строке контура), поля аргументов, комментарий шага, закладка (флажок на вкладке «Служебные» — шаг отмечается иконкой в контуре), вид (иконка и цвет), пометка «не выполнять». Поля только что вставленного шага правятся сразу, без сохранения документа. CLR-имена, пути и термины протокола убраны в подсказки — на экране человеческие подписи.
В контуре: поиск по шагам, копирование и вставка шага, сворачивание и разворачивание дерева, запуск до шага и с шага. Конструкции потока управления переведены на русский: «Если», «Последовательность», «Присвоить», «Для каждого».
Сохранение идёт в сам файл .wf, с отменой и боковой копией .bak. Если сохранение отвергнуто (файл не пустой, права, разбор), редактор называет причину, а не делает вид: файл остаётся прежним. Правка, приехавшая на перечитываемый или не показанный сейчас шаг, тоже не исчезает молча.
Переменные, аргументы и сборки
У робота есть переменные: объявляются в панели переменных (имя, тип, значение по умолчанию), снимаются оттуда же. Шаг «Присвоить» вставляется из палитры или контекстного меню с уже выбранной переменной и приводит значение к её типу. Тип можно задать массивом. Если переменную читают шаги, снять её просто так нельзя — редактор назовёт шаги, которые её читают, а не только число мест.
Аргументы робота (входные и выходные значения вызова) и ссылки на сборки — отдельная панель, а не свойства какого-то шага: они относятся к документу целиком.
Значения, помеченные как защищённые, на паузе и в журнале показываются скрытыми: тела пароля в панели и в логе нет.
Отладка: пауза и значения
Шагу ставится точка останова из контекстного меню («поставить точку останова» / «снять точку»). При запуске робот встаёт на этом шаге до его действия и ждёт команды. Пока запуск стоит на паузе, в тулбаре документа появляются «В узел», «Следующий узел» и «Наружу», а в правой колонке — панель «Значения на паузе»: переменные робота и их значения ровно в тот момент, когда робот встал, плюс число строк в снимке. «Продолжить» двигает робота дальше.
Подсветка исполнения доведена до каждого шага: светятся не только отдельные действия, но и контейнеры (последовательность, «если», «для каждого»); у шага внутри цикла видно, который это проход («×3»), и сколько он длился; у упавшего — причина. Состояние шага читается без наведения мыши и без различения цветом, контур проходится с клавиатуры, а системная просьба «уменьшить количество движения» гасит подсветку целиком.
Команды запуска честные:
- «Остановить», нажатая сразу после «Запустить», действительно останавливает запуск;
- «Запустить» на роботе, стоящем на точке останова, не отменяет паузу молча и не выдаёт это за успех;
- «Запустить» по роботу, который уже идёт и не на паузе, не поднимает второй запуск того же файла;
- если процесс-исполнитель упал или был снят снаружи, панель лога получает ровно одну строку итога — «итог: lost · … · воркер вышел с кодом N», а гибель не выглядит как «робот ещё идёт». Гибель на точке останова называет шаг незавершённым, а не пустым.
Строки рана живут на своей вкладке журнала в панели отладки: на «Выводе» остаётся только то, что печатает сам робот, «Все» показывает и то и другое в порядке появления. DebugMessage и WriteLine пишутся во вкладку «Вывод».
«Показать как текст»
Текст разметки доступен по явной команде «Показать как текст» и только для чтения: так видно, что именно робот несёт в файле, не давая редактору сломать структуру ручной правкой. Обратный ход ничего не стоит — пока робот открыт текстом, к его структуре возвращает кнопка в тулбаре, и при этом не теряются очередь несохранённых правок, отмены/повторы, счётчик правок и значения полей.
Где робот исполняется
Исполнителей два, и это главное, что нужно знать про перенос:
- Windows:
.wfзапускается через мост к.NET Framework 4.8— тем же движком, что и классическая Studio, поэтому полный спектр активностей (в том числе работа с Excel, Word, Outlook, окнами, клавиатурой и мышью) доступен и в восьмой линейке. В коробке рядом с редакторным воркером лежитWfBridge. Мост получает порт API Studio, а не значение по умолчанию, иначе ран не доходит до строки «итог». - Linux: остаётся подмножество net8-исполнителя. Шаги рабочего стола и COM (Excel, Word, Outlook, клавиатура, мышь, окна, буфер обмена) отказываются до запуска и называют платформу:
Имя: Windows-only.
Значит, робот, который на Windows использует только браузер, файлы, HTTP и почту, переезжает на Linux без изменений; робот, который трогает рабочий стол или COM-приложения, на Linux не исполняется, и редактор говорит об этом заранее, а не падает в середине прогона.
Выражения на Visual Basic, которые пишет классический редактор, мост компилирует после снимания типов; шаг «Присвоить» из палитры пишется как OutArgument со ссылкой на переменную — так же, как в классической Studio, иначе мост не грузит робота.
«Открыть в Studio 7»
В отчёте открытия робота есть действие «Открыть в Studio 7»: классическая студия стартует на этом файле. Путь берётся из настроек классического продукта либо из переменной окружения XHE_STUDIO7_EXE; если Studio 7 не найдена, действие сообщает об отказе, а не падает, и второе окно само не открывается. Поиск установленной 7.x идёт по имени XWeb Human Emulator Studio.exe и по ветке реестра удаления программ.
Когда это нужно: в файле есть конструкции, которые восьмой движок не строит (см. следующий раздел), или робот сохранён задолго до текущей поставки и его проще доправить в классическом редакторе. Файл при этом не портится: действие только запускает второе приложение на том же пути.
Границы и зашифрованные роботы
Что восьмой редактор пока не строит: блоки TryCatch, развилку по значению (Switch), графовые конструкции потока (Flowchart с решениями и ветвлениями), несколько позиций, писатель которых знает, но не умеет наполнять. Отказные позиции плитками в палитре не показываются — вставить «в надежде» нельзя; вместо этого файл с такой конструкцией называется панелью проверки, и лечится «Открыть в Studio 7».
Зашифрованный робот (файл вида имя.wf.encoded_wf) больше не молчит и не притворяется битым: редактор и запуск одним словом говорят, что это зашифрованный визуальный робот, который здесь не расшифровывается, и что нужно открыть исходный .wf или классическую Studio.
Роботы, сохранённые до 04.10.2026, в 7.0.78 снова открываются в редакторе: свойство IsFailOnExists у WebDAV-папок возвращено как нерабочее, и загрузчик XAML больше не роняет такой файл.
Помощник кода (вставка сниппета) в редакторе робота отказывает по названной причине: «откройте скрипт php, cs, js или py» либо «визуальный робот собирается из шагов» — молчания нет.
Как проверить у себя
- Создайте робота (8.x: Файл → Создать → Workflow) и откройте панель проверки: вердикт обязан называть, что можно делать с этим файлом, а не молчать.
- Добавьте шаг из палитры, измените свойство, сохраните, закройте вкладку и откройте файл заново: правка должна перечитатьсться из файла, а не потеряться.
- Поставьте точку останова на втором шаге и запустите: робот обязан встать до действия, а панель «Значения на паузе» показать переменные. Проверьте «Следующий узел» и «Наружу».
- Откройте тот же файл через «Показать как текст» и вернитесь назад: несохранённые правки и отмены не должны исчезнуть.
- Для переноса: соберите робота с шагом Excel и запустите на Linux — отказ должен прийти до запуска и назвать платформу.
Смежные страницы: Studio 8 (бета): что нового — раздел про конструктор, run_as_* — запуск скриптов из робота, меню «Отладка» — панель отладки, активация — общая лицензия для 7.x и 8.x.