สวัสดีครับ กลับมาพบกันอีกแล้วหลังจากห่างหายกันไประยะหนึ่ง สืบเนื่องจากงานประจำที่ค่อนข้างยุ่งและต้องใช้เวลาในการปรับเปลี่ยน Process บางอย่างในทีมงาน หวังว่าหลายท่านที่ตั้งตารออ่านบทความของผมคงไม่หนีหายกันไปนะครับ (ฮา) มาต่อกันเลยดีกว่าครับ สำหรับบทความของ Power Apps Guru Thailand วันนี้จะเป็นเรื่องข้อจำกัดในการสร้าง Canvas Apps ด้วย Power Apps ที่หากข้อมูลเกิน 500 รายการ (Records) แล้วไม่สามารถแสดง หรือ ค้นหาข้อมูลรายการที่มากกว่า 500 ได้ เรามาดูวิธีการแก้ไขและทดลองทำไปพร้อมๆกัน ซี่งผมขอบอกเลยว่ามันง่ายมากๆ
การที่เราจะทดสอบเรียกใช้งานข้อมูลที่เรียกใช้งานใน Power Apps นั้นขอให้ท่านเตรียม Excel ไฟล์ที่ใช้เป็นตัวอย่างข้อมูล และมีข้อมูลอยู่ประมาณ 2500 แถวอาจจะมากกว่านั้นก็ได้นะครับ ตามแต่ท่านจะเตรียมแต่ขอให้มากกว่า 2000 รายการ ข้อมูลก็มีโครงสร้างตามรูปที่ผมแสดงให้ดู เอาง่ายๆครับมี 2 Column ครับคือ Id และ Name
เมื่อมีข้อมูลตัวอย่างตามด้านบนแล้ว เราก็จะไปสร้าง Canvas Apps กัน อ่ออย่าลืมนะครับขอให้ท่าน Save Excel ไฟล์นี้ไว้ที่ OneDrive for Business ของท่านด้วยเพื่อเราจะได้ไปเรียกใช้งานในตอนสร้าง Apps
เริ่มต้นสร้าง Application จาก Excel
- Login เข้าสู่ Power Apps โดยไปที่ https://make.powerapps.com
2. เลือก OneDrive for Business Connectors และ SampleData.xlsx โดยสุดท้ายเลือก Table1 แล้วกด Connect
3. รอจน Power Apps สร้าง App เสร็จจะได้หน้าตาของ App ดังรูป
4. กด Run เพื่อทดสอบการทำงาน และลองค้นหาข้อมูลโดยใส่ 500
5. หากเราทดลองใส่ 501 เพื่อหารายการที่มากกว่า 500 จะพบว่าไม่สามารถแสดงข้อมูลได้
ุ6. วิธีในการแก้ไขข้อจำกัดตรงนี้ในเบื้องต้นสามารถทำได้ด้วยการไปเพิ่มจำนวน Data row limit ให้มากกว่า 500 โดยไปที่ File -> Settings -> General แล้วเลื่อนลงมาจนเจอ Data row limit
7. เมื่อแก้ไขเป็นค่า 2000 แล้วแสดงว่าเราสามารถค้นหาข้อมูลที่มากกว่า 500 ได้แล้ว ทำการ Save App และ Close เป็นการเสร็จสิ้นการแก้ไข Data row limit เสร็จแล้ว Click ที่ Apps ทางซ้ายมือและเลือก App ที่เราสร้างโดยกดที่ Elipsis แล้วเลือก Edit เมื่อเปิดมาแล้วให้กด Run เพื่อทดสอบ
8. ทดสอบค้นหาโดยพิมพ์ 501 ครั้งนี้จะเห็นว่าสามารถแสดงข้อมูลได้แล้ว
9. ทั้งนี้เราก็ยังมาติดที่ Maximum ของ Data row limit ที่ 2000 อยู่ดี จะเห็นว่าหากเราทดสอบค้นหาข้อมูลรายการที่ 2000 จะยังแสดงข้อมูลมาให้เราได้อยู่
10. สรุปก็คือการใช้งาน Excel เป็น Data Source ในการเก็บข้อมูลนั้นทำให้เราใช้งานได้ในระดับหนึ่ง มาติดข้อจำกัดของ Data row limit ที่ 2000 ทั้งนี้ก็สืบเนื่องมาจากสิ่งที่เรียกว่า Deligation ที่ Excel นั้นไม่รองรับการทำงานใน Feature นี้ครับ ดังนั้นทางออกที่เราจะสามารถจัดการกับ Limitation นี้ได้มี 2 ทางดังนี้
- ใช้ Power Automate ในการช่วยโหลดข้อมูลมาให้ แต่วิธีนี้จะมี Delay ที่ไม่แน่นอนหรือบางครั้งไม่ได้ตอบสนองทันที
- เปลียนไปใช้ Data Source ที่รองรับ Delegation อย่าง Dataverse, SQL Server, Dynamics 365 หรือ SharePoint เป็นต้น
References:
https://docs.microsoft.com/en-us/powerapps/maker/canvas-apps/delegation-overview
https://docs.microsoft.com/en-us/learn/modules/work-with-data-source-limits-powerapps-canvas-app/
https://powerapps.microsoft.com/en-us/blog/powerapps-data-row-limit-for-non-delegable-queries/