Creare variabili per archiviare e gestire i valori in App per la logica di Azure

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

Questa guida illustra come creare e usare le variabili in modo che sia possibile archiviare e usare i valori nel flusso di lavoro dell'app per la logica. Ad esempio, le variabili consentono di tenere traccia del numero di volte in cui viene eseguito un ciclo. Per eseguire l'iterazione su una matrice o controllare una matrice per un elemento specifico, è possibile usare una variabile per fare riferimento al numero di indice per ogni elemento della matrice.

È possibile creare variabili per tipi di dati quali integer, float, booleano, stringa, matrice e oggetto. Dopo aver creato una variabile è possibile eseguire altre attività, ad esempio:

  • Ottenere o fare riferimento al valore della variabile.
  • Aumentare o diminuire la variabile di un valore costante, noto anche come incremento e decremento.
  • Assegnare un valore diverso alla variabile.
  • Inserire o aggiungere il valore della variabile come ultimo elemento in una stringa o in una matrice.

Le variabili esistono e sono globali solo all'interno dell'istanza del flusso di lavoro che li crea. Inoltre, vengono mantenuti in qualsiasi iterazione del ciclo all'interno di un'istanza del flusso di lavoro. Quando si fa riferimento a una variabile, usare il nome della variabile come token, non il nome dell'azione, ovvero il modo consueto per fare riferimento agli output di un'azione.

Importante

Per impostazione predefinita, le iterazioni in un ciclo For ogni esecuzione in parallelo. Quando si usano le variabili nei cicli, eseguire il ciclo in sequenza in modo che le variabili restituiscono risultati prevedibili.

Prerequisiti

  • Un account e una sottoscrizione di Azure. Se non si ha una sottoscrizione, iscriversi per un account Azure gratuito.

  • Flusso di lavoro dell'app per la logica in cui si vuole creare la variabile e un trigger che avvia il flusso di lavoro.

    Prima di poter aggiungere azioni per la creazione e l'uso delle variabili, il flusso di lavoro deve iniziare con un trigger come primo passaggio del flusso di lavoro. Per altre informazioni, vedere Creare un flusso di lavoro con un trigger o un'azione.

I passaggi seguenti usano la portale di Azure, ma con l'estensione app per la logica di Azure appropriata, è anche possibile usare gli strumenti seguenti per creare flussi di lavoro dell'app per la logica:

In base al fatto che si abbia un flusso di lavoro Consumo o Standard, seguire la procedura corrispondente:

Inizializzare una variabile

È possibile creare una variabile e dichiararne il tipo di dati e il valore iniziale usando un'unica azione nel flusso di lavoro. È possibile dichiarare solo variabili a livello globale, non all'interno di ambiti, condizioni e cicli.

  1. Nella portale di Azure aprire il flusso di lavoro nella finestra di progettazione.

  2. Nella finestra di progettazione seguire questi passaggi generali per aggiungere un'azione denominata Inizializza variabile.

  3. Specificare le informazioni seguenti sulla variabile:

    Proprietà Obbligatoria valore Descrizione
    Nome <nome variabile> Nome della variabile da incrementare
    Tipo <tipo variabile> Tipo di dati per la variabile
    Valore No <start-value> Valore iniziale della variabile

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

    Nell'esempio seguente vengono illustrati i valori iniziali per questa variabile di esempio:

    Screenshot che mostra portale di Azure, flusso di lavoro consumer e azione denominata Variabile Inizializza.

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

Se si passa dalla finestra di progettazione alla visualizzazione codice, nell'esempio seguente viene illustrato come viene visualizzata l'azione Inizializza variabile nella definizione del flusso di lavoro, ovvero in formato JSON (JavaScript Object Notation):

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

Nota

Anche se l'azione Inizializza variabile ha un "variables" oggetto strutturato come matrice, l'azione può creare una sola variabile alla volta. Ogni nuova variabile richiede un'azione singola di inizializzazione della variabile .

Gli esempi seguenti mostrano 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, è possibile usare la funzione variabili() nella finestra di progettazione del flusso di lavoro e nell'editor di visualizzazione del codice. Quando si fa riferimento a una variabile, usare il nome della variabile come token, non il nome dell'azione, ovvero il modo consueto 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 variables() funzione . La string() funzione restituisce il contenuto della variabile in formato stringa: "1, 2, 3, red"

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

Incrementare una variabile

Per aumentare o incrementare una variabile in base a un valore costante specifico, aggiungere l'azione Increment variabile al flusso di lavoro. Questa operazione funziona solo con le variabili integer e float.

  1. Nella finestra di progettazione del flusso di lavoro seguire questa procedura generale per aggiungere un'azione denominata Incremento variabile.

  2. Specificare le informazioni seguenti per questa azione:

    Proprietà Obbligatoria valore Descrizione
    Nome <variable-name> Nome della variabile da incrementare
    Valore No <increment-value> Valore usato 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 l'incremento della variabile.

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

    Screenshot che mostra portale di Azure, flusso di lavoro a consumo e azione denominata Variabile di incremento.

  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 visualizzazione codice, l'esempio seguente mostra come viene visualizzata l'azione Increment variable nella definizione del flusso di lavoro, ovvero in formato JSON:

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

Esempio: Creazione del contatore di cicli

Le variabili vengono comunemente usate per contare il numero di volte in cui viene eseguito un ciclo. In questo esempio viene illustrato come creare e usare variabili per questa attività creando un ciclo che conta gli allegati in un messaggio di posta elettronica.

  1. Nella portale di Azure creare la risorsa dell'app per la logica a consumo 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 usa il trigger di Office 365 Outlook per When a new email arrives (Quando arriva un nuovo messaggio di posta elettronica). È possibile impostare l'attivazione del trigger solo quando il messaggio di posta elettronica contiene degli 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, per verificare la presenza di allegati e passare tali allegati al flusso di lavoro, selezionare per le proprietà seguenti:

    • Solo con allegato
    • Includi allegati

    Screenshot che mostra portale di Azure, flusso di lavoro a consumo e proprietà selezionate per verificare e includere allegati.

  3. Aggiungere l'azione Inizializza variabile per creare una variabile integer denominata Count con un valore iniziale impostato su 0.

  4. Per scorrere ogni allegato, seguire questa procedura generale per aggiungere un'azione denominata Ciclo For each.

  5. Nel ciclo selezionare all'interno della casella denominata Selezionare un output dei passaggi precedenti. Dopo la visualizzazione dell'elenco di contenuto dinamico, in Quando arriva un nuovo messaggio di posta elettronica selezionare Allegati.

    Screenshot che mostra il flusso di lavoro Consumo, Per ogni ciclo, elenco di contenuto dinamico aperto e output allegati selezionato.

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

  6. Nel ciclo For each (Per ogni ciclo) selezionare Add an action (Aggiungi un'azione).

  7. Seguire questi passaggi generali per aggiungere un'azione denominata Variabile incrementa al ciclo.

    Nota

    Assicurarsi che l'azione Increment variabile venga 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 che mostra il flusso di lavoro Consumo con la 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:

    Screenshot che mostra il flusso di lavoro Consumo e 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, seguire il passaggio corrispondente:

    Flusso di lavoro a consumo

    Sulla barra degli strumenti del flusso di lavoro della finestra di progettazione selezionare Esegui esecuzione trigger> per eseguire manualmente il flusso di lavoro.

    Flusso di lavoro standard

    Nel menu del flusso di lavoro selezionare Panoramica. Sulla barra degli strumenti selezionare Esegui>.

  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 un messaggio di posta elettronica che mostra il numero di allegati nel messaggio di posta elettronica inviato.

Se si passa dalla finestra di progettazione alla visualizzazione codice, nell'esempio seguente viene illustrato come viene visualizzato il ciclo For each insieme all'azione Increment variable nella definizione del flusso di lavoro, ovvero in 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 l'azione Decrement variabile viene aggiunta al flusso di lavoro. Questa operazione funziona solo con le variabili integer e float.

Nella tabella seguente vengono descritte le informazioni per l'azione della variabile Decrement :

Proprietà Obbligatoria valore Descrizione
Nome <variable-name> Nome della variabile da decrementare
Valore No <increment-value> 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 visualizzazione codice, l'esempio seguente mostra come viene visualizzata l'azione Decrement variable nella definizione del flusso di lavoro, ovvero in 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 la procedura per incrementare una variabile con le eccezioni seguenti:

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

  2. Fornire il nome della variabile e il valore da assegnare. Sia il nuovo valore che la variabile devono avere lo stesso tipo di dati. Il valore è obbligatorio perché questa azione non ha un valore predefinito.

Nella tabella seguente vengono descritte le informazioni per l'azione Imposta variabile :

Proprietà Obbligatoria valore Descrizione
Nome <variable-name> Nome della variabile da modificare
Valore <new-value> Valore a cui si vuole assegnare la variabile. Entrambi devono avere lo stesso tipo di dati.

Nota

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. Nel ciclo individuare e aprire le impostazioni del ciclo.

  2. In base al tipo di flusso di lavoro, seguire i passaggi corrispondenti:

    • Consumo: modificare l'impostazione Controllo concorrenza da Disattivato a Attivato.

    • Standard: in Generale modificare l'impostazione Controllo concorrenza da Disattivato a .

  3. Trascinare il dispositivo di scorrimento Degree of Parallelism (Grado di parallelismo) su 1.

Se si passa dalla finestra di progettazione alla visualizzazione codice, l'esempio seguente mostra come viene visualizzata l'azione Imposta variabile nella definizione del flusso di lavoro, in formato JSON:

Nell'esempio seguente il Count valore corrente della variabile viene modificato 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. È possibile seguire la procedura per incrementare una variabile con le eccezioni seguenti:

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

    • Accodare alla variabile stringa
    • Accodare alla variabile di matrice
  2. Fornire il valore da accodare come ultimo elemento nella stringa o nella matrice. Questo valore è obbligatorio.

Nella tabella seguente vengono descritte le informazioni per le azioni Aggiungi a... :

Proprietà Obbligatoria valore Descrizione
Nome <variable-name> Nome della variabile da modificare
Valore <append-value> Valore da accodare, di qualsiasi tipo

Se si passa dalla finestra di progettazione alla visualizzazione codice, nell'esempio seguente viene illustrato come viene visualizzata l'azione Aggiungi alla variabile di matrice nella definizione del flusso di lavoro, in formato JSON.

Nell'esempio seguente viene creata una variabile di matrice e viene aggiunto un altro valore come ultimo elemento nella 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" ]
      }
   }
},

Passaggi successivi