Dela via


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, boolesk, sträng, matris och objekt. När du har skapat en variabel kan du utföra andra uppgifter, som:

  • Hämta eller referera till variabelns värde.
  • Öka eller minska variabeln med ett konstant värde, även kallat ökning och minskning.
  • Tilldela ett annat värde till variabeln.
  • Infoga eller lägga 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 För varje loop parallellt. När du använder variabler i loopar kör du loopen sekventiellt så att variablerna returnerar förutsägbara resultat.

Förutsättningar

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:

Vissa steg skiljer sig något beroende på om du har ett förbruknings- eller standardarbetsflöde.

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 endast ange variabler på global nivå, inte inom omfattningar, villkor och loopar.

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

  2. I designern följer du de här allmänna stegen för arbetsflöden för förbrukning eller standard för att lägga till en åtgärd med namnet Initiera variabler.

  3. Ange följande information om din variabel:

    Fastighet Obligatoriskt Värde Beskrivning
    Namn Ja < variabelnamn> Namn på variabel att initiera
    Typ Ja < variabeltyp> Datatypen för variabeln
    Värde Nej < startvärde> Det initiala 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.

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

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

    Skärmbild som visar Azure-portalen och ett logikapparbetsflöde med en åtgärd med namnet Initiera variabler.

  4. Fortsätt att lägga till de åtgärder som du vill ha för ditt scenario. När du är klar klickar du på tabelldesignern Spara på kommandofältet.

Om du växlar från designern till kodvyn visar följande exempel hur åtgärden Initiera variabler 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": {}
   }
}

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

Om du vill hämta eller referera till en variabels innehåll kan du använda variables() funktionen i arbetsflödesdesignern och kodvisningsredigeraren. 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 följer du de här allmänna stegen för förbruknings - eller standardarbetsflöden för att lägga till en åtgärd med namnet Inkrementsvariabel.

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

    Fastighet Obligatoriskt Värde Beskrivning
    Namn Ja < variabelnamn> Namn på variabel att öka
    Värde Nej < öka värde> Värdet 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-portalen och ett logikapparbetsflöde med en åtgärd med namnet Inkrementsvariabel.

  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: 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 de bifogade filerna i ett e-postmeddelande.

  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.

    I det här exemplet används Office 365 Outlook-utlösaren När ett nytt e-postmeddelande kommer. Du kan endast ställa in den här utlösaren så att den aktiveras om e-postmeddelandet innehåller bifogade filer. 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 utlösaren väljer du Ja för följande egenskaper för att söka efter bifogade filer och skicka de bifogade filerna till arbetsflödet:

    • Endast med bifogad fil
    • Inkludera bifogade filer

    Skärmbild som visar arbetsflödet för Azure-portalen och logikappen med office 365 Outlook-utlösaregenskaper valda för att söka efter och inkludera bifogade filer.

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

  4. I designern följer du de här allmänna stegen för arbetsflöden för förbrukning eller standard för att lägga till en åtgärd som kallas för för varje loop.

  5. I loopen väljer du i rutan Med namnet Välj utdata från Föregående steg för att visa indataalternativen. Välj blixtikonen för att visa listan med dynamiskt innehåll. I listan under När ett nytt e-postmeddelande kommer väljer du Bifogade filer.

    Skärmbild som visar arbetsflödet för Azure-portalen och logikappen med en För varje loop, öppnad lista med dynamiskt innehåll och valda 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 loopen För varje väljer du Lägg till en åtgärd.

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

    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. Lägg till alla åtgärder som skickar antalet bilagor under loop. Ta med värdet från din åtgärd Antal till exempel:

    Skärmbild som visar arbetsflödet för Azure-portalen och logikappen med en åtgärd som skickar resultat.

  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.

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

Fastighet Obligatoriskt Värde Beskrivning
Namn Ja < variabelnamn> Namn på variabel att minska
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 det variabelnamn och värde 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 :

Fastighet Obligatoriskt Värde Beskrivning
Namn Ja < variabelnamn> Namn på variabel att ändra
Värde Ja < nytt värde> Värdet du vill tilldela variabeln. Båda måste ha samma datatyp.

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 .

  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ä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. 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 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. Detta värde krävs.

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

Fastighet Obligatoriskt Värde Beskrivning
Namn Ja < variabelnamn> Namn på variabel att ändra
Värde Ja < lägga till värde> Värdet du vill lägga till, vilket kan ha valfri typ

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" ]
      }
   }
},