Dela via


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

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.

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äljer du fliken Anpassade anslutningsappar > för data .

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

  3. I dialogrutan Skapa en anpassad anslutningsapp anger du namnet på din anpassade anslutningsapp (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
    Description "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 Ingen autentisering som autentiseringstyp.

    Autentisering för avsökning

  6. På sidan Definition väljer du + Ny utlösare och fyller 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"
    Description "Löses ut när en ny resa läggs till"
    Åtgärds-ID "OnNewTrip"
    Synlighet "ingen" (mer information finns i listan nedan)
    Typ av utlösare "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: Gömd under en extra meny
    • internt: dolt för användaren
    • Viktigt: Visas alltid för användaren först
  7. I området Begäran visas information baserat på HTTP-begäran för åtgärden. Välj Importera från exempel.

    Definitionssida – importera från exempel

  8. I exempelfönstret Importera från definierar du begäran för avsökningsutlösaren. För verbet väljer du GET. Från de metadata som du fick när du dynamiskt skapade de URL:er som krävs för tjänsten kopierar du URL-adressen i metadata till URL: en 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

    Obs

    Se till att använda det faktiska numret från dina metadata i stället för <tjänstnumret> i URL:en.

    I det här URL-exemplet skapar du en begäran för en enskild person och {Person} det ä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 TripIds för alla resor som är större än de tidigare avfrågade TripIds. Numret 0 som används här uppdateras automatiskt varje gång en avsökningsutlösare inträffar.

    $orderby=TripId desc Uttrycket anger också att ordningen på data 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 väljer sedan Redigera för att öppna dialogrutan Parameter .

    Redigera filterparametern

  10. I dialogrutan Parameter för $filter ställer du in valet Synlighetinternt. 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 tillägget OpenAPI x-ms-visibility.

    Välj Tillbaka för att återgå till området för begäran.

    Redigera filterparametern

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

  12. I dialogrutan Parameter för $orderby anger du Krävs det ? till Ja och Synlighet till intern . 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 föregående område.

    Redigera parametern orderby

  13. I området Svar visas information baserat på HTTP-svaret 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"
    	    }
        ]
    }   
    

    Obs

    Se till att använda det faktiska numret från dina metadata i stället för <tjänstnumret> i URL:en.

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

    I det här exemplet använder du följande uttryck i Ange 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, när TripId är större än det värde som returneras av resten av uttrycket, körs utlösaren. Om TripId inte är större än värdet som returneras av resten av uttrycket sker ingen utlösare.

    I valet Välj samling 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. Längst upp i guiden väljer du Skapa anslutningsapp.

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 Börja 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 Utlösare 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 rutan Personflöde anger du russellwhyte för den person vars resor du ska undersöka och väljer sedan+ 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 väljer sedan Datum och tid.

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

  7. Från Datum och 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.

Verifiera och felsöka

Om du vill kontrollera att allt är korrekt konfigurerat väljer du Mina flöden och väljersedan Utlösare när en ny resa läggs till – Aktuellt tidsflöde> 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 Launchpad .

  2. I den namnlösa begäran väljer du POST i listrutan till vänster och anger sedan följande adress i rutan Ange URL för begäran:

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

    Obs

    Se till att använda det faktiska numret från dina metadata i stället för <tjänstnumret> i URL:en.

  3. Under POST-begäran väljer du fliken Brödtext och väljer sedan raw. I rullgardinsmenyn till höger om raw 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-webbplatsen.

    Skicka POST-meddelandet

    Svaret ska returneras med statusen . 201 Created

Nu när du öppnar Mina flöden och sedan väljerUtlösare när en ny resa läggs till – Aktuellt tidsflöde> ser du i körningshistoriken att en utlösare har inträffat.

En utlösare har körts

Obs

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

Ge feedback

Vi uppskattar feedback på problem med vår anslutningsplattform eller nya funktioner. Om du vill ge feedback går du till Skicka problem eller får hjälp med anslutningsprogram och väljer din feedbacktyp.