---
url: https://docs.ogmabox.com/th/app/workflows.md
description: >-
  สร้างเวิร์กโฟลว์ Ogma ที่นำกลับมาใช้ได้สำหรับการประมวลผลพาสซีฟ
  การดำเนินการแอกทีฟ และการแปลงข้อมูล
---

# เวิร์กโฟลว์ {#workflows}

เวิร์กโฟลว์คือชุดกระบวนการอัตโนมัติที่ใช้ซ้ำได้ เพื่อประมวลผลทราฟฟิกที่บันทึกไว้ เรียกใช้ขั้นตอนแอกทีฟ หรือแปลงข้อมูล โดยไม่ต้องเขียนสคริปต์แยก

## ประเภทเวิร์กโฟลว์ {#workflow-types}

| ประเภท | สิ่งที่เรียกให้ทำงาน | การใช้งานทั่วไป |
|------|-------------|------------|
| แบบพาสซีฟ | ทราฟฟิกใหม่ที่บันทึกไว้ | ทำเครื่องหมายรูปแบบที่น่าสนใจ ติดแท็กคำขอ และสร้างประเด็นที่ตรวจพบอัตโนมัติ |
| แบบแอกทีฟ | เรียกใช้ด้วยตนเอง | ส่งคำขอติดตาม เชื่อมการดำเนินการ และทดสอบหลายขั้นตอน |
| แปลง | อินพุตทดสอบ การดำเนินการแปลง หรือจับคู่และแทนที่ | แปลงข้อความหรือไบต์ เช่น จัดรูปแบบ JavaScript หรือปรับ JSON ให้เป็นรูปแบบเดียวกัน |

เวิร์กโฟลว์พาสซีฟทำงานต่อเนื่องในพื้นหลัง เวิร์กโฟลว์แอกทีฟทำงานเมื่อสั่งกับชุดคำขอที่เลือก

## พื้นที่ออกแบบเวิร์กโฟลว์ {#the-workflow-canvas}

เปิด **เวิร์กโฟลว์** แล้วเลือกเวิร์กโฟลว์เพื่อเปิดพื้นที่ออกแบบ

* โหนดอยู่ในแผงกลาง แต่ละโหนดมีพอร์ตอินพุตและเอาต์พุตที่กำหนดชนิดข้อมูล
* เชื่อมพอร์ตเอาต์พุตกับพอร์ตอินพุตด้วยการคลิกแล้วลากระหว่างกัน
* คลิกโหนดเพื่อเปิดแผงการกำหนดค่าด้านขวา
* แถบเครื่องมือด้านบนมีตัวควบคุมรัน เปิดหรือปิดใช้งาน และนำเข้าหรือส่งออก

## ประเภทโหนด {#node-types}

| โหนด | คำอธิบาย |
|------|-------------|
| เริ่ม / จบ | โหนดเข้าและออกที่เหมาะกับประเภทเวิร์กโฟลว์พาสซีฟ แอกทีฟ หรือแปลง |
| เงื่อนไข | หาก / มิฉะนั้น, หาก / มิฉะนั้น JS, จับคู่ HTTPQL, จับคู่ขอบเขต, มีสตริง และจับคู่นิพจน์ปรกติ |
| เข้ารหัส | เข้ารหัสหรือถอดรหัส Base64, URL, Hex และ HTML |
| จัดรูปแบบและแฮช | ลดขนาดหรือจัดรูปแบบ JSON, MD5, SHA-1 และ SHA-256 |
| การดำเนินการข้อความ | ตัดช่องว่างที่ขอบ รวม แยก จับคู่และแทนที่ แปลง JQ และดึงข้อมูลด้วย Grep |
| JavaScript | ตรรกะกำหนดเองผ่าน SDK เวิร์กโฟลว์ อ่านทราฟฟิก ทำงานกับไฟล์ และสร้างประเด็นที่ตรวจพบได้ |
| การเชื่อมต่อระบบ | บันทึกข้อมูล Webhook เรียกเวิร์กโฟลว์ ส่งคำขอ และกฎจับคู่และแทนที่ |

ใช้แผงเลือกโหนดเพื่อดูพอร์ตและการกำหนดค่าจริง คลิกการเชื่อมต่อเพื่อจัดการลิงก์นั้นแทนการลบโหนดเพื่อต่อกราฟใหม่ บันทึกด้วย **บันทึก** หรือ **Ctrl+S** และ Command+S บน macOS

## การแชร์และขอบเขต {#sharing-and-scope}

เวิร์กโฟลว์แชร์ระหว่างโครงการในพื้นที่ทำงานเดียวกันโดยค่าเริ่มต้น เปิด **เฉพาะโครงการ** เพื่อเก็บข้อกำหนดกับโครงการนั้น การแชร์ข้อกำหนดไม่ได้ทำให้ทราฟฟิก ผลลัพธ์ หรือบันทึกย่อของทุกโครงการถูกแชร์ ส่งออกหรือนำเข้า JSON เวิร์กโฟลว์เมื่อย้ายไปพื้นที่ทำงานหรือการติดตั้งอื่น

## ทดสอบก่อนใช้งานจริง {#testing-before-live-use}

เวิร์กโฟลว์พาสซีฟและแอกทีฟมีส่วน **ทดสอบ HTTP** พร้อมข้อมูลทดสอบ URL คำขอ Raw และการตอบกลับ Raw เปิดใช้งานเวิร์กโฟลว์ กรอกฟิลด์เหล่านั้น แล้วคลิก **ทดสอบเวิร์กโฟลว์** การทดสอบบันทึกการแก้ไขก่อนรัน ข้อมูลทดสอบเก็บไว้แยกตามเวิร์กโฟลว์เมื่อออกจากหน้าแล้วกลับมา

เวิร์กโฟลว์แปลงมี **อินพุตทดสอบ** และเอาต์พุตแทน เริ่มจากอินพุตตัวแทนขนาดเล็ก แล้วทดสอบไฟล์หรือข้อมูลที่มีขนาดใกล้เคียงจริง ข้อมูลทดสอบไม่ได้ทำให้ JavaScript ใด ๆ หรือโหนดส่งคำขอปลอดภัย โค้ดเวิร์กโฟลว์ยังคงดำเนินการตามที่กำหนดไว้ได้

### 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 หนึ่งแถวหรือหลายแถว คลิกขวา เลือก **ส่งไปยังเวิร์กโฟลว์** แล้วเลือกเวิร์กโฟลว์แอกทีฟที่เปิดใช้ การดำเนินการนี้ส่งรายการที่เลือกให้เวิร์กโฟลว์โดยไม่เปลี่ยนข้อกำหนดหรือประมวลผลประวัติทั้งหมด

ปุ่ม **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)
