Eseguire diverse azioni in app per la logica con un'istruzione switchPerform different actions in logic apps with a switch statement

Durante la creazione di un flusso di lavoro, è spesso necessario eseguire diverse azioni in base al valore di un oggetto o di un'espressione.When authoring a workflow, you often have to take different actions based on the value of an object or expression. Ad esempio, si vuole che l'app per la logica si comporti diversamente in base al codice di stato di una richiesta HTTP o all'opzione selezionata in un messaggio di posta elettronica.For example, you might want your logic app to behave differently based on the status code of an HTTP request, or an option selected in an email.

È possibile usare un'istruzione switch per implementare questi scenari.You can use a switch statement to implement these scenarios. Le app per la logica possono valutare un'espressione o un token e scegliere il case con lo stesso valore per eseguire le azioni specificate.Your logic app can evaluate a token or expression, and choose the case with the same value to execute the specified actions. All'istruzione switch deve corrispondere un solo caso.Only one case should match the switch statement.

Suggerimento

Come tutti i linguaggi di programmazione, le istruzioni switch supportano solo gli operatori di uguaglianza.Like all programming languages, switch statements support only equality operators. Se sono necessari altri operatori relazionali, ad esempio "maggiore di", usare un'istruzione di condizione.If you need other relational operators, such as "greater than", use a condition statement. Per garantire il comportamento di esecuzione deterministico, i casi devono contenere un valore univoco e statico anziché un token dinamico o un'espressione.To ensure deterministic execution behavior, cases must contain a unique and static value instead of dynamic tokens or expression.

PrerequisitiPrerequisites

Aggiungere un'istruzione switch al flusso di lavoroAdd a switch statement to your workflow

Per illustrare l'uso delle istruzioni switch, questo esempio crea un'app per la logica che monitora i file caricati in Dropbox.To show how a switch statement works, this example creates a logic app that monitors files uploaded to Dropbox. Quando i nuovi file vengono caricati, l'app per la logica invia un messaggio di posta elettronica a un revisore che sceglie se trasferire o meno i file a SharePoint.When the new files are uploaded, the logic app sends email to an approver who chooses whether to transfer those files to SharePoint. L'app usa un'istruzione switch che esegue diverse azioni in base al valore selezionato dal revisore.The app uses a switch statement that performs different actions based on the value that the approver selects.

  1. Creare un'app per la logica e selezionare questo trigger: Dropbox - When a file is created (Dropbox - Quando viene creato un file).Create a logic app, and select this trigger: Dropbox - When a file is created.

    Usare il trigger Dropbox - When a file is created (Dropbox - Quando viene creato un file)

  2. Sotto il trigger, aggiungere questa azione: Outlook.com - Invia messaggio di posta elettronica di approvazioneUnder the trigger, add this action: Outlook.com - Send approval email

    Suggerimento

    Le app per la logica supportano anche gli scenari di posta elettronica di approvazione da un account di Outlook Office 365.Logic apps also support sending approval email scenarios from an Office 365 Outlook account.

    • Se non si ha una connessione esistente, viene richiesto di crearne una.If you don't have an existing connection, you're prompted to create one.
    • Compilare i campi obbligatori.Fill in the required fields. Ad esempio, sotto A, specificare l'indirizzo di posta elettronica per inviare il messaggio di posta elettronica al revisore.For example, under To, specify the email address for sending the approver email.
    • In Opzioni utente, inserire Approve, Reject.Under User Options, enter Approve, Reject.

    Configurare la connessione

  3. Aggiungere un'istruzione switc.Add a switch statement.

    • Selezionare + Nuovo passaggio > ... Altro > Aggiungi istruzione switch case.Select + New step > ... More > Add a switch case.
    • Si vuole ora selezionare l'azione da eseguire in base all'output di SelectedOptions dall'azione Invia messaggio di posta elettronica di approvazione.Now we want to select the action to perform based on the SelectedOptions output from the Send approval email action. È possibile trovare questo campo nel selettore Aggiungi contenuto dinamico.You can find this field in the Add dynamic content selector.
    • Usare Case1 per eseguire la gestione quando l'utente seleziona Approve.Use Case 1 to handle when the approver selects Approve.
      • Se approvato, copiare il file originale in SharePoint Online con l'azione SharePoint Online - Crea file.If approved, copy the original file to SharePoint Online with the SharePoint Online - Create file action.
      • Aggiungere un'altra azione nel caso per informare gli utenti che un nuovo file è disponibile in SharePoint.Add another action within the case to notify users that a new file is available on SharePoint.
    • Aggiungere un altro case da gestire quando l'utente seleziona Reject.Add another case to handle when user selects Reject.
      • In caso di rifiuto, inviare un'email di notifica per informare gli altri approvatori che il file è stato rifiutato e non è richiesta alcuna azione successiva.If rejected, send a notification email informing other approvers that the file is rejected and no further action is required.
    • Dato che SelectedOptions offre solo due opzioni, è possibile lasciare il case vuoto predefinito.SelectedOptions provides only two options, so we can leave the Default case empty.

    Istruzioni switch

    Nota

    Le istruzioni switch richiedono almeno un case aggiuntivo oltre al case predefinito.A switch statement needs at least one case in addition to the default case.

  4. Dopo l'istruzione switch, eliminare il file originale caricato in Dropbox aggiungendo l'azione Dropbox - Elimina fileAfter the switch statement, delete the original file uploaded to Dropbox by adding this action: Dropbox - Delete file

  5. Salvare l'app per la logica.Save your logic app. Testare l'app caricando un file in Dropbox.Test your app by uploading a file to Dropbox. Si dovrebbe ricevere in breve tempo un messaggio di posta elettronica di approvazione.You should receive an approval email shortly. Selezionare un'opzione e osservare il comportamento.Select an option, and observe the behavior.

    Suggerimento

    Vedere come monitorare le app per la logica.Check out how to monitor your logic apps.

Capire il codice dietro le istruzioni switchUnderstand the code behind switch statements

Dopo aver creato correttamente un'app per la logica tramite un'istruzione switch, esaminare la definizione del codice dietro l'istruzione switch.Now that you successfully created a logic app using a switch statement, let's look at the code definition behind the switch statement.

"Switch": {
    "type": "Switch",
    "expression": "@body('Send_approval_email')?['SelectedOption']",
    "cases": {
        "Case 1" : {
            "case" : "Approved",
            "actions" : {}
        },
        "Case 2" : {
            "case" : "Rejected",
            "actions" : {}
        }
    },
    "default": {
        "actions": {}
    },
    "runAfter": {
        "Send_approval_email": [
            "Succeeded"
        ]
    }
}
  • "Switch" è il nome dell'istruzione switch che può essere rinominata per migliorarne la leggibilità."Switch" is the name of the switch statement, which you can rename for readability.
  • "type": "Switch" indica che l'azione è un'istruzione switch."type": "Switch" indicates that the action is a switch statement.
  • "expression" è l'opzione selezionata dal revisore in questo esempio e viene valutata in ogni case dichiarato successivamente nella definizione."expression" is the approver's selected option in this example and is evaluated against each case declared later in the definition.
  • "cases" può contenere qualsiasi numero di case."cases" can contain any number of cases. Per ogni case, "Case *" è il nome predefinito del case, che è possibile rinominare per migliorare la leggibilità.For each case, "Case *" is the default name of the case, which you can rename for readability. "case" specifica l'etichetta di case, che viene usata dall'espressione switch per effettuare un confronto e deve contenere un valore costante e univoco."case" specifies the case label, which the switch expression uses for comparison, and must be a constant and unique value. Se nessuno dei case corrisponde all'espressione switch, vengono eseguite le azioni incluse in "default".If none of the cases match the switch expression, actions under "default" are executed.

Ottenere aiutoGet help

Per porre domande, fornire risposte e ottenere informazioni sulle attività degli altri utenti delle app per la logica di Azure, vedere il forum sulle app per la logica di Azure.To ask questions, answer questions, and see what other Azure Logic Apps users are doing, visit the Azure Logic Apps forum.

Per contribuire al miglioramento delle App per la logica di Azure e dei connettori, votare o inviare idee al sito dei commenti e suggerimenti degli utenti di App per la logica di Azure.To help improve Azure Logic Apps and connectors, vote on or submit ideas at the Azure Logic Apps user feedback site.

Passaggi successiviNext steps