Aggiornamenti dello schema per App per la logica di Azure: 1° giugno 2016Schema updates for Azure Logic Apps - June 1, 2016

La nuova versione dello schema e dell'API per App per la logica di Azure include importanti miglioramenti che rendono le app per la logica più affidabili e facili da usare:This new schema and API version for Azure Logic Apps includes key improvements that make logic apps more reliable and easier to use:

  • Gli ambiti consentono di raggruppare o annidare le azioni come una raccolta di azioni.Scopes let you group or nest actions as a collection of actions.
  • Condizioni e cicli sono ora azioni di prima classe.Conditions and loops are now first-class actions.
  • La proprietà runAfter, che sostituisce dependsOn, consente di ordinare con maggiore precisione l'esecuzione delle azioni.More precise ordering for running actions with the runAfter property, replacing dependsOn

Per aggiornare le app per la logica dallo schema di anteprima del 1° agosto 2015 allo schema del 1° giugno 2016, vedere la sezione relativa all'aggiornamento.To upgrade your logic apps from the August 1, 2015 preview schema to the June 1, 2016 schema, check out the upgrade section.

AmbitiScopes

Questo schema include gli ambiti, che consentono di raggruppare le azioni o annidarle all'interno di altre.This schema includes scopes, which let you group actions together, or nest actions inside each other. Una condizione, ad esempio, può contenere un'altra condizione.For example, a condition can contain another condition. Vedere altre informazioni sulla sintassi degli ambiti oppure esaminare questo esempio di ambito di base:Learn more about scope syntax, or review this basic scope example:

{
    "actions": {
        "My_Scope": {
            "type": "scope",
            "actions": {                
                "Http": {
                    "inputs": {
                        "method": "GET",
                        "uri": "http://www.bing.com"
                    },
                    "runAfter": {},
                    "type": "Http"
                }
            }
        }
    }
}

Modifiche di condizioni e cicliConditions and loops changes

Nelle versioni precedenti dello schema, le condizioni e i cicli sono parametri associati a una singola azione.In previous schema versions, conditions and loops were parameters associated with a single action. In questo schema è stata rimossa questa limitazione e le condizioni e i cicli sono disponibili come tipi di azione.This schema lifts this limitation, so conditions and loops now appear as action types. Vedere altre informazioni su cicli e ambiti oppure esaminare questo esempio di base di un'azione condizione:Learn more about loops and scopes, or review this basic example for a condition action:

{
    "If_trigger_is_some-trigger": {
        "type": "If",
        "expression": "@equals(triggerBody(), 'some-trigger')",
        "runAfter": { },
        "actions": {
            "Http_2": {
                "inputs": {
                    "method": "GET",
                    "uri": "http://www.bing.com"
                },
                "runAfter": {},
                "type": "Http"
            }
        },
        "else": 
        {
            "if_trigger_is_another-trigger": "..."
        }      
    }
}

Proprietà "runAfter"'runAfter' property

La proprietà runAfter sostituisce dependsOn, offrendo maggiore precisione quando si specifica l'ordine di esecuzione delle azioni in base allo stato di azioni precedenti.The runAfter property replaces dependsOn, providing more precision when you specify the run order for actions based on the status of previous actions.

La proprietà dependsOn indica l'esecuzione riuscita dell'azione, indipendentemente dal numero di volte che si vuole eseguire un'azione a seconda che la precedente sia riuscita, abbia avuto esito negativo o sia stata ignorata.The dependsOn property was synonymous with "the action ran and was successful", no matter how many times you wanted to execute an action, based on whether the previous action was successful, failed, or skipped. La proprietà runAfter offre tale flessibilità in quanto oggetto che specifica tutti nomi delle azioni dopo cui viene eseguito.The runAfter property provides that flexibility as an object that specifies all the action names after which the object runs. Questa proprietà definisce anche una matrice degli stati accettabili come trigger.This property also defines an array of statuses that are acceptable as triggers. Per impostare l'esecuzione dopo l'esito positivo del passaggio A e dopo l'esito positivo o negativo del passaggio B, ad esempio, si costruisce questa proprietà runAfter:For example, if you wanted to run after step A succeeds and also after step B succeeds or fails, you construct this runAfter property:

{
    "...",
    "runAfter": {
        "A": ["Succeeded"],
        "B": ["Succeeded", "Failed"]
    }
}

Aggiornare lo schemaUpgrade your schema

L'aggiornamento al nuovo schema richiede pochi passaggi.Upgrading to the new schema only takes a few steps. Il processo di aggiornamento include l'esecuzione dello script di aggiornamento, il salvataggio come nuova app per la logica ed eventualmente, se necessario, la sovrascrittura dell'app per la logica precedente.The upgrade process includes running the upgrade script, saving as a new logic app, and if you want, possibly overwriting the previous logic app.

  1. Nel portale di Azure aprire l'app per la logica.In the Azure portal, open your logic app.

  2. Passare a Panoramica.Go to Overview. Sulla barra degli strumenti dell'app per la logica scegliere Aggiorna schema.On the logic app toolbar, choose Update Schema.

    Scegliere Aggiorna schema

    Verrà restituita la definizione aggiornata, che è possibile copiare e incollare in una definizione di risorsa, se necessario.The upgraded definition is returned, which you can copy and paste into a resource definition if necessary. È tuttavia altamente consigliabile scegliere Salva con nome per assicurarsi che tutti i riferimenti alla connessione siano validi nell'app per la logica aggiornata.However, we strongly recommend you choose Save As to make sure that all connection references are valid in the upgraded logic app.

  3. Sulla barra degli strumenti del pannello per l'aggiornamento scegliere Salva con nome.In the upgrade blade toolbar, choose Save As.

  4. Immettere il nome logico e lo stato.Enter the logic name and status. Per distribuire l'app per la logica aggiornata, scegliere Crea.To deploy your upgraded logic app, choose Create.

  5. Verificare che l'app per la logica aggiornata funzioni come previsto.Confirm that your upgraded logic app works as expected.

    Nota

    Se si usa un trigger manuale o di richiesta, l'URL di callback viene modificato nella nuova app per la logica.If you are using a manual or request trigger, the callback URL changes in your new logic app. Testare il nuovo URL per verificare il funzionamento dell'esperienza end-to-end.Test the new URL to make sure the end-to-end experience works. Per mantenere gli URL precedenti, è possibile clonare l'app per la logica esistente.To preserve previous URLs, you can clone over your existing logic app.

  6. Facoltativo Per sovrascrivere l'app per la logica precedente con la nuova versione dello schema, sulla barra degli strumenti scegliere Clona accanto ad Aggiorna schema.Optional To overwrite your previous logic app with the new schema version, on the toolbar, choose Clone, next to Update Schema. Questo passaggio è necessario solo se si vuole mantenere lo stesso ID risorsa o lo stesso URL del trigger di richiesta dell'app per la logica.This step is necessary only if you want to keep the same resource ID or request trigger URL of your logic app.

Note sullo strumento di aggiornamentoUpgrade tool notes

Mapping delle condizioniMapping conditions

Nella definizione aggiornata, lo strumento tenta di raggruppare le azioni dei rami true e false in un ambito.In the upgraded definition, the tool makes a best effort at grouping true and false branch actions together as a scope. In particolare, il modello di progettazione @equals(actions('a').status, 'Skipped') verrà visualizzato come un'azione else.Specifically, the designer pattern of @equals(actions('a').status, 'Skipped') should appear as an else action. Se lo strumento rileva modelli non riconoscibili, tuttavia, potrebbe creare condizioni separate per i rami true e false.However, if the tool detects unrecognizable patterns, the tool might create separate conditions for both the true and the false branch. Se necessario, è possibile modificare il mapping delle azioni dopo l'aggiornamento.You can remap actions after upgrading, if necessary.

Ciclo "foreach" con condizione'foreach' loop with condition

Nel nuovo schema, è possibile usare l'azione di filtro per replicare il modello di un ciclo foreach con una condizione per elemento, ma questa modifica dovrebbe essere eseguita automaticamente durante l'aggiornamento.In the new schema, you can use the filter action to replicate the pattern of a foreach loop with a condition per item, but this change should automatically happen when you upgrade. La condizione diventa un'azione di filtro prima del ciclo foreach per restituire solo una matrice di elementi che soddisfano la condizione e tale matrice viene passata nell'azione foreach.The condition becomes a filter action before the foreach loop for returning only an array of items that match the condition, and that array is passed into the foreach action. Per un esempio, vedere l'articolo relativo a cicli e ambiti.For an example, see Loops and scopes.

Tag delle risorseResource tags

Dopo l'aggiornamento, i tag delle risorse vengono rimossi. È quindi necessario reimpostarli per il flusso di lavoro aggiornato.After you upgrade, resource tags are removed, so you must reset them for the upgraded workflow.

Altre modificheOther changes

Ridenominazione del trigger "manual" in "request"Renamed 'manual' trigger to 'request' trigger

Il tipo di trigger manual è deprecato ed è stato rinominato request con tipo http.The manual trigger type was deprecated and renamed to request with type http. Questa modifica offre maggiore coerenza per la tipologia di modello creata con il trigger.This change creates more consistency for the kind of pattern that the trigger is used to build.

Nuova azione "filtro"New 'filter' action

Per filtrare una matrice di grandi dimensioni in modo da ottenere un set ridotto di elementi, il nuovo tipo filter accetta una matrice e una condizione, valuta la condizione per ogni elemento e restituisce una matrice con gli elementi che soddisfano la condizione.To filter a large array down to a smaller set of items, the new filter type accepts an array and a condition, evaluates the condition for each item, and returns an array with items meeting the condition.

Restrizioni per le azioni "foreach" e "until"Restrictions for 'foreach' and 'until' actions

I cicli foreach e until sono limitati a una singola azione.The foreach and until loop are restricted to a single action.

Nuova proprietà "trackedProperties" per le azioniNew 'trackedProperties' for actions

Le azioni possono ora includere una proprietà aggiuntiva denominata trackedProperties, di pari livello rispetto alle proprietà runAfter e type.Actions can now have an additional property called trackedProperties, which is sibling to the runAfter and type properties. Questo oggetto specifica determinati input o output delle azioni da includere nei dati di telemetria di Diagnostica di Azure generati come parte di un flusso di lavoro,This object specifies certain action inputs or outputs that you want to include in the Azure Diagnostic telemetry, emitted as part of a workflow. ad esempio:For example:

{                
    "Http": {
        "inputs": {
            "method": "GET",
            "uri": "http://www.bing.com"
        },
        "runAfter": {},
        "type": "Http",
        "trackedProperties": {
            "responseCode": "@action().outputs.statusCode",
            "uri": "@action().inputs.uri"
        }
    }
}

Passaggi successiviNext Steps