Creëer variabelen om waarden op te slaan en door te geven in Azure Logic Apps

Van toepassing op: Azure Logic Apps (Verbruik + Standard)

Om waarden op te slaan en door te geven in je workflow, maak je variabelen. Variabelen ondersteunen integer-, float-, Booleaanse, string-, array- en objectwaarden.

Met variabelen kunt u bijvoorbeeld het aantal keren bijhouden dat een lus wordt uitgevoerd. Om over een array te itereren of een array te controleren voor een specifiek item, gebruik je een variabele om het indexnummer van elk array-item te refereren.

Nadat je een variabele hebt aangemaakt, kies je een taak:

Vereisten

  • Een Azure-account en -abonnement. Ontvang een gratis Azure-account.

  • De workflow van de logica-app waarbij je de variabele wilt aanmaken, inclusief een trigger die de workflow start.

    Voordat je acties kunt toevoegen voor het aanmaken en werken met variabelen, moet je workflow beginnen met een trigger als eerste stap in je workflow.

    Deze gids gebruikt het Azure-portaal, maar je kunt Visual Studio Code en de bijbehorende Azure Logic Apps-extensie gebruiken om Logic App-workflows te bouwen:

Overwegingen bij het werken met variabelen

  • Standaard worden de iteraties van de For each-lus parallel uitgevoerd. Om ervoor te zorgen dat variabelen in een lus voorspelbare resultaten opleveren, voer je de lus sequentieel uit.

  • Variabelen bestaan en zijn alleen globaal binnen de workflow die ze aanmaakt.

  • Variabelen blijven alleen binnen die workflow behouden tussen iteraties van de lus.

  • Verwijs naar een variabele bij de naam, niet bij de naam van de actie die de variabele heeft gemaakt, wat de gebruikelijke manier is om de output van een actie te refereren.

Variabele initialiseren

Om een variabele te maken, voeg je de actie Initialiseren variabele toe aan je workflow. Je kunt variabelen alleen declareren op het globale workflowniveau, niet in scopes, conditions en loops.

  1. Open uw werkstroom voor logische apps in Azure Portal in de ontwerpfunctie.

  2. Voeg in de ontwerper de actie toe genaamd Initialiseer-variabele door de algemene stappen te volgen op basis van je workflowtype:

  3. Geef de volgende informatie op over uw variabele:

    Eigenschap Vereist Waarde Beschrijving
    Naam Ja < naam van variabele> De naam voor de variabele.
    Typ Ja < variabeletype> Het gegevenstype voor de variabele.
    Waarde Nee. < beginwaarde> De beginwaarde voor je variabele.

    Tip: Hoewel dit optioneel is, stelt u de waarde in als best practice, zodat u altijd de beginwaarde van uw variabele kent.

    Als u meerdere variabelen tegelijk wilt maken, selecteert u Een variabele toevoegen.

    Bijvoorbeeld, deze actie 'Initialiseer variabele' bevat de naam, het datatype en de beginwaarde van de variabele:

    Screenshot die het Azure-portaal en een logica-app-workflow toont met een actie genaamd Initialiseer-variabele.

  4. Ga door met het toevoegen van de gewenste acties voor uw scenario. Als u klaar bent, selecteert u Opslaan op de werkbalk in de ontwerper.

Als je overschakelt van de designer naar de codeweergave, laat het volgende voorbeeld zien hoe de actie Initialiseren variabele verschijnt in je workflowdefinitie, die in JavaScript Object Notation (JSON) formaat is:

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

In de volgende voorbeelden ziet u andere variabeletypen:

Booleaanse variabele

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

Float-variabele

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

Tekenreeksvariabele

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

Objectvariabele

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

Matrix met gehele getallen

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

Matrix met tekenreeksen

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

De waarde van een variabele ophalen

Om de inhoud van een variabele op te halen of te raadplegen, gebruik je de variables() functie in de workflowdesigner en de codeweergave-editor. Als u naar een variabele verwijst, gebruik dan de naam van de variabele als token, niet de naam van de actie, wat de gebruikelijke manier is om naar de uitvoer van een actie te verwijzen.

Met de volgende expressie worden bijvoorbeeld de items opgehaald uit de matrixvariabele die u in deze handleiding maakt met behulp van de variables() functie. De string() functie retourneert de inhoud van de variabele in tekenreeksindeling: "1, 2, 3, red".

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

Variabele verhogen

Als u een variabele wilt verhogen of verhogen met een specifieke constante waarde, voegt u de actie Variabele verhogen toe aan uw werkstroom. Deze actie werkt alleen met de variabelen integer en float.

  1. Voeg in de ontwerper de actie toe genaamd Increment variabele door de algemene stappen te volgen op basis van je workflowtype:

  2. Geef de volgende informatie op voor deze actie:

    Eigenschap Vereist Waarde Beschrijving
    Naam Ja < naam van variabele> De naam van de variabele die moet worden verhoogd.
    Waarde Nee. < verhogingswaarde> De waarde die gebruikt moet worden om de variabele te verhogen. De standaardwaarde is 1.

    Tip: Hoewel dit optioneel is, stelt u deze waarde in als best practice, zodat u altijd de specifieke waarde kent voor het verhogen van uw variabele.

    In het volgende voorbeeld ziet u de voorbeeldwaarden voor deze actie:

    Screenshot die het Azure-portaal en een logica-app-workflow toont met een actie genaamd Increment variable.

  3. Wanneer u klaar bent, sla uw workflow op. Selecteer in de werkbalk van de ontwerper Opslaan.

Als u van de ontwerper overschakelt naar codeweergave, ziet u in het volgende voorbeeld hoe de actie Variabele verhogen wordt weergegeven in uw werkstroomdefinitie, die de JSON-indeling gebruikt:

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

Voorbeeld: Tel e-mailbijlagen met een lus

In dit voorbeeld initialiseer je een teller op nul, verhoog je de teller één keer voor elke e-mailbijlage en geef je het totale aantal bijlagen terug.

  1. Maak in het Azure-portal uw Logic App-resource met een lege workflow. Voeg een trigger toe die controleert op nieuwe e-mails en eventuele bijlagen.

    Dit voorbeeld gebruikt de Office 365 Outlook-trigger genaamd Wanneer een nieuwe e-mail binnenkomt. Stel deze trigger zo in dat hij alleen activeert wanneer de e-mail bijlagen bevat. U kunt echter elke connector gebruiken die controleert op nieuwe e-mails met bijlagen, zoals de Outlook.com-connector.

  2. Selecteer in de trigger Ja voor de volgende eigenschappen om te controleren op bijlagen en deze bijlagen in je workflow te sturen:

    • Alleen met bijlage
    • Bijlagen opnemen

    Screenshot die het Azure portaal en de workflow van de logica-app toont met Office 365 Outlook trigger-eigenschappen geselecteerd voor het controleren en opnemen van bijlagen.

  3. Voeg de actie Initialiseer variabele toe om een gehele variabele genaamd Count te creëren die op 0 begint.

  4. Voeg in de ontwerper de actie toe genaamd For each door de algemene stappen te volgen op basis van je workflowtype:

  5. Volg in de loop deze stappen:

    1. Selecteer in het vak met de naam Selecteer een uitvoer uit vorige stappen om de invoeropties te bekijken.
    2. Selecteer het bliksempictogram om de lijst met dynamische inhoud weer te geven.
    3. Selecteer Bijlagen in de lijst onder Wanneer een nieuwe e-mail binnenkomt.

    Schermopname die het Azure-portaal en de workflow van de logische app toont met een For each-lus, een geopende lijst met dynamische inhoud en de geselecteerde uitvoer 'Bijlagen'.

    De eigenschap Bijlagen geeft een array met de e-mailbijlagen uit de uitvoer van de trigger door aan de lus, zodat uw werkstroom deze kan doorlopen.

  6. Selecteer Een actie toevoegen in de lus Voor elke.

  7. Voeg in de ontwerper de actie toe genaamd Increment variabele door de algemene stappen te volgen op basis van je workflowtype:

    Notitie

    Zorg ervoor dat de actie Variabele verhogen binnen de lus staat. Als de actie buiten de lus wordt weergegeven, sleept u de actie naar de lus.

  8. Selecteer in de actie Variabele verhogen de variabele Tellen in de lijst Naam. Stel de eigenschap Waarde in op 1.

    Schermafbeelding van het Azure-portal en de werkstroom van een logische app met een geselecteerde variabele genaamd Count.

  9. Voeg onder de lus een actie toe die u het aantal bijlagen toestuurt. Neem in uw actie de waarde van de variabele Aantal op, bijvoorbeeld:

    Screenshot die het Azure-portaal en de workflow van de logica-app toont met een actie die de resultaten verzendt.

  10. Wanneer u klaar bent, sla uw workflow op. Selecteer in de werkbalk van de ontwerper Opslaan.

Uw werkstroom testen

  1. Als u uw workflow handmatig wilt uitvoeren, selecteert u op de werkbalk van de ontwerper Uitvoeren>Uitvoeren om uw workflow handmatig uit te voeren.

  2. Verzend een e-mailbericht met een of meer bijlagen naar het e-mailaccount dat u in dit voorbeeld hebt gebruikt.

    Met deze stap activeert u de workflowtrigger, die een workflowinstantie maakt en uitvoert. Als gevolg hiervan stuurt de werkstroom u een bericht of e-mailbericht met het aantal bijlagen in het e-mailbericht dat u hebt verzonden.

Als u van de ontwerper overschakelt naar de codeweergave, laat het volgende voorbeeld zien hoe de lus Voor elke samen met de actie Variabele verhogen wordt weergegeven in uw werkstroomdefinitie, die de JSON-indeling heeft:

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

Variabele verlagen

Als u een variabele wilt verlagen of verlagen met een specifieke constante waarde, volgt u de stappen voor het verhogen van een variabele , behalve dat u in plaats daarvan de actie Decrement-variabele toevoegt aan uw werkstroom. Deze actie werkt alleen met de variabelen integer en float.

In de volgende tabel worden de gegevens voor de actie Decrement-variabele beschreven:

Eigenschap Vereist Waarde Beschrijving
Naam Ja < naam van variabele> De naam van de variabele die wordt verlaagd
Waarde Nee. < verlagingswaarde> De waarde voor het verlagen van de variabele. De standaardwaarde is één.

Tip: Hoewel optioneel is het instellen van deze waarde een goede gewoonte, zodat u altijd de specifieke waarde voor het verlagen van uw variabele weet.

Als u van de ontwerpweergave overschakelt naar de codeweergave, ziet u in het volgende voorbeeld hoe de actie Variabele verlagen wordt weergegeven in uw werkstroomdefinitie, die de JSON-indeling gebruikt:

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

Variabele instellen

Als u een andere waarde wilt toewijzen aan een bestaande variabele, volgt u de stappen voor het verhogen van een variabele met de volgende uitzonderingen:

  1. Zoek en selecteer de actie Variabele instellen in plaats daarvan.

  2. Geef de volgende informatie op voor deze actie:

    Eigenschap Vereist Waarde Beschrijving
    Naam Ja < naam van variabele> De naam van de variabele die moet veranderen.
    Waarde Ja < nieuwe waarde> De waarde die aan de variabele wilt toewijzen. Zorg ervoor dat zowel de variabele als de nieuwe waarde hetzelfde datatype hebben. De waarde is vereist omdat deze actie geen standaardwaarde heeft.

    Notitie

    Tenzij u variabelen wilt verhogen of verlagen, kan het wijzigen van variabelen in lussen onverwachte resultaten opleveren, omdat lussen parallel of gelijktijdig worden uitgevoerd. In deze gevallen probeert u uw lus zo in te stellen dat deze sequentieel wordt uitgevoerd. Als u bijvoorbeeld naar de variabele waarde in de lus wilt verwijzen en dezelfde waarde wilt verwachten aan het begin en einde van die lusexemplaren, volgt u deze stappen om te wijzigen hoe de lus wordt uitgevoerd:

    1. Selecteer uw lus om het informatievenster weer te geven en selecteer vervolgens Instellingen.

    2. Wijzig in de sectie Algemeen onder Gelijktijdigheidsbeheer de instelling van Uit in Aan.

    3. Sleep de schuifregelaar voor Mate van parallellisme naar 1.

Als je overschakelt van de designer naar de codeweergave, laat het volgende voorbeeld zien hoe de actie Set variabele verschijnt in je workflowdefinitie, die in JSON-formaat is, en de huidige waarde van de Count variabele verandert in een andere waarde:

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

Toevoegen aan variabele

Voor variabelen waarin tekenreeksen of matrixen worden opgeslagen, kunt u de waarde van een variabele invoegen of toevoegen als het laatste item in die tekenreeksen of matrixen. Volg de stappen voor het verhogen van een variabele met de volgende uitzonderingen:

  1. Zoek en selecteer een van deze acties op basis van of uw variabele een tekenreeks of een matrix is:

    • Toevoegen aan tekenreeks-variabele
    • Toevoegen aan matrix-variabele
  2. Geef de waarde die u als laatste item aan de string of array wilt toevoegen.

    Eigenschap Vereist Waarde Beschrijving
    Naam Ja < naam van variabele> De naam van de variabele die moet veranderen.
    Waarde Ja < waarde toevoegen> De waarde die je wilt toevoegen, die elk type kan hebben.

Als u van de ontwerpfunctie overschakelt naar de codeweergave, ziet u in het volgende voorbeeld hoe de actie Toevoegen aan matrixvariabele wordt weergegeven in de werkstroomdefinitie, die de JSON-indeling heeft.

In het volgende voorbeeld wordt een matrixvariabele gemaakt en wordt een andere waarde toegevoegd als het laatste item in de matrix. Uw resultaat is een bijgewerkte variabele die deze matrix bevat: [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" ]
      }
   }
},