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: aplikacji kanwy kart Dataverse wtyczek o niskiej zawartości kodu Power Platform CLI przepływów 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. Funkcji Collect można używać tylko w ramach formuły związanej z zachowaniem.

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.

Funkcja Clear nie zwraca żadnej wartości. 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.

Funkcja ClearCollect zwraca zmodyfikowaną kolekcję w postaci tabeli. Funkcji ClearCollect można używać tylko w ramach formuły związanej z zachowaniem.

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, Element, ... )

  • DataSource – wymagane. Źródło danych, do którego chcesz dodać dane. Jeśli jeszcze nie istnieje, zostanie utworzona nowa kolekcja.
  • Item(s) – wymagane. Co najmniej jeden rekord lub co najmniej jedna tabela do dodania do źródła danych.

Clear( Kolekcja )

  • Collection - wymagane. Kolekcja, którą chcesz wyczyścić.

ClearCollect( Kolekcja, Element, ... )

  • Collection - wymagane. Kolekcja, którą chcesz wyczyścić, i do której następnie mają zostać dodane dane.
  • Item(s) – 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ść:

Przykładowe źródło danych.

Formuła Opis Wynik
ClearCollect( IceCream, { Flavor: "Strawberry", Quantity: 300 } ) Czyści wszystkie dane z kolekcji IceCream, a następnie dodaje rekord, który zawiera ilość lodów truskawkowych. Tabela z jednym rekordem.

Kolekcja IceCream również została zmodyfikowana.
Collect( IceCream, { Flavor: "Pistachio", Quantity: 40 }, { Flavor: "Orange", Quantity: 200 } ) Dodaje dwa rekordy do kolekcji IceCream zawierające ilość lodów pistacjowych i pomarańczowych. Tabela z dwoma rekordami.

Kolekcja IceCream również została zmodyfikowana.
Clear( IceCream ) Usuwa wszystkie rekordy z kolekcji IceCream. Pusta tabela.

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( IceCream, { Flavor: "Chocolate", Quantity: 100 }, { Flavor: "Vanilla", Quantity: 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. Rekordy czekolady i wanilii dodane do kolekcji.

Kolekcja IceCream również została zmodyfikowana.
ClearCollect( IceCream, Table( { Flavor: "Chocolate", Quantity: 100 }, { Flavor: "Vanilla", Quantity: 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. Rekordy dotyczące czekoladowych i waniliowych dodane do kolekcji i zmodyfikowane.

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. Rekordy czekoladowe i waniliowe dodane do kolekcji zmodyfikowanej tabelą owiniętą w rekord.

Kolekcja IceCream również została zmodyfikowana.