---
url: https://docs.ogmabox.com/zh-Hant/app/workflows.md
description: 建立可重複使用的 Ogma 工作流程，進行被動處理、主動操作和資料轉換。
---

# 工作流程 {#workflows}

工作流程是可重複使用的自動化處理管線，用於處理擷取流量、執行主動步驟或轉換資料，不必撰寫獨立指令碼。

## 工作流程類型 {#workflow-types}

| 類型 | 觸發方式 | 常見用途 |
|------|-------------|------------|
| 被動 | 新擷取的流量 | 標記值得注意的模式、為請求加上標籤、自動建立檢測發現。 |
| 主動 | 手動執行 | 傳送後續請求、串接操作、執行多步驟測試。 |
| 轉換 | 測試輸入、轉換操作或比對與取代 | 轉換文字或位元組，例如格式化 JavaScript 或正規化 JSON。 |

被動工作流程會在背景持續執行。主動工作流程則依需求，針對選取的一組請求執行。

## 工作流程畫布 {#the-workflow-canvas}

開啟**工作流程**並選擇工作流程，開啟其畫布。

* 節點顯示在中央面板。每個節點都有具型別的輸入和輸出連接點。
* 在輸出連接點和輸入連接點之間點選並拖曳，即可連接。
* 按一下節點，在右側開啟其設定面板。
* 頂端工具列包含執行、啟用/停用和匯入/匯出控制項。

## 節點類型 {#node-types}

| 節點 | 說明 |
|------|-------------|
| 開始 / 結束 | 適合被動、主動或轉換工作流程類型的入口和出口節點。 |
| 條件 | 條件分支、JavaScript 條件分支、HTTPQL 比對、測試範圍比對、字串包含判斷和正規表示式比對。 |
| 編碼 | Base64、URL、十六進位和 HTML 編碼/解碼。 |
| 格式化和雜湊 | JSON 精簡/排版、MD5、SHA-1 和 SHA-256。 |
| 文字操作 | 移除頭尾字元、串接、分割、比對與取代、JQ 轉換和 Grep 擷取。 |
| JavaScript | 使用工作流程 SDK 的自訂邏輯，可讀取流量、操作檔案和建立檢測發現。 |
| 整合 | 記錄、Webhook、呼叫工作流程、傳送請求和比對與取代規則。 |

實際的連接點和設定請查看節點面板。按一下連線即可操作該連結，不必刪除節點來重新連接圖。使用**儲存**或 **Ctrl+S**（macOS 上為 Command+S）儲存。

## 共用和範圍 {#sharing-and-scope}

工作流程預設在同一工作區的專案之間共用。啟用**專案專用**，可將定義保留在所屬專案。共用定義不代表每個專案的流量、結果或筆記都會共用。移轉至其他工作區或安裝時，請匯出/匯入工作流程 JSON。

## 即時使用前的測試 {#testing-before-live-use}

被動和主動工作流程提供 **HTTP 測試**區段，包含 URL、原始請求和原始回應測試資料。啟用工作流程、填寫這些欄位，再按一下**測試工作流程**。測試會先儲存編輯內容，再執行。離開頁面再返回時，各工作流程的測試資料值仍會保留。

轉換工作流程則提供**測試輸入**與輸出。先使用小型且具代表性的輸入，再測試接近實際大小的資源。使用測試資料不會讓任意 JavaScript 或傳送請求節點變得無害：工作流程程式碼仍可執行其設定的操作。

### JavaScript 和檔案 {#javascript-and-files}

工作流程 JavaScript 支援 Ogma SDK 和相容的 `fs`/`path` 匯入。使用 `sdk.fs.readFile`、`writeFile`、`appendFile`、`exists`、`readDir`、`mkdir` 和 `unlink` 進行檔案操作，並使用 `sdk.path` 處理不同平台的路徑。這些是 Ogma 輔助 API，不是完整的 Node.js 標準函式庫。

製作資源匯出工具時，讀取 `response.getBody().toText()`，使用 `sdk.path.join` 選擇目的地，建立其父目錄；若不想覆寫現有檔案，請檢查 `sdk.fs.exists`。執行前請檢查檔案系統路徑：工作流程的檔案系統輔助 API 會在 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 歷程記錄、按一下滑鼠右鍵、選擇**傳送至工作流程**，再選擇已啟用的主動工作流程。這會將所選項目提供給工作流程，不會變更其定義，也不會處理全部歷程記錄。

掃描歷程記錄篩選輸入欄旁的 **AI**按鈕，會根據自然語言描述產生 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)
