Cách lấy dữ liệu hơn 2k dòng trong Power Apps

Cách lấy dữ liệu hơn 2k dòng trong Power Apps

Power Apps là một công cụ mạnh mẽ cho phép bạn xây dựng ứng dụng nhanh chóng và dễ dàng. Tuy nhiên, khi làm việc với danh sách lớn hơn 2,000 dòng trong SharePoint, bạn sẽ gặp giới hạn về số lượng bản ghi mà Power Apps có thể xử lý trong một lần truy vấn. Bài viết này sẽ hướng dẫn bạn cách vượt qua giới hạn này bằng cách lấy dữ liệu theo từng lô (batch) với ví dụ cụ thể.

Lý do giới hạn 2k dòng

Power Apps có giới hạn 2,000 dòng cho mỗi truy vấn dữ liệu để đảm bảo hiệu suất và tránh quá tải. Điều này có thể là một trở ngại khi bạn cần làm việc với các danh sách lớn, chẳng hạn như danh sách chứa 200,000 bản ghi.

Giải pháp: Lấy dữ liệu theo từng lô

Bằng cách sử dụng logic lấy dữ liệu theo từng lô, bạn có thể chia nhỏ dữ liệu thành các phần nhỏ hơn và thu thập chúng từng phần một. Dưới đây là đoạn mã ví dụ minh họa cách lấy dữ liệu từ danh sách SharePoint có tên “TestList” chứa 200,000 bản ghi.

Ví dụ mã:

powerappsCopy code// Giả sử bạn có một danh sách trung bình với 200k bản ghi có tên TestList
// Logic để lấy mỗi lô 2k bản ghi và lặp qua hơn 200k bản ghi

Clear(colTableData);
With(
    {
        SequenceNumbers: Sequence(100, 1, 1), // Với 100, chúng ta có thể lấy 200k bản ghi (100 * 2k)
        First2KRecords: FirstN(colTableData, 2000)
    },
    ForAll(
        SequenceNumbers As X,
        If(
            X.Value = 1,
            Collect(colTableData, First2KRecords),
            Collect(
                colTableData,
                FirstN(
                    Filter(
                        TestList,
                        ID > Last(First2KRecords).ID
                    ),
                    2000
                )
            )
        )
    )
)
Cách lấy dữ liệu hơn 2k dòng trong Power Apps

Giải thích mã:

  1. Clear(colTableData): Xóa bộ sưu tập colTableData trước khi bắt đầu thu thập dữ liệu mới.
  2. Sequence(100, 1, 1): Tạo một dãy số từ 1 đến 100 để lặp qua 100 lần.
  3. FirstN(colTableData, 2000): Lấy 2,000 bản ghi đầu tiên từ colTableData.
  4. ForAll(SequenceNumbers As X, …): Lặp qua mỗi số trong dãy SequenceNumbers.
  5. If(X.Value = 1, …): Nếu X.Value là 1, thu thập 2,000 bản ghi đầu tiên.
  6. Collect(colTableData, FirstN(…)): Thu thập 2,000 bản ghi tiếp theo với điều kiện ID lớn hơn ID của bản ghi cuối cùng đã thu thập.

Kết luận

Bằng cách sử dụng phương pháp lấy dữ liệu theo từng lô, bạn có thể dễ dàng xử lý các danh sách lớn trong Power Apps mà không gặp phải giới hạn 2,000 dòng. Điều này giúp bạn tối ưu hóa hiệu suất ứng dụng và đảm bảo dữ liệu luôn được xử lý một cách hiệu quả.

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.

📒 Nhận dạy Lập trình Apps Script, Power Apps từ cơ bản đến nâng cao.

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

💻 Github

🌏 appscript.online

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