วิธีรวมหลายสตรีมในกฎ Activator

บทความนี้แสดงให้คุณรู้จักวิธี:

  • ตรวจสอบข้อมูลจากสตรีมเหตุการณ์หลายรายการและดําเนินการโดยอัตโนมัติโดยการกําหนดกฎ Activator
  • ตั้งค่าเงื่อนไขขั้นสูงหลายเงื่อนไข เช่น ค่าเฉลี่ย ค่าสูงสุด หรือค่าต่ําสุดของคุณสมบัติข้อมูล โดยใช้ความสามารถในการสร้างแบบจําลอง Activator

สถานการณ์สมมติ

ในตัวอย่างนี้ คุณสามารถติดตามความสมบูรณ์ของปั๊มน้ํา (เครื่องจักร) ได้โดยการตรวจสอบ อัตราการไหล และการ สั่นสะเทือน ของเครื่อง เป้าหมายคือการดําเนินการโดยอัตโนมัติ เช่น การส่งการแจ้งเตือนหรือเริ่มต้นกระบวนการทางธุรกิจ หากการสั่นสะเทือนผิดปกติในขณะที่เครื่องกําลังทํางานและเคลื่อนย้ายน้ําจํานวนมาก (FlowRate) การสั่นสะเทือนของปั๊มน้ําสูงอาจส่งสัญญาณถึงปัญหาพื้นฐาน แต่คาดว่าจะเกิดขึ้นตราบใดที่อัตราการไหลไม่มีนัยสําคัญ

เครื่องตรวจสอบการไหลของข้อมูลเป็นสองสตรีมเหตุการณ์:

  • สตรีมเหตุการณ์ MachineHeartbeat ประกอบด้วยคอลัมน์ MachineNumber ที่ระบุเครื่องและคอลัมน์ MachineRunning ที่ระบุว่าเครื่องกําลังทํางาน (1) หรือไม่ (0) เหตุการณ์จะถูกปล่อยออกมาทุกครั้งที่สถานะของเครื่องเปลี่ยนไป
  • สตรีมเหตุการณ์ MachineSensorsReadings ประกอบด้วยคอลัมน์ MachineId พร้อมกับคอลัมน์ FlowRate และ Vibration ทุกเครื่องจะปล่อยการอ่านค่าเซ็นเซอร์ทุกๆ สองสามวินาที

โปรดสังเกตว่า eventstream ทั้งสองระบุเครื่องโดยใช้คอลัมน์ที่แตกต่างกัน: MachineId ใน MachineSensorsReadings และ MachineNumber ใน MachineHeartbeat คอลัมน์ทั้งสองมีค่าตัวระบุเครื่องเดียวกัน

ในสถานการณ์สมมตินี้ คุณต้องการเพิ่มการแจ้งเตือนเมื่อเงื่อนไขเหล่านี้ ทั้งหมด เป็นจริง:

  • การ สั่นสะเทือน สูงสุดในช่วง 1 ชั่วโมงที่ผ่านมาเพิ่มขึ้นสูงกว่า 18
  • อัตราการไหลเฉลี่ยในช่วง 10 นาทีที่ผ่านมาสูงกว่า 185
  • เครื่องกําลังทํางาน

กฎตัวกระตุ้นรองรับเงื่อนไขที่ซับซ้อนตามสตรีมเหตุการณ์หลายรายการ คุณสามารถสร้างคุณสมบัติที่คํานวณตามคอลัมน์เหตุการณ์และรวมเข้าด้วยกันในเงื่อนไขกฎ

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

Note

Activator รองรับการเข้าร่วมสตรีมเหตุการณ์ที่ระบุวัตถุเดียวกันโดยใช้คอลัมน์ตัวระบุที่ไม่ซ้ํากันที่แตกต่างกัน ในสถานการณ์สมมตินี้ MachineSensorsReadings ใช้ MachineId และ MachineHeartbeat ใช้ MachineNumber และ Activator รวมเป็นวัตถุเดียว

จากนั้น คุณสร้างคุณสมบัติที่คํานวณค่าเฉลี่ย (FlowRate) อีกอันหนึ่งสําหรับ max (การสั่นสะเทือน) และรวมเข้ากับคุณสมบัติ IsRunning เมื่อประเมินกฎ Activator จะคํานวณค่าคุณสมบัติตามคําจํากัดความและรักษาค่าที่คํานวณล่าสุดของทุกคุณสมบัติ ค่าเหล่านี้จะใช้เมื่อประเมินเงื่อนไข

ในกฎ Activator คุณต้องตั้งค่าเงื่อนไขหนึ่งเงื่อนไข เช่น max(Vibration) > 18 และเพิ่มตัวกรองเสริม เช่น avg(FlowRate) > 185 และ MachineRunning กฎจะเริ่มทํางานเมื่อตรงตามเงื่อนไข โดยมีเงื่อนไขว่าตัวกรองเป็นจริงด้วย

เงื่อนไขขับเคลื่อนกฎดังที่แสดงในภาพต่อไปนี้:

สกรีนช็อตของไดอะแกรมที่แสดงว่าเงื่อนไขขับเคลื่อนกฎใน Activator ด้วยตัวกรองและการดําเนินการอย่างไร

สารละลาย

  1. เพิ่มปลายทาง Activator ให้กับสตรีมเหตุการณ์ทั้งสอง ตรวจสอบให้แน่ใจว่าสตรีมเหตุการณ์ทั้งสองใช้อินสแตนซ์ Activator เดียวกัน

    สกรีนช็อตของสตรีมเหตุการณ์ MachineHeartbeat ที่มีการเพิ่มปลายทาง Activator

    สกรีนช็อตของสตรีมเหตุการณ์ MachineSensorsReadings ที่มีการเพิ่มปลายทาง Activator

    สตรีมเหตุการณ์ทั้งสองได้รับการกําหนดค่าด้วยปลายทาง Activator เดียวกัน:

    สกรีนช็อตของสตรีมเหตุการณ์ทั้งสองที่กําหนดค่าด้วยปลายทาง Activator เดียวกัน

  2. เปิดรายการ Activator ตอนนี้คุณสามารถรวมสตรีมเหตุการณ์ทั้งสองในออบเจ็กต์และตั้งค่ากฎได้

    สกรีนช็อตของรายการ Activator ที่แสดงสตรีมเหตุการณ์สองรายการที่พร้อมให้รวมกัน

  3. หากต้องการรวมสตรีมทั้งสองนี้ ให้เลือกสตรีมใดก็ได้แล้วเลือกออบเจ็กต์ใหม่

    สกรีนช็อตของการเลือกสตรีมเหตุการณ์และคลิกปุ่ม วัตถุใหม่

  4. เลือกชื่อคอลัมน์ที่ใช้ในการระบุอินสแตนซ์ของออบเจ็กต์และคอลัมน์ที่จําเป็นสําหรับกฎ แล้วเลือก สร้าง ค่าของคอลัมน์ MachineId ในแต่ละเหตุการณ์เป็นคีย์ที่ระบุเครื่องที่ปล่อยเหตุการณ์

    สกรีนช็อตของบานหน้าต่าง สร้างวัตถุ ที่เลือก MachineId เป็นตัวระบุเฉพาะและคอลัมน์ที่เกี่ยวข้องที่เลือก

  5. เลือกสตรีมเหตุการณ์อื่น เลือก วัตถุใหม่ แล้วเลือก เพิ่มไปยังวัตถุที่มีอยู่ ในบานหน้าต่าง สร้างวัตถุ เลือกคอลัมน์ MachineNumber เป็นตัวระบุที่ไม่ซ้ํากัน เลือก มอบหมาย ตอนนี้สตรีมทั้งสองจะรวมกันเป็นออบเจ็กต์เดียว แม้ว่าแต่ละสตรีมจะใช้คอลัมน์ตัวระบุที่แตกต่างกัน

    สกรีนช็อตของบานหน้าต่างวัตถุสร้างโดยเลือกตัวเลือกเพิ่มลงในวัตถุที่มีอยู่และ MachineNumber เป็นตัวระบุที่ไม่ซ้ํากัน

  6. ตอนนี้คุณสามารถกําหนดคุณสมบัติที่คํานวณได้ สร้างแอตทริบิวต์สําหรับการคํานวณค่าเฉลี่ยของ FlowRate ในช่วง 10 นาทีที่ผ่านมา เลือกแอตทริบิวต์ FlowRate และเลือก แก้ไขรายละเอียด

    สกรีนช็อตของการเลือกแอตทริบิวต์ FlowRate และคลิก แก้ไขรายละเอียด

  7. บนบานหน้าต่าง คําจํากัดความ ให้เลือก เพิ่มการสรุป เลือก เฉลี่ย และตั้งค่า 10 นาทีเป็นขนาดหน้าต่าง เลือก บันทึก

    สกรีนช็อตของบานหน้าต่าง คําจํากัดความ พร้อมตัวเลือก เพิ่มการสรุป และ ค่าเฉลี่ย ที่เลือกไว้

    สกรีนช็อตของสรุปค่าเฉลี่ยที่กําหนดค่าด้วยขนาดหน้าต่าง 10 นาที

  8. เลือกแอตทริบิวต์การสั่น แล้วเลือกแก้ไขรายละเอียด บนบานหน้าต่าง คําจํากัดความ ให้เลือก เพิ่มการสรุป เลือก สูงสุด และตั้งค่า 1 ชั่วโมงเป็นขนาดหน้าต่าง เลือก บันทึก

    สกรีนช็อตของแอตทริบิวต์การสั่นสะเทือนที่มีการกําหนดค่าการสรุปสูงสุดสําหรับกรอบเวลา 1 ชั่วโมง

  9. ตอนนี้สร้างกฎ เลือกคุณสมบัติการสั่น และเลือกกฎใหม่

    สกรีนช็อตของการเลือกคุณสมบัติการสั่นและคลิกปุ่มกฎใหม่

  10. ในบานหน้าต่าง คําจํากัดความ ให้ตั้งค่า เพิ่มขึ้นเหนือ เงื่อนไข โดยมีเกณฑ์ 18

    สกรีนช็อตของบานหน้าต่าง คําจํากัดความ ที่มีเงื่อนไข เพิ่มขึ้นข้างต้น ตั้งค่าเป็นค่าเกณฑ์ 18

  11. เพิ่มตัวกรองสําหรับคุณสมบัติ FlowRate และอีกตัวกรองหนึ่งสําหรับคุณสมบัติ MachineRunning

    สกรีนช็อตของกฎที่มีตัวกรองที่เพิ่มสําหรับคุณสมบัติ FlowRate และ MachineRunning

  12. เลือกการดําเนินการที่คุณต้องการ เช่น การส่งข้อความอีเมลหรือ Teams การเรียกใช้กระบวนการทางธุรกิจ เช่น ไปป์ไลน์ สมุดบันทึก หรือฟังก์ชัน หรือการเรียกใช้การดําเนินการแบบกําหนดเองแบบไม่ใช้โค้ดด้วย Power Automate เลือก บันทึกและเริ่ม

    สกรีนช็อตของหน้าการเลือกการดําเนินการพร้อมตัวเลือกในการส่งการแจ้งเตือนหรือเรียกใช้กระบวนการทางธุรกิจ

ขั้นตอนถัดไป

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับกฎของ Activator โปรดดู สร้างและจัดการกฎของ Activator