Tworzenie pętli w celu powtarzania akcji w przepływach pracy za pomocą usługi Azure Logic Apps
Artykuł
Dotyczy: Azure Logic Apps (Zużycie + Standardowa)
Usługa Azure Logic Apps obejmuje następujące akcje pętli, których można użyć w przepływie pracy:
Aby powtórzyć co najmniej jedną akcję dla elementów w tablicy, dodaj akcję For each do przepływu pracy.
Alternatywnie, jeśli masz wyzwalacz, który odbiera tablicę i chce uruchomić iterację dla każdego elementu tablicy, możesz debatować, że tablica z właściwością wyzwalacza SplitOn.
Aby powtórzyć co najmniej jedną akcję do momentu spełnienia warunku lub zmiany stanu, dodaj akcję Until do przepływu pracy.
Przepływ pracy najpierw uruchamia wszystkie akcje wewnątrz pętli, a następnie sprawdza warunek lub stan. Jeśli warunek zostanie spełniony, pętla zostanie zatrzymana. W przeciwnym razie pętla powtarza się. Aby uzyskać domyślne i maksymalne limity liczby pętli Until , które mogą mieć przepływ pracy, zobacz Współbieżność, pętla i limity debat.
Dla każdej akcji działa tylko na tablicach i powtarza co najmniej jedną akcję dla każdego elementu w tablicy. Poniższa lista zawiera pewne zagadnienia dotyczące tego, kiedy chcesz użyć akcji Dla każdej akcji:
Dla każdej akcji może przetworzyć ograniczoną liczbę elementów tablicy. Aby uzyskać ten limit, zobacz Limity współbieżności, pętli i debatowania.
Domyślnie cykle lub iteracje w akcji Dla każdej akcji są uruchamiane równolegle.
To zachowanie różni się od zastosowania usługi Power Automate do każdej pętli , w której iteracje są uruchamiane pojedynczo lub sekwencyjnie. Można jednak skonfigurować sekwencyjne dla każdej iteracji. Jeśli na przykład chcesz wstrzymać następną iterację w akcji Dla każdej akcji przy użyciu akcji Opóźnienie, należy skonfigurować każdą iterację, aby była uruchamiana sekwencyjnie.
Jako wyjątek od domyślnego zachowania, zagnieżdżone iteracji każdej akcji zawsze są uruchamiane sekwencyjnie, a nie równolegle. Aby uruchamiać operacje równolegle dla elementów w zagnieżdżonej pętli, utwórz i wywołaj podrzędny przepływ pracy aplikacji logiki.
Aby uzyskać przewidywalne wyniki operacji na zmiennych podczas każdej iteracji, uruchom iteracje sekwencyjnie. Na przykład gdy kończy się równoczesna iteracja, zmienna inkrementacji, zmienna dekrementacji i Dołącz do operacji zmiennych zwracają przewidywalne wyniki. Jednak podczas każdej iteracji w jednoczesnej pętli uruchomionej te operacje mogą zwracać nieprzewidywalne wyniki.
Akcje w pętli Dla każdej pętli używają item() funkcji do odwołowania się i przetwarzania każdego elementu w tablicy. Jeśli określisz dane, które nie są w tablicy, przepływ pracy zakończy się niepowodzeniem.
Poniższy przykładowy przepływ pracy wysyła codzienne podsumowanie kanału informacyjnego RSS witryny internetowej. Przepływ pracy używa akcji Dla każdej akcji, która wysyła wiadomość e-mail dla każdego nowego elementu.
W zależności od tego, czy masz przepływ pracy Zużycie, czy Standardowy, wykonaj odpowiednie kroki:
W witrynie Azure Portal utwórz przykładowy przepływ pracy aplikacji logiki Zużycie, wykonując następujące kroki w określonej kolejności:
Wyzwalacz RSS o nazwie Po opublikowaniu elementu kanału informacyjnego
Aby uzyskać więcej informacji, wykonaj następujące ogólne kroki, aby dodać wyzwalacz.
Akcja Outlook.com lub Office 365 Outlook o nazwie Wyślij wiadomość e-mail
Aby uzyskać więcej informacji, wykonaj następujące ogólne kroki, aby dodać akcję.
Wykonaj te same ogólne kroki , aby dodać akcję Dla każdej akcji między wyzwalaczem RSS a akcją Wyślij wiadomość e-mail w przepływie pracy.
Teraz skompiluj pętlę:
Wybierz wewnątrz pola Wybierz dane wyjściowe z poprzednich kroków , aby lista zawartości dynamicznej się otwierała.
Na liście Dodawanie zawartości dynamicznej z sekcji Po opublikowaniu elementu kanału informacyjnego wybierz pozycję Linki kanału informacyjnego, czyli dane wyjściowe tablicy z wyzwalacza RSS.
Uwaga
Jeśli dane wyjściowe linków kanału informacyjnego nie są wyświetlane, obok etykiety sekcji wyzwalacza wybierz pozycję Zobacz więcej.
Z listy zawartości dynamicznej można wybrać tylko dane wyjściowe z poprzednich kroków.
Gdy wszystko będzie gotowe, wybrane dane wyjściowe tablicy będą wyświetlane w następującym przykładzie:
Aby uruchomić istniejącą akcję na każdym elemencie tablicy, przeciągnij akcję Wyślij wiadomość e-mail do pętli Dla każdego .
Teraz przepływ pracy wygląda podobnie do następującego przykładu:
Gdy wszystko będzie gotowe, zapisz proces.
Aby ręcznie przetestować przepływ pracy, na pasku narzędzi projektanta wybierz pozycję Uruchom wyzwalacz>Uruchom.
Wyzwalacz RSS o nazwie Po opublikowaniu elementu kanału informacyjnego
Aby uzyskać więcej informacji, wykonaj następujące ogólne kroki, aby dodać wyzwalacz.
Akcja Outlook.com lub Office 365 Outlook o nazwie Wyślij wiadomość e-mail
Aby uzyskać więcej informacji, wykonaj następujące ogólne kroki, aby dodać akcję.
Wykonaj te same ogólne kroki , aby dodać akcję Dla każdej akcji między wyzwalaczem RSS a akcją Wyślij wiadomość e-mail w przepływie pracy.
Teraz skompiluj pętlę:
W projektancie upewnij się, że wybrano opcję Dla każdej akcji.
W okienku informacji o akcji wybierz wewnątrz pola Wybierz dane wyjściowe z poprzednich kroków , aby wyświetlić opcje listy zawartości dynamicznej (ikona błyskawicy) i edytora wyrażeń (ikona formuły). Wybierz opcję lista zawartości dynamicznej.
Na liście Dodawanie zawartości dynamicznej z sekcji Po opublikowaniu elementu kanału informacyjnego wybierz pozycję Linki kanału informacyjnego, czyli dane wyjściowe tablicy z wyzwalacza RSS.
Uwaga
Jeśli dane wyjściowe linków kanału informacyjnego nie są wyświetlane, obok etykiety sekcji wyzwalacza wybierz pozycję Zobacz więcej.
Z listy zawartości dynamicznej można wybrać tylko dane wyjściowe z poprzednich kroków.
Gdy wszystko będzie gotowe, wybrane dane wyjściowe tablicy będą wyświetlane w następującym przykładzie:
Aby uruchomić istniejącą akcję na każdym elemencie tablicy, przeciągnij akcję Wyślij wiadomość e-mail do pętli Dla każdego .
Teraz przepływ pracy wygląda podobnie do następującego przykładu:
Gdy wszystko będzie gotowe, zapisz proces.
Aby ręcznie przetestować przepływ pracy, w menu przepływu pracy wybierz pozycję Przegląd. Na pasku narzędzi Przegląd wybierz pozycję Uruchom>.
Dla każdej definicji akcji (JSON)
Jeśli pracujesz w widoku kodu, możesz zdefiniować For_each akcję w definicji JSON przepływu pracy, na przykład:
Domyślnie iteracji w pętli For each są uruchamiane równolegle. Jednak w przypadku zagnieżdżonych pętli lub zmiennych wewnątrz pętli, w których oczekujesz przewidywalnych wyników, należy uruchomić te pętle pojedynczo lub sekwencyjnie.
W prawym górnym rogu każdej akcji wybierz wielokropek(...) >Ustawienia.
W obszarze Kontrolka współbieżności zmień ustawienie z Wyłączone na Włączone.
Przesuń suwak Stopień równoległości do 1, a następnie wybierz pozycję Gotowe.
W okienku Informacje o każdej akcji w obszarze Ogólne wybierz pozycję Ustawienia.
W obszarze Kontrolka współbieżności zmień ustawienie z Wyłączone na Włączone.
Przesuń suwak Stopień równoległości do 1.
Dla każdej definicji akcji (JSON): uruchom sekwencyjnie
Jeśli pracujesz w widoku kodu z akcją For_each w definicji JSON przepływu pracy, możesz użyć Sequential opcji, dodając operationOptions parametr, na przykład:
Akcja Until jest uruchamiana i powtarza jedną lub więcej akcji do momentu spełnienia wymaganego warunku. Jeśli warunek zostanie spełniony, pętla zostanie zatrzymana. W przeciwnym razie pętla powtarza się. Aby uzyskać domyślne i maksymalne limity liczby akcji Until lub iteracji, które mogą mieć przepływ pracy, zobacz Współbieżność, pętla i limity debatowania.
Poniższa lista zawiera kilka typowych scenariuszy, w których można użyć akcji Until :
Wywołaj punkt końcowy, dopóki nie otrzymasz żądanej odpowiedzi.
Utwórz rekord w bazie danych. Poczekaj, aż określone pole w tym rekordzie zostanie zatwierdzone. Kontynuuj przetwarzanie.
W poniższym przykładowym przepływie pracy, począwszy od godziny 8:00 każdego dnia, akcja Until zwiększa zmienną do momentu, aż wartość zmiennej będzie równa 10. Następnie przepływ pracy wysyła wiadomość e-mail, która potwierdza bieżącą wartość.
Uwaga
W tym przykładzie użyto usługi Office 365 Outlook, ale możesz użyć dowolnego dostawcy poczty e-mail obsługiwanego przez usługę Azure Logic Apps.
Jeśli używasz innego konta e-mail, ogólne kroki pozostaną takie same, ale interfejs użytkownika może wyglądać nieco inaczej.
W wyzwalaczu Cykl określ interwał, częstotliwość i godzinę dnia uruchomienia wyzwalacza.
Właściwości
Wartość
Interwał
1
Częstotliwość
Day
W tych godzinach
8
Aby dodać parametr At these hours , otwórz listę Dodaj nowy parametr i wybierz pozycję W tych godzinach, która jest wyświetlana dopiero po ustawieniu opcji Częstotliwość na Dzień.
Po zakończeniu wyzwalacz cyklu wygląda jak w poniższym przykładzie:
W okienku Informacje o akcji Do na karcie Parametry podaj następujące wartości, aby skonfigurować warunek zatrzymania pętli.
W obszarze Pętla do wybierz wewnątrz lewego pola o nazwie Wybierz wartość, a następnie wybierz opcję otwarcia listy zawartości dynamicznej (ikona błyskawicy).
Z listy w obszarze Zmienne wybierz zmienną o nazwie Limit.
Z listy operatorów środkowych wybierz operator jest równy operatorowi.
W prawym polu o nazwie Wybierz wartość wprowadź wartość 10 jako wartość porównania.
W akcji Until wybierz znak plus (+), a następnie wybierz pozycję Dodaj akcję.
Na pasku narzędzi projektanta wybierz pozycję Uruchom wyzwalacz>Uruchom.
W menu przepływu pracy wybierz pozycję Przegląd.
Na pasku narzędzi strony Przegląd wybierz pozycję Uruchom.>
Po uruchomieniu przepływu pracy otrzymasz wiadomość e-mail z określoną zawartością:
Zapobieganie nieskończonym pętlom
Akcja Until zatrzymuje wykonywanie na podstawie następujących właściwości, które można wyświetlić, wybierając pozycję Zmień limity w akcji. Upewnij się, że te wartości właściwości zostały odpowiednio ustawione:
Właściwości
Opis
Licznik
Maksymalna liczba iteracji uruchamianych przed zakończeniem pętli.
Aby uzyskać domyślne i maksymalne limity liczby akcji Until , które mogą mieć przepływ pracy, zobacz Współbieżność, pętla i limity debat.
Przekroczenie limitu czasu
Maksymalny czas, przez jaki akcja Until , w tym wszystkie iteracji, jest uruchamiana przed zakończeniem pętli. Ta wartość jest określona w formacie ISO 8601 i jest obliczana dla każdej iteracji.
Jeśli jakakolwiek akcja w pętli trwa dłużej niż limit limitu czasu, bieżąca iteracja nie zostanie zatrzymana. Jednak kolejna iteracja nie jest uruchamiana, ponieważ jest spełniony warunek limitu czasu.
Aby uzyskać domyślne i maksymalne limity dla wartości limituczasu, zobacz Współbieżność, pętla i limity debatowania.
Definicja "Until" (JSON)
Jeśli pracujesz w widoku kodu, możesz zdefiniować Until akcję w definicji JSON przepływu pracy, na przykład:
JSON
"actions": {
"Initialize_variable": {
// Definition for initialize variable action
},
"Send_an_email": {
// Definition for send email action
},
"Until": {
"type": "Until",
"actions": {
"Increment_variable": {
"type": "IncrementVariable",
"inputs": {
"name": "Limit",
"value": 1
},
"runAfter": {}
}
},
"expression": "@equals(variables('Limit'), 10)",
// To prevent endless loops, an "Until" loop
// includes these default limits that stop the loop.
"limit": {
"count": 60,
"timeout": "PT1H"
},
"runAfter": {
"Initialize_variable": [
"Succeeded"
]
}
}
}
W tym przykładzie pętla Until wywołuje punkt końcowy HTTP, który tworzy zasób. Pętla zatrzymuje się, gdy treść odpowiedzi HTTP zwraca Completed stan. Aby zapobiec nieskończonym pętlom, pętla zatrzymuje się również w przypadku wystąpienia któregokolwiek z następujących warunków:
Pętla była uruchamiana 10 razy zgodnie z atrybutem count . Wartość domyślna to 60 razy.
Pętla była uruchamiana przez dwie godziny zgodnie z atrybutem timeout w formacie ISO 8601. Wartość domyślna to jedna godzina.
Dołącz do serii meetup, aby tworzyć skalowalne rozwiązania sztucznej inteligencji oparte na rzeczywistych przypadkach użycia z innymi deweloperami i ekspertami.
Poczekaj na uruchomienie następnej akcji w przepływach pracy aplikacji logiki przy użyciu akcji Opóźnienie lub Opóźnienie do czasu w usłudze Azure Logic Apps.