Condividi tramite


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

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

Questa guida pratica illustra come creare e usare variabili in modo da poter 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 un ciclo viene eseguito. Per eseguire l'iterazione su una matrice o cercare un elemento specifico in una matrice è possibile usare una variabile per fare riferimento al numero di indice di 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 matrice.

Le variabili esistono e sono globali solo all'interno dell'istanza del flusso di lavoro che le crea. Inoltre persistono in tutte le iterazioni di 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, che è il modo usuale per fare riferimento agli output di un'azione.

Importante

Per impostazione predefinita, le iterazioni in un ciclo For each vengono eseguite in parallelo. Quando si usano le variabili nei cicli, eseguire il ciclo in sequenza in modo che le variabili restituiscano risultati prevedibili.

Prerequisiti

I passaggi seguenti usano il portale di Azure; tuttavia, con l'estensione App per la logica di Azure appropriata, è anche possibile usare gli strumenti seguenti per creare flussi di lavoro delle app per la logica:

Alcuni passaggi differiscono leggermente in base al fatto che si disponga di un flusso di lavoro A consumo o Standard.

Inizializzare una variabile

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

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

  2. Nella finestra di progettazione seguire questi passaggi generali per i flussi di lavoro a consumo o Standard per aggiungere un'azione denominata Inizializza variabili.

  3. Specificare le informazioni seguenti sulla variabile:

    Proprietà Obbligatoria Valore Descrizione
    Nome < variable-name> Nome della variabile da inizializzare
    Tipo < tipo variabile> Tipo di dati per la variabile
    Valore NO < valore iniziale> Valore iniziale della 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.

    L'esempio seguente mostra i valori iniziali per questa variabile di esempio:

    Screenshot che mostra portale di Azure e un flusso di lavoro dell'app per la logica con un'azione denominata Inizializza variabili.

  4. Continuare 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 vista del codice, il seguente esempio mostra l'azione Inizializza variabile all'interno della definizione del flusso di lavoro, nel formato JSON (JavaScript Object Notation):

"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, è possibile usare la variables() funzione nella finestra di progettazione del flusso di lavoro e nell'editor della visualizzazione codice. 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. Nella finestra di progettazione seguire questi passaggi generali per i flussi di lavoro a consumo o Standard per aggiungere un'azione denominata variabile incremento.

  2. Specificare le informazioni seguenti per l'azione:

    Proprietà Obbligatoria Valore Descrizione
    Nome < variable-name> Nome della variabile da incrementare
    Valore NO < valore-di-incremento> 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 incrementare la variabile.

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

    Screenshot che mostra portale di Azure e un flusso di lavoro dell'app per la logica con un'azione denominata Increment variable.

  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: Creazione del contatore di cicli

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

  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 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 controllare gli allegati e trasferirli nel flusso di lavoro, selezionare per le seguenti proprietà:

    • Solo con allegato
    • Includi allegati

    Screenshot che mostra portale di Azure e il flusso di lavoro dell'app per la logica con le proprietà del trigger di Office 365 Outlook selezionate per la ricerca e l'inclusione di allegati.

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

  4. Nella finestra di progettazione seguire questi passaggi generali per i flussi di lavoro a consumo o standard per aggiungere un'azione denominata ciclo Per ogni.

  5. Nel ciclo selezionare all'interno della casella denominata Selezionare un output da Passaggi precedenti per visualizzare le opzioni di input. Selezionare l'icona a forma di fulmine per aprire l'elenco di contenuto dinamico. Dall'elenco, in Quando arriva un nuovo messaggio di posta elettronica, seleziona Allegati.

    Screenshot che mostra portale di Azure e il flusso di lavoro dell'app per la logica con un ciclo For each, un elenco di contenuto dinamico aperto e l'output degli 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. Seguire questi passaggi generali per il flusso di lavoro a consumo o Standard per aggiungere un'azione denominata variabile incremento al ciclo.

    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:

    Screenshot che mostra portale di Azure e il flusso di lavoro dell'app per la 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 < variable-name> 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. 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 relative all'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.

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 si passa dalla finestra di progettazione alla vista del codice, il seguente esempio mostra l'azione Imposta variabile all'interno della definizione del flusso di lavoro, nel formato JSON:

L'esempio seguente modifica il valore corrente della variabile Count 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:

    • Accoda a variabile di stringa
    • Accoda a 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 < aggiungi valore> Valore da accodare, di 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" ]
      }
   }
},