Udostępnij przez


Zrozumienie źródeł danych dla aplikacji canvas

Większość aplikacji kanwy w usłudze Power Apps korzysta z zewnętrznych informacji przechowywanych w usługach w chmurze, nazywanych źródłami danych. Typowym przykładem jest tabela w pliku programu Excel przechowywanym w usłudze OneDrive. Aplikacje uzyskują dostęp do tych źródeł danych przy użyciu połączeń.

W tym artykule omówiono różne rodzaje źródeł danych i sposób pracy ze źródłami danych tabeli.

Łatwo jest utworzyć aplikację, która wykonuje podstawowe odczytywanie i zapisywanie w źródle danych. Czasami jednak potrzebujesz większej kontroli nad przepływem danych w aplikacji i poza nie. W tym artykule opisano, jak funkcje Patch, DataSourceInfo, Validate i Errors zapewniają większą kontrolę.

Rodzaje źródeł danych

Źródła danych mogą być połączone z usługą w chmurze lub mogą być lokalne z aplikacją.

Połączone źródła danych

Najbardziej typowe źródła danych to tabele, których można użyć do pobierania i przechowywania informacji. Połączenia ze źródłami danych umożliwiają odczytywanie i zapisywanie danych w skoroszytach programu Microsoft Excel, list utworzonych przy użyciu list microsoft, bibliotek programu SharePoint, tabel SQL i wielu innych formatów, które mogą być przechowywane w usługach w chmurze, takich jak OneDrive, DropBox i SQL Server.

Źródła danych inne niż tabele obejmują pocztę e-mail, kalendarze, serwis Twitter i powiadomienia, ale w tym artykule nie omówiono tych innych rodzajów źródeł danych.

Lokalne źródła danych

Za pomocą kontrolek Galeria, Formularz wyświetlania i Formularz edycji można utworzyć aplikację, która odczytuje i zapisuje dane ze źródła danych. Aby rozpocząć, zobacz Omówienie formularzy danych.

Gdy poprosisz usługę Power Apps o utworzenie aplikacji na podstawie danych, zostaną użyte te kontrolki. W tle aplikacja używa wewnętrznej tabeli do przechowywania i manipulowania danymi pochodzącymi ze źródła danych.

Specjalnym typem źródła danych jest kolekcja, która jest lokalna dla aplikacji i nie jest wspierana przez połączenie z usługą w chmurze. W związku z tym informacje nie mogą być udostępniane między urządzeniami dla tego samego użytkownika lub między użytkownikami. Kolekcje można ładować i zapisywać lokalnie.

Rodzaje tabel

Tabele, które są wewnętrzne w aplikacji, są stałymi wartościami, podobnie jak liczba lub ciąg jest wartością. Tabele wewnętrzne nie są przechowywane nigdzie, ale istnieją w pamięci aplikacji. Nie można bezpośrednio modyfikować struktury i danych tabeli. Zamiast tego możesz utworzyć nową tabelę za pomocą formuły: użyjesz tej formuły do utworzenia zmodyfikowanej kopii oryginalnej tabeli.

Tabele zewnętrzne są przechowywane w źródle danych na potrzeby późniejszego pobierania i udostępniania. Usługa Power Apps udostępnia "połączenia" do odczytu i zapisu przechowywanych danych. W ramach połączenia można uzyskać dostęp do wielu tabel informacji. Możesz wybrać tabele, które mają być używane w aplikacji, a każda z nich stanie się oddzielnym źródłem danych.

Aby dowiedzieć się więcej, zobacz Praca z tabelami dotyczącymi tabel wewnętrznych, ale także tabel zewnętrznych znajdujących się w usłudze w chmurze.

Praca z tabelami

Źródła danych tabeli można używać w taki sam sposób, jak w przypadku korzystania z wewnętrznej tabeli usługi Power Apps. Podobnie jak w przypadku tabeli wewnętrznej każde źródło danych zawiera rekordy, kolumny i właściwości, których można użyć w formułach. Dodatkowo:

  • Źródło danych ma te same nazwy kolumn i typy danych co podstawowa tabela w połączeniu.

    Uwaga / Notatka

    W przypadku źródeł danych programów SharePoint i Excel zawierających nazwy kolumn ze spacjami usługa Power Apps zastępuje spacje ciągiem "_x0020_". Na przykład "Nazwa kolumny" w programie SharePoint lub programie Excel jest wyświetlana jako "Column_x0020_Name" w usłudze Power Apps, gdy jest wyświetlana w układzie danych lub używana w formule.

  • Źródło danych jest ładowane z usługi automatycznie po załadowaniu aplikacji. Możesz wymusić odświeżanie danych przy użyciu funkcji Refresh .

  • Gdy użytkownicy uruchamiają aplikację, mogą tworzyć, modyfikować i usuwać rekordy oraz wypychać te zmiany z powrotem do tabeli bazowej w usłudze.

    • Rekordy można tworzyć za pomocą funkcji Patch i Collect .
    • Rekordy można modyfikować za pomocą funkcji Patch, Update i UpdateIf .
    • Rekordy można usunąć za pomocą funkcji Remove i RemoveIf.
    • Błędy podczas pracy ze źródłem danych są dostępne za pośrednictwem funkcji Errors .
  • Funkcje DataSourceInfo, Defaults i Validate udostępniają informacje o źródle danych, którego można użyć do optymalizacji środowiska użytkownika.

Tworzenie źródeł danych

Usługi Power Apps nie można używać do tworzenia połączonego źródła danych ani modyfikowania jego struktury; źródło danych musi już istnieć w usłudze gdzieś. Aby na przykład utworzyć tabelę w skoroszycie programu Excel przechowywanym w usłudze OneDrive, należy najpierw użyć usługi Excel Online w usłudze OneDrive do utworzenia skoroszytu. Następnie utworzysz połączenie z nim z poziomu aplikacji.

Jednak źródła danych kolekcji można tworzyć i modyfikować wewnątrz aplikacji, ale są tylko tymczasowe.

Wyświetlanie co najmniej jednego rekordu

Przepływ informacji, gdy aplikacja odczytuje informacje w źródle danych.

Ten diagram przedstawia przepływ informacji, gdy aplikacja odczytuje informacje w źródle danych:

  • Informacje są przechowywane i udostępniane za pośrednictwem usługi przechowywania (w tym przypadku Microsoft Lists lub SharePoint Online).
  • Połączenie udostępnia te informacje aplikacji. Połączenie zajmuje się uwierzytelnianiem użytkownika w celu uzyskania dostępu do informacji.
  • Po uruchomieniu aplikacji lub naciśnięciu funkcji Refresh informacje są pobierane z połączenia ze źródłem danych w aplikacji do użytku lokalnego.
  • Formuły służą do odczytywania informacji i uwidaczniania ich w kontrolkach, które użytkownik może zobaczyć. Rekordy źródła danych można wyświetlić przy użyciu galerii na ekranie i podłączania właściwości Items do źródła danych: Gallery.Items = DataSource. Kontrolki w galerii łączy się z galerią przy użyciu właściwości Default kontrolek.
  • Źródło danych jest również tabelą. Dzięki temu można użyć funkcji Filter, Sort, AddColumns i innych, aby uściślić i rozszerzyć źródło danych przed użyciem go jako całości. Możesz również użyć funkcji Lookup, First, Last i innych, aby pracować z poszczególnymi rekordami.

Modyfikowanie rekordu

Strzałki na poprzednim diagramie są jednym ze sposobów. Zmiany w źródle danych nie są wypychane z powrotem przez te same formuły, w których pobrano dane. Zamiast tego są używane nowe formuły. Często inny ekran jest używany do edytowania rekordu niż w przypadku przeglądania rekordów, zwłaszcza na urządzeniu przenośnym.

Aby zmodyfikować istniejący rekord źródła danych, rekord musi pochodzić z źródła danych. Rekord może być wyświetlany w galerii, zmiennej kontekstowej i dowolnej liczbie formuł, ale jego pochodzenie powinno być śledzone z powrotem do źródła danych. Dodatkowe informacje są przesyłane z rekordem, który jednoznacznie go identyfikuje, zapewniając, że modyfikujesz właściwy rekord.

Przepływ informacji w celu zaktualizowania źródła danych. Ten diagram przedstawia przepływ informacji w celu zaktualizowania źródła danych:

  • Kontrolka Formularz edycji udostępnia kontener dla kart wejściowych, które składają się z kontrolek wejściowych użytkownika, takich jak kontrolka wprowadzania tekstu lub suwak. Właściwości DataSource i Item służą do identyfikowania rekordu do edycji.
  • Każda karta wejściowa ma właściwość Default , która jest ustawiona na pole rekordu ThisItem formularza. Kontrolki na karcie wejściowej pobierają swoje wartości wejściowe z wartości Default. Zwykle nie trzeba modyfikować tej wartości domyślnej.
  • Każda karta wejściowa uwidacznia właściwość Update . Ta właściwość mapuje dane wejściowe użytkownika na określone pole rekordu do zapisywania z powrotem do źródła danych. Zwykle nie trzeba modyfikować tej właściwości.
  • Przycisk lub kontrolka obrazu na ekranie umożliwia użytkownikowi zapisywanie zmian w rekordzie. Formuła OnSelect kontrolki wywołuje funkcję SubmitForm , aby wykonać tę pracę. Funkcja SubmitForm odczytuje wszystkie właściwości Update kart i zapisuje je z powrotem do źródła danych.
  • Czasami występują problemy. Połączenie sieciowe może nie działać lub sprawdzanie poprawności jest wykonywane przez usługę, o którą aplikacja nie wiedziała. Właściwości Error i ErrorKind kontrolki formularza udostępniają te informacje, dzięki czemu można wyświetlić je użytkownikowi.

Aby uzyskać bardziej szczegółową kontrolę nad procesem, możesz również użyć funkcji Patch and Errors . Kontrolka Formularz edycji uwidacznia właściwość Updates , aby można było odczytać wartości pól w formularzu. Tej właściwości można również użyć do wywołania łącznika niestandardowego w połączeniu, całkowicie pomijając funkcje Patch i SubmitForm .

Validation

Przed wprowadzeniem zmiany rekordu aplikacja powinna wykonać to, co może zrobić, aby upewnić się, że zmiana jest akceptowalna. Istnieją dwa powody sprawdzania:

  • Natychmiastowa opinia użytkownika. Najlepszy czas na rozwiązanie problemu to właśnie wtedy, gdy się pojawia, gdy jest świeży w pamięci użytkownika. Dosłownie w przypadku każdego naciśnięcia ekranu lub klawisza może pojawić się czerwony tekst identyfikujący problem z wpisem.
  • Mniejszy ruch sieciowy i mniejsze opóźnienie użytkownika. Więcej problemów wykrytych w aplikacji oznacza mniej konwersacji w sieci w celu wykrywania i rozwiązywania problemów. Każda konwersacja zajmuje trochę czasu, podczas którego użytkownik musi czekać, zanim będzie mógł przejść dalej.

Usługa Power Apps oferuje dwa narzędzia do walidacji:

  • Źródło danych może podać informacje o tym, co jest i które nie jest prawidłowe. Na przykład liczby mogą mieć minimalne i maksymalne wartości, a co najmniej jeden wpis może być wymagany. Dostęp do tych informacji można uzyskać za pomocą funkcji DataSourceInfo .
  • Funkcja Validate używa tych samych informacji, aby sprawdzić wartość pojedynczej kolumny lub całego rekordu.

Obsługa błędów

Po zweryfikowaniu rekordu zaktualizuj ten rekord za pomocą polecenia Patch.

Ale nadal może występować problem. Sieć nie działa, walidacja usługi nie powiodła się lub użytkownik nie ma odpowiednich uprawnień, aby wymienić kilka możliwych błędów, które może napotkać aplikacja. Twoja aplikacja musi odpowiednio reagować na sytuacje błędów, dając użytkownikowi informację zwrotną i możliwość naprawienia błędów.

Gdy wystąpią błędy ze źródłem danych, aplikacja automatycznie rejestruje informacje o błędzie i udostępnia je za pośrednictwem funkcji Errors . Błędy są skojarzone z rekordami, które miały problemy. Jeśli problem jest czymś, co użytkownik może rozwiązać, na przykład problem z walidacją, może ponownie przesłać rekord, a błędy zostaną wyczyszczone.

Jeśli wystąpi błąd podczas tworzenia rekordu za pomocą funkcji Patch lub Collect, nie ma rekordu do skojarzenia żadnych błędów. W takim przypadku blank jest zwracany przez Patch i może być użyty jako argument rekordu do Errors. Błędy tworzenia są czyszczone przy użyciu następnej operacji.

Funkcja Errors zwraca tabelę informacji o błędach. Te informacje mogą zawierać informacje o kolumnie, jeśli błąd może zostać przypisany do określonej kolumny. Użyj komunikatów o błędach na poziomie kolumny w kontrolkach etykiet znajdujących się blisko miejsca, w którym znajduje się kolumna na ekranie edycji. Użyj komunikatów o błędach na poziomie rekordu, w których kolumna w tabeli błędów jest pusta, w lokalizacji w pobliżu przycisku Zapisz dla całego rekordu.

Praca z dużymi źródłami danych

Podczas tworzenia raportów z dużych źródeł danych (być może milionów rekordów) chcesz zminimalizować ruch sieciowy. Załóżmy, że chcesz sporządzić raport o wszystkich klientach mających StatusCode "Platinum" w Nowym Jorku. Tabela Klienci zawiera miliony rekordów.

Nie chcesz wprowadzać tych milionów klientów do aplikacji, a następnie wybierać te, które chcesz. Wybór powinien nastąpić w usłudze w chmurze, w której jest przechowywana tabela, w której są wysyłane wybrane rekordy za pośrednictwem sieci.

Wiele, ale nie wszystkie funkcje, których można użyć do wybierania rekordów, mogą być delegowane, co oznacza, że są uruchamiane wewnątrz usługi w chmurze. Dowiedz się więcej w temacie Delegowanie.

Collections

Kolekcje są specjalnym typem źródła danych. Są one lokalne w aplikacji i nie są wspierane przez połączenie z usługą w chmurze. W związku z tym informacje nie mogą być udostępniane między urządzeniami dla tego samego użytkownika lub między użytkownikami.

Kolekcje działają jak każde inne źródło danych z kilkoma wyjątkami:

  • Kolekcje można tworzyć dynamicznie za pomocą funkcji Collect . Nie trzeba ich ustanawiać z wyprzedzeniem, w przeciwieństwie do źródeł danych zależnych od połączenia.
  • Kolumny kolekcji można modyfikować w dowolnym momencie przy użyciu funkcji Collect .
  • Kolekcje zezwalają na zduplikowane rekordy. W kolekcji może istnieć więcej niż jedna kopia tego samego rekordu. Funkcje, takie jak Remove , działają na pierwszym dopasowaniu, które znajdują, chyba że podano argument All .
  • Możesz użyć funkcji SaveData i LoadData , aby zapisać i ponownie załadować kopię kolekcji. Informacje są przechowywane w prywatnej lokalizacji, do których inni użytkownicy, aplikacje lub urządzenia nie mogą uzyskać dostępu.
  • Za pomocą kontrolek Eksportuj i Importuj możesz zapisać i ponownie załadować kopię kolekcji do pliku, z którym użytkownik może korzystać.

Aby uzyskać więcej informacji na temat pracy z kolekcją jako źródłem danych, zobacz tworzenie i aktualizowanie kolekcji.

Kolekcje są często używane do przechowywania stanu globalnego aplikacji. Zobacz Praca ze zmiennymi , aby uzyskać opcje dostępne do zarządzania stanem.