Używanie niestandardowego wyzwalacza sondowania

Wyzwalacz sondowania zasadniczo jest zdarzeniem, które okresowo wykonuje wywołanie do usługi w celu znalezienia nowych danych. Wyzwalacze sondowania różnią się od elementów webhook tym, że wyzwalacz sondowania inicjuje zdarzenie, aby określić, czy są dostępne nowe dane, natomiast elementy webhook reagują na wypychanie nowych danych z usługi. Gdy przepływ stwierdza, że są dostępne nowe dane, można wykonać akcję związaną z tymi danymi. W tym samouczku pokazano, jak używać wyzwalacza sondowania do aktywnego pobierania nowych danych.

Wymagania wstępne

Dowiedz się, jak wyzwolenie sondowania nabywa nowe dane

Wyzwalacz sondowania zaczyna pracę od ustawienia stanu, a następnie okresowo sprawdza dostępność aktualizacji, jakie pojawiły się w danym interwale. Wyzwalacz żąda wówczas wszystkich nowych danych od momentu ostatniej aktualizacji stanu. Ponadto wyzwalacz zachowuje również kontekst stanu między żądaniami.

Poniższy przykład zawiera podstawowe omówienie sposobu, w jaki wyzwalacz sondowania uzyskuje nowe dane.

Jak wyzwalacze sondowania uzyskują dane

  1. Środowisko uruchomieniowe przepływu wysyła początkowe wywołanie w wyzwalaczu do interfejsu API w łączniku.
  2. Następnie łącznik wywołuje usługę zaplecza.
  3. Usługa zaplecza zwraca wówczas wszystkie bieżące dane do łącznika.
  4. Łącznik z kolei zwraca komunikat 202 Zaakceptowano, interwał ponawiania prób i nagłówek lokalizacji, który zawiera bieżący stan. Interwał ponawiania prób jest mierzony w sekundach. To pierwsze wywołanie zawsze służy do ustalenia wstępnego stanu danych.
  5. Po upływie limitu czasu interwału ponawiania środowisko uruchomieniowe przepływu wykonuje kolejne wywołanie do łącznika, używając nagłówka lokalizacji i bieżącego stanu, który w tym przykładzie jest równy 1.
  6. Ponieważ ten stan jest teraz równy 1, łącznik już wie, że ma wywołać odpowiedni interfejs API, który przeprowadzi odpowiednie filtrowanie, aby został zwrócony poprawny zestaw danych. W tym przykładzie łącznik tłumaczy go na zapytanie filtrowane, które informuje, że data utworzenia jest nowsza niż określony znacznik czasu.
  7. W tym przykładzie nie pojawiły się żadne nowe dane od daty utworzenia, dlatego z powrotem do łącznika jest wysyłany pusty zbiór wartości.
  8. Łącznik zwraca wówczas komunikat 202 Zaakceptowano, interwał ponawiania prób i nagłówek lokalizacji, w którym stan nie uległ zmianie.
  9. Po upływie kolejnego limitu czasu interwału ponawiania środowisko uruchomieniowe przepływu wykonuje kolejne wywołanie do łącznika, używając tego samego nagłówka lokalizacji i stanu.
  10. Łącznik ponownie przeprowadza odpowiednie filtrowanie przy użyciu daty utworzenia.
  11. Tym razem pojawiły się nowe dane od daty utworzenia, dlatego zaplecze zwraca do łącznika wartości wszystkich nowych danych.
  12. Łącznik zwraca wówczas komunikat 200 OK, interwał ponawiania prób, lokalizację z nową wartością stanu oraz tablicę wartości zawierającą wszystkie nowe dane, które stały się dostępne po dacie utworzenia. W tym momencie zostanie uruchomiony przepływ.

Tworzenie wyzwalaczy sondowania z interfejsu użytkownika

W tej sekcji pokazano, jak utworzyć wyzwalacz sondowania w interfejsie użytkownika usługi Power Automate. W tej procedurze jako punktu wyjścia użyjesz przykładowej usługi TripPin. Usługa TripPin to bardzo prosty interfejs API REST, który zawiera listę osób i ich podróży.

Aby móc korzystać z usługi TripPin, najpierw musisz dynamicznie utworzyć adresy URL wymagane przez usługę. Na pasku adresu przeglądarki wprowadź https://services.odata.org/TripPinRESTierService. Spowoduje to zwrócenie metadanych wymaganych przez ten pokaz. Skopiuj i zapisz metadane w pliku do późniejszego użycia.

Aby skonfigurować usługę TripPin i utworzyć wyzwalacz sondowania:

  1. W usłudze Power Automate wybierz kartę Dane > Łączniki niestandardowe.

  2. W okienku Łączniki niestandardowe wybierz pozycję Nowy łącznik niestandardowy, a następnie wybierz pozycję Utwórz z pustego.

  3. W oknie dialogowym Utwórz łącznik niestandardowy wprowadź nazwę łącznika niestandardowego (w tym przykładzie możesz użyć nazwy Test sondowania), a następnie wybierz pozycję Kontynuuj.

  4. Na stronie Ogólne podaj opis i hosta. W tym przykładzie jako hosta użyjesz adresu URL services.odata.org, który został zwrócony w metadanych usługi TripPin.

    Parametr Value
    Opis „TripPin jest przykładową witryną internetową biura podróży.”
    Host „services.odata.org”

    Dodawanie opisu i hosta

  5. Na stronie Zabezpieczenia jako typ uwierzytelniania wybierz pozycję Bez uwierzytelniania.

    Uwierzytelnianie sondowania

  6. Na stronie Definicja wybierz opcję + Nowy wyzwalaczi wypełnij opis wyzwalacza. W tym przykładzie utworzysz wyzwalacz, który będzie uruchamiany po dodaniu nowej podróży do planu podróży danej osoby.

    Tworzenie nowego wyzwalacza

    Parametr Value
    Podsumowanie „Wyzwalany po dodaniu nowej podróży”
    Opis „Wyzwalany po dodaniu nowej podróży”
    Identyfikator operacji „OnNewTrip”
    Widoczność „brak” (dalsze informacje można znaleźć na poniższej liście)
    Typ wyzwalacza „Sondowanie”

    Właściwość Widoczność operacji i parametrów w przepływie ma następujące opcje:

    • brak: normalne wyświetlanie w przepływie
    • zaawansowane: ukryte w dodatkowym menu
    • wewnętrzne: ukryte przed użytkownikiem
    • ważne: zawsze wyświetlane użytkownikowi w pierwszej kolejności
  7. W obszarze Żądania są wyświetlane informacje na podstawie żądania HTTP dotyczącego akcji. Wybierz Importuj z próbki.

    Strona definicji — Importowanie z próbki

  8. W okienku Importuj z próbki zdefiniujesz żądanie dla wyzwalacza sondowania. Jako zlecenie wybierz pozycję GET. Z metadanych otrzymanych podczas dynamicznego tworzenia adresów URL wymaganych przez usługę skopiuj adres URL do pola Adres URL w okienku Importuj z próbki. Po adresie dodaj /People('{Person}')/Trips?$filter=TripId gt 0&$orderby=TripId desc. Na przykład:

    https://services.odata.org/TripPinRESTierService/(S(<service number>))/People('{Person}')/Trips?$filter=TripId gt 0&$orderby=TripId desc

    Uwaga

    Upewnij się, że używasz rzeczywistego numeru z metadanych, zamiast <numeru usługi> w adresie URL.

    W tym przykładzie adresu URL tworzysz żądanie dla pojedynczej osoby, a {Person} to zmienna środowiska uruchomieniowego, którą użytkownik może określić w przepływie. Następnie określasz, że chcesz otrzymywać informacje o podróżach określonej osoby wprowadzonej przez użytkownika.

    Jednak nie chcesz otrzymywać informacji o wszystkich podróżach, a tylko o tych, które miały miejsce od czasu ostatniego sondowania. Wyrażenie $filter=TripId gt 0 pobiera nowe podróże, zwracając identyfikatory TripId wszystkich podróży, które są nowsze od wcześniej sondowanych identyfikatorów TripId. Użyta w tym miejscu liczba 0 zostanie automatycznie zaktualizowana za każdym razem, gdy zadziała wyzwalacz sondowania.

    Ponadto wyrażenie $orderby=TripId desc wskazuje, że kolejność danych jest zwracana jako identyfikator TripId w kolejności malejącej. Zwracanie danych w kolejności malejącej jest wymagane przez wyzwalacz. Oznacza to, że wyniki zwrócone przez usługę zaplecza muszą zostać posortowane w parametrze wyzwalacza w odwrotnej kolejności, aby najnowszy parametr (w tym przykładzie TripId) był pierwszą wartością zwracaną w tablicy danych.

    Menu Importuj z próbki

    Naciśnij przycisk Importuj, aby zaimportować przykładowe dane. W obszarze żądania jest teraz wyświetlane zlecenie, adres URL, ścieżka i parametry zapytania.

  9. W obszarze żądania wybierz parametr zapytania $filter, a następnie wybierz pozycję Edytuj, aby wyświetlić okno dialogowe parametru.

    Edytowanie parametru filtru

  10. W oknie dialogowym parametru $filter ustaw przełącznik wyboru Widoczność w położenie wewnętrzna. Ten parametr jest używany przez łącznik tylko wewnętrznie, co uniemożliwia użytkownikowi wprowadzanie jakichkolwiek zmian. Więcej informacji na temat ustawień widoczności można znaleźć w rozszerzeniu rozszerzenie x-ms-visibility OpenAPI.

    Wybierz pozycję Wstecz, aby wrócić do obszaru żądania.

    Edytowanie parametru filtru

  11. W obszarze żądania wybierz parametr zapytania $orderby, a następnie wybierz pozycję Edytuj, aby wyświetlić okno dialogowe parametru.

  12. W oknie dialogowym parametru $orderby ustaw przełącznik wyboru Czy jest wymagany? w położenie Tak, a przełącznik wyboru Widoczność w położenie wewnętrzna. Te ustawienia uniemożliwią użytkownikowi wprowadzanie jakichkolwiek zmian w tym parametrze.

    Dodatkowo jako wartość w polu Wartość domyślna wprowadź TripId desc. Dzięki tym ustawieniom wyniki będą podawane w odwrotnej kolejności.

    Wybierz pozycję Wstecz, aby wrócić do poprzedniego obszaru.

    Edytowanie parametru orderby

  13. W obszarze Odpowiedź są wyświetlane informacje na podstawie odpowiedzi HTTP dotyczącego akcji. Wybierz pozycję Dodaj odpowiedź domyślną.

    Dodawanie domyślnej odpowiedzi sondowania

  14. Zdefiniuj odpowiedź dla wyzwalacza sondowania, a następnie wybierz pozycję Importuj. Na potrzeby treści odpowiedzi użyj poniższego przykładu, który automatycznie utworzy schemat odpowiedzi.

    Dodawanie treści odpowiedzi na sondowanie

    
    {
        "@odata.context":"https://services.odata.org/TripPinRESTierService/(S(<service number>))/$metadata#Collection(Microsoft.OData.Service.Sample.TrippinInMemory.Models.Trip)",
        "value":[
            {
                "TripId":2,
                "ShareId":"9ce142c3-5fd6-4a71-848e-220ebf1e9f3",
                "Name":"Honeymoon",
                "Budget":2650,
                "Description":"Happy honeymoon trip",
                "Tags":[
                    "Travel",
                    "honeymoon"
                ],
                "StartsAt":"2014-02-01T00:00:00Z",
                "EndsAt":"2014-02-04T00:00:00Z"
            },
            {
                "TripId":1,
                "ShareId":"f94e9116-8bdd-4dac-ab61-08438d0d9a71",
                "Name":"Trip in Beijing",
                "Budget":2000,
                "Description":"Trip from Shanghai to Beijing",
                "Tags":[
                    "Travel",
                    "Beijing"
                ],
                "StartsAt":"2014-02-01T00:00:00Z",
                "EndsAt":"2014-02-04T00:00:00Z"
            }
        ]
    }   
    

    Uwaga

    Upewnij się, że używasz rzeczywistego numeru z metadanych, zamiast <numeru usługi> w adresie URL.

  15. W obszarze Konfiguracja wyzwalacza wybierz parametr służący do monitorowania zmiany stanu z usługi TripPin. W tym przykładzie parametrem do wprowadzenia jest $filter.

    W tym przykładzie w polu Określ wartość do przekazania do wybranego parametru zapytania użyj następującego wyrażenia:

    TripId gt @{triggerBody().value[0].TripId}

    To wyrażenie służy do uzyskiwania najnowszych wyników przy każdym uruchomieniu wyzwalacza. W używanym tutaj wyrażeniu, gdy identyfikator TripId jest nowszy niż wartość zwracana przez resztę wyrażenia, wyzwalacz zostanie uruchomiony. Jeśli identyfikator TripId nie jest nowszy niż wartość zwracana przez resztę wyrażenia, wyzwalacz nie zostanie uruchomiony.

    W obszarze Wybierz kolekcję, która zawiera dane wyzwalacza wybierz pozycję @triggerBody().value. Jest to tablica zawierająca dane wyzwalacza, które są zwracane przez usługę zaplecza.

    Konfiguracja wyzwalacza sondowania

  16. W górnej części kreatora wybierz pozycję Utwórz łącznik.

Korzystanie z wyzwalacza sondowania

Po skonfigurowaniu wszystkich elementów możesz użyć wyzwalacza sondowania w przepływie. W tej sekcji utworzysz przepływ, który będzie sondował pod kątem zmian usługę zaplecza za każdym razem, gdy dla określonej osoby zostanie zarejestrowana nowa podróż.

  1. W witrynie flow.microsoft.com przy lewej krawędzi strony wybierz pozycję Utwórz.

  2. W obszarze Zacznij od pustej aplikacji wybierz pozycję Przepływ błyskawiczny.

  3. W oknie dialogowym Utwórz przepływ błyskawiczny naciśnij przycisk Pomiń.

  4. W polu wyszukiwania wprowadź Wyzwalane po dodaniu nowej podróży.

    Zrzut ekranu, na którym widać tekst wyszukiwania w polu wyszukiwania.

    Wybierz element listy, który będzie używany jako wyzwalacz.

  5. W polu przepływu Osoba wprowadź russellwhyte dla osoby, której podróże będą badane, a następnie wybierz pozycję + Nowy krok.

    Zrzut ekranu, który pokazuje pole Osoba i przycisk Nowy krok.

  6. W oknie dialogowym Wybierz akcję wybierz kartę Wbudowane, a następnie wybierz pozycję Data i godzina.

    Zrzut ekranu, który pokazuje okno dialogowe Wybierz działanie.

  7. W obszarze Data i godzina wybierz pozycję Bieżąca godzina.

    Zrzut ekranu, na którym widać przycisk Aktualny czas.

  8. Wybierz pozycję Zapisz, aby zapisać nowy przepływ.

Weryfikowanie i rozwiązywanie problemów

Aby sprawdzić, czy wszystko jest prawidłowo skonfigurowane, wybierz pozycję Moje przepływy, a następnie wybierz przepływ Wyzwalane po dodaniu nowej podróży -> Bieżąca godzina, aby wyświetlić historię uruchamiania. Ponieważ przepływ nie został jeszcze uruchomiony, w tym momencie nic nie powinno być wyświetlane w historii.

Aby przetestować przepływ, musisz otworzyć aplikację Postman w celu dodania nowych danych do usługi TripPin.

  1. W aplikacji Postman wybierz ikonę + obok karty Launchpad.

  2. W żądaniu bez tytułu wybierz pozycję POST z pola listy rozwijanej po lewej stronie, a następnie w polu Wprowadź adres URL żądania wprowadź następujący adres:

    https://services.odata.org/TripPinRESTierService/(S(<Service number))/People('russellwhyte')/Trips

    Uwaga

    Upewnij się, że używasz rzeczywistego numeru z metadanych, zamiast <numeru usługi> w adresie URL.

  3. W obszarze żądania POST wybierz kartę Treść, a następnie wybierz pozycję nieprzetworzona. Na liście rozwijanej po prawej stronie pozycji nieprzetworzona wybierz pozycję JSON.

  4. W polu tekstowym wprowadź następujący tekst:

    {
         "TripId": 190,
         "ShareId": "9d9b2fa0-efbf-490e-a5e3-bac8f7d47354",
         "Name": "Trip in US",
         "Budget": 5000,
         "Description": "Trip from San Francisco to New York City",
         "Tags": [
             "business",
             "New York meeting"
         ],
         "StartsAt": "2014-01-01T00:00:00Z",
         "EndsAt": "2014-01-04T00:00:00Z"
    }
    
  5. Wybierz pozycję Wyślij, aby wysłać komunikat POST do witryny usługi TripPin.

    Wysyłanie komunikatu POST

    Powinna zostać zwrócona odpowiedź ze stanem 201 Created.

Teraz po otwarciu okna Moje przepływy i wybraniu przepływu Wyzwalane po dodaniu nowej podróży -> Bieżąca godzina zobaczysz historię uruchamiania wyzwalacza.

Wyzwalacz został uruchomiony

Uwaga

Jeśli w aplikacji Postman uruchamiasz kolejne żądanie POST dla tej samej osoby, musisz zmienić wartość identyfikatora TripId w treści JSON. W przeciwnym razie wystąpi błąd 409 Konflikt.

Jeśli wszystko jest poprawnie skonfigurowane, będziesz teraz otrzymywać powiadomienia w usłudze Microsoft Power Automate za każdym razem, gdy w usłudze TripPin zostanie dodana nowa podróż.

Zobacz też

Przekazywanie opinii

Jesteśmy wdzięczni za opinie na temat problemów z platformą łączników oraz pomysły na nowe funkcje. Aby przekazać opinię, przejdź na stronę Przesyłanie problemów lub uzyskiwanie pomocy dotyczącej łączników i wybierz typ opinii.