Crea variabili per memorizzare e passare valori in App per la logica di Azure

Si applica a: App per la logica di Azure (A consumo e Standard)

Per memorizzare e passare valori nel tuo flusso di lavoro, crea variabili. Le variabili supportano valori interi, float, booleani, stringhe, array e oggetti.

Ad esempio, le variabili consentono di tenere traccia del numero di volte in cui un ciclo viene eseguito. Per iterare su un array o controllare un elemento specifico, usa una variabile per fare riferimento al numero di indice di ogni elemento dell'array.

Dopo aver creato una variabile, scegli un compito:

Prerequisiti

  • Un account e una sottoscrizione di Azure. Ottenere un account Azure gratuito.

  • Il flusso di lavoro di Logic App dove vuoi creare la variabile, incluso un trigger che avvia il flusso di lavoro.

    Prima di poter aggiungere azioni per creare e lavorare con variabili, il tuo flusso di lavoro deve iniziare con un trigger come primo passo.

    Questa guida utilizza il portale Azure, ma puoi utilizzare Visual Studio Code e la corrispondente estensione App per la logica di Azure per costruire flussi di lavoro di Logic App:

Considerazioni per lavorare con le variabili

  • Per impostazione predefinita, per ogni ciclo le iterazioni vengono eseguite in parallelo. Per assicurarti che le variabili in un ciclo producano risultati prevedibili, esegui il ciclo in modo sequenziale.

  • Le variabili esistono e sono globali solo all'interno del flusso di lavoro che le crea.

  • Le variabili persistono tra iterazioni di ciclo solo all'interno di quel flusso di lavoro.

  • Fai riferimento a una variabile con il suo nome, non con il nome dell'azione che ha creato la variabile, che è il modo usuale per fare riferimento agli output di un'azione.

Inizializzare una variabile

Per creare una variabile, aggiungi l'azione Inizializza la variabile al tuo flusso di lavoro. Puoi dichiarare variabili solo a livello globale del flusso di lavoro, non in ambiti, condizioni e cicli.

  1. Nel portale di Azure, aprire il flusso di lavoro dell'app per la logica nella finestra di progettazione.

  2. Nel designer, aggiungi l'azione chiamata variabile Inizializza seguendo i passaggi generali basati sul tipo di workflow:

  3. Specificare le informazioni seguenti sulla variabile:

    Proprietà Obbligatoria Valore Descrizione
    Nome < Nome variabile> Nome della variabile.
    Tipo < tipo variabile> Tipo di dati per la variabile.
    Valore NO < valore iniziale> Il valore iniziale per la tua variabile.

    Suggerimento: anche se è facoltativo, impostare il valore come procedura consigliata in modo da conoscere sempre il valore iniziale della variabile.

    Per creare più variabili alla volta, selezionare Aggiungi variabile.

    Ad esempio, questa azione Inizializza la variabile contiene il nome della variabile, il tipo di dato e il valore iniziale:

    Schermata che mostra il portale di Azure e un flusso di lavoro di un'app per la logica con un'azione denominata Inizializza variabile.

  4. Continuare ad aggiungere le azioni desiderate per lo scenario. Al termine, sulla barra degli strumenti della finestra di progettazione selezionare Salva.

Se passi dalla vista designer a quella in codice, il seguente esempio mostra come l'azione Initialize variable appare nella definizione del tuo workflow, che è in formato JavaScript Object Notation (JSON):

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

Gli esempi seguenti illustrano altri tipi di variabile:

Variabile booleana

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

Variabile float

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

Variabile stringa

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

Variabile oggetto

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

Matrice con numeri interi

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

Matrice con stringhe

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

Ottenere il valore di una variabile

Per recuperare o fare riferimento al contenuto di una variabile, usa la variables() funzione nel workflow designer e nell'editor di code view. Quando si fa riferimento a una variabile, usare il nome della variabile come token, non il nome dell'azione, che è il modo usuale per fare riferimento agli output di un'azione.

Ad esempio, l'espressione seguente ottiene gli elementi dalla variabile di matrice creata in questa guida usando la funzione variables(). La funzione string() restituisce il contenuto della variabile in formato stringa: "1, 2, 3, red".

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

Incrementare una variabile

Per aumentare o incrementare una variabile secondo un valore costante aggiungere l'azione Incrementa variabile al flusso di lavoro. Questa operazione funziona solo con le variabili integer e float.

  1. Nel designer, aggiungi l'azione chiamata variabile Increment seguendo i passaggi generali basati sul tipo di workflow:

  2. Specificare le informazioni seguenti per l'azione:

    Proprietà Obbligatoria Valore Descrizione
    Nome < Nome variabile> Il nome per la variabile da incrementare.
    Valore NO < valore-di-incremento> Il valore da usare per incrementare la variabile. Il valore predefinito è 1.

    Suggerimento: anche se è facoltativo, impostare questo valore come procedura consigliata in modo da conoscere sempre il valore specifico per incrementare la variabile.

    L'esempio seguente mostra i valori di esempio per questa azione:

    Screenshot che mostra il portale Azure e un flusso di lavoro di un'app logica con un'azione chiamata variabile Increment.

  3. Al termine, salvare il flusso di lavoro. Sulla barra degli strumenti della finestra di progettazione selezionare Salva.

Se si passa dalla finestra di progettazione alla vista del codice, il seguente esempio mostra l'azione Incrementa variabile all'interno della definizione del flusso di lavoro, nel formato JSON:

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

Esempio: contare gli allegati delle e-mail con un ciclo

In questo esempio, iniziali un contatore a zero, incrementi il contatore una volta per ogni allegato email e restituisci il conteggio totale degli allegati.

  1. Nel portale di Azure, creare una risorsa dell'app per la logica con un flusso di lavoro vuoto. Aggiungere un trigger che verifica la presenza di nuovo messaggio di posta elettronica e degli eventuali allegati.

    Questo esempio utilizza il trigger di Office 365 Outlook denominato Quando arriva un nuovo messaggio di posta elettronica. Imposta questo trigger per farlo attivare solo quando l'email ha allegati. Tuttavia è possibile usare un connettore qualsiasi per verificare la presenza di nuovi messaggi di posta elettronica con allegati, ad esempio il connettore Outlook.com.

  2. Nel trigger, seleziona per le seguenti proprietà per controllare la presenza di allegati e trasferirli nel tuo flusso di lavoro:

    • Solo con allegato
    • Includi allegati

    Schermata che mostra il portale di Azure e il flusso di lavoro dell'app per la logica con le proprietà del trigger di Office 365 Outlook selezionate per verificare e includere gli allegati.

  3. Aggiungi l'azione Inizializza la variabile per creare una variabile intera chiamata Count che inizia da 0.

  4. Nel designer, aggiungi l'azione chiamata For each seguendo i passaggi generali basati sul tipo di workflow:

  5. Nel ciclo, segui questi passaggi:

    1. Seleziona all'interno della casella chiamata Seleziona un'uscita dai passaggi precedenti per visualizzare le opzioni di input.
    2. Selezionare l'icona a forma di fulmine per aprire l'elenco di contenuto dinamico.
    3. Dall'elenco, in Quando arriva un nuovo messaggio di posta elettronica, seleziona Allegati.

    Schermata che mostra il portale di Azure e il workflow dell'app per la logica con un ciclo For each, l'elenco del contenuto dinamico aperto e l'output Allegati selezionato.

    La proprietà Allegati passa una matrice che contiene gli allegati di messaggi di posta elettronica dall'output del trigger nel ciclo per eseguire l'iterazione del flusso di lavoro.

  6. Nel ciclo For each selezionare Aggiungi un'azione.

  7. Nel designer, aggiungi l'azione chiamata variabile Increment seguendo i passaggi generali basati sul tipo di workflow:

    Note

    Assicurarsi che l'azione Incrementa variabile sia visualizzata all'interno del ciclo. Se l'azione viene visualizzata all'esterno del ciclo, trascinare l'azione nel ciclo.

  8. Nell'azione Increment variable (Incrementare una variabile) dall'elenco Name (Nome) selezionare la variabile Count (Conteggio). Impostare la proprietà Value su 1.

    Screenshot portale di Azure e flusso di lavoro dell'app per la logica con una variabile selezionata denominata Count.

  9. Sotto il ciclo aggiungere qualsiasi azione che invii il numero di allegati. Nell'azione includere il valore della variabile Count (Conteggio), ad esempio:

    Uno screenshot che mostra il portale Azure e il flusso di lavoro dell'app logica con un'azione che invia i risultati.

  10. Al termine, salvare il flusso di lavoro. Sulla barra degli strumenti della finestra di progettazione selezionare Salva.

Testare il flusso di lavoro

  1. Per attivare manualmente il flusso di lavoro, sulla barra degli strumenti della finestra di progettazione selezionare Esegui>Esegui per eseguire manualmente il flusso di lavoro.

  2. Inviare un messaggio di posta elettronica con uno o più allegati all'account di posta elettronica usato in questo esempio.

    Questo passaggio attiva il trigger del flusso di lavoro, che crea ed esegue un'istanza del flusso di lavoro. Di conseguenza, il flusso di lavoro invia un messaggio o email che riporta il numero di allegati nel messaggio di posta elettronica inviato.

Se si passa dalla finestra di progettazione alla vista del codice, il seguente esempio mostra come il ciclo For each è visualizzato accanto all'azione Incrementa variabile all'interno della definizione del flusso di lavoro, nel formato JSON:

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

Decrementare una variabile

Per ridurre o decrementare una variabile in base a un valore costante specifico, seguire i passaggi per incrementare una variabile, ad eccezione del fatto che si aggiunge l'azione Riduci variabile al flusso di lavoro. Questa operazione funziona solo con le variabili integer e float.

Nella tabella seguente vengono descritte le informazioni relative all'azione Riduci variabile:

Proprietà Obbligatoria Valore Descrizione
Nome < Nome variabile> Nome della variabile da decrementare
Valore NO < valore-di-decremento> Valore per decrementare la variabile Il valore predefinito è uno.

Suggerimento: anche se è facoltativo, impostare questo valore come procedura consigliata in modo da conoscere sempre il valore specifico per decrementare la variabile.

Se si passa dalla finestra di progettazione alla vista del codice, il seguente esempio mostra l'azione Riduci variabile all'interno della definizione del flusso di lavoro, nel formato JSON:

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

Impostare una variabile

Per assegnare un valore diverso a una variabile esistente, seguire gli passaggi indicati per incrementare una variabile con le seguenti eccezioni:

  1. Individuare e selezionare invece l'azione Imposta variabile.

  2. Specificare le informazioni seguenti per l'azione:

    Proprietà Obbligatoria Valore Descrizione
    Nome < Nome variabile> Il nome della variabile da modificare.
    Valore < Nuovo valore> Valore a cui si vuole assegnare la variabile. Assicurati che sia la variabile che il nuovo valore abbiano lo stesso tipo di dato. Il valore è obbligatorio perché questa azione non ha un valore predefinito.

    Note

    A meno che non si stiano incrementando o decrementando le variabili, la modifica delle variabili all'interno dei cicli potrebbe creare risultati imprevisti poiché i cicli vengono eseguiti in parallelo, o contemporaneamente, per impostazione predefinita. In questi casi, provare a impostare il ciclo in modo che venga eseguito in sequenza. Ad esempio, quando si desidera fare riferimento al valore della variabile all'interno del ciclo e si prevede lo stesso valore all'inizio e alla fine dell'istanza del ciclo, attenersi alla procedura seguente per modificare la modalità di esecuzione del ciclo:

    1. Selezionare il ciclo per visualizzare il riquadro informazioni e quindi selezionare Impostazioni.

    2. Nella sezione Generale, in Controllo della concorrenza, modificare l'impostazione da Disattivato a Attivato.

    3. Trascinare il dispositivo di scorrimento Grado di parallelismo su 1.

Se passi dalla vista designer a quella del codice, il seguente esempio mostra come l'azione della variabile Set appare nella definizione del tuo workflow, che è in formato JSON, e cambia il Count valore corrente della variabile in un altro valore:

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

Accodare a una variabile

Per le variabili che memorizzano stringhe o matrici è possibile inserire o accodare il valore di una variabile come ultimo elemento di tali stringhe o matrici. Segui i passaggi per incrementare una variabile con le seguenti eccezioni:

  1. Individuare e selezionare una delle azioni seguenti a seconda che la variabile sia una stringa o una matrice:

    • Accoda a variabile di stringa
    • Accoda a variabile di matrice
  2. Fornire il valore da accodare come ultimo elemento nella stringa o nella matrice.

    Proprietà Obbligatoria Valore Descrizione
    Nome < Nome variabile> Il nome della variabile da modificare.
    Valore < aggiungi valore> Il valore che vuoi aggiungere, che può avere qualsiasi tipo.

Se si passa dalla finestra di progettazione alla vista del codice, il seguente esempio mostra l'azione Aggiungi a variabile di matrice all'interno della definizione del flusso di lavoro, nel formato JSON.

L'esempio seguente crea una variabile matrice e aggiunge un altro valore come ultimo elemento della matrice. Il risultato è una variabile aggiornata che contiene la matrice: [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" ]
      }
   }
},