หลีกเลี่ยงการต่อต้านรูปแบบ

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

หลีกเลี่ยงลูปสำหรับแต่ละรายการที่ซ้อนกัน

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

  • เวลาดำเนินการ: ลูปที่ซ้อนกันสามารถเพิ่มจำนวนการทำซ้ำทั้งหมดได้อย่างรวดเร็ว ตัวอย่างเช่น หากคุณมีสองลูป โดยแต่ละลูปมีการทำซ้ำ 10 ครั้ง จำนวนการวนซ้ำทั้งหมดจะกลายเป็น 10 x 10 = 100 การเพิ่มขึ้นแบบทวีคูณนี้สามารถยืดเวลาการดำเนินการของโฟลว์ของคุณ โดยเฉพาะอย่างยิ่งหากการทำซ้ำแต่ละครั้งประมวลผลชุดข้อมูลขนาดใหญ่หรือดำเนินการที่ซับซ้อน
  • ขีดจำกัดและโควตา: Power Automate บังคับใช้ขีดจำกัดและโควตา เช่น จำนวนการทำซ้ำสูงสุดที่อนุญาตภายในลูปและเวลาดำเนินการโดยรวม ลูปที่ซ้อนกันสามารถเข้าใกล้ขีดจำกัดเหล่านี้ได้อย่างรวดเร็ว ซึ่งนำไปสู่ความล้มเหลวของโฟลว์หรือการควบคุมปริมาณ โดยเฉพาะอย่างยิ่งเมื่อต้องรับมือกับชุดข้อมูลขนาดใหญ่หรือการดำเนินการบ่อยครั้ง
  • ผลกระทบด้านประสิทธิภาพ: การทำซ้ำแต่ละครั้งภายในลูปที่ซ้อนกันจะใช้พลังงานและหน่วยความจำในการประมวลผล เมื่อจำนวนการทำซ้ำเพิ่มขึ้นความต้องการทรัพยากรระบบจะเพิ่มขึ้นซึ่งอาจทำให้โฟลว์ทั้งหมดช้าลง

เรียนรู้เพิ่มเติม: ขีดจำกัดกระบวนการทำงานพร้อมกัน การวนรอบและการยกเลิกรวมกลุ่ม

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

  • สถานการณ์: ลูปภายนอกใช้การดำเนินการ แถวรายการ เพื่อดึงรายการประเภทผลิตภัณฑ์จากตาราง ProductCategory ที่คอลัมน์ IsPromotion เป็นจริง จากนั้นลูปภายในจะประมวลผลเรกคอร์ดที่เกี่ยวข้องจากตาราง ผลิตภัณฑ์ สำหรับแต่ละประเภทที่ถูกดึงโดยลูปภายนอก

  • แนวทางสำรอง: ใช้การขยายคิวรี OData เพื่อปรับปรุงกระบวนการนี้ วิธีนี้ช่วยให้คุณทำงานกับลูปสำหรับแต่ละลูปเดียว โดยลดจำนวนคำขอ Dataverse ทั้งหมดเป็นเพียงการเรียก RetrieveMultiple เพียงครั้งเดียว

เมื่อต้องการใช้การขยายคิวรี OData:

  • ใช้พารามิเตอร์ ขยายคิวรี เพื่อระบุชื่อคอลัมน์การค้นหาที่เชื่อมโยงตาราง ProductCategory กับตาราง ผลิตภัณฑ์ วิธีการนี้จะเรียกเรกคอร์ดที่เกี่ยวข้องในคิวรีเดียว ตัวอย่างเช่น ตั้งค่าพารามิเตอร์ขยายคิวรีเป็น Products($select=ProductName,Price)
  • ใช้พารามิเตอร์ $select เพื่อจำกัดคอลัมน์ที่ส่งคืนจากตารางที่เกี่ยวข้อง
  • ดึงและประมวลผลเรกคอร์ดที่เกี่ยวข้องโดยใช้เงื่อนไขโดยตรงกับคอลัมน์ของตารางการค้นหาโดยใช้พารามิเตอร์ กรองแถว ตัวอย่างเช่น ตั้งค่าพารามิเตอร์ กรองแถว เป็น IsPromotion eq true

ภาพหน้าจอของการใช้พารามิเตอร์ ขยายคิวรีและแถวตัวกรอง เพื่อใช้การขยายคิวรี OData

หลีกเลี่ยงการวนรอบที่ไม่สิ้นสุด

ด้วย Power Automate โฟลว์สามารถทริกเกอร์ได้ไม่สิ้นสุด เช่น เมื่อโฟลว์อัปเดตตารางเดียวกันกับที่ทริกเกอร์

เมื่อคุณบันทึกโฟลว์ที่อาจส่งผลให้เกิดลูปทริกเกอร์ที่ไม่สิ้นสุด Power Automate จะเตือนคุณ

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

หากต้องการหลีกเลี่ยงลูปที่ไม่สิ้นสุด:

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

หลีกเลี่ยงการดำเนินการแปลงข้อมูลจำนวนมาก

เมื่อทำงานกับการแปลงข้อมูลขนาดใหญ่ ให้พิจารณาใช้กระบวนการแยก แปลง โหลด (ETL) ตัวอย่างเช่น แทนที่จะใช้โฟลว์ระบบคลาวด์ Power Automate เพื่ออ่านข้อมูลจากสเปรดชีต Excel ขนาดใหญ่ ให้ทำการจัดรูปแบบข้อมูลหรือการตรวจสอบความถูกต้อง แล้วเขียนข้อมูลลงใน Dataverse การใช้ กระแสข้อมูล Power Platform หรือเครื่องมือ ETL อื่นอาจเหมาะสมกว่า

กระแสข้อมูลจัดการข้อมูลปริมาณมากอย่างมีประสิทธิภาพและให้ประสิทธิภาพที่ดีกว่าสำหรับงาน ETL มากกว่าโฟลว์ระบบคลาวด์ เครื่องมือ ETL นำเสนอคุณสมบัติพิเศษสำหรับการแปลงข้อมูล การตรวจสอบความถูกต้อง และการโหลด ซึ่งทำให้งานประมวลผลข้อมูลที่ซับซ้อนง่ายขึ้น

หากต้องการจัดการโหลดข้อมูลด้วยตรรกะการประสานในโฟลว์ระบบคลาวด์ ให้รวมโฟลว์ระบบคลาวด์เข้ากับกระแสข้อมูล นี่คือวิธี:

  1. เรียกการรีเฟรชโฟลว์ข้อมูล

    • การดำเนินการ: ใช้ตัวเชื่อมต่อกระแสข้อมูลใน Power Automate เพื่อทริกเกอร์การดำเนินการรีเฟรชและเริ่มกระบวนการ ETL ที่กำหนดไว้ในกระแสข้อมูลของคุณ
    • ตัวอย่าง: ตั้งค่าโฟลว์ระบบคลาวด์ที่ทริกเกอร์การรีเฟรชกระแสข้อมูลตามจัดกำหนดการ (เช่น รายวัน) หรือเหตุการณ์ (เช่น เมื่อมีการอัปโหลดไฟล์ใหม่ไปยังโฟลเดอร์ SharePoint)
  2. การดำเนินการหลัง ETL

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

ภาพหน้าจอของการใช้การดำเนินการของกระแสข้อมูลในโฟลว์ระบบคลาวด์

หลีกเลี่ยงการใช้ลูปสำหรับแต่ละรายการเพื่ออัปเดตเรกคอร์ดจำนวนมาก

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

หากต้องการปรับปรุงประสิทธิภาพ ให้ลองใช้สองวิธีนี้:

  1. การดำเนินงานเป็นชุดงาน

    • คำอธิบาย: สร้างหรืออัปเดตเรกคอร์ดเป็นชุดงาน ตัวเชื่อมต่อและบริการจำนวนมากมีตำแหน่งข้อมูล API ที่รองรับคำขอเป็นชุด วิธีนี้ช่วยให้คุณสามารถจัดกลุ่มการดำเนินการหลายรายการเป็นคำขอ HTTP เดียวได้
    • การใช้งาน: ใช้คุณลักษณะการดำเนินการแบบชุดงานเพื่อส่งคำขอสร้างหรืออัปเดตหลายรายการพร้อมกัน การดำเนินการเหล่านี้จะดำเนินการตามลำดับตามลำดับที่ระบุในคำขอชุดงาน ลำดับของการตอบกลับตรงกับลำดับของคำขอในการดำเนินการเป็นชุด
    • ประโยชน์: ลดจำนวนคำขอแต่ละรายการที่ส่งไปยังแหล่งข้อมูล ซึ่งจะลดเวลาแฝงและปรับปรุงประสิทธิภาพ

    ภาพหน้าจอที่สาธิตการใช้ SharePoint API เพื่อดำเนินการคำขอเป็นชุดงาน

  2. ความขนานในลูปสำหรับแต่ละรายการ

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

สำหรับข้อมูลเกี่ยวกับการร้องขอเป็นชุด โปรดดูเอกสารประกอบ REST API ต่อไปนี้:

การดำเนินการแบบกลุ่มใน Dataverse

เมื่อทำงานกับ Dataverse ให้ใช้ Web API สำหรับการดำเนินแบบกลุ่ม เพื่อลดจำนวนการดำเนินการที่จำเป็น ปรับปรุงกระบวนการของคุณ และเพิ่มประสิทธิภาพ

Web API สำหรับการดำเนินการแบบกลุ่มมีข้อได้เปรียบที่ชัดเจนในการดำเนินการแบบกลุ่ม นี่คือความแตกต่าง:

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

ในการเรียกใช้การดำเนินการจำนวนมาก:

  • ใช้ HTTP ที่มี Microsoft Entra ID: คุณสามารถเรียก Web API การดำเนินการแบบกลุ่มได้โดยใช้การร้องขอทาง HTTP ที่รับรองความถูกต้องกับ Microsoft Entra ID
  • ใช้ตัวเชื่อมต่อ HTTP กับบริการหลัก: หรือคุณสามารถใช้ตัวเชื่อมต่อ HTTP ใน Power Automate เมื่อทำงานกับบริการหลักเพื่อเรียกใช้ API เหล่านี้

ในตัวอย่างนี้ เราเตรียมเรกคอร์ดในรูปแบบ JSON โดยใช้การดำเนินการ เลือก:

ภาพหน้าจอของการใช้การดำเนินการ เลือก เพื่อเตรียมเนื้อหาสำหรับคำขอแบบกลุ่ม

จากนั้นเราใช้ HTTP กับ Microsoft Entra ID เพื่อโพสต์คำขอโดยใช้ CreateMultiple Web API:

ภาพหน้าจอของการเรียกการร้องขอทาง HTTP เพื่อดำเนินการแบบกลุ่ม

หากคุณมีเรกคอร์ด 100 รายการในเอาต์พุต JSON วิธีการนี้จะเกิดขึ้นเพียงการดำเนินการเดียวแทนที่จะเป็นการดำเนินการสร้างแถว 100 ใน Dataverse