---
url: https://docs.ogmabox.com/uk/app/workflows.md
description: >-
  Створюйте повторно використовувані робочі процеси Ogma для пасивного
  опрацювання, активних дій і перетворення даних.
---

# Робочі процеси {#workflows}

Робочі процеси — це повторно використовувані ланцюжки автоматизації, які опрацьовують перехоплений трафік, виконують активні кроки або перетворюють дані без потреби писати окремі скрипти.

## Типи робочих процесів {#workflow-types}

| Тип | Що запускає | Типове використання |
|------|-------------|------------|
| Пасивний | Новий перехоплений трафік | Позначати цікаві закономірності, додавати мітки до запитів, автоматично створювати знахідки. |
| Активний | Ручний запуск | Надсилати подальші запити, об’єднувати дії в ланцюжки, виконувати багатокрокові тести. |
| Перетворення | Тестові вхідні дані, дії перетворення або пошук і заміна | Перетворювати текст або байти, наприклад форматувати JavaScript чи нормалізувати JSON. |

Пасивні робочі процеси безперервно працюють у фоні. Активні запускаються за потреби для вибраного набору запитів.

## Полотно робочого процесу {#the-workflow-canvas}

Відкрийте **Робочі процеси** й виберіть процес, щоб відкрити його полотно.

* Вузли відображаються в центральній панелі. Кожен вузол має типізовані вхідні й вихідні порти.
* З’єднайте вихідний порт із вхідним, натиснувши й перетягнувши зв’язок між ними.
* Натисніть вузол, щоб відкрити панель його налаштувань праворуч.
* Верхня панель містить елементи запуску, увімкнення й вимкнення, імпорту й експорту.

## Типи вузлів {#node-types}

| Вузол | Опис |
|------|-------------|
| Початок / Кінець | Вхідні й вихідні вузли відповідно до пасивного, активного або перетворювального типу процесу. |
| Умови | Якщо / інакше, Якщо / інакше (JS), Зіставлення HTTPQL, Перевірка області тестування, Рядок містить і Зіставлення регулярного виразу. |
| Кодування | Кодування й декодування Base64, URL, Hex і HTML. |
| Форматування й хеші | Мінімізація JSON / Форматування JSON, MD5, SHA-1 і SHA-256. |
| Текстові операції | Прибирання крайових символів, Об'єднання, Розділення, Пошук і заміна, Перетворення JQ і Витягування Grep. |
| JavaScript | Власна логіка через SDK робочого процесу; може читати трафік, працювати з файлами й створювати знахідки. |
| Інтеграція | Запис у журнал, Вебхук, Виклик робочого процесу, Надсилання запиту і Правило пошуку й заміни. |

Переглядайте фактичні порти й налаштування в палітрі вузлів. Натисніть зв’язок, щоб працювати з ним, замість видалення вузла для повторного з’єднання графа. Зберігайте кнопкою **Зберегти** або **Ctrl+S** (Command+S на macOS).

## Спільне використання й область дії {#sharing-and-scope}

За замовчуванням робочі процеси спільні для проєктів одного робочого простору. Увімкніть **Для окремого проєкту**, щоб зберігати визначення разом із проєктом. Спільні визначення не роблять спільними трафік, результати чи нотатки всіх проєктів. Для перенесення в інший робочий простір або інсталяцію експортуйте й імпортуйте JSON робочого процесу.

## Тестування перед використанням на реальному трафіку {#testing-before-live-use}

Пасивні й активні робочі процеси мають розділ **Перевірка HTTP** з URL і тестовими запитом та відповіддю в повному HTTP-форматі. Увімкніть процес, заповніть ці поля й натисніть **Перевірити робочий процес**. Тест зберігає зміни перед виконанням. Тестові значення зберігаються для кожного процесу під час переходів між сторінками.

Процес перетворення натомість має **Тестові вхідні дані** і результат. Почніть із невеликого характерного прикладу, а потім перевірте ресурс реалістичного розміру. Тестові дані не роблять довільний JavaScript або вузли Send Request нешкідливими: код процесу все одно може виконувати налаштовані дії.

### JavaScript і файли {#javascript-and-files}

JavaScript робочих процесів підтримує SDK Ogma й сумісні імпорти `fs`/`path`. Використовуйте `sdk.fs.readFile`, `writeFile`, `appendFile`, `exists`, `readDir`, `mkdir` і `unlink` для файлових операцій, а `sdk.path` — для шляхів з урахуванням платформи. Це допоміжні функції Ogma, а не вся стандартна бібліотека Node.js.

Для експорту ресурсу прочитайте `response.getBody().toText()`, виберіть місце призначення через `sdk.path.join`, створіть батьківський каталог і перевірте `sdk.fs.exists`, якщо не хочете перезаписувати наявний файл. Перевіряйте шляхи перед виконанням: файлові функції робочих процесів працюють на хості Ogma, на відміну від `sdk.fs` плагіна в його приватному каталозі. Це окреме середовище виконання описано в [SDK плагінів](../plugins/README.md#sdk-fs).

## Імпорт робочого процесу {#importing-a-workflow}

1. Натисніть **Імпортувати** на панелі «Робочі процеси».
2. Виберіть JSON-файл робочого процесу.
3. Процес відкриється на полотні. Перевірте налаштування вузлів перед увімкненням.
4. Збережіть процес.

Експортовані JSON-файли робочих процесів можна передавати між інсталяціями Ogma або зберігати в системі контролю версій.

## Запуск робочого процесу на перехопленій історії {#running-a-workflow-on-captured-history}

Активні робочі процеси можна повторно запускати для раніше перехоплених запитів.

1. Відкрийте робочий процес.
2. Натисніть **Виконати на історії**.
3. У діалозі сканування історії введіть необов’язковий фільтр HTTPQL, щоб обмежити запити, які опрацьовуватиме процес.
4. Натисніть **Виконати**.

Перевірте кількість збігів і запустіть завдання. Перебіг виконання й помилки відображаються в завданні сканування та, якщо журналювання ввімкнено, в історії запусків. Пасивні процеси пропонують **Сканувати історію** й **Повторно виконати на запиті** для опрацювання раніше записаних даних.

Для кількох цікавих ресурсів виберіть один або кілька рядків історії HTTP, натисніть правою кнопкою миші, виберіть **Надіслати до робочого процесу** й увімкнений активний процес. Це передає йому вибрані записи без зміни визначення чи опрацювання всієї історії.

Кнопка **ШІ** поруч із полем фільтра сканування історії створює вираз HTTPQL з опису звичайною мовою.

## Запуски й результати робочих процесів {#workflow-runs-and-results}

Увімкніть **Увімкнути журналювання** в налаштуваннях процесу, якщо потрібні подробиці виконання. Воно діє для пасивних, активних і перетворювальних процесів, зокрема перетворень пошуку й заміни. Якщо журналювання вимкнено, опрацювання продовжується, але журнали запусків і кроків не додаються; увімкніть його знову й повторіть тест для діагностики проблеми.

* Натисніть запуск, щоб побачити результати кроків кожного вузла.
* Вузли, що спричинили помилки, підсвічуються.
* Створені під час запуску знахідки з’являються в розділі [Знахідки](./findings.md).
* Змінні, отримані під час запуску, відображаються на панелі подробиць кроку.

**Очистити все** видаляє збережену історію запусків вибраного процесу. Завантажте журнали перед очищенням, якщо потрібно зберегти докази для налагодження. Журналювання може зберігати великі результати, як-от повні тіла скриптів, тому залишайте його вимкненим для масових перетворень, якщо воно не потрібне.

## Увімкнення пасивного робочого процесу {#enabling-a-passive-workflow}

1. Відкрийте робочий процес.
2. Переконайтеся, що налаштування полотна завершено (немає нез’єднаних обов’язкових портів).
3. Увімкніть **Увімкнути** на панелі інструментів.

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

## Пов’язані сторінки {#related-pages}

* [Знахідки](./findings.md)
* [Середовище](./environment.md)
* [HTTPQL і StreamQL](../reference/httpql.md)
