Bruge en polling-udløser til Microsoft Power Automate

En polling-udløser er grundlæggende en hændelse, som regelmæssigt udføre kald til din service for at tjekke for nye data. Polling-udløsere er forskellige fra webhooks, ved at en polling-udløser igangsætter en hændelse for at bestemme, om nye data er tilgængelige, mens webhooks svarer på et push af nye data fra servicen. Når flowet bestemmer, at nye data er tilgængelige, kan du derefter udføre en handling med disse data. Dette selvstudium viser, hvordan du bruger en polling-udløser til proaktivt at hente nye data.

Forudsætninger

Sådan fungerer polling-udløsere

En polling-udløser starter med at indstille en tilstand, og derefter regelmæssigt tjekke for opdateringer i et interval. Udløseren anmoder derefter om alle nye data siden sidste tilstandsopdatering. Desuden vedligeholder udløseren tilstandens kontekst mellem anmodninger.

Følgende eksempel giver en grundlæggende oversigt over, hvordan polling-udløseren får nye data.

Sådan får polling-udløsere nye data

  1. Flow-runtime igangsætter et første kald fra udløseren til API'en i connectoren.

  2. Connectoren kalder derefter backend-servicen.

  3. Backend-servicens returnerer derefter alle de aktuelle data tilbage til connectoren.

  4. Connectoren returnerer derefter en 202 Accepteret-meddelelse, et forsøg igen-interval og en placerings-header, som indeholder den aktuelle tilstand. Forsøg igen-intervallet er i sekunder. Det første kald bruges altid til at bestemme dataenes foreløbige tilstand.

  5. Når dette forsøg igen-interval er udløbet, udfører flow-runtime et nyt kald til connectoren vha. placerings-headeren og den aktuelle tilstand, som i det eksempel er lig med 1.

  6. Connectoren ved nu, fordi denne tilstand nu er lig med 1, at den skal kalde den korrekte API, som vil udføre den korrekte filtrering, så det korrekte datasæt returneres. I dette eksempel konverterer connectoren den til en filtreret forespørgsel, som siger, at oprettelsesdatoen er større end et bestemt tidsstempel.

  7. I dette eksempel er der ingen nye data siden oprettelsesdatoen, så der sendes et tomt sæt af værdier tilbage til connectoren.

  8. Connectoren returnerer derefter en 202 Accepteret-meddelelse, et forsøg igen-interval og en placerings-header, hvor tilstanden ikke er ændret.

  9. Når dette forsøg igen-interval udløber igen, udfører flow-runtime et nyt kald til connectoren vha. den samme placerings-header og tilstand.

  10. Connectoren udfører igen den relevante filtrering vha. oprettelsesdatoen.

  11. Denne gang er der nye data siden oprettelsesdatoen, så backen returnerer værdierne af alle data tilbage til connectoren.

  12. Connectoren returnerer derefter en 200 OK-meddelelse, et forsøg igen-interval, placeringen med en ny tilstandsværdi og en matrix af værdier, som indeholder alle de nye data, der blev tilgængelige efter oprettelsesdatoen. Flowet starter herefter.

Oprette polling-udløsere fra grænsefladen

I dette afsnit beskrives det, hvordan du opretter en forespørgselsudløser i brugergrænsefladen i Power Automate. I denne procedure kan du bruge TripPin-eksempelservicen som startpunkt. TripPin-servicen er en meget simpel REST API, som indeholder en liste over personer og de ture, de har foretaget.

Du skal først dynamisk oprette de URL-adresser, som er påkrævet til TripPin-servicen, for at kunne bruge servicen. Skriv https://services.odata.org/TripPinRESTierService i browserens adresselinje. Det returnerer de metadata, som er påkrævet til denne demonstration. Kopiér og gem metadataene i fil til senere brug.

Sådan konfigurerer du TripPin-servicen og opretter polling-udløseren:

  1. I Power Automate skal du vælge fanen Data > Brugerdefinerede connectorer.

  2. I panelet Tilpassede connectorer skal du vælge Ny tilpasset connector og derefter vælge Opret fra bunden.

  3. Indtast navnet på din tilpassede connector i dialogboksen Opret en tilpasset connector (i dette eksempel kan du bruge Polling-test), og vælg derefter Fortsæt.

  4. Angiv en beskrivelse og værten på siden Generelt. I dette eksempel bruger du den services.odata.org-URL-adresse, som blev returneret i TripPin-metadataene som værten.

    Parameter Value
    Beskrivelse "TripPin er et eksempel på et rejsewebsted."
    Vært "services.odata.org"

    Tilføje beskrivelse og vært

  5. På siden Sikkerhed skal du vælge Ingen godkendelse som godkendelsestypen.

    Polling-godkendelse

  6. Vælg + ny udløser på siden Definition, og udfyld beskrivelsen af udløseren. I dette eksempel opretter du en udløser, som udløses, når en tur føjes til en persons rejseplan.

    Opret en ny udløser

    Parameter Value
    Oversigt "Udløses, når en ny tur tilføjes"
    Beskrivelse "Udløses, når en ny tur tilføjes"
    Handlings-id "OnNewTrip"
    Synlighed "ingen" (se listen nedenfor for at få flere oplysninger)
    Udløsertype "Polling"

    Egenskaben Synlighed for handlinger og parametre i et flow har følgende muligheder:

    • ingen: vist normalt i flowet
    • avanceret: skjult under en ekstra menu
    • intern: for brugeren
    • vigtigt: vises altid først for brugeren
  7. I Anmodning-området vises oplysninger, der er baseret på HTTP-anmodningen for handlingen. Vælg Importér fra eksempel.

    Definitionsside - importér fra eksempel

  8. I ruden Importer fra prøven definerer du anmodningen for polling-udløseren. Vælg GET for verbet. Fra de metadata, du modtog, da du dynamisk oprettede de URL-adresser, som er påkrævet for servicen, skal du kopiere URL-adressen i metadataene til URL-adresse i ruden Importer fra prøven. Tilføj /People('{Person}')/Trips?$filter=TripId gt 0&$orderby=TripId desc efter adressen. Eksempel:

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

    Bemærk

    Sørg for at bruge det faktiske nummer fra dine metadata i stedet for servicenummer i URL-adressen.

    I dette URL-adresseeksempel opretter du en anmodning til en enkeltperson, og {Person} er en runtime-variabel, som en bruger kan angive i flowet. Derefter angiver du, om du vil have turene for den specifikke person, som brugere angiver.

    Du vil imidlertid ikke have alle turene, du vil kun har de ture, som er nye, siden sidste gang de blev efterspurgt. Udtrykket $filter=TripId gt 0 henter de nye ture ved at returnere TripId'erne af alle ture, som er større end tidligere efterspurgte TripId'er. Tallet 0, der bruges her, opdateres automatisk, hver gang en polling-udløser opstår.

    Udtrykket $orderby=TripId desc indikerer også, at rækkefølgen af de returnerede data fra TripId er stigende rækkefølge. Udløseren kræver, at de returneres i stigende rækkefølge. Derfor skal de resultater, som returneres af backend-servicens, sorteres i omvendt rækkefølge i udløserparameteren, så den nyeste parameter (f.eks. TripId i dette eksempel) er den første værdi, som returneres i datamatrixen.

    Menuen Importer fra prøven

    Vælg knappen Importér for at importere eksempeldataene. Anmodningsområdet viser nu verbet, URL-adressen, stien og forespørgselsparametrene.

  9. Vælg forespørgselsparameteren $filter i anmodningsområdet, og vælg derefter Rediger for at åbne dialogboksen Parameter.

    Rediger filterparameteren

  10. I dialogboksen Parameter for $filter skal du angive valget Synlighed til intern. Denne parameter bruges kun internt af connectoren, som forhindrer, at brugere kan foretage ændringer. Du kan få flere oplysninger om synlighedsindstillingerne i x-ms-visibility OpenAPI-udvidelsen.

    Vælg Tilbage for at vende tilbage til anmodningsområdet.

    Redigere filterparameteren

  11. Vælg forespørgselsparameteren $orderby i anmodningsområdet, og vælg derefter Rediger for at åbne dialogboksen Parameter.

  12. I dialogboksen Parameter for $orderby skal du angive valget Er påkrævet? til Ja og valget Synlighed til intern. Disse indstillinger vil forhindre, at brugere kan foretage ændringer til denne parameter.

    Desuden skal du angive TripId-beskrivelse som værdien i feltet Standardværdi. Disse indstillinger sikrer, at resultatet gives i omvendt rækkefølge.

    Vælg Tilbage for at vende tilbage til det forrige område.

    Redigere orderby-parameteren

  13. I Svar-området vises oplysninger, der er baseret på HTTP-svaret for handlingen. Vælg Tilføj standardsvar.

    Tilføj standard-polling-svar

  14. Definer svaret til polling-udløseren, og vælg derefter Importer. Brug nedenstående eksempel til svarets brødtekst, som automatisk opbygger skemaet til svaret.

    Tilføj standard-polling-brødtekst

    
    {
        "@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"
            }
        ]
    }   
    

    Bemærk

    Sørg for at bruge det faktiske nummer fra dine metadata i stedet for servicenummer i URL-adressen.

  15. I området Udløserkonfiguration skal du vælge den parameter, som bruges til at overvåge tilstandsændringen fra TripPin. I dette eksempel skal du angive parameteren $filter.

    I dette eksempel skal du bruge følgende udtryk i Angiv en værdi, der skal overføres til det valgte forespørgselsparameter:

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

    Dette udtryk bruges til at få de sidste resultater, når udløseren køres. I det udtryk, du bruger her, køres udløseren, når TripId er større end den værdi, som returneres af resten af udtrykket. Hvis TripId ikke er større end den værdi, som returneres af resten af udtrykket, udløses udløseren ikke.

    I afsnittet Vælg samling, som indeholder udløserdata skal du vælge @triggerBody().value. Det er den matrix, som indeholder de udløserdata, der blev returneret af backend-servicen.

    Konfiguration af polling-udløser

  16. Vælg Opret connector øverst i guiden.

Brug polling-udløseren

Nu da alt er konfigureret, kan du bruger polling-udløseren i et flow. I dette afsnit opretter du et flow, som vil undersøge backend-servicen for ændringer, når en ny tur registreres for en bestemt person.

  1. I flow.microsoft.com skal du vælge Opret i venstre side af siden.

  2. Vælg Øjeblikkeligt flow under Start fra bunden.

  3. Vælg knappen Spring over i dialogboksen Opret et øjeblikkeligt flow.

  4. Skriv Udløses, når en ny tur tilføjes i søgefeltet.

    Søg efter polling-udløseren

    Vælg elementet på listen for at bruge det som en udløser.

  5. Skriv russellwhyte i flow-feltet Person som den person, hvis ture du vil undersøge, og vælg derefter + Næste trin.

    Søg efter polling-udløseren

  6. Vælg fanen Indbygget i doalogboksen Vælg en handling, og vælg derefter Dato/klokkeslæt.

    Vælg handlingen Dato/klokkeslæt

  7. Vælg Aktuelt klokkeslæt fra Dato/klokkeslæt.

    Vælg handlingen Dato/klokkeslæt

  8. Vælg Gem for at gemme det nye flow.

Kontrol og fejlfinding

Vælg Mine flows for at kontrollere, at alt er konfigureret korrekt, og vælg derefter flowet Udløsere, når en ny tur er tilføjet -> Aktuelt klokkeslæt for at få vist kørselsoversigten. Da flowet ikke er kørt endnu, bør der ikke vises noget i oversigten.

Hvis du vil teste flowet, skal du åbne programmet Postman for at føje nye data til TripPin.

  1. Vælg ikonet + ved siden af fanen Launchpad i Postman.

  2. Vælg POST i rullefeltet til venstre i anmodningen uden titel, og angiv derefter følgende adresse i feltet Angiv godkendelses-URL-adresse:

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

    Bemærk

    Sørg for at bruge det faktiske nummer fra dine metadata i stedet for servicenummer i URL-adressen.

  3. Vælg fanen Brødtekst under POST-anmodningen, og vælg derefter . Vælg JSON i rullefeltet ved siden af .

  4. Skriv følgende tekst i tekstfeltet:

    {
         "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. Vælg Send for at sende POST-meddelelsen til TripPin-webstedet.

    Send POST-meddelelsen

    Svaret returneres med status 201 Created.

Når du nu åbner Mine flows og derefter vælger flowet Udløsere, når en ny tur er tilføjet -> Aktuelt klokkeslæt, vil du se i kørselsoversigten, at en udløser er udløst.

Der opstod udløser

Bemærk

Hvis du kører en anden POST-anmodning for den samme person, behøver du ikke at ændre TripId-værdien i JSON-brødteksten. Ellers opstår der en 409 Conflict-fejl.

Resumé

Hvis alt er korrekt konfigureret, modtager du nu meddelelser i Microsoft Power Automate, når der føjes en ny rejse til TripPin.

Næste trin