Wysyłanie Adaptive Cards do wielu użytkowników w Teams
Table of Contents
Wielokrotnie zadawano mi to pytanie – jak przypisać jedną kartę Adaptive Card wielu użytkownikom Microsoft Teams, a następnie zebrać odpowiedzi. Chodzi o to, że akcja „Send Adaptive Card to Teams user and wait for response” pozwala nam zbierać tylko jedną odpowiedź na raz. Więc jak możemy to zrobić?
Istnieją dwa możliwe podejścia – przypisanie wielu kart równolegle lub sekwencyjnie. Następnie oczywiście kolejny poziom: oczekiwanie na wszystkie odpowiedzi lub tylko na pierwszą. Skoncentrujmy się jednak na dwóch scenariuszach – czekaj na wszystkie odpowiedzi w kolejności równoległej i sekwencyjnej.
Sekwencyjny scenariusz
Ten scenariusz wydaje się dość łatwy. Musimy przygotować listę osób, którym karta ma być przypisana , następnie przekonwertować ją na tablicę, a na koniec użyć pętli „Apply to each” na tej tablicy. W każdym przebiegu pętli należy użyć akcji, aby wysłać Adaptive Card do użytkownika i czekać na jego odpowiedź. Po zebraniu odpowiedzi można zdefiniować inne kroki logiki, a po ich wykonaniu przejść do kolejnego obrotu pętli i wysłania karty do kolejnego użytkownika. I tak aż do końca tablicy.
Równoległy scenariusz
Jeśli liczba osób przypisanych jest stała, możesz spróbować utworzyć zafiksowany przepływ pracy używając tzw. parallel branch. W każdej gałęzi skonfiguruj akcję przypisania karty do jednego użytkownika i oczekiwania na odpowiedź. Po zebraniu wszystkich odpowiedzi przepływ pracy zostanie przeniesiony z parallel branch do logiki po nim, gdzie możliwe będzie dalsze procesowanie wyniku ze wszystkich odpowiedzi.
Jednak osobiście preferuję podejścia bardziej ogólne. Obejrzyj poniższy film, aby zrozumieć, o co mi chodzi. Możesz zobaczyć, jak stworzyłem rozwiązanie i jak działa, abyś mógł sam je zbudować 🙂
Głównym elementem, który należy zrozumieć w tym bardziej ogólnym podejściu, jest to, że używa ono:
- Child flows, aby przypisać każdemu użytkownikowi kartę adaptacyjną,
- Bazę danych do rejestrowania wyników wypełnionych kart adaptacyjnych,
- Zestaw przepływów pracy , które kontrolują ogólny przepływ biznesowy
Pomysł jest następujący:
- Główny przepływ pracy przygotowuje listę osób zatwierdzających i definiuje zawartość Adaptive Card;
- W pętli uruchamia Child Flow, przekazując mu szczegóły przypisanego użytkownika i zawartość Adaptive Card;
- Child Flow przetwarza dane wejściowe, wysyła odpowiedź do przepływu nadrzędnego (aby nie czekał na zakończenie akcji Child Flow), wysyła Adaptive Card do użytkownika i czeka na odpowiedź. Po zebraniu odpowiedzi zapisuje wynik w bazie danych.
- Dla każdej zapisanej odpowiedzi wyzwalany jest inny przepływ, który sprawdza, czy wszystkie wymagane karty adaptacyjne są zakończone, aby proces mógł się po prostu zakończyć. Gdy to się stanie sprawdza, czy ogólny wynik jest Zatwierdzony lub Odrzucony, aby ustawić końcowy wynik procesu.
Używaną bazą danych może być CDS lub CDS Lite. Może to być nawet SharePoint. Baza danych jest potrzebna, ponieważ odpowiedzi są zbierane asynchronicznie, toteż istnieje potrzeba przechowywania danych, które pozwolą na kontrolowanie stanu przebiegu procesu.
Jeśli chcesz dowiedzieć się więcej na temat mojego podejścia, zostaw komentarz poniżej.