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

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

Den här instruktionsguiden visar hur du skapar och arbetar med variabler så att du kan lagra och använda värden i logikappens arbetsflöde. Variabler kan till exempel hjälpa dig att spåra antalet gånger som en loop körs. Om du vill iterera över en matris eller kontrollera en matris för ett visst objekt kan du använda en variabel för att referera till indexnumret för varje matrisobjekt.

Du kan skapa variabler för datatyper som heltal, flyttal, booleskt värde, sträng, matris och objekt. När du har skapat en variabel kan du utföra andra uppgifter, till exempel:

  • Hämta eller referera till variabelns värde.
  • Öka eller minska variabeln med ett konstant värde, även kallat inkrement och minskning.
  • Tilldela variabeln ett annat värde.
  • Infoga eller lägg till variabelns värde som det sista objektet i en sträng eller matris.

Variabler finns och är endast globala i arbetsflödesinstansen som skapar dem. Dessutom finns de kvar i alla loop-iterationer i en arbetsflödesinstans. 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.

Viktigt

Som standard körs iterationerna i en For each-loop parallellt. När du använder variabler i loopar kör du loopen sekventiellt så att variabler returnerar förutsägbara resultat.

Förutsättningar

  • Ett Azure-konto och prenumeration. Om du inte har en prenumeration registrerar du dig för ett kostnadsfritt Azure-konto.

  • Ett logikapparbetsflöde där du vill skapa variabeln och 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 arbetsflödet börja med en utlösare som det första steget i arbetsflödet. Mer information finns i Skapa ett arbetsflöde med en utlösare eller åtgärd.

Följande steg använder Azure Portal, men med rätt Azure Logic Apps-tillägg kan du också använda följande verktyg för att skapa arbetsflöden för logikappar:

Baserat på om du har ett arbetsflöde för förbrukning eller standard följer du motsvarande steg:

Initiera variabel

Du kan skapa en variabel och deklarera dess datatyp och initialvärde med hjälp av en enda åtgärd i arbetsflödet. Du kan bara deklarera variabler på global nivå, inte inom omfång, villkor och loopar.

  1. Öppna arbetsflödet i designern i Azure Portal.

  2. I designern följer du de här allmänna stegen för att lägga till en åtgärd med namnet Initiera variabel.

  3. Ange följande information om variabeln:

    Egenskap Krävs Värde Beskrivning
    Namn Yes <variabelnamn> Namnet på variabeln som ska ökas
    Typ Yes <variabeltyp> Datatypen för variabeln
    Värde No <startvärde> Det inledande värdet för variabeln

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

    I följande exempel visas de inledande värdena för den här exempelvariabeln:

    Skärmbild som visar Azure Portal, konsumentarbetsflöde och åtgärd med namnet Initiera variabel.

  4. Fortsätt nu 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 designerns verktygsfält.

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

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

Anteckning

Åtgärden Initiera variabel har ett "variables" objekt som är strukturerat som en matris, men åtgärden kan bara skapa en variabel i taget. Varje ny variabel kräver en enskild åtgärd för att initiera variabeln .

I följande exempel visas andra variabeltyper:

Boolesk variabel

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

Flyttalsvariabel

"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

Om du vill hämta eller referera till en variabels innehåll kan du använda funktionen variables() i arbetsflödesdesignern och kodvyredigeraren. 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 skapas 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'))}

Inkrementsvariabel

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

  1. I arbetsflödesdesignern följer du de här allmänna stegen för att lägga till en åtgärd med namnet Inkrementsvariabel.

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

    Egenskap Krävs Värde Beskrivning
    Namn Yes <variabelnamn> Namnet på variabeln som ska ökas
    Värde No <increment-value> Det värde som används 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ärmbild som visar Azure Portal, arbetsflöde för förbrukning och åtgärd med namnet Inkrementsvariabel.

  3. Spara arbetsflödet när du är klar. I designerverktygsfältet 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: Skapa loopräknare

Variabler används ofta för att räkna antalet gånger som en loop körs. Det här exemplet visar hur du kan skapa och använda variabler för den här uppgiften genom att skapa en loop som räknar bifogade filer i ett e-postmeddelande.

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

    I det här exemplet används Office 365 Outlook-utlösare för När ett nytt e-postmeddelande kommer. Du kan konfigurera den här utlösaren så att den bara utlöses när e-postmeddelandet har bifogade filer. Du kan dock använda alla anslutningsappar som söker efter nya e-postmeddelanden med bifogade filer, till exempel Outlook.com-anslutningsappen.

  2. I utlösaren, för att söka efter bifogade filer och skicka dessa bifogade filer till arbetsflödet, väljer du Ja för följande egenskaper:

    • Endast med bifogad fil
    • Inkludera bifogade filer

    Skärmbild som visar Azure Portal, arbetsflöde för förbrukning och egenskaper som valts för att söka efter och inkludera bifogade filer.

  3. Lägg till åtgärden Initiera variabel för att skapa en heltalsvariabel med namnet Count som har ett startvärde inställt på 0.

  4. Om du vill iterera genom varje bifogad fil följer du de här allmänna stegen för att lägga till en åtgärd som kallas för en För varje loop.

  5. I loopen väljer du inuti rutan Med namnet Välj utdata från föregående steg. När listan med dynamiskt innehåll visas väljer du Bifogade filer under När ett nytt e-postmeddelande tas emot.

    Skärmbild som visar arbetsflödet Förbrukning, För varje loop öppnade du listan med dynamiskt innehåll och markerade utdata för bifogade filer.

    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 för varje loop väljer du Lägg till en åtgärd.

  7. Följ de här allmänna stegen för att lägga till en åtgärd som kallas för en inkrementsvariabel i loopen.

    Anteckning

    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 Öka variabel väljer du variabeln Antal i listan Namn. Ange egenskapen Value till 1.

    Skärmbild som visar arbetsflödet Förbrukning med den valda variabeln Count.

  9. Under loopen lägger du till alla åtgärder som skickar dig antalet bifogade filer. I din åtgärd tar du med värdet från variabeln Antal , till exempel:

    Skärmbild som visar arbetsflödet Förbrukning och en åtgärd som skickar resultat.

  10. Spara arbetsflödet när du är klar. I designerverktygsfältet väljer du Spara.

Testa arbetsflödet

  1. Om du vill utlösa arbetsflödet manuellt följer du motsvarande steg:

    Arbetsflöde för förbrukning

    I verktygsfältet för designerarbetsflödet väljer du Kör utlösarkörning> för att köra arbetsflödet manuellt.

    Standardarbetsflöde

    På arbetsflödesmenyn väljer du Översikt. Välj Kör>kör i verktygsfältet.

  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 visst 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 bara med heltals- och flyttalvariabler.

I följande tabell beskrivs informationen för åtgärden decrementvariabel :

Egenskap Krävs Värde Beskrivning
Namn Yes <variabelnamn> Namnet på variabeln som ska minskas
Värde No <increment-value> Värdet för att minska variabeln. Standardvärdet är ett.

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 minska din variabel.

Om du växlar från designern till kodvyn visar följande exempel hur åtgärden Decrement-variabel 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. Leta upp och välj åtgärden Ange variabel i stället.

  2. Ange variabelnamnet och värdet som du vill tilldela. Både det nya värdet och variabeln måste ha samma datatyp. Värdet krävs eftersom den här åtgärden inte har något standardvärde.

I följande tabell beskrivs informationen för åtgärden Ange variabel :

Egenskap Krävs Värde Beskrivning
Namn Yes <variabelnamn> Namnet på variabeln som ska ändras
Värde Yes <nytt värde> Det värde som du vill tilldela variabeln. Båda måste ha samma datatyp.

Anteckning

Såvida du inte inkrementerar eller minskar variabler kan ändringar av 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. Leta upp och öppna loopinställningarna i loopen.

  2. Följ motsvarande steg baserat på din arbetsflödestyp:

    • Förbrukning: Ändra inställningen Samtidighetskontroll från Av till .

    • Standard: Ändra inställningen Samtidighetskontroll från Av till under Allmänt.

  3. Dra skjutreglaget Grad av parallellitet till 1.

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

I följande exempel ändras Count variabelns aktuella värde till ett annat värde:

"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ägg till i 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 dessa strängar eller matriser. Du kan följa 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 variabeln är en sträng eller en matris:

    • Lägg till i strängvariabel
    • Lägg till i matrisvariabel
  2. Ange värdet som ska läggas till som det sista objektet i strängen eller matrisen. Det här värdet är obligatoriskt.

I följande tabell beskrivs informationen för åtgärderna Lägg till i... :

Egenskap Krävs Värde Beskrivning
Namn Yes <variabelnamn> Namnet på variabeln som ska ändras
Värde Yes <lägg till-värde> Det värde som du vill lägga till, som 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 matrisvariabeln 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" ]
      }
   }
},

Nästa steg