Använda en avsökningsutlösare för Microsoft Power Automate

En avsökningsutlösare är i grunden en händelse som gör regelbundna anrop till en tjänst för att söka efter nya data. Skillnaden mellan en avsökningsutlösare och en webhook är att avsökningsutlösaren initierar en händelse för att avgöra om det finns nya data, medan en webhook svarar på ett push-meddelande för nya data från tjänsten. När flödet har fastställt att nya data finns tillgängliga kan du utföra en åtgärd med dessa data. Den här självstudien visar hur du använder en avsökningsutlösare för att proaktivt hämta nya data.

Förutsättningar

Så här fungerar en avsökningsutlösare

En avsökningsutlösare börjar med att ange ett tillstånd och söker sedan regelbundet efter uppdateringar under ett intervall. Utlösaren begär därefter alla nya data sedan den senaste tillståndsuppdateringen. Utlösaren upprätthåller även tillståndskontexten mellan begäranden.

I följande exempel visas en grundläggande översikt över hur en avsökningsutlösare hämtar nya data.

Så här hämtar avsökningsutlösare data

  1. Flödeskörningen initierar ett första utlösaranrop till API:et i anslutningsprogrammet.

  2. Anslutningsprogrammet anropar i sin tur serverdelstjänsten.

  3. Serverdelstjänsten returnerar därefter alla aktuella data tillbaka till anslutningsprogrammet.

  4. Anslutningsprogrammet returnerar sedan ett 202-meddelande (godkänt), ett återförsöksintervall och en platsrubrik med det aktuella tillståndet. Återförsöksintervallet anges i sekunder. Första anropet används alltid för att fastställa det preliminära datatillståndet.

  5. När återförsöksintervallets tidsgräns har nåtts gör flödeskörningen ett nytt anrop till anslutningsprogrammet med platsrubriken och det aktuella tillståndet, som i det här exemplet är lika med 1.

  6. Eftersom anslutningsprogrammet nu vet att tillståndet är lika med 1 kan rätt API anropas för att utföra lämplig filtrering så att rätt datauppsättning returneras. I det här exemplet översätter anslutningsprogrammet det till en filtrerad fråga som säger att skapandedatumet är större än en viss tidsstämpel.

  7. I det här exemplet finns det inga nya data sedan skapandedatumet, så en tom värdeuppsättning skickas tillbaka till anslutningsprogrammet.

  8. Anslutningsprogrammet returnerar då ett 202-meddelande (godkänt), ett återförsöksintervall och en platsrubrik med det oförändrade tillståndet.

  9. När tidsgränsen har nåtts igen för återförsöksintervallet gör flödeskörningen ett nytt anrop till anslutningsprogrammet med samma platsrubrik och tillstånd.

  10. Återigen gör anslutningsprogrammet lämplig filtrering med hjälp av skapandedatumet.

  11. Den här gången har nya data blivit tillgängliga sedan skapandedatumet och serverdelstjänsten returnerar värdena för alla nya data till anslutningsprogrammet.

  12. Anslutningsprogrammet returnerar sedan ett 200-meddelande (OK), ett återförsöksintervall, platsen med ett nytt tillståndsvärde och en värdematris med alla nya data som blivit tillgängliga sedan skapandedatumet. Nu startar flödet.

Skapa avsökningsutlösare i användargränssnittet

Det här avsnittet visar hur du skapar en sökningsutlösare i Power Automate-gränssnittet. I det här exemplet använder du TripPin-tjänsten som utgångspunkt. TripPin-tjänsten är ett enkelt REST-API som innehåller en lista över personer och vilka resor de har gjort.

För att använda TripPin-tjänsten måste du först dynamiskt skapa de URL:er som krävs för tjänsten. Ange https://services.odata.org/TripPinRESTierService i webbläsarens adressfält. Därmed returneras de metadata som krävs för den här demonstrationen. Kopiera och spara dessa metadata i en fil för senare användning.

Konfigurera TripPin-tjänsten och skapa avsökningsutlösaren:

  1. I Power Automate, välj fliken Data > Anpassade kopplingar.

  2. I fönstret Anpassade anslutningsprogram väljer du Nytt anpassat anslutningsprogram och sedan Skapa från början.

  3. I dialogrutan Skapa ett anpassat anslutningsprogram anger du namnet på ditt anpassade anslutningsprogram (i det här exemplet kan du använda Avsökningstest) och väljer sedan Fortsätt.

  4. På sidan Allmänt anger du en beskrivning och en värd. I det här exemplet använder du webbadressen services.odata.org som returnerades som värd i TripPins metadata.

    Parameter Value
    Beskrivning "TripPin är ett exempel på en resewebbplats."
    Värd "services.odata.org"

    Lägga till beskrivning och värd

  5. På sidan Säkerhet väljer du autentiseringstypen Ingen autentisering.

    Autentisering för avsökning

  6. På sidan Definition, välj + Ny utlösare och fyll i beskrivningen för utlösaren. I det här exemplet skapar du en utlösare som löses ut när en ny resa läggs till en persons resplan.

    Skapa en ny utlösare

    Parameter Value
    Sammanfattning "Löses ut när en ny resa läggs till"
    Beskrivning "Löses ut när en ny resa läggs till"
    Åtgärds-ID "OnNewTrip"
    Synlighet "ingen" (mer information finns i listan nedan)
    Utlösartyp "Avsökning"

    Egenskapen Synlighet för åtgärder och parametrar i ett flöde har följande alternativ:

    • ingen: visas normalt i flödet
    • avancerat: dolt under ytterligare en meny
    • internt: från användaren
    • viktigt: visas alltid först för användaren.
  7. I området begäran visas information som baseras på HTTP-begäran för åtgärden. Välj Importera från exempel.

    Definitionssida – importera från exempel

  8. I fönstret Importera från exempel definierar du din begäran för avsökningsutlösaren. Välj verbet GET. Kopiera URL:en från de metadata du fick när du dynamiskt skapade URL:erna som krävdes för tjänsten i fältet URL i fönstret Importera från exempel. Lägg till /People('{Person}')/Trips?$filter=TripId gt 0&$orderby=TripId desc efter adressen. Till exempel:

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

    Anteckning

    Se till att använda numret från dina metadata i stället för URL:ens <service number>.

    I det här URL-exemplet skapar du en begäran för en person, där {Person} är en körningsvariabel som en användare kan ange i flödet. Därefter anger du att du vill hämta resorna för den person som användaren anger.

    Men du vill inte hämta alla resor. Du vill bara hämta de resor som är nya sedan den senaste avsökningen. Uttrycket $filter=TripId gt 0 hämtar de nya resorna genom att returnera TripId-värden för alla resor som är större än de TripId som avsökts tidigare. Numret 0 som används här uppdateras automatiskt varje gång en avsökning utlöses.

    Dessutom anger uttrycket $orderby=TripId desc att dataordningen returneras som TripId i fallande ordning. Att detta returneras i fallande ordning krävs av utlösaren. Det innebär att resultaten som returneras av serverdelstjänsten måste vara i omvänd ordning i utlösningsparametern, så att den senaste parametern (som TripId-värdet i det här exemplet) är det första värdet som returneras i datamatrisen.

    Menyn Importera från exempel

    Välj knappen Importera för att importera exempeldata. I området för begäran visas nu verbet, URL:en, sökvägen och frågeparametrarna.

  9. I området för begäran väljer du frågeparametern $filter och sedan Redigera så att dialogrutan Parameter öppnas.

    Redigera filterparametern

  10. I dialogrutan Parameter för $filter väljer du alternativet intern för Synlighet. Den här parametern används bara internt av anslutningsprogrammet, vilket hindrar användaren från att göra ändringar. Mer information om synlighetsinställningarna finns i OpenAPI-tillägget x-ms-visibility.

    Välj Tillbaka om du vill återgå till begärandeområdet.

    Redigera filterparametern

  11. I området för begäran väljer du frågeparametern $orderby och sedan Redigera för att öppna dialogrutan Parameter.

  12. I dialogrutan Parameter för $orderby väljer du alternativet Ja för frågan Obligatorisk? och alternativet intern för Synlighet. Dessa inställningar hindrar användaren från att göra ändringar i den här parametern.

    Ange dessutom TripId desc som värde i rutan Standardvärde. Dessa inställningar säkerställer att resultaten anges i omvänd ordning.

    Välj Tillbaka för att återgå till det föregående området.

    Redigera parametern orderby

  13. I området Svar visas information som baseras på HTTP-svar för åtgärden. Välj Lägg till standardsvar.

    Lägg till standardsvar för avsökning

  14. Definiera svaret för avsökningsutlösaren och välj sedan Importera. Använd exemplet nedan för svarstexten, vilket automatiskt skapar ett schema för svaret.

    Lägg till svarstext för avsökning

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

    Anteckning

    Se till att använda numret från dina metadata i stället för URL:ens <service number>.

  15. I området Utlösarkonfiguration väljer du parametern som används till att bevaka tillståndsändringen från TripPin. I det här exemplet ska parametern $filter anges.

    I det här exemplet använder du följande uttryck i Ange ett värde som ska skickas till den valda frågeparametern:

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

    Det här uttrycket används för att hämta de senaste resultaten när utlösaren körs. I uttrycket som du använder här kommer utlösaren att köras när TripId är större än värdet som returneras av resten av uttrycket. Om TripId inte är större än det värde som returneras av resten av uttrycket körs ingen utlösare.

    I Välj en mängd som innehåller utlösardata väljer du @triggerBody().value. Detta är den matris som innehåller de utlösardata som returneras av serverdelstjänsten.

    Konfigurera avsökningsutlösare

  16. Välj Skapa anslutningsprogram längst upp i guiden.

Använda avsökningsutlösaren

Nu när allt är konfigurerat kan du använda avsökningsutlösaren i ett flöde. I det här avsnittet skapar du ett flöde som avsöker serverdelstjänsten efter ändringar när en ny resa registrerats för en viss person.

  1. I flow.microsoft.com, till vänster på sidan, väljer du Skapa.

  2. Under Starta från tom väljer du Direktflöde.

  3. I dialogrutan Skapa ett direktflöde väljer du knappen Hoppa över.

  4. I sökrutan anger du Löses ut när en ny resa läggs till.

    Skärmbild som visar söktexten i sökrutan.

    Välj objektet i listan om du vill använda det som en utlösare.

  5. I flödesrutan Person anger du russellwhyte för den person vars resa du vill titta närmare på och sedan väljer du + Nytt steg.

    Bild som visar rutan Person och knappen Nytt steg.

  6. I dialogrutan Välj en åtgärd väljer du fliken Inbyggd och sedan Datum/tid.

    Skärmbild som visar dialogrutan Välj en åtgärd.

  7. Från Datum/tid väljer du Aktuell tid.

    Skärmbild där knappen Aktuell tid visas.

  8. Välj Spara för att spara det nya flödet.

Verifiering och felsökning

Om du vill verifiera att allt är rätt konfigurerat väljer du Mina flöden och sedan flödet Löses ut när en ny resa läggs till -> Aktuell tid för att visa körningshistoriken. Eftersom flödet inte har körts ännu ska det heller inte visas något i historiken.

Om du vill testa flödet måste du öppna Postman-appen för att lägga till nya data i TripPin.

  1. I Postman väljer du ikonen + bredvid fliken Startfönster.

  2. I din namnlösa begäran väljer du POST i listrutan till vänster och anger sedan följande adress i rutan Ange fråge-URL:

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

    Anteckning

    Se till att använda numret från dina metadata i stället för URL:ens <service number>.

  3. Under POST-begäran väljer du fliken Brödtext och sedan . I listrutan till höger om väljer du JSON.

  4. Ange följande text i textrutan:

    {
         "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älj Skicka för att skicka POST-meddelandet till TripPin-platsen.

    Skicka POST-meddelandet

    Svaret ska då returneras med status 201 Created.

När du nu öppnar Mina flöden och väljer flödet Löses ut när en ny resa läggs till -> Aktuell tid ser du att en utlösare har körts i körningshistoriken.

En utlösare har körts

Anteckning

Om du kör en annan POST-begäran i Postman för samma person måste du ändra TripId-värdet i JSON-brödtexten. Annars uppstår ett 409-fel (konflikt).

Sammanfattning

Om allt är korrekt konfigurerat får du nu meddelanden i Microsoft Power Automate när en ny resa läggs till i TripPin.

Nästa steg

Ge feedback

Vi uppskattar feedback på problem med vår plattform för anslutningsprogram eller förslag på nya funktioner. Om du vill lämna feedback går du till Skicka problem eller få hjälp med anslutningsprogram och väljer typ av feedback.