Hiểu các nguồn dữ liệu cho ứng dụng canvas

Trong Power Apps, hầu hết ứng dụng canvas sử dụng thông tin bên ngoài được lưu trữ trong các dịch vụ đám mây có tên là Nguồn dữ liệu. Một ví dụ phổ biến là bảng trong tệp Excel được lưu trữ trong OneDrive for Business. Ứng dụng truy cập vào các nguồn dữ liệu này bằng cách dùng Kết nối.

Bài viết này thảo luận các loại nguồn dữ liệu khác nhau và cách làm việc với nguồn dữ liệu bảng.

Thật dễ dàng để tạo một ứng dụng thực hiện thao tác đọc và viết cơ bản cho một nguồn dữ liệu. Tuy nhiên, đôi khi bạn muốn thêm quyền kiểm soát cách dữ liệu ra và vào ứng dụng của bạn. Bài viết này mô tả cách các hàm Patch, DataSourceInfo, ValidateErrors cung cấp thêm kiểm soát.

Các loại nguồn dữ liệu

Nguồn dữ liệu có thể được kết nối với một dịch vụ đám mây hoặc chúng có thể kết nối cục bộ với một ứng dụng.

Các nguồn dữ liệu được kết nối

Các nguồn dữ liệu thường gặp nhất là bảng, mà bạn có thể dùng để truy xuất và lưu trữ thông tin. Bạn có thể dùng kết nối với nguồn dữ liệu để đọc và ghi dữ liệu trong sổ làm việc Microsoft Excel, danh sách được tạo bằng Microsoft Lists, thư viện SharePoint, bảng SQL và nhiều định dạng khác, mà có thể được lưu trữ trong các dịch vụ đám mây như OneDrive for Business, DropBox và SQL Server.

Nguồn dữ liệu ngoài bảng bao gồm email, lịch, Twitter và thông báo, nhưng bài viết này không thảo luận các loại nguồn dữ liệu khác này.

Nguồn dữ liệu cục bộ

Sử dụng tùy chọn điều khiển Bộ sưu tập, Hiển thị biểu mẫuChỉnh sửa biểu mẫu, thật dễ dàng để tạo một ứng dụng đọc và ghi dữ liệu từ nguồn dữ liệu. Để bắt đầu, hãy đọc bài viết Tìm hiểu biểu mẫu dữ liệu.

Khi bạn yêu cầu Power Apps tạo ứng dụng từ dữ liệu, các kiểm soát này sẽ được sử dụng. Cơ chế ẩn đằng sau là ứng dụng sử dụng bảng nội bộ để lưu trữ và xử lý dữ liệu bắt nguồn từ nguồn dữ liệu.

Một loại nguồn dữ liệu đặc biệt là Bộ sưu tập, được kết nối cục bộ với ứng dụng và không được hỗ trợ bởi kết nối đến dịch vụ trong đám mây. Do đó, thông tin không được chia sẻ trên các thiết bị cho cùng người dùng hoặc giữa các người dùng. Có thể tải và lưu bộ sưu tập cục bộ.

Các loại bảng

Các bảng được kết nối nội bộ với ứng dụng Power Apps là những giá trị cố định, giống như một số hoặc một chuỗi là một giá trị. Các bảng nội bộ không được lưu trữ ở bất cứ đâu, chúng chỉ tồn tại trong bộ nhớ của ứng dụng. Bạn không thể trực tiếp sửa đổi cấu trúc và dữ liệu của một bảng. Những gì bạn có thể làm là tạo một bảng mới thông qua một công thức: bạn sử dụng công thức đó để tạo bản sao đã sửa đổi cho bảng gốc.

Các bảng bên ngoài được lưu trữ trong một nguồn dữ liệu để truy xuất và chia sẻ sau đó. Power Apps cung cấp "kết nối" để đọc và ghi dữ liệu đã lưu trữ. Trong một kết nối, bạn có thể truy cập nhiều bảng thông tin. Bạn sẽ chọn bảng sẽ sử dụng trong ứng dụng của mình và từng bảng sẽ trở thành một nguồn dữ liệu riêng biệt.

Để tìm hiểu thêm, Làm việc với bảng sẽ cung cấp nhiều thông tin chi tiết hơn về bảng nội bộ, những cũng có thể áp dụng cho các bảng bên ngoài nằm trong một dịch vụ đám mây.

Làm việc với bảng

Bạn có thể dùng nguồn dữ liệu bảng theo cách tương tự như bạn sử dụng một bảng Power Apps nội bộ. Chỉ giống như một bảng nội bộ, mỗi nguồn dữ liệu đều có bản ghi, cột và thuộc tính mà bạn có thể dùng trong công thức. Ngoài ra:

  • Nguồn dữ liệu có cùng loại dữ liệu và tên cột như bảng cơ sở trong kết nối.

    Lưu ý

    Đối với các nguồn dữ liệu SharePoint và Excel bao gồm tên cột có khoảng trống, Power Apps sẽ thay thế khoảng trống bằng "_x0020_". Ví dụ: "Tên cột" trong SharePoint hoặc Excel sẽ xuất hiện dưới dạng "Cột_x0020_Name" trong Power Apps khi được hiển thị trong bố cục dữ liệu hoặc dùng trong công thức.

  • Nguồn dữ liệu được tải tự động từ dịch vụ khi ứng dụng được tải. Bạn có thể buộc dữ liệu làm mới bằng cách dùng hàm Làm mới.

  • Khi người dùng chạy ứng dụng, họ có thể tạo, sửa đổi và xóa bản ghi cũng như đẩy những thay đổi đó quay lại bảng cơ sở trong dịch vụ.

    • Có thể tạo bản ghi bằng các hàm PatchCollect.
    • Có thể sửa đổi bản ghi bằng các hàm Patch, UpdateUpdateIf.
    • Có thể xóa bản ghi bằng cách hàm RemoveRemoveIf.
    • Lỗi khi làm việc với một nguồn dữ liệu có sẵn thông qua hàm Errors.
  • Các hàm DataSourceInfo, DefaultsValidate cung cấp thông tin về nguồn dữ liệu mà bạn có thể dùng để tối ưu hóa trải nghiệm người dùng.

Tạo nguồn dữ liệu

Không thể dùng Power Apps để tạo một nguồn dữ liệu được kết nối hoặc sửa đổi cấu trúc của nó; nguồn dữ liệu phải tồn tại trong dịch vụ ở nơi nào đó. Chẳng hạn, để tạo một bảng trong sổ làm việc Excel được lưu trữ trên OneDrive, trước tiên bạn phải sử dụng Excel Online trên OneDrive để tạo một sổ làm việc. Tiếp theo, bạn tạo một kết nối tới nó từ ứng dụng của mình.

Tuy nhiên, nguồn dữ liệu bộ sưu tập có thể được tạo và sửa đổi bên trong ứng dụng, nhưng chỉ mang tính tạm thời.

Hiển thị một hoặc nhiều bản ghi

Luồng thông tin khi một ứng dụng đọc thông tin trong nguồn dữ liệu. Biểu đồ ở trên hiển thị luồng thông tin khi một ứng dụng đọc thông tin trong nguồn dữ liệu:

  • Thông tin được lưu trữ và chia sẻ thông qua một dịch vụ lưu trữ (trong trường hợp này là Microsoft Lists hoặc SharePoint Online).
  • Một kết nối sẽ cung cấp thông tin này cho ứng dụng. Kết nối sẽ phụ trách quá trình xác thực của người dùng để truy cập thông tin.
  • Khi ứng dụng được bắt đầu hoặc hàm Refresh được nhấn, thông tin sẽ được lấy từ kết nối rồi đưa vào nguồn dữ liệu trong ứng dụng nhằm mục đích sử dụng cục bộ.
  • Công thức được dùng để đọc thông tin và hiển thị nó trong các kiểm soát mà người dùng có thể nhìn thấy. Bạn có thể hiển thị các bản ghi của nguồn dữ liệu bằng cách dùng thư viện trên màn hình và ghi thuộc tính Mục vào nguồn dữ liệu: Gallery.Items = DataSource. Bạn đưa các kiểm soát trong thư viện sang thư viện bằng thuộc tính Mặc định của các kiểm soát.
  • Nguồn dữ liệu cũng là một bảng. Do đó, bạn có thể sử dụng Filter, Sort, AddColumns và các hàm khác để tinh chỉnh và thêm nguồn dữ liệu trước khi dùng toàn bộ nó. Bạn cũng có thể dùng Lookup, First, Last và các hàm khác để làm việc với các bản ghi cá nhân.

Sửa đổi một bản ghi

Trong phần trước, bạn đã thấy cách đọc một nguồn dữ liệu. Lưu ý rằng các mũi tên trong biểu đồ ở trên là một cách. Các thay đổi đối với nguồn dữ liệu không được đẩy lại thông qua cùng công thức mà dữ liệu được truy xuất. Thay vào đó, công thức mới sẽ được sử dụng. Thường một màn hình khác sẽ được dùng để chỉnh sửa một bản ghi hơn là duyệt bản ghi, đặc biệt trên thiết bị di động.

Lưu ý rằng để sửa đổi bản ghi hiện có của nguồn dữ liệu, bản ghi ban đầu phải bắt nguồn từ nguồn dữ liệu. Bản ghi có thể di chuyển qua một thư viện, một biến ngữ cảnh và mọi số lượng công thức, nhưng nguồn gốc của nó sẽ được truy vết lại vào nguồn dữ liệu. Điều này rất quan trọng bởi vì thông tin bổ sung di chuyển cùng bản ghi chỉ xác định nó, qua đó đảm bảo rằng bạn sửa đổi đúng bản ghi.

Luồng thông tin để cập nhật nguồn dữ liệu. Biểu đồ ở trên hiển thị luồng thông tin để cập nhật một nguồn dữ liệu:

  • Kiểm soát Chỉnh sửa biểu mẫu cung cấp bộ chứa cho thẻ nhập, được tạo thành từ các kiểm soát nhập người dùng, chẳng hạn như kiểm soát nhập văn bản hoặc thanh trượt. Các thuộc tính DataSourceItem được dùng để xác định bản ghi cần chỉnh sửa.
  • Mỗi thẻ nhập đều có thuộc tính Mặc định, thường được đặt vào trường của bản ghi ThisItem trong biểu mẫu. Các kiểm soát trong thẻ nhập sau đó sẽ lấy giá trị nhập của chúng từ Mặc định. Thông thường, bạn không cần phải sửa đổi điều này.
  • Mỗi thẻ nhập sẽ hiển thị một thuộc tính Cập nhật. Thuộc tính này ánh xạ thông tin nhập của người dùng sang một trường cụ thể của bản ghi để ghi lại vào nguồn dữ liệu. Thông thường, bạn không cần phải sửa đổi điều này.
  • Một nút hoặc kiểm soát hình ảnh trên màn hình cho phép người dùng lưu thay đổi đối với bản ghi. Công thức OnSelect của kiểm soát gọi hàm SubmitForm để thực hiện công việc này. SubmitForm đọc tất cả các thuộc tính Cập nhật của thẻ và sử dụng thông tin này để ghi lại vào nguồn dữ liệu.
  • Đôi khi sẽ xảy ra sự cố. Một kết nối mạng có thể bị mất hoặc dấu kiểm xác thực được tạo từ dịch vụ mà ứng dụng không biết. Các thuộc tính ErrorErrorKind của kiểm soát biểu mẫu sẽ cung cấp thông tin này, do đó bạn có thể hiển thị nó cho người dùng.

Để có thêm quyền kiểm soát chi tiết hơn đối với quy trình, bạn cũng có thể sử dụng hàm PatchErrors. Kiểm soát Chỉnh sửa biểu mẫu hiển thị thuộc tính Cập nhật để bạn có thể đọc các giá trị của trường trong biểu mẫu. Bạn cũng có thể dùng thuộc tính này để gọi một trình kết nối tùy chỉnh trên kết nối, hoàn toàn giải quyết các hàm PatchSubmitForm.

Xác thực

Trước khi thực hiện thay đổi đối với một bản ghi, ứng dụng nên thực hiện những gì nó có thể làm để đảm bảo thay đổi có thể chấp nhận. Có 2 lý do cho vấn đề này:

  • Phản hồi người dùng tức thì. Thời điểm phù hợp nhất để khắc phục vấn đề chính là lúc vấn đề xảy ra, khi vấn đề còn mới đối với người dùng. Theo nghĩa đen, với mỗi cú chạm hoặc nhấn phím, văn bản màu đỏ có thể xuất hiện để xác định vấn đề với mục nhập của chúng.
  • Ít lưu lượng truy cập mạng và ít độ trễ người dùng hơn. Nhiều vấn đề được phát hiện trong ứng dụng có nghĩa là ít cuộc hội thoại hơn qua mạng để phát hiện và giải quyết vấn đề. Mỗi cuộc hội thoại sẽ mất thời gian trong lúc người dùng phải chờ đợi trước khi họ có thể tiếp tục.

Power Apps cung cấp hai công cụ để xác thực:

  • Nguồn dữ liệu có thể cung cấp thông tin về những gì là hợp lệ và không hợp lệ. Chẳng hạn, các số có thể có giá trị tối thiểu và tối đa, và một hoặc nhiều mục nhập có thể được yêu cầu. Bạn có thể truy cập thông tin này bằng hàm DataSourceInfo.
  • Hàm Xác thực sử dụng cùng thông tin này để kiểm tra giá trị của một cột hoặc của toàn bộ bản ghi.

Xử lý lỗi

Tuyệt, bạn đã xác thực bản ghi. Đến lúc cập nhật bản ghi đó bằng Patch!

Nhưng vẫn còn một vấn đề. Mạng chậm, quá trình xác thực dịch vụ thất bại hoặc người dùng không có quyền phù hợp, đó là một vài lỗi có thể xảy ra mà ứng dụng có khả năng gặp phải. Cần phản hồi phù hợp với các tình huống lỗi, cung cấp phản hồi cho người dùng và một cách để khắc phục chúng.

Khi xảy ra lỗi với nguồn dữ liệu, ứng dụng của bạn sẽ tự động ghi thông tin lỗi và cung cấp nó thông qua hàm Errors. Các lỗi liên quan đến những bản ghi có vấn đề. Nếu vấn đề là thứ gì đó mà người dùng có thể khắc phục, chẳng hạn như vấn đề xác thực, họ có thể gửi lại bản ghi và lỗi sẽ được xóa.

Nếu xảy ra lỗi khi bản ghi được tạo bằng Patch hoặc Collect, sẽ không có bản ghi nào để liên kết lỗi. Trong trường hợp này, giá trị rỗng sẽ được trả về bởi Patch và có thể được dùng làm đối số bản ghi cho Errors. Lỗi tạo sẽ được xóa cùng thao tác tiếp theo.

Hàm Errors trả về một bảng thông tin lỗi. Thông tin này có thể bao gồm thông tin cột, nếu lỗi có thể được quy cho một cột cụ thể. Sử dụng thông báo lỗi cấp độ cột trong kiểm soát nhãn gần với nơi cột ở màn hình chỉnh sửa. Sử dụng thông báo lỗi cấp độ bản ghi nơi Cột trong bảng lỗi là rỗng, ở vị trí gần với nút Lưu cho toàn bộ bản ghi.

Làm việc với nguồn dữ liệu lớn

Khi tạo báo cáo từ các nguồn dữ liệu lớn (có thể là hàng triệu bản ghi), bạn sẽ muốn giảm thiểu tối đa lưu lượng truy cập mạng. Giả sử bạn muốn báo cáo về tất cả Khách hàng có StatusCode của "Platinum" ở Thành phố New York. Và bảng Khách hàng của bạn có chứa hàng triệu bản ghi.

Bạn không muốn đưa hàng triệu Khách hàng đó vào ứng dụng, sau đó chọn những khách hàng bạn muốn. Những gì bạn muốn là để quá trình lựa chọn đó diễn ra trong dịch vụ đám mây, nơi lưu trữ bảng của bạn và chỉ gửi các bản ghi đã chọn qua mạng.

Nhiều, nhưng không phải tất cả các hàm mà bạn có thể dùng để chọn bản ghi đều có thể được ủy quyền, điều đó có nghĩa là chúng được chạy trong dịch vụ đám mây. Bạn có thể tìm hiểu cách thực hiện điều này bằng cách đọc về Ủy quyền.

Bộ sưu tập

Bộ sưu tập là một loại nguồn dữ liệu đặc biệt. Chúng được kết nối cục bộ với ứng dụng và không được hỗ trợ bởi kết nối đến dịch vụ trong đám mây. Do đó, thông tin không được chia sẻ trên các thiết bị cho cùng người dùng hoặc giữa các người dùng. Chúng hoạt động giống như bất kỳ nguồn dữ liệu nào khác, với một vài ngoại lệ:

  • Có thể chủ động tạo bộ sưu tập bằng hàm Collect. Không cần phải thiết lập chúng trước thời gian, như nguồn dữ liệu dựa trên kết nối thực hiện.
  • Có thể sửa đổi các cột của bộ sưu tập bất cứ lúc nào bằng cách dùng hàm Collect.
  • Bộ sưu tập cho phép các bản ghi trùng lặp. Hơn bản sao của cùng bản ghi có thể tồn tại trong một bộ sưu tập. Các hàm như Remove sẽ hoạt động trên kết quả khớp đầu tiên mà chúng tìm thấy trừ khi Tất cả đối số được cung cấp.
  • Bạn có thể sử dụng các hàm SaveDataLoadData để lưu và tải lại bản sao của bộ sưu tập. Thông tin này được lưu trữ ở một vị trí riêng mà những người dùng, ứng dụng hoặc thiết bị khác không thể truy cập.
  • Bạn có thể sử dụng các kiểm soát XuấtNhập để lưu và tải lại bản sao của bộ sưu tập vào tệp mà người dùng có thể tương tác.

Để biết thêm thông tin về cách làm việc với bộ sưu tập dưới dạng một nguồn dữ liệu, hãy xem tạo và cập nhật bộ sưu tập.

Bộ sưu tập thường được dùng để lưu giữ trạng thái toàn cầu cho ứng dụng. Xem làm việc với biến cho các tùy chọn có sẵn để quản lý trạng thái.

Lưu ý

Bạn có thể cho chúng tôi biết bạn thích dùng ngôn ngữ nào cho tài liệu không? Làm một cuộc khảo sát ngắn. (xin lưu ý, khảo sát này bằng tiếng Anh)

Cuộc khảo sát sẽ mất khoảng bảy phút. Không có dữ liệu cá nhân nào được thu thập (điều khoản về quyền riêng tư).