Funkcje Collect, Clear i ClearCollect
Funkcje te służą do tworzenia i czyszczenia kolekcji oraz dodawania rekordów do dowolnego źródła danych.
Collect
Dotyczy: Aplikacje kanwy Karty Dataverse niskokodowe wtyczki Power Platform CLI Przepływy pulpitu
Funkcja Collect służy do dodawania rekordów do źródła danych. Mogą zostać dodane następujące elementy:
- Pojedyncza wartość: wartość jest umieszczana w polu Value nowego rekordu. Wszystkie pozostałe właściwości pozostaną blank.
- Rekord: każda nazwana właściwość jest umieszczana w odpowiadającej jej właściwości nowego rekordu. Wszystkie pozostałe właściwości pozostaną puste.
- Tabela: każdy rekord tabeli jest dodawany jako oddzielny rekord źródła danych (zgodnie z opisem znajdującym się powyżej). Tabela nie jest dodawana do rekordu jako tabela zagnieżdżona. Aby to zrobić, należy najpierw opakować tabelę w rekordzie.
W przypadku użycia wraz z kolekcją w razie potrzeby zostaną utworzone dodatkowe kolumny. Kolumny dla innych źródeł danych są ustalone na podstawie źródła danych. Nie ma możliwości dodawania nowych kolumn.
Jeśli źródło danych jeszcze nie istnieje, zostanie utworzona kolekcja.
Kolekcje są czasami używane do przechowywania zmiennych globalnych lub tworzenia tymczasowej kopii źródła danych. Aplikacje kanwy są oparte na formułach, które automatycznie dokonują ponownych obliczeń w miarę interakcji użytkownika z aplikacją. Kolekcje nie mają tej zalety, przez co użycie ich może utrudnić utworzenie aplikacji i zrozumienie sposobu jej działania. Przed użyciem kolekcji w ten sposób zapoznaj się z informacjami o pracy ze zmiennymi.
Możesz również funkcji Patch, aby utworzyć rekordy w źródle danych.
Funkcja Collect zwraca zmodyfikowane źródło danych w postaci tabeli. Collect może być używany tylko w formule zachowania.
Clear
Dotyczy: Aplikacje kanwy
Funkcja Clear służy do usuwania wszystkich rekordów kolekcji. Kolumny kolekcji nie zostaną usunięte.
Należy pamiętać, że funkcja Clear operuje tylko na kolekcjach, a nie na innych źródłach danych. Aby użyć tej funkcji względem innych źródeł danych, można wywołać funkcję RemoveIf( ŹródłoDanych,true). W takiej sytuacji należy zachować ostrożność, ponieważ spowoduje to usunięcie wszystkich rekordów z magazynu źródła danych i może mieć wpływ na innych użytkowników.
Funkcji Remove można użyć, aby usunąć wybrane rekordy.
Clear nie ma wartości zwracanej. Można jej używać tylko w ramach formuły związanej z zachowaniem.
ClearCollect
Dotyczy: Aplikacje kanwy Aplikacje oparte na modelu
Funkcja ClearCollect służy do usuwania wszystkich rekordów z kolekcji. Następnie dodaje inny zestaw rekordów do tej samej kolekcji. Za pomocą jednej funkcji, ClearCollect, można osiągnąć ten sam wynik, co używając funkcji Clear, a następnie funkcji Collect.
ClearCollect zwraca zmodyfikowaną kolekcję jako tabelę. ClearCollect może być używany tylko w formule behawioralnej.
Delegowanie
Tych funkcji nie można delegować, gdy są używane ze źródłem danych. Zostanie pobrana tylko pierwsza część źródła danych, a następnie zostanie zastosowana funkcja. Wynik może nie odpowiadać pełnym informacjom. W czasie tworzenia może zostać wyświetlone ostrzeżenie przypominające o tym ograniczeniu i sugerujące użycie delegowalnych alternatyw, jeśli jest to możliwe. Aby uzyskać więcej informacji, zobacz Omówienie delegowania.
Składnia
Collect( DataSource,Item , ... )
- Źródło danych– wymagane. Źródło danych, do którego chcesz dodać dane. Jeśli jeszcze nie istnieje, zostanie utworzona nowa kolekcja.
- Elementy - Wymagane. Co najmniej jeden rekord lub co najmniej jedna tabela do dodania do źródła danych.
Wyczyść ( Kolekcja )
- Kolekcja – Wymagane. Kolekcja, którą chcesz wyczyścić.
ClearCollect( Kolekcja,Przedmiot , ... )
- Kolekcja – Wymagane. Kolekcja, którą chcesz wyczyścić, i do której następnie mają zostać dodane dane.
- Elementy - Wymagane. Co najmniej jeden rekord lub co najmniej jedna tabela do dodania do źródła danych.
Przykłady
Czyszczenie i dodawanie rekordów do źródła danych
W tym przykładzie będzie miało miejsce wymazanie, a następnie dodanie elementów do kolekcji o nazwie IceCream. Źródło danych ma na początku następującą zawartość:
Formuła | Opis | Wynik |
---|---|---|
ClearCollect( Lody,Smak: { "Truskawka", Ilość: 300 } ) | Czyści wszystkie dane z kolekcji IceCream, a następnie dodaje rekord, który zawiera ilość lodów truskawkowych. | Kolekcja IceCream również została zmodyfikowana. |
Collect( Lody,Smak: { "Pistacjowy", Ilość: 40,Smak } { : "Pomarańczowy", Ilość: 200 } ) | Dodaje dwa rekordy do kolekcji IceCream zawierające ilość lodów pistacjowych i pomarańczowych. | Kolekcja IceCream również została zmodyfikowana. |
Jasny( Lody ) | Usuwa wszystkie rekordy z kolekcji IceCream. | Kolekcja IceCream również została zmodyfikowana. |
Instrukcje krok po kroku dotyczące tworzenia kolekcji można znaleźć w artykule Tworzenie i aktualizowanie kolekcji.
Tabele i rekordy
Poniższe przykłady pokazują, jak traktowane są argumenty tabeli i rekordu Collect i ClearCollect.
Wzór | Opis | Wynik |
---|---|---|
ClearCollect( Lody,Smak: { "Czekolada", Ilość: 100,Smak } { : "Wanilia", Ilość: 200 } ) | Czyści wszystkie dane z kolekcji IceCream, a następnie dodaje 2 rekordy, które zawierają ilość lodów czekoladowych i waniliowych. Rekordy, które mają być dodane, są podawane jako poszczególne argumenty funkcji. | Kolekcja IceCream również została zmodyfikowana. |
ClearCollect( Lody, Stół( { Smak: "Czekolada", Ilość: 100,Smak } { : "Wanilia", Ilość: 200 } ) ) | Taki jak poprzedni przykład, ale rekordy są łączone w tabeli i przekazywane za pośrednictwem jednego argumentu. Zawartość tabeli jest wyodrębniona z rekordu przez rekord, zanim zostanie dodana do kolekcji IceCream. | Kolekcja IceCream również została zmodyfikowana. |
ClearCollect( Lody, { MyFavorites: Table( { Flavor: "Czekoladowe", Ilość: 100 }, { Flavor: "Waniliowe", Ilość: 200 } ) } ) |
Taki sam, jak poprzedni przykład, ale tabela jest otaczana rekordem. Rekordy tabeli nie są wyodrębniane i zamiast tego dodaje się całą tabelę jako komórkę rekordu. | Kolekcja IceCream również została zmodyfikowana. |