Använda en anpassad avsökningsutlösare
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
- En Power Automate-prenumeration.
- Grundupplevelse för att skapa flöden och anpassade anslutningsprogram.
Lär dig hur en avsökningsutlösning hämtar nya data
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 översikt över hur en avsökningsutlösare hämtar nya data.
- Flödeskörningen initierar ett första utlösaranrop till API:et i anslutningsprogrammet.
- Anslutningsprogrammet anropar i sin tur serverdelstjänsten.
- Serverdelstjänsten returnerar därefter alla aktuella data tillbaka till anslutningsprogrammet.
- 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.
- 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.
- 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.
- I det här exemplet finns det inga nya data sedan skapandedatumet, så en tom värdeuppsättning skickas tillbaka till anslutningsprogrammet.
- Anslutningsprogrammet returnerar då ett 202-meddelande (godkänt), ett återförsöksintervall och en platsrubrik med det oförändrade tillståndet.
- 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.
- Återigen gör anslutningsprogrammet lämplig filtrering med hjälp av skapandedatumet.
- 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.
- 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:
I Power Automate, välj fliken Data > Anpassade kopplingar.
I fönstret Anpassade anslutningsprogram väljer du Nytt anpassat anslutningsprogram och sedan Skapa från början.
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.
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" På sidan Säkerhet väljer du autentiseringstypen Ingen autentisering.
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.
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.
I området begäran visas information som baseras på HTTP-begäran för åtgärden. Välj Importera från exempel.
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. Numret0
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.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.
I området för begäran väljer du frågeparametern $filter och sedan Redigera så att dialogrutan Parameter öppnas.
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.
I området för begäran väljer du frågeparametern $orderby och sedan Redigera för att öppna dialogrutan Parameter.
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.
I området Svar visas information som baseras på HTTP-svar för åtgärden. Välj Lägg till standardsvar.
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.
{ "@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>.
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. OmTripId
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.
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.
I flow.microsoft.com, till vänster på sidan, väljer du Skapa.
Under Starta från tom väljer du Direktflöde.
I dialogrutan Skapa ett direktflöde väljer du knappen Hoppa över.
I sökrutan anger du Löses ut när en ny resa läggs till.
Välj objektet i listan om du vill använda det som en utlösare.
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.
I dialogrutan Välj en åtgärd väljer du fliken Inbyggd och sedan Datum/tid.
Från Datum/tid väljer du Aktuell tid.
Välj Spara för att spara det nya flödet.
Verifiera och felsöka
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.
I Postman väljer du ikonen + bredvid fliken Startfönster.
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>.
Under POST-begäran väljer du fliken Brödtext och sedan rå. I listrutan till höger om rå väljer du JSON.
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" }
Välj Skicka för att skicka POST-meddelandet till TripPin-platsen.
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.
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).
Om allt är korrekt konfigurerat får du nu meddelanden i Microsoft Power Automate när en ny resa läggs till i TripPin.
Se även
- Skapa ett anpassat anslutningsprogram för ett webb-API
- Autentisera ditt API och anslutning med Microsoft Entra ID
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.