logologo
เริ่มต้น
คู่มือ
การพัฒนา
ปลั๊กอิน
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
เริ่มต้น
คู่มือ
การพัฒนา
ปลั๊กอิน
API
logologo
เวิร์กโฟลว์
ภาพรวม
เริ่มต้นใช้งาน

ทริกเกอร์

ภาพรวม
เหตุการณ์ตารางข้อมูล
งานที่กำหนดเวลา
เหตุการณ์ก่อนการดำเนินการ
เหตุการณ์หลังการดำเนินการ
เหตุการณ์การดำเนินการที่กำหนดเอง
การอนุมัติ
Webhook

โหนด

ภาพรวม

AI

LLM

การควบคุมโฟลว์

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

การคำนวณ

การคำนวณ
การคำนวณวันที่
การคำนวณ JSON

การดำเนินการข้อมูล

เพิ่มข้อมูล
อัปเดตข้อมูล
ค้นหาข้อมูล
ลบข้อมูล
การดำเนินการ SQL

การดำเนินการด้วยตนเอง

การดำเนินการด้วยตนเอง
การอนุมัติ
ส่งสำเนา (CC)

ขยายประเภท

คำขอ HTTP
สคริปต์ JavaScript
การแจ้งเตือน
ส่งอีเมล
การตอบกลับ
ข้อความตอบกลับ
ตัวแปร
บันทึกการดำเนินการ
การจัดการเวอร์ชัน
ตัวเลือกขั้นสูง

การพัฒนาส่วนขยาย

ภาพรวม
ขยายประเภททริกเกอร์
ขยายประเภทโหนด
การอ้างอิง API
Previous Pageข้อความตอบกลับ
Next Pageบันทึกการดำเนินการ
TIP

เอกสารนี้แปลโดย AI หากมีข้อมูลที่ไม่ถูกต้อง โปรดดูเวอร์ชันภาษาอังกฤษ

#การใช้งานตัวแปร

#แนวคิดหลัก

เช่นเดียวกับตัวแปรในภาษาโปรแกรมมิ่ง ตัวแปรในเวิร์กโฟลว์เป็นเครื่องมือสำคัญที่ใช้เชื่อมโยงและจัดระเบียบกระบวนการต่างๆ ครับ/ค่ะ

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

  • ข้อมูลบริบทการทริกเกอร์ (Trigger context data): ในกรณีที่เกิดการทริกเกอร์จากการกระทำ (action triggers) หรือการทริกเกอร์จากคอลเลกชัน (collection triggers) ออบเจกต์ข้อมูลแถวเดียวสามารถนำมาใช้เป็นตัวแปรสำหรับทุกโหนดได้ครับ/ค่ะ โดยรายละเอียดจะแตกต่างกันไปตามการใช้งานของแต่ละทริกเกอร์
  • ข้อมูลจากโหนดต้นน้ำ (Upstream node data): เมื่อกระบวนการดำเนินมาถึงโหนดใดๆ ก็ตาม ข้อมูลนี้คือผลลัพธ์จากโหนดที่ทำงานเสร็จสิ้นไปแล้วครับ/ค่ะ
  • ตัวแปรเฉพาะส่วน (Local variables): เมื่อโหนดอยู่ในโครงสร้างสาขาพิเศษบางอย่าง สามารถใช้ตัวแปรเฉพาะส่วนที่มีอยู่ในสาขานั้นๆ ได้ครับ/ค่ะ เช่น ในโครงสร้างแบบวนซ้ำ (loop structure) สามารถใช้ออบเจกต์ข้อมูลของการวนซ้ำแต่ละรอบได้
  • ตัวแปรระบบ (System variables): พารามิเตอร์ระบบบางอย่างที่ถูกสร้างมาในตัว เช่น เวลาปัจจุบัน เป็นต้น

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

โหนดการคำนวณที่ใช้ฟังก์ชันและตัวแปร

ในโหนดอัปเดต เราใช้ข้อมูลบริบทการทริกเกอร์เป็นตัวแปรสำหรับเงื่อนไขการกรอง และอ้างอิงผลลัพธ์จากโหนดการคำนวณเป็นตัวแปรสำหรับค่าฟิลด์ที่จะอัปเดตครับ/ค่ะ:

ตัวแปรในโหนดอัปเดตข้อมูล

#โครงสร้างข้อมูล

ตัวแปรภายในมีโครงสร้างเป็น JSON ครับ/ค่ะ และโดยทั่วไปแล้ว เราสามารถเข้าถึงส่วนเฉพาะของข้อมูลได้โดยใช้ JSON path เนื่องจากตัวแปรจำนวนมากอิงตามโครงสร้างคอลเลกชันของ NocoBase ข้อมูลความสัมพันธ์จะถูกจัดโครงสร้างตามลำดับชั้นในลักษณะคล้ายต้นไม้ โดยเป็นคุณสมบัติของออบเจกต์ ตัวอย่างเช่น เราสามารถเลือกค่าของฟิลด์ใดฟิลด์หนึ่งจากข้อมูลความสัมพันธ์ของข้อมูลที่ถูกคิวรีได้ นอกจากนี้ เมื่อข้อมูลความสัมพันธ์มีโครงสร้างแบบ "หนึ่งต่อหลาย" (to-many) ตัวแปรอาจเป็นอาร์เรย์ได้ครับ/ค่ะ

ในการเลือกตัวแปร ส่วนใหญ่แล้วเราจะต้องเลือกคุณสมบัติค่าในระดับสุดท้าย ซึ่งมักจะเป็นชนิดข้อมูลแบบง่าย เช่น ตัวเลข หรือสตริงครับ/ค่ะ อย่างไรก็ตาม หากมีอาร์เรย์อยู่ในลำดับชั้นของตัวแปร คุณสมบัติในระดับสุดท้ายก็จะถูกแมปเป็นอาร์เรย์ด้วย ซึ่งข้อมูลอาร์เรย์จะถูกประมวลผลได้อย่างถูกต้องก็ต่อเมื่อโหนดที่เกี่ยวข้องรองรับอาร์เรย์เท่านั้นครับ/ค่ะ ตัวอย่างเช่น ในโหนดการคำนวณ เอนจินการคำนวณบางตัวมีฟังก์ชันที่ออกแบบมาเพื่อจัดการกับอาร์เรย์โดยเฉพาะ หรือในโหนดวนซ้ำ (loop node) ออบเจกต์ที่ใช้ในการวนซ้ำก็สามารถเลือกเป็นอาร์เรย์ได้โดยตรงเช่นกัน

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

[
  {
    "id": 1,
    "title": "Title 1"
  },
  {
    "id": 2,
    "title": "Title 2"
  }
]

อย่างไรก็ตาม เมื่อนำไปใช้เป็นตัวแปรในโหนดถัดไป หากตัวแปรที่เลือกอยู่ในรูปแบบ Node data/Query node/Title คุณจะได้อาร์เรย์ที่ถูกแมปเป็นค่าของฟิลด์ที่เกี่ยวข้องครับ/ค่ะ:

["Title 1", "Title 2"]

หากเป็นอาร์เรย์หลายมิติ (เช่น ฟิลด์ความสัมพันธ์แบบหลายต่อหลาย) คุณจะได้อาร์เรย์หนึ่งมิติที่ฟิลด์ที่เกี่ยวข้องถูกทำให้แบนราบแล้วครับ/ค่ะ

#ตัวแปรระบบในตัว

#เวลาของระบบ

จะได้รับเวลาของระบบ ณ ขณะที่โหนดถูกประมวลผลครับ/ค่ะ โดยเขตเวลาของเวลานี้จะเป็นไปตามที่ตั้งค่าไว้บนเซิร์ฟเวอร์

#พารามิเตอร์ช่วงวันที่

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

พารามิเตอร์ช่วงวันที่