Skapa variabler för att lagra och skicka värden i Azure Logic Apps

Gäller för: Azure Logic Apps (Förbrukning + Standard)

För att lagra och skicka värden i ditt arbetsflöde, skapa variabler. Variabler har stöd för heltalsvärden, flyttalsvärden, booleska värden, strängvärden, arrayer och objektvärden.

Variabler kan till exempel hjälpa dig att spåra antalet gånger som en loop körs. För att iterera över en array eller kontrollera en array för ett specifikt element, använd en variabel för att referera indexnumret för varje arrayobjekt.

Efter att du skapat en variabel, välj en uppgift:

Förutsättningar

  • Ett Azure-konto och prenumeration. Skaffa ett kostnadsfritt Azure-konto.

  • Logikappens arbetsflöde där du vill skapa variabeln, inklusive en utlösare som startar arbetsflödet.

    Innan du kan lägga till åtgärder för att skapa och arbeta med variabler måste ditt arbetsflöde börja med en trigger som första steg i ditt arbetsflöde.

    Den här guiden använder Azure-portalen, men du kan använda Visual Studio Code och motsvarande Azure Logic Apps-tillägg för att bygga logikapp-arbetsflöden:

Överväganden för att arbeta med variabler

  • Som standard körs Iterationerna parallellt för varje loop. För att säkerställa att variabler i en loop ger förutsägbara resultat, kör loopen sekventiellt.

  • Variabler existerar och är globala endast inom arbetsflödet som skapar dem.

  • Variabler kvarstår över loop-iterationer endast inom det arbetsflödet.

  • Referera till en variabel med dess namn, inte namnet på handlingen som skapade variabeln, vilket är det vanliga sättet att referera till en handlings utdata.

Initiera variabel

För att skapa en variabel, lägg till åtgärden Initialisera variabel i ditt arbetsflöde. Du kan deklarera variabler endast på arbetsflödets globala nivå, inte i scopes, conditions och loopar.

  1. Öppna arbetsflödet för logikappen i designern i Azure-portalen.

  2. I Designer lägger du till åtgärden Initialize variable genom att följa de allmänna stegen utifrån arbetsflödestypen:

  3. Ange följande information om din variabel:

    Fastighet Obligatoriskt Värde Beskrivning
    Namn Ja < variabelnamn> Namnet på variabeln.
    Typ Ja < variabeltyp> Datatypen för variabeln.
    Värde Nej < startvärde> Startvärdet för din variabel.

    Tips: Även om det är valfritt anger du värdet som bästa praxis så att du alltid vet din variabels startvärde.

    Om du vill skapa fler än en variabel i taget väljer du Lägg till en variabel.

    Till exempel innehåller denna åtgärd Initialisera variabel variabelns namn, datatyp och initialvärde:

    Skärmdump som visar Azure-portalen och ett logikapp-arbetsflöde med en åtgärd som heter Initialisera-variabeln.

  4. Fortsätt att lägga till de åtgärder som du vill ha för ditt scenario. När du är klar väljer du Spara i designerverktygsfältet.

Om du byter från designern till kodvyn visar följande exempel hur åtgärden Initialisera variabel visas i din arbetsflödesdefinition, som är i JavaScript Object Notation (JSON)-format:

"actions": {
   "Initialize_variable": {
      "type": "InitializeVariable",
      "inputs": {
         "variables": [ 
            {
               "name": "Count",
               "type": "Integer",
               "value": 0
            }
         ]
      },
      "runAfter": {}
   }
}

I följande exempel visas andra variabeltyper:

Boolesk variabel

"actions": {
   "Initialize_variable": {
      "type": "InitializeVariable",
      "inputs": {
         "variables": [
            {
               "name": "myBooleanVariable",
               "type": "boolean",
               "value": false
            }
         ]
      },
      "runAfter": {}
   }
},

Flyttalvariabel

"actions": {
   "Initialize_variable": {
      "type": "InitializeVariable",
      "inputs": {
         "variables": [
            {
               "name": "myFloatVariable",
               "type": "float",
               "value": 1.99999
            }
         ]
      },
      "runAfter": {}
   }
},

Strängvariabel

"actions": {
   "Initialize_variable": {
      "type": "InitializeVariable",
      "inputs": {
         "variables": [
            {
               "name": "myStringVariable",
               "type": "string",
               "value": "lorem ipsum"
            }
         ]
      },
      "runAfter": {}
   }
},

Objektvariabel

"actions": {
   "Initialize_variable": {
      "type": "InitializeVariable",
      "inputs": {
         "variables": [
            {
               "name": "MyObjectVariable",
               "type": "object",
               "value": {
                  "ProductItem": {
                     "Name": "myProductName",
                     "ProductID": "000000"
                  }
               }
            }
         ]
      },
      "runAfter": {}
   }
},

Matris med heltal

"actions": {
   "Initialize_variable": {
      "type": "InitializeVariable",
      "inputs": {
         "variables": [
            {
               "name": "myArrayVariable",
               "type": "array",
               "value": [1, 2, 3]
            }
         ]
      },
      "runAfter": {}
   }
},

Matris med strängar

"actions": {
   "Initialize_variable": {
      "type": "InitializeVariable",
      "inputs": {
         "variables": [
            {
               "name": "myArrayVariable",
               "type": "array",
               "value": ["red", "orange", "yellow"]
            }
         ]
      },
      "runAfter": {}
   }
},

Hämta en variabels värde

För att hämta eller referera till innehållet i en variabel, använd variables() funktionen i arbetsflödesdesignern och kodvyeditorn. När du refererar till en variabel använder du variabelns namn som token, inte åtgärdens namn, vilket är det vanliga sättet att referera till en åtgärds utdata.

Följande uttryck hämtar till exempel objekten från matrisvariabeln som du skapar i den här guiden med hjälp variables() av funktionen. Funktionen string() returnerar variabelns innehåll i strängformat: "1, 2, 3, red".

@{string(variables('myArrayVariable'))}

Öka variabel

Om du vill öka eller öka en variabel med ett specifikt konstant värde lägger du till åtgärden Öka variabel i arbetsflödet. Den här åtgärden fungerar endast med heltals- och flyttalsvariabler.

  1. I designern lägger du till åtgärden Increment variabel genom att följa de allmänna stegen baserat på din arbetsflödestyp:

  2. Ange följande information för den här åtgärden:

    Fastighet Obligatoriskt Värde Beskrivning
    Namn Ja < variabelnamn> Namnet på variabeln som ska öka.
    Värde Nej < öka värdet> Värdet som ska användas för att öka variabeln. Standardvärdet är 1.

    Tips: Även om det är valfritt anger du det här värdet som bästa praxis så att du alltid vet det specifika värdet för att öka variabeln.

    I följande exempel visas exempelvärdena för den här åtgärden:

    Skärmdump som visar Azure-portalen och ett logikapp-arbetsflöde med en åtgärd som heter Increment variable.

  3. Spara arbetsflödet när du är klar. I verktygsfältet för designern väljer du Spara.

Om du växlar från designern till kodvyn visar följande exempel hur åtgärden Öka variabel visas i arbetsflödesdefinitionen, som är i JSON-format:

"actions": {
   "Increment_variable": {
      "type": "IncrementVariable",
      "inputs": {
         "name": "Count",
         "value": 1
      },
      "runAfter": {}
   }
},

Exempel: Räkna e-postbilagor med en loop

I detta exempel initierar du en räknare vid noll, ökar räknaren en gång för varje e-postbilaga och returnerar det totala antalet bilagor.

  1. I Azure-portalen skapar du din logikappresurs med ett tomt arbetsflöde. Lägg till en utlösare som söker efter ny e-post och eventuella bifogade filer.

    Detta exempel använder den Office 365 Outlook trigger som heter När ett nytt mejl anländer. Ställ in denna trigger så att den bara aktiveras när mejlet har bilagor. Du kan dock använda vilket anslutningsprogram som helst som söker efter nya e-postmeddelanden med bifogade filer, till exempel Outlook.com anslutaren.

  2. I triggern, välj Ja för följande egenskaper för att kontrollera bilagor och skicka dessa bilagor till ditt arbetsflöde:

    • Endast med bifogad fil
    • Inkludera bifogade filer

    Skärmdump som visar Azure portalen och logikappens arbetsflöde med Office 365 Outlook triggeregenskaper valda för att kontrollera och inkludera bilagor.

  3. Lägg till åtgärden Initialisera variabel för att skapa en heltalsvariabel med namnet Count som börjar på 0.

  4. I designern, lägg till åtgärden som heter For each genom att följa de allmänna stegen baserat på din arbetsflödestyp:

  5. I slingan, följ dessa steg:

    1. Välj i rutan som heter Välj en utgång från föregående steg för att se inmatningsalternativen.
    2. Välj blixtikonen för att visa listan med dynamiskt innehåll.
    3. I listan under När ett nytt e-postmeddelande kommer väljer du Bifogade filer.

    Skärmbild som visar Azure-portalen och logikappens arbetsflöde med en For each-loop, en öppnad lista med dynamiskt innehåll och markerade utdata för Attachments.

    Egenskapen Attachments skickar en matris som innehåller e-postbilagor från utlösarens utdata till loopen för arbetsflödet att iterera över.

  6. I loopen För varje väljer du Lägg till en åtgärd.

  7. I designern lägger du till åtgärden Increment variabel genom att följa de allmänna stegen baserat på din arbetsflödestyp:

    Kommentar

    Kontrollera att åtgärden Öka variabel visas i loopen. Om åtgärden visas utanför loopen drar du åtgärden till loopen.

  8. I åtgärden Ökningsvariabel från listan Namn, välj variabeln Antal. Ange egenskapen Värde till 1.

    Skärmbild av arbetsflödet för Azure-portalen och logikappen med en vald variabel med namnet Count.

  9. Under loopen lägger du till en åtgärd som skickar antalet bilagor. Inkludera värdet från variabeln Count i din åtgärd, till exempel:

    Skärmdump som visar Azure-portalen och logikappens arbetsflöde med en åtgärd som skickar resultaten.

  10. Spara arbetsflödet när du är klar. I verktygsfältet för designern väljer du Spara.

Testa arbetsflödet

  1. Om du vill utlösa arbetsflödet manuellt går du till verktygsfältet designer och väljer Kör>kör för att köra arbetsflödet manuellt.

  2. Skicka ett e-postmeddelande med en eller flera bifogade filer till det e-postkonto som du använde i det här exemplet.

    Det här steget utlöser arbetsflödesutlösaren, som skapar och kör en arbetsflödesinstans. Därför skickar arbetsflödet ett meddelande eller ett e-postmeddelande som visar antalet bifogade filer i e-postmeddelandet som du skickade.

Om du växlar från designern till kodvyn visar följande exempel hur för varje loop visas tillsammans med åtgärden Öka variabel i arbetsflödesdefinitionen, som är i JSON-format:

"actions": {
   "For_each": {
      "type": "Foreach",
      "actions": {
         "Increment_variable": {
           "type": "IncrementVariable",
            "inputs": {
               "name": "Count",
               "value": 1
            },
            "runAfter": {}
         }
      },
      "foreach": "@triggerBody()?['Attachments']",
      "runAfter": {
         "Initialize_variable": [ "Succeeded" ]
      }
   }
},

Minskningsvariabel

Om du vill minska eller minska en variabel med ett specifikt konstant värde följer du stegen för att öka en variabel , förutom att du lägger till åtgärden Decrement variable i arbetsflödet i stället. Den här åtgärden fungerar endast med heltals- och flyttalsvariabler.

Följande tabell beskriver informationen om Decrement variable-åtgärden:

Fastighet Obligatoriskt Värde Beskrivning
Namn Ja < variabelnamn> Namnet på variabeln som ska dekrementeras
Värde Nej < minskningsvärde> Värdet för att minska variabeln. Standardvärdet är ett.

Tips: Även om det är valfritt, ställ in detta värde som en bästa praxis så känna till det specifika värdet för att minska din variabel.

Om du växlar från designern till kodvyn visar följande exempel hur åtgärden decrementvariabel visas i arbetsflödesdefinitionen, som är i JSON-format:

"actions": {
   "Decrement_variable": {
      "type": "DecrementVariable",
      "inputs": {
         "name": "Count",
         "value": 1
      },
      "runAfter": {}
   }
},

Ange variabel

Om du vill tilldela ett annat värde till en befintlig variabel följer du stegen för att öka en variabel med följande undantag:

  1. Hitta och välj åtgärden ange variabel istället.

  2. Ange följande information för den här åtgärden:

    Fastighet Obligatoriskt Värde Beskrivning
    Namn Ja < variabelnamn> Namnet på variabeln som ska ändras.
    Värde Ja < nytt värde> Värdet du vill tilldela variabeln. Se till att både variabeln och det nya värdet har samma datatyp. Värdet krävs eftersom den här åtgärden inte har något standardvärde.

    Kommentar

    Om du inte ökar eller minskar variabler kan ändrade variabler i loopar skapa oväntade resultat eftersom loopar körs parallellt eller samtidigt som standard. I dessa fall kan du prova att ange att loopen ska köras sekventiellt. Om du till exempel vill referera till variabelvärdet i loopen och förvänta dig samma värde i början och slutet av loopinstansen följer du dessa steg för att ändra hur loopen körs:

    1. Välj din loop för att visa informationsfönstret och välj sedan Inställningar.

    2. I avsnittet Allmänt under Samtidighetskontroll ändrar du inställningen från Av till På.

    3. Dra skjutreglaget Grad av parallellitet till 1.

Om du byter från designern till kodvyn visar följande exempel hur åtgärden Set-variabel visas i din arbetsflödesdefinition, som är i JSON-format, och ändrar Count variabelns aktuella värde till ett annat:

"actions": {
   "Initialize_variable": {
      "type": "InitializeVariable",
      "inputs": {
         "variables": [ {
               "name": "Count",
               "type": "Integer",
               "value": 0
          } ]
      },
      "runAfter": {}
   },
   "Set_variable": {
      "type": "SetVariable",
      "inputs": {
         "name": "Count",
         "value": 100
      },
      "runAfter": {
         "Initialize_variable": [ "Succeeded" ]
      }
   }
},

Lägga till variabel

För variabler som lagrar strängar eller matriser kan du infoga eller lägga till en variabels värde som det sista objektet i de strängarna eller matriserna. Följ stegen för att öka en variabel med följande undantag:

  1. Leta upp och välj en av dessa åtgärder baserat på om din variabel är en sträng eller en matris:

    • Lägga till strängvariabel
    • Lägga till matrisvariabel
  2. Ange värdet som ska läggas till som det sista objektet i strängen eller matrisen.

    Fastighet Obligatoriskt Värde Beskrivning
    Namn Ja < variabelnamn> Namnet på variabeln som ska ändras.
    Värde Ja < lägga till värde> Värdet du vill lägga till, vilket kan ha vilken typ som helst.

Om du växlar från designern till kodvyn visar följande exempel hur åtgärden Lägg till i matrisvariabel visas i arbetsflödesdefinitionen, som är i JSON-format.

I följande exempel skapas en matrisvariabel och ett annat värde läggs till som det sista objektet i matrisen. Resultatet är en uppdaterad variabel som innehåller den här matrisen: [1,2,3,"red"].

"actions": {
   "Initialize_variable": {
      "type": "InitializeVariable",
      "inputs": {
         "variables": [ {
            "name": "myArrayVariable",
            "type": "Array",
            "value": [1, 2, 3]
         } ]
      },
      "runAfter": {}
   },
   "Append_to_array_variable": {
      "type": "AppendToArrayVariable",
      "inputs": {
         "name": "myArrayVariable",
         "value": "red"
      },
      "runAfter": {
        "Initialize_variable": [ "Succeeded" ]
      }
   }
},