Cách xử lý khi query dữ liệu từ SharePoint List quá giới hạn 2000 bản ghi

Cách xử lý khi query dữ liệu từ SharePoint List quá giới hạn 2000 bản ghi trong Power Apps

Trong Power Apps, khi kết nối với SharePoint List để truy vấn dữ liệu, bạn sẽ gặp giới hạn mặc định là 2000 bản ghi. Đây là một rào cản phổ biến đối với các ứng dụng cần xử lý khối lượng dữ liệu lớn. Nếu không xử lý đúng cách, ứng dụng có thể bỏ sót dữ liệu hoặc hoạt động không ổn định. Bài viết này sẽ hướng dẫn bạn cách vượt qua giới hạn này, kèm theo ví dụ mã và ứng dụng thực tế trong công việc.


1. Hiểu về giới hạn 2000 bản ghi

Power Apps sử dụng cơ chế delegation để xử lý dữ liệu từ nguồn như SharePoint. Tuy nhiên, không phải tất cả hàm đều được hỗ trợ delegation. Khi bạn sử dụng hàm không được ủy quyền (non-delegable), Power Apps chỉ lấy tối đa 2000 bản ghi, bất kể danh sách có bao nhiêu mục.


2. Cách xử lý khi vượt quá giới hạn

✅ Tăng giới hạn mặc định

Bạn có thể tăng giới hạn từ 500 lên tối đa 2000 bản ghi trong cài đặt ứng dụng:

  • Vào File → Settings → Advanced Settings
  • Tìm mục Data row limit for non-delegable queries
  • Đặt giá trị là 2000

Tuy nhiên, đây chỉ là giải pháp tạm thời. Để xử lý danh sách lớn hơn, bạn cần áp dụng các kỹ thuật khác.

Cách xử lý khi query dữ liệu từ SharePoint List quá giới hạn 2000 bản ghi trong Power Apps

3. Sử dụng phân trang thủ công

Bạn có thể chia nhỏ dữ liệu thành từng phần để xử lý:

ClearCollect(Col_Page1, FirstN(SortByColumns(SharePointList, "ID", Ascending), 2000));
ClearCollect(Col_Page2, FirstN(Skip(SortByColumns(SharePointList, "ID", Ascending), 2000), 2000));

Sau đó hợp nhất các bộ sưu tập:

ClearCollect(Col_AllData, Col_Page1);
Collect(Col_AllData, Col_Page2);

4. Lọc dữ liệu theo điều kiện delegable

Thay vì lấy toàn bộ danh sách, bạn có thể lọc theo điều kiện được hỗ trợ delegation như StartsWith, =, And, Or:

Filter(SharePointList, TrangThai = "Hoàn thành" && NgayTao >= DateAdd(Today(), -30))

Điều này giúp Power Apps chỉ truy vấn dữ liệu cần thiết và tránh vượt quá giới hạn.


5. Kết hợp với Power Automate

Nếu cần xử lý toàn bộ dữ liệu, bạn có thể dùng Power Automate để lấy dữ liệu từ SharePoint và trả về cho Power Apps:

Trong Power Automate:

  • Dùng hành động Get items với phân trang bật
  • Trả dữ liệu về Power Apps qua hành động Respond to PowerApps

Trong Power Apps:

Set(FullData, MyFlow.Run());

6. Ứng dụng thực tế trong doanh nghiệp

✅ Quản lý đơn hàng

Danh sách đơn hàng có thể vượt quá 5000 bản ghi. Sử dụng phân trang hoặc Power Automate để hiển thị đầy đủ dữ liệu cho bộ phận bán hàng.

✅ Theo dõi lịch sử giao dịch

Ứng dụng nội bộ cần truy vấn toàn bộ lịch sử giao dịch của khách hàng. Kết hợp lọc theo thời gian và phân trang giúp tối ưu hiệu suất.

✅ Báo cáo tổng hợp

Dữ liệu từ nhiều năm cần được xử lý để tạo báo cáo. Power Automate giúp gom dữ liệu và trả về kết quả cho Power Apps hiển thị.


7. Kết luận

Giới hạn 2000 bản ghi trong Power Apps không phải là trở ngại nếu bạn hiểu rõ cách xử lý. Bằng cách sử dụng delegation, phân trang, hoặc tích hợp Power Automate, bạn có thể xây dựng ứng dụng mạnh mẽ, xử lý dữ liệu lớn và phục vụ tốt cho các nhu cầu thực tế trong doanh nghiệp. Đây là bước quan trọng để tối ưu hóa hiệu suất và trải nghiệm người dùng trong quá trình chuyển đổi số.

Dịch vụ lập trình ứng dụng

🎯 Lập trình API, Python, Node JS, Telegram Bot, Automate Workflow, Power Apps and Apps Script. Ứng dụng Web App, API với Apps Script vào bài toán thực tế trong doanh nghiệp.

📞 +84 78 600 5534 (Zalo, WhatsApp, Telegram)

💻 Github

🌏 appscript.online

Viết một bình luận