Trigger e azioni per le definizioni dei flussi di lavoro nelle app per la logica di AzureTriggers and actions for workflow definitions in Azure Logic Apps

Nelle app per la logica di Azure tutti i flussi di lavoro delle app per la logica iniziano con trigger seguiti da azioni.In Azure Logic Apps, all logic app workflows start with triggers followed by actions. Questo articolo descrive i trigger e le azioni che è possibile usare per compilare app per la logica per l'automazione di processi o flussi di lavoro aziendali nelle soluzioni di integrazione.This article describes the triggers and actions that you can use to build logic apps for automating business workflows or processes in your integration solutions. È possibile compilare app per la logica visivamente con Progettazione app per la logica o creando direttamente le definizioni dei flussi di lavoro sottostanti con il linguaggio di definizione del flusso di lavoro.You can build logic apps either visually with the Logic Apps Designer, or by directly authoring the underlying workflow definitions with the Workflow Definition Language. Può essere usato il portale di Azure o Visual Studio.You can use either the Azure portal or Visual Studio. Informazioni sui prezzi per trigger e azioni.Learn how pricing works for triggers and actions.

Panoramica dei triggerTriggers overview

Tutte le app per la logica iniziano con un trigger, che definisce le chiamate che possono creare un'istanza del flusso di lavoro di un'app per la logica e avviarlo.All logic apps start with a trigger, which defines the calls that can instantiate and start a logic app workflow. Ecco i tipi di trigger che è possibile usare:Here are the types of triggers that you can use:

Tutti i trigger hanno questi elementi di livello superiore, anche se alcuni sono facoltativi:All triggers have these top-level elements, although some are optional:

"<triggerName>": {
   "type": "<triggerType>",
   "inputs": { "<trigger-behavior-settings>" },
   "recurrence": { 
      "frequency": "Second | Minute | Hour | Day | Week | Month | Year",
      "interval": "<recurrence-interval-based-on-frequency>"
   },
   "conditions": [ <array-with-required-conditions> ],
   "splitOn": "<property-used-for-creating-runs>",
   "operationOptions": "<optional-trigger-operations>"
}

ObbligatorioRequired

Nome dell'elementoElement name typeType DESCRIZIONEDescription
<triggerName><triggerName> Oggetto JSONJSON Object Nome del trigger, ovvero un oggetto descritto in formato Javascript Object Notation (JSON).The name for the trigger, which is an object described in Javascript Object Notation (JSON) format
typetype stringString Tipo di trigger, ad esempio "Http" o "ApiConnection".The trigger type, for example: "Http" or "ApiConnection"
inputsinputs Oggetto JSONJSON Object Input del trigger che ne definiscono il comportamento.The trigger's inputs that define the trigger's behavior
ricorrenzarecurrence Oggetto JSONJSON Object Frequenza e intervallo che descrive la frequenza con cui viene attivato il trigger.The frequency and interval that describes how often the trigger fires
frequencyfrequency stringString Unità di tempo che descrive la frequenza con cui viene attivato il trigger: "Second", "Minute", "Hour", "Day", "Week" o "Month".The unit of time that describes how often the trigger fires: "Second", "Minute", "Hour", "Day", "Week", or "Month"
intervalinterval IntegerInteger Numero intero positivo che indica l'intervallo con cui viene attivato il trigger in base alla frequenza.A positive integer that describes how often the trigger fires based on the frequency.

Ecco gli intervalli minimo e massimo:Here are the minimum and maximum intervals:

- Mese: 1-16 mesi- Month: 1-16 months
- Giorno: 1-500 giorni- Day: 1-500 days
- Ora: 1-12.000 ore- Hour: 1-12,000 hours
- Minuto: 1-72.000 minuti- Minute: 1-72,000 minutes
- Secondo: 1-9.999.999 secondi- Second: 1-9,999,999 seconds

Ad esempio, se l'intervallo è 6 e la frequenza è "month", la ricorrenza è ogni 6 mesi.For example, if the interval is 6, and the frequency is "month", then the recurrence is every 6 months.

FacoltativoOptional

Nome dell'elementoElement name typeType DESCRIZIONEDescription
conditionsconditions ArrayArray Una o più condizioni che determinano se eseguire o meno il flusso di lavoro.One or more conditions that determine whether or not to run the workflow
splitOnsplitOn stringString Espressione che esegue il debatch o suddivide gli elementi della matrice in più istanze del flusso di lavoro per l'elaborazione.An expression that splits up, or debatches, array items into multiple workflow instances for processing. Questa opzione è disponibile per i trigger che restituiscono una matrice e solo quando si lavora direttamente nella visualizzazione Codice.This option is available for triggers that return an array and only when working directly in code view.
operationOptionsoperationOptions stringString Alcuni trigger forniscono opzioni aggiuntive che consentono di modificare il comportamento predefinito del trigger.Some triggers provide additional options that let you change the default trigger behavior

Tipi di trigger e dettagliTrigger types and details

Ogni tipo di trigger ha un'interfaccia e input diversi che ne definiscono il comportamento.Each trigger type has a different interface and inputs that define the trigger's behavior.

Tipo di triggerTrigger type DESCRIZIONEDescription
RecurrenceRecurrence Attivato in base a una pianificazione definita.Fires based on a defined schedule. È possibile impostare una data e un'ora future per l'attivazione di questo trigger.You can set a future date and time for firing this trigger. In base alla frequenza, è anche possibile specificare le ore e i giorni per l'esecuzione del flusso di lavoro.Based on the frequency, you can also specify times and days for running the workflow.
RequestRequest Trasforma l'app per la logica in un endpoint che può essere chiamato. È denominato anche trigger "manuale".Makes your logic app into a callable endpoint, also known as a "manual" trigger. Ad esempio, vedere Chiamare, attivare o annidare i flussi di lavoro con endpoint HTTP.For example, see Call, trigger, or nest workflows with HTTP endpoints.
HTTPHTTP Controlla (o ne esegue il polling) un endpoint Web HTTP.Checks, or polls, an HTTP web endpoint. L'endpoint HTTP deve essere conforme a un contratto del trigger specifico, usando un modello asincrono "202" o restituendo una matrice.The HTTP endpoint must conform to a specific trigger contract either by using a "202" asynchronous pattern or by returning an array.
ApiConnectionApiConnection Funziona come il trigger HTTP, ma usa API gestite da Microsoft.Works like the HTTP trigger, but uses Microsoft-managed APIs.
HTTPWebhookHTTPWebhook Funziona come il trigger Request, ma chiama un URL specificato per la registrazione e l'annullamento della registrazione.Works like the Request trigger, but calls a specified URL for registering and unregistering.
ApiConnectionWebhookApiConnectionWebhook Funziona come il trigger HTTPWebhook, ma usa API gestite da Microsoft.Works like the HTTPWebhook trigger, but uses Microsoft-managed APIs.

Trigger RecurrenceRecurrence trigger

Questo trigger viene eseguito in base alla ricorrenza e alla pianificazione specificate e offre un modo semplice per eseguire regolarmente un flusso di lavoro.This trigger runs based on your specified recurrence and schedule and provides an easy way for regularly running a workflow.

Ecco la definizione del trigger:Here is the trigger definition:

"Recurrence": {
   "type": "Recurrence",
   "recurrence": {
      "frequency": "Second | Minute | Hour | Day | Week | Month",
      "interval": <recurrence-interval-based-on-frequency>,
      "startTime": "<start-date-time-with-format-YYYY-MM-DDThh:mm:ss>",
      "timeZone": "<time-zone>",
      "schedule": {
         // Applies only when frequency is Day or Week. Separate values with commas.
         "hours": [ <one-or-more-hour-marks> ], 
         // Applies only when frequency is Day or Week. Separate values with commas.
         "minutes": [ <one-or-more-minute-marks> ], 
         // Applies only when frequency is Week. Separate values with commas.
         "weekDays": [ "Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday" ] 
      }
   },
   "runtimeConfiguration": {
      "concurrency": {
         "runs": <maximum-number-for-concurrently-running-workflow-instances>
      }
   },
   "operationOptions": "singleInstance"
}

ObbligatorioRequired

Nome dell'elementoElement name typeType DESCRIZIONEDescription
RicorrenzaRecurrence Oggetto JSONJSON Object Nome del trigger, ovvero un oggetto descritto in formato Javascript Object Notation (JSON).The name for the trigger, which is an object described in Javascript Object Notation (JSON) format
typetype stringString Tipo di trigger, ovvero "Recurrence".The trigger type, which is "Recurrence"
inputsinputs Oggetto JSONJSON Object Input del trigger che ne definiscono il comportamento.The trigger's inputs that define the trigger's behavior
ricorrenzarecurrence Oggetto JSONJSON Object Frequenza e intervallo che descrive la frequenza con cui viene attivato il trigger.The frequency and interval that describes how often the trigger fires
frequencyfrequency stringString Unità di tempo che descrive la frequenza con cui viene attivato il trigger: "Second", "Minute", "Hour", "Day", "Week" o "Month".The unit of time that describes how often the trigger fires: "Second", "Minute", "Hour", "Day", "Week", or "Month"
intervalinterval IntegerInteger Numero intero positivo che indica l'intervallo con cui viene attivato il trigger in base alla frequenza.A positive integer that describes how often the trigger fires based on the frequency.

Ecco gli intervalli minimo e massimo:Here are the minimum and maximum intervals:

- Mese: 1-16 mesi- Month: 1-16 months
- Giorno: 1-500 giorni- Day: 1-500 days
- Ora: 1-12.000 ore- Hour: 1-12,000 hours
- Minuto: 1-72.000 minuti- Minute: 1-72,000 minutes
- Secondo: 1-9.999.999 secondi- Second: 1-9,999,999 seconds

Ad esempio, se l'intervallo è 6 e la frequenza è "month", la ricorrenza è ogni 6 mesi.For example, if the interval is 6, and the frequency is "month", then the recurrence is every 6 months.

FacoltativoOptional

Nome dell'elementoElement name typeType DESCRIZIONEDescription
startTimestartTime stringString Data e ora di inizio in questo formato:The start date and time in this format:

AAAA-MM-GGThh:mm:ss se si specifica un fuso orarioYYYY-MM-DDThh:mm:ss if you specify a time zone

-oppure--or-

AAAA-MM-GGThh:mm:ssZ se non si specifica un fuso orarioYYYY-MM-DDThh:mm:ssZ if you don't specify a time zone

Ad esempio, per il 18 settembre 2017 alle 14.00, specificare "2017-09-18T14:00:00" e indicare un fuso orario, ad esempio l'ora solare del Pacifico, oppure specificare "2017-09-18T14:00:00Z" senza fuso orario.So for example, if you want September 18, 2017 at 2:00 PM, then specify "2017-09-18T14:00:00" and specify a time zone such as "Pacific Standard Time", or specify "2017-09-18T14:00:00Z" without a time zone.

Nota: l'ora di inizio deve seguire la specifica di data e ora ISO 8601 nel formato di data e ora UTC, ma senza differenza dall'ora UTC.Note: This start time must follow the ISO 8601 date time specification in UTC date time format, but without a UTC offset. Se non si specifica un fuso orario, è necessario aggiungere la lettera "Z" alla fine senza spazi.If you don't specify a time zone, you must add the letter "Z" at the end without any spaces. La lettera "Z" fa riferimento all'ora nautica equivalente.This "Z" refers to the equivalent nautical time.

Per le pianificazioni semplici, l'ora di inizio è la prima occorrenza, mentre per le pianificazioni complesse il trigger non viene attivato prima dell'ora di inizio.For simple schedules, the start time is the first occurrence, while for complex schedules, the trigger doesn't fire any sooner than the start time. Per altre informazioni sulle date e le ore di inizio, vedere Creare e pianificare attività eseguite regolarmente.For more information about start dates and times, see Create and schedule regularly running tasks.

timeZonetimeZone stringString Valido solo quando si specifica un'ora di inizio, perché il trigger non accetta la differenza dall'ora UTC.Applies only when you specify a start time because this trigger doesn't accept UTC offset. Specificare il fuso orario che si vuole applicare.Specify the time zone that you want to apply.
hourshours Intero o matrice di interoInteger or integer array Se si specifica "Day" o "Week" per frequency, è possibile specificare uno o più numeri interi compresi tra 0 e 23, separati da virgole, come ore del giorno in cui eseguire il flusso di lavoro.If you specify "Day" or "Week" for frequency, you can specify one or more integers from 0 to 23, separated by commas, as the hours of the day when you want to run the workflow.

Ad esempio, se si specifica "10", "12" e "14", gli indicatori di ora corrisponderanno alle 10.00, alle 12.00 e alle 14.00.For example, if you specify "10", "12" and "14", you get 10 AM, 12 PM, and 2 PM as the hour marks.

minutesminutes Intero o matrice di interoInteger or integer array Se si specifica "Day" o "Week" per frequency, è possibile specificare uno o più numeri interi compresi tra 0 e 59, separati da virgole, come minuti dell'ora in cui eseguire il flusso di lavoro.If you specify "Day" or "Week" for frequency, you can specify one or more integers from 0 to 59, separated by commas, as the minutes of the hour when you want to run the workflow.

Ad esempio, è possibile specificare "30" come indicatore dei minuti e, usando l'esempio precedente per le ore del giorno, si otterranno le ore 10.30, 12.30 e 14.30.For example, you can specify "30" as the minute mark and using the previous example for hours of the day, you get 10:30 AM, 12:30 PM, and 2:30 PM.

weekDaysweekDays Stringa o matrice di stringheString or string array Se si specifica "Week" per frequency, è possibile specificare uno o più giorni, separati da virgole, in cui eseguire il flusso di lavoro: "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" e "Sunday"If you specify "Week" for frequency, you can specify one or more days, separated by commas, when you want to run the workflow: "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", and "Sunday"
Concorrenzaconcurrency Oggetto JSONJSON Object Per i trigger ricorrenti e di poll, questo oggetto specifica il numero massimo di istanze del flusso di lavoro eseguibili contemporaneamente.For recurring and polling triggers, this object specifies the maximum number of workflow instances that can run at the same time. Usare questo valore per limitare le richieste ricevute dai sistemi back-end.Use this value to limit the requests that backend systems receive.

Ad esempio, questo valore imposta il limite di concorrenza su 10 istanze: "concurrency": { "runs": 10 }For example, this value sets the concurrency limit to 10 instances: "concurrency": { "runs": 10 }

operationOptionsoperationOptions stringString L'opzione singleInstance specifica che il trigger viene attivato solo dopo che tutte le esecuzioni attive sono terminate.The singleInstance option specifies that the trigger fires only after all active runs are finished. Vedere Trigger: attivazione solo dopo il completamento delle esecuzioni attive.See Triggers: Fire only after active runs finish.

Esempio 1Example 1

Questo trigger di ricorrenza di base viene eseguito ogni giorno:This basic recurrence trigger runs daily:

"recurrenceTriggerName": {
   "type": "Recurrence",
   "recurrence": {
      "frequency": "Day",
      "interval": 1
   }
}

Esempio 2Example 2

È possibile specificare una data e un'ora di inizio per l'attivazione del trigger.You can specify a start date and time for firing the trigger. Questo trigger di ricorrenza inizia alla data specificata e quindi viene attivato ogni giorno:This recurrence trigger starts on the specified date and then fires daily:

"recurrenceTriggerName": {
   "type": "Recurrence",
   "recurrence": {
      "frequency": "Day",
      "interval": 1,
      "startTime": "2017-09-18T00:00:00Z"
   }
}

Esempio 3Example 3

Questo trigger di ricorrenza inizia il 9 settembre 2017 alle 14.00 e viene attivato ogni settimana il lunedì alle 10.30, 12.30 e 14.30, ora solare Pacifico:This recurrence trigger starts on September 9, 2017 at 2:00 PM, and fires weekly every Monday at 10:30 AM, 12:30 PM, and 2:30 PM Pacific Standard Time:

"myRecurrenceTrigger": {
   "type": "Recurrence",
   "recurrence": {
      "frequency": "Week",
      "interval": 1,
      "schedule": {
         "hours": [ 10, 12, 14 ],
         "minutes": [ 30 ],
         "weekDays": [ "Monday" ]
      },
      "startTime": "2017-09-07T14:00:00",
      "timeZone": "Pacific Standard Time"
   }
}

Per altre informazioni ed esempi per questo trigger, vedere Creare e pianificare attività eseguite regolarmente.For more information plus examples for this trigger, see Create and schedule regularly running tasks.

Trigger di richiestaRequest trigger

Questo trigger fa in modo che l'app per la logica possa essere chiamata mediante la creazione di un endpoint in grado di accettare le richieste HTTP in ingresso.This trigger makes your logic app callable by creating an endpoint that can accept incoming HTTP requests. Per chiamare questo trigger, è necessario usare l'API listCallbackUrl nell'API REST del servizio di flusso di lavoro.To call this trigger, you must use the listCallbackUrl API in the Workflow Service REST API. Per informazioni su come usare questo trigger come endpoint HTTP, vedere Chiamare, attivare o annidare i flussi di lavoro con endpoint HTTP.To learn how to use this trigger as an HTTP endpoint, see Call, trigger, or nest workflows with HTTP endpoints.

"manual": {
   "type": "Request",
   "kind": "Http",
   "inputs": {
      "method": "GET | POST | PUT | PATCH | DELETE | HEAD",
      "relativePath": "<relative-path-for-accepted-parameter>",
      "schema": {
         "type": "object",
         "properties": { 
            "<propertyName>": {
               "type": "<property-type>"
            }
         },
         "required": [ "<required-properties>" ]
      }
   }
}

ObbligatorioRequired

Nome dell'elementoElement name typeType DESCRIZIONEDescription
manualmanual Oggetto JSONJSON Object Nome del trigger, ovvero un oggetto descritto in formato Javascript Object Notation (JSON).The name for the trigger, which is an object described in Javascript Object Notation (JSON) format
typetype stringString Tipo di trigger, ovvero "Request".The trigger type, which is "Request"
kindkind stringString Tipo di richiesta, ovvero "Http".The type of request, which is "Http"
inputsinputs Oggetto JSONJSON Object Input del trigger che ne definiscono il comportamento.The trigger's inputs that define the trigger's behavior

FacoltativoOptional

Nome dell'elementoElement name typeType DESCRIZIONEDescription
staticomethod stringString Metodo che le richieste devono usare per chiamare il trigger: "GET", "PUT", "POST", "PATCH", "DELETE" o "HEAD".The method that requests must use to call the trigger: "GET", "PUT", "POST", "PATCH", "DELETE", or "HEAD"
relativePathrelativePath stringString Percorso relativo per il parametro accettato dall'URL dell'endpoint HTTP.The relative path for the parameter that your HTTP endpoint's URL accepts
schemaschema Oggetto JSONJSON Object Schema JSON che descrive e convalida il payload, o gli input, che il trigger riceve dalla richiesta in ingresso.The JSON schema that describes and validates the payload, or inputs, that the trigger receives from the incoming request. Questo schema consente alle azioni del flusso di lavoro successive di conoscere le proprietà a cui fare riferimento.This schema helps subsequent workflow actions know the properties to reference.
propertiesproperties Oggetto JSONJSON Object Una o più proprietà nello schema JSON che descrive il payload.One or more properties in the JSON schema that describes the payload
Obbligatoriarequired ArrayArray Una o più proprietà che richiedono valori.One or more properties that require values

EsempioExample

Questo trigger di richiesta specifica che una richiesta in ingresso usi il metodo HTTP POST per chiamare il trigger e uno schema che convalidi l'input della richiesta in ingresso:This request trigger specifies that an incoming request use the HTTP POST method to call the trigger and a schema that validates input from the incoming request:

"myRequestTrigger": {
   "type": "Request",
   "kind": "Http",
   "inputs": {
      "method": "POST",
      "schema": {
         "type": "Object",
         "properties": {
            "customerName": {
               "type": "String"
            },
            "customerAddress": { 
               "type": "Object",
               "properties": {
                  "streetAddress": {
                     "type": "String"
                  },
                  "city": {
                     "type": "String"
                  }
               }
            }
         }
      }
   }
} 

Trigger HTTPHTTP trigger

Questo trigger esegue il polling di un endpoint specificato e controlla la risposta.This trigger polls a specified endpoint and checks the response. La risposta determina se il flusso di lavoro deve essere eseguito o meno.The response determines whether the workflow should run or not. L'oggetto JSON inputs include e richiede i parametri method e uri necessari per la costruzione della chiamata HTTP:The inputs JSON object includes and requires the method and uri parameters required for constructing the HTTP call:

"HTTP": {
   "type": "Http",
   "inputs": {
      "method": "GET | PUT | POST | PATCH | DELETE | HEAD",
      "uri": "<HTTP-or-HTTPS-endpoint-to-poll>",
      "queries": "<query-parameters>",
      "headers": { "<headers-for-request>" },
      "body": { "<payload-to-send>" },
      "authentication": { "<authentication-method>" },
      "retryPolicy": {
          "type": "<retry-policy-type>",
          "interval": "<retry-interval>",
          "count": <number-retry-attempts>
      }
   },
   "recurrence": {
      "frequency": "Second | Minute | Hour | Day | Week | Month | Year",
      "interval": <recurrence-interval-based-on-frequency>
   },
   "runtimeConfiguration": {
      "concurrency": {
         "runs": <maximum-number-for-concurrently-running-workflow-instances>
      }
   },
   "operationOptions": "singleInstance"
}

ObbligatorioRequired

Nome dell'elementoElement name typeType DESCRIZIONEDescription
HTTPHTTP Oggetto JSONJSON Object Nome del trigger, ovvero un oggetto descritto in formato Javascript Object Notation (JSON).The name for the trigger, which is an object described in Javascript Object Notation (JSON) format
typetype stringString Tipo di trigger, ovvero "Http".The trigger type, which is "Http"
inputsinputs Oggetto JSONJSON Object Input del trigger che ne definiscono il comportamento.The trigger's inputs that define the trigger's behavior
staticomethod Yes stringString
Uriuri Yes stringString
ricorrenzarecurrence Oggetto JSONJSON Object Frequenza e intervallo che descrive la frequenza con cui viene attivato il trigger.The frequency and interval that describes how often the trigger fires
frequencyfrequency stringString Unità di tempo che descrive la frequenza con cui viene attivato il trigger: "Second", "Minute", "Hour", "Day", "Week" o "Month".The unit of time that describes how often the trigger fires: "Second", "Minute", "Hour", "Day", "Week", or "Month"
intervalinterval IntegerInteger Numero intero positivo che indica l'intervallo con cui viene attivato il trigger in base alla frequenza.A positive integer that describes how often the trigger fires based on the frequency.

Ecco gli intervalli minimo e massimo:Here are the minimum and maximum intervals:

- Mese: 1-16 mesi- Month: 1-16 months
- Giorno: 1-500 giorni- Day: 1-500 days
- Ora: 1-12.000 ore- Hour: 1-12,000 hours
- Minuto: 1-72.000 minuti- Minute: 1-72,000 minutes
- Secondo: 1-9.999.999 secondi- Second: 1-9,999,999 seconds

Ad esempio, se l'intervallo è 6 e la frequenza è "month", la ricorrenza è ogni 6 mesi.For example, if the interval is 6, and the frequency is "month", then the recurrence is every 6 months.

FacoltativoOptional

Nome dell'elementoElement name typeType DESCRIZIONEDescription
queryqueries Oggetto JSONJSON Object Tutti i parametri di query che si vogliono includere con l'URL.Any query parameters that you want to include with the URL

Ad esempio, questo elemento aggiunge la stringa di query ?api-version=2015-02-01 all'URL:For example, this element adds the ?api-version=2015-02-01 query string to the URL:

"queries": { "api-version": "2015-02-01" }

Risultato: https://contoso.com?api-version=2015-02-01Result: https://contoso.com?api-version=2015-02-01

headersheaders Oggetto JSONJSON Object Una o più intestazioni da inviare con la richiesta.One or more headers to send with the request

Ad esempio, per impostare il linguaggio e il tipo per una richiesta:For example, to set the language and type for a request:

"headers": { "Accept-Language": "en-us", "Content-Type": "application/json" }

Corpobody Oggetto JSONJSON Object Payload (dati) da inviare all'endpoint.The payload (data) to send to the endpoint
authenticationauthentication Oggetto JSONJSON Object Metodo che deve essere usato dalla richiesta in ingresso per l'autenticazione.The method that the incoming request should use for authentication. Per altre informazioni, vedere Autenticazione in uscita dell'Utilità di pianificazione.For more information, see Scheduler Outbound Authentication. Oltre all'Utilità di pianificazione, la proprietà authority è supportata.Beyond Scheduler, the authority property is supported. Quando non è specificato, il valore predefinito è https://login.windows.net, ma è possibile usare un valore diverso, ad esempio https://login.windows\-ppe.net.When not specified, the default value is https://login.windows.net, but you can use a different value, such ashttps://login.windows\-ppe.net.
retryPolicyretryPolicy Oggetto JSONJSON Object Questo oggetto personalizza il comportamento in caso di nuovo tentativo per gli errori intermittenti che hanno codici di stato 4xx o 5xx.This object customizes the retry behavior for intermittent errors that have 4xx or 5xx status codes. Per altre informazioni, vedere il Criteri di ripetizione dei tentativi.For more information, see Retry policies.
Concorrenzaconcurrency Oggetto JSONJSON Object Per i trigger ricorrenti e di poll, questo oggetto specifica il numero massimo di istanze del flusso di lavoro eseguibili contemporaneamente.For recurring and polling triggers, this object specifies the maximum number of workflow instances that can run at the same time. Usare questo valore per limitare le richieste ricevute dai sistemi back-end.Use this value to limit the requests that backend systems receive.

Ad esempio, questo valore imposta il limite di concorrenza su 10 istanze:For example, this value sets the concurrency limit to 10 instances:

"concurrency": { "runs": 10 }

operationOptionsoperationOptions stringString L'opzione singleInstance specifica che il trigger viene attivato solo dopo che tutte le esecuzioni attive sono terminate.The singleInstance option specifies that the trigger fires only after all active runs are finished. Vedere Trigger: attivazione solo dopo il completamento delle esecuzioni attive.See Triggers: Fire only after active runs finish.

Con il trigger HTTP, l'API HTTP deve essere conforme a un modello specifico per poter interagire correttamente con l'app per la logica.To work well with your logic app, the HTTP trigger requires that the HTTP API conform to a specific pattern. Il trigger HTTP riconosce queste proprietà:The HTTP trigger recognizes these properties:

RispostaResponse ObbligatoriaRequired DESCRIZIONEDescription
Codice di statoStatus code Yes Il codice di stato "200 OK" avvia un'esecuzione.The "200 OK" status code starts a run. Nessun altro codice di stato avvia un'esecuzione.Any other status code doesn't start a run.
Intestazione retry-afterRetry-after header No No Numero di secondi prima che l'app per la logica esegua di nuovo il polling dell'endpoint.The number of seconds until the logic app polls the endpoint again
Intestazione LocationLocation header No No URL da chiamare al successivo intervallo di polling.The URL to call at the next polling interval. Se non è specificato, viene usato l'URL originale.If not specified, the original URL is used.

Comportamenti di esempio per diverse richiesteExample behaviors for different requests

Codice di statoStatus code Nuovo tentativo dopoRetry after ComportamentoBehavior
200200 {none}{none} Esegue il flusso di lavoro e quindi controlla di nuovo la presenza di altri dati dopo la ricorrenza definita.Run the workflow, then check again for more data after the defined recurrence.
200200 10 secondi10 seconds Esegue il flusso di lavoro e quindi controlla di nuovo la presenza di altri dati dopo 10 secondi.Run the workflow, then check again for more data after 10 seconds.
202202 60 secondi60 seconds Non attiva il flusso di lavoro.Don't trigger the workflow. Il tentativo successivo viene eseguito dopo un minuto, in base alla ricorrenza definita.The next attempt happens in one minute, subject to the defined recurrence. Se la ricorrenza definita è inferiore a un minuto, l'intestazione retry-after ha la precedenza.If the defined recurrence is less than one minute, the retry-after header takes precedence. In caso contrario, viene usata la ricorrenza definita.Otherwise, the defined recurrence is used.
400400 {none}{none} Richiesta non valida, non esegue il flusso di lavoro.Bad request, don't run the workflow. Se non è definito alcun oggetto retryPolicy, viene usato il criterio predefinito.If no retryPolicy is defined, then the default policy is used. Dopo aver raggiunto il numero di tentativi, il trigger controlla di nuovo la presenza di dati dopo la ricorrenza definita.After the number of retries has been reached, the trigger checks again for data after the defined recurrence.
500500 {none}{none} Errore del server, il flusso di lavoro non viene eseguito.Server error, don't run the workflow. Se non è definito alcun oggetto retryPolicy, viene usato il criterio predefinito.If no retryPolicy is defined, then the default policy is used. Dopo aver raggiunto il numero di tentativi, il trigger controlla di nuovo la presenza di dati dopo la ricorrenza definita.After the number of retries has been reached, the trigger checks again for data after the defined recurrence.

Output dei trigger HTTPHTTP trigger outputs

Nome dell'elementoElement name typeType DESCRIZIONEDescription
headersheaders Oggetto JSONJSON Object Intestazioni dalla risposta HTTPThe headers from the HTTP response
Corpobody Oggetto JSONJSON Object Corpo dalla risposta HTTPThe body from the HTTP response

Trigger APIConnectionAPIConnection trigger

Questo trigger funziona come il trigger HTTP, ma usa API gestite da Microsoft, pertanto i parametri per questo trigger sono differenti.This trigger works like the HTTP trigger, but uses Microsoft-managed APIs so the parameters for this trigger differ.

Di seguito è riportata la definizione del trigger, anche se molte sezioni sono facoltative, pertanto il comportamento del trigger dipende dal fatto che le sezioni siano incluse o meno:Here is the trigger definition, although many sections are optional, so the trigger's behavior depends on whether or not sections are included:

"<APIConnectionTriggerName>": {
   "type": "ApiConnection",
   "inputs": {
      "host": {
         "api": {
            "runtimeUrl": "<managed-API-endpoint-URL>"
         },
         "connection": {
            "name": "@parameters('$connections')['<connection-name>'].name"
         },
      },
      "method": "GET | PUT | POST | PATCH | DELETE | HEAD",
      "queries": "<query-parameters>",
      "headers": { "<headers-for-request>" },
      "body": { "<payload-to-send>" },
      "authentication": { "<authentication-method>" },
      "retryPolicy": {
          "type": "<retry-policy-type>",
          "interval": "<retry-interval>",
          "count": <number-retry-attempts>
      }
   },
   "recurrence": {
      "frequency": "Second | Minute | Hour | Day | Week | Month | Year",
      "interval": "<recurrence-interval-based-on-frequency>"
   },
   "runtimeConfiguration": {
      "concurrency": {
         "runs": <maximum-number-for-concurrently-running-workflow-instances>
      }
   },
   "operationOptions": "singleInstance"
}

ObbligatorioRequired

Nome dell'elementoElement name typeType DESCRIZIONEDescription
APIConnectionTriggerNameAPIConnectionTriggerName Oggetto JSONJSON Object Nome del trigger, ovvero un oggetto descritto in formato Javascript Object Notation (JSON).The name for the trigger, which is an object described in Javascript Object Notation (JSON) format
typetype stringString Tipo di trigger, ovvero "ApiConnection".The trigger type, which is "ApiConnection"
inputsinputs Oggetto JSONJSON Object Input del trigger che ne definiscono il comportamento.The trigger's inputs that define the trigger's behavior
hosthost Oggetto JSONJSON Object Oggetto JSON che descrive il gateway host e l'ID per l'API gestita.The JSON object that describes the host gateway and ID for the managed API

L'oggetto JSON host ha questi elementi: api e connectionThe host JSON object has these elements: api and connection

apiapi Oggetto JSONJSON Object URL dell'endpoint per l'API gestita:The endpoint URL for the managed API:

"runtimeUrl": "<managed-API-endpoint-URL>"

connessioneconnection Oggetto JSONJSON Object Nome per la connessione API gestita usata dal flusso di lavoro, che deve includere un riferimento a un parametro denominato $connection:The name for the managed API connection that the workflow uses, which must include a reference to a parameter named $connection:

"name": "@parameters('$connections')['<connection-name>'].name"

staticomethod stringString Metodo HTTP per la comunicazione con l'API gestita: "GET", "PUT", "POST", "PATCH", "DELETE" o "HEAD".The HTTP method for communicating with the managed API: "GET", "PUT", "POST", "PATCH", "DELETE", or "HEAD"
ricorrenzarecurrence Oggetto JSONJSON Object Frequenza e intervallo che descrive la frequenza con cui viene attivato il trigger.The frequency and interval that describes how often the trigger fires
frequencyfrequency stringString Unità di tempo che descrive la frequenza con cui viene attivato il trigger: "Second", "Minute", "Hour", "Day", "Week" o "Month".The unit of time that describes how often the trigger fires: "Second", "Minute", "Hour", "Day", "Week", or "Month"
intervalinterval IntegerInteger Numero intero positivo che indica l'intervallo con cui viene attivato il trigger in base alla frequenza.A positive integer that describes how often the trigger fires based on the frequency.

Ecco gli intervalli minimo e massimo:Here are the minimum and maximum intervals:

- Mese: 1-16 mesi- Month: 1-16 months
- Giorno: 1-500 giorni- Day: 1-500 days
- Ora: 1-12.000 ore- Hour: 1-12,000 hours
- Minuto: 1-72.000 minuti- Minute: 1-72,000 minutes
- Secondo: 1-9.999.999 secondi- Second: 1-9,999,999 seconds

Ad esempio, se l'intervallo è 6 e la frequenza è "month", la ricorrenza è ogni 6 mesi.For example, if the interval is 6, and the frequency is "month", then the recurrence is every 6 months.

FacoltativoOptional

Nome dell'elementoElement name typeType DESCRIZIONEDescription
queryqueries Oggetto JSONJSON Object Tutti i parametri di query che si vogliono includere con l'URL.Any query parameters that you want to include with the URL

Ad esempio, questo elemento aggiunge la stringa di query ?api-version=2015-02-01 all'URL:For example, this element adds the ?api-version=2015-02-01 query string to the URL:

"queries": { "api-version": "2015-02-01" }

Risultato: https://contoso.com?api-version=2015-02-01Result: https://contoso.com?api-version=2015-02-01

headersheaders Oggetto JSONJSON Object Una o più intestazioni da inviare con la richiesta.One or more headers to send with the request

Ad esempio, per impostare il linguaggio e il tipo per una richiesta:For example, to set the language and type for a request:

"headers": { "Accept-Language": "en-us", "Content-Type": "application/json" }

Corpobody Oggetto JSONJSON Object Oggetto JSON che descrive il payload (dati) da inviare all'API gestita.The JSON object that describes the payload (data) to send to the managed API
authenticationauthentication Oggetto JSONJSON Object Metodo che deve essere usato da una richiesta in ingresso per l'autenticazione.The method that an incoming request should use for authentication. Per altre informazioni, vedere Autenticazione in uscita dell'Utilità di pianificazione.For more information, see Scheduler Outbound Authentication.
retryPolicyretryPolicy Oggetto JSONJSON Object Questo oggetto personalizza il comportamento in caso di nuovo tentativo per gli errori intermittenti che hanno codici di stato 4xx o 5xx:This object customizes the retry behavior for intermittent errors that have 4xx or 5xx status codes:

"retryPolicy": { "type": "<retry-policy-type>", "interval": "<retry-interval>", "count": <number-retry-attempts> }

Per altre informazioni, vedere il Criteri di ripetizione dei tentativi.For more information, see Retry policies.

Concorrenzaconcurrency Oggetto JSONJSON Object Per i trigger ricorrenti e di poll, questo oggetto specifica il numero massimo di istanze del flusso di lavoro eseguibili contemporaneamente.For recurring and polling triggers, this object specifies the maximum number of workflow instances that can run at the same time. Usare questo valore per limitare le richieste ricevute dai sistemi back-end.Use this value to limit the requests that backend systems receive.

Ad esempio, questo valore imposta il limite di concorrenza su 10 istanze: "concurrency": { "runs": 10 }For example, this value sets the concurrency limit to 10 instances: "concurrency": { "runs": 10 }

operationOptionsoperationOptions stringString L'opzione singleInstance specifica che il trigger viene attivato solo dopo che tutte le esecuzioni attive sono terminate.The singleInstance option specifies that the trigger fires only after all active runs are finished. Vedere Trigger: attivazione solo dopo il completamento delle esecuzioni attive.See Triggers: Fire only after active runs finish.

EsempioExample

"Create_daily_report": {
   "type": "ApiConnection",
   "inputs": {
      "host": {
         "api": {
            "runtimeUrl": "https://myReportsRepo.example.com/"
         },
         "connection": {
            "name": "@parameters('$connections')['<connection-name>'].name"
         }     
      },
      "method": "POST",
      "body": {
         "category": "statusReports"
      }  
   },
   "recurrence": {
      "frequency": "Day",
      "interval": 1
   }
}

Output del trigger APIConnectionAPIConnection trigger outputs

Nome dell'elementoElement name typeType DESCRIZIONEDescription
headersheaders Oggetto JSONJSON Object Intestazioni dalla risposta HTTPThe headers from the HTTP response
Corpobody Oggetto JSONJSON Object Corpo dalla risposta HTTPThe body from the HTTP response

Trigger HTTPWebhookHTTPWebhook trigger

Questo trigger funziona come il trigger Request mediante la creazione di un endpoint che può essere chiamato per l'app per la logica.This trigger works like the Request trigger by creating a callable endpoint for your logic app. Tuttavia, questo trigger chiama anche un URL dell'endpoint specificato per la registrazione o l'annullamento della registrazione di una sottoscrizione.However, this trigger also calls a specified endpoint URL for registering or unregistering a subscription. È possibile specificare i limiti per un trigger webhook allo stesso modo dei limiti asincroni HTTP.You can specify limits on a webhook trigger in the same way as HTTP Asynchronous Limits.

Di seguito è riportata la definizione del trigger, anche se molte sezioni sono facoltative e il comportamento del trigger dipende dalle sezioni usate o omesse:Here is the trigger definition, though many sections are optional, and the trigger's behavior depends on the sections that you use or omit:

"HTTP_Webhook": {
    "type": "HttpWebhook",
    "inputs": {
        "subscribe": {
            "method": "POST",
            "uri": "<subscribe-to-endpoint-URL>",
            "headers": { "<headers-for-request>" },
            "body": {
                "hub.callback": "@{listCallbackUrl()}",
                "hub.mode": "subscribe",
                "hub.topic": "<subscription-topic>"
            },
            "authentication": {},
            "retryPolicy": {}
        },
        "unsubscribe": {
            "method": "POST",
            "url": "<unsubscribe-from-endpoint-URL>",
            "body": {
                "hub.callback": "@{workflow().endpoint}@{listCallbackUrl()}",
                "hub.mode": "unsubscribe",
                "hub.topic": "<subscription-topic>"
            },
            "authentication": {}
        }
    },
}

ObbligatorioRequired

Nome dell'elementoElement name typeType DESCRIZIONEDescription
HTTP_WebhookHTTP_Webhook Oggetto JSONJSON Object Nome del trigger, ovvero un oggetto descritto in formato Javascript Object Notation (JSON).The name for the trigger, which is an object described in Javascript Object Notation (JSON) format
typetype stringString Tipo di trigger, ovvero "HttpWebhook".The trigger type, which is "HttpWebhook"
inputsinputs Oggetto JSONJSON Object Input del trigger che ne definiscono il comportamento.The trigger's inputs that define the trigger's behavior
subscribesubscribe Oggetto JSONJSON Object Richiesta in uscita da chiamare e per cui eseguire la registrazione iniziale quando viene creato il trigger.The outgoing request to call and perform the initial registration when the trigger is created. Questa chiamata avviene in modo che il trigger possa iniziare a essere in ascolto degli eventi nell'endpoint.This call happens so that the trigger can start listening to events at the endpoint. Per altre informazioni, vedere subscribe e unsubscribe.For more information, see subscribe and unsubscribe.
staticomethod stringString Metodo HTTP usato per la richiesta di sottoscrizione: "GET", "PUT", "POST", "PATCH", "DELETE" o "HEAD".The HTTP method used for the subscription request: "GET", "PUT", "POST", "PATCH", "DELETE", or "HEAD"
Uriuri stringString URL dell'endpoint a cui inviare la richiesta di sottoscrizione.The endpoint URL for where to send the subscription request

FacoltativoOptional

Nome dell'elementoElement name typeType DESCRIZIONEDescription
unsubscribeunsubscribe Oggetto JSONJSON Object Richiesta in uscita per chiamare e annullare automaticamente la sottoscrizione quando un'operazione rende il trigger non valido.The outgoing request to automatically call and cancel the subscription when an operation makes the trigger invalid. Per altre informazioni, vedere subscribe e unsubscribe.For more information, see subscribe and unsubscribe.
staticomethod stringString Metodo HTTP da usare per la richiesta di annullamento: "GET", "PUT", "POST", "PATCH", "DELETE" o "HEAD".The HTTP method to use for the cancellation request: "GET", "PUT", "POST", "PATCH", "DELETE", or "HEAD"
Uriuri stringString URL dell'endpoint a cui inviare la richiesta di annullamento.The endpoint URL for where to send the cancellation request
Corpobody Oggetto JSONJSON Object Oggetto JSON che descrive il payload (dati) per la richiesta di sottoscrizione o di annullamento.The JSON object that describes the payload (data) for the subscription or cancellation request
authenticationauthentication Oggetto JSONJSON Object Metodo che deve essere usato da una richiesta in ingresso per l'autenticazione.The method that an incoming request should use for authentication. Per altre informazioni, vedere Autenticazione in uscita dell'Utilità di pianificazione.For more information, see Scheduler Outbound Authentication.
retryPolicyretryPolicy Oggetto JSONJSON Object Questo oggetto personalizza il comportamento in caso di nuovo tentativo per gli errori intermittenti che hanno codici di stato 4xx o 5xx:This object customizes the retry behavior for intermittent errors that have 4xx or 5xx status codes:

"retryPolicy": { "type": "<retry-policy-type>", "interval": "<retry-interval>", "count": <number-retry-attempts> }

Per altre informazioni, vedere il Criteri di ripetizione dei tentativi.For more information, see Retry policies.

EsempioExample

"myAppSpotTrigger": {
   "type": "HttpWebhook",
   "inputs": {
      "subscribe": {
         "method": "POST",
         "uri": "https://pubsubhubbub.appspot.com/subscribe",
         "headers": {},
         "body": {
            "hub.callback": "@{listCallbackUrl()}",
            "hub.mode": "subscribe",
            "hub.topic": "https://pubsubhubbub.appspot.com/articleCategories/technology"
         },
      },
      "unsubscribe": {
         "method": "POST",
         "url": "https://pubsubhubbub.appspot.com/subscribe",
         "body": {
            "hub.callback": "@{workflow().endpoint}@{listCallbackUrl()}",
            "hub.mode": "unsubscribe",
            "hub.topic": "https://pubsubhubbub.appspot.com/articleCategories/technology"
         },
      }
   },
}

subscribe e unsubscribesubscribe and unsubscribe

La chiamata a subscribe viene effettuata ogni volta che il flusso di lavoro viene modificato, ad esempio quando vengono rinnovate le credenziali o cambiano i parametri di input del trigger.The subscribe call happens when the workflow changes in any way, for example, when credentials are renewed, or the trigger's input parameters change. La chiamata usa gli stessi parametri delle azioni HTTP standard.The call uses the same parameters as standard HTTP actions.

La chiamata a unsubscribe viene effettuata automaticamente quando un'operazione rende il trigger HTTPWebhook non valido, ad esempio:The unsubscribe call automatically happens when an operation makes the HTTPWebhook trigger invalid, for example:

  • Eliminazione o disabilitazione del trigger.Deleting or disabling the trigger.
  • Eliminazione o disabilitazione del flusso di lavoro.Deleting or disabling the workflow.
  • Eliminazione o disabilitazione della sottoscrizione.Deleting or disabling the subscription.

Per supportare queste chiamate, la funzione @listCallbackUrl() restituisce un "URL callback" univoco per questo trigger.To support these calls, the @listCallbackUrl() function returns a unique "callback URL" for this trigger. Questo URL rappresenta un identificatore univoco per gli endpoint che usano l'API REST del servizio.This URL represents a unique identifier for the endpoints that use the service's REST API. I parametri per questa funzione sono gli stessi del trigger HTTP.The parameters for this function are the same as the HTTP trigger.

Output del trigger HTTPWebhookHTTPWebhook trigger outputs

Nome dell'elementoElement name typeType DESCRIZIONEDescription
headersheaders Oggetto JSONJSON Object Intestazioni dalla risposta HTTPThe headers from the HTTP response
Corpobody Oggetto JSONJSON Object Corpo dalla risposta HTTPThe body from the HTTP response

Trigger ApiConnectionWebhookApiConnectionWebhook trigger

Questo trigger funziona come il trigger HTTPWebhook, ma usa API gestite da Microsoft.This trigger works like the HTTPWebhook trigger, but uses Microsoft-managed APIs.

Ecco la definizione del trigger:Here is the trigger definition:

"<ApiConnectionWebhookTriggerName>": {
   "type": "ApiConnectionWebhook",
   "inputs": {
      "host": {
         "connection": {
            "name": "@parameters('$connections')['<connection-name>']['connectionId']"
         }
      },        
      "body": {
          "NotificationUrl": "@{listCallbackUrl()}"
      },
      "queries": "<query-parameters>"
   }
}

ObbligatorioRequired

Nome dell'elementoElement name typeType DESCRIZIONEDescription
<ApiConnectionWebhookTriggerName><ApiConnectionWebhookTriggerName> Oggetto JSONJSON Object Nome del trigger, ovvero un oggetto descritto in formato Javascript Object Notation (JSON).The name for the trigger, which is an object described in Javascript Object Notation (JSON) format
typetype stringString Tipo di trigger, ovvero "ApiConnectionWebhook".The trigger type, which is "ApiConnectionWebhook"
inputsinputs Oggetto JSONJSON Object Input del trigger che ne definiscono il comportamento.The trigger's inputs that define the trigger's behavior
hosthost Oggetto JSONJSON Object Oggetto JSON che descrive il gateway host e l'ID per l'API gestita.The JSON object that describes the host gateway and ID for the managed API

L'oggetto JSON host ha questi elementi: api e connectionThe host JSON object has these elements: api and connection

connessioneconnection Oggetto JSONJSON Object Nome per la connessione API gestita usata dal flusso di lavoro, che deve includere un riferimento a un parametro denominato $connection:The name for the managed API connection that the workflow uses, which must include a reference to a parameter named $connection:

"name": "@parameters('$connections')['<connection-name>']['connectionId']"

Corpobody Oggetto JSONJSON Object Oggetto JSON che descrive il payload (dati) da inviare all'API gestita.The JSON object that describes the payload (data) to send to the managed API
NotificationUrlNotificationUrl stringString Restituisce un "URL callback" univoco per questo trigger che l'API gestita può usare.Returns a unique "callback URL" for this trigger that the managed API can use

FacoltativoOptional

Nome dell'elementoElement name typeType DESCRIZIONEDescription
queryqueries Oggetto JSONJSON Object Tutti i parametri di query che si vogliono includere con l'URL.Any query parameters that you want to include with the URL

Ad esempio, questo elemento aggiunge la stringa di query ?folderPath=Inbox all'URL:For example, this element adds the ?folderPath=Inbox query string to the URL:

"queries": { "folderPath": "Inbox" }

Risultato: https://<managed-API-URL>?folderPath=InboxResult: https://<managed-API-URL>?folderPath=Inbox

Trigger: condizioniTriggers: Conditions

Per qualsiasi trigger, è possibile includere una matrice con una o più condizioni per determinare se il flusso di lavoro deve essere eseguito o meno.For any trigger, you can include an array with one or more conditions that determine whether the workflow should run or not. In questo esempio il trigger del report viene attivato solo quando il parametro sendReports del flusso di lavoro è impostato su true.In this example, the report trigger fires only while the workflow's sendReports parameter is set to true.

"myDailyReportTrigger": {
   "type": "Recurrence",
   "conditions": [ {
      "expression": "@parameters('sendReports')"
   } ],
   "recurrence": {
      "frequency": "Day",
      "interval": 1
   }
}

Inoltre, le condizioni possono fare riferimento al codice di stato del trigger.Also, conditions can reference the trigger's status code. Ad esempio, si supponga di voler avviare un flusso di lavoro solo quando il sito Web restituisce un codice di stato "500":For example, suppose you want to start a workflow only when your website returns a "500" status code:

"conditions": [ {
   "expression": "@equals(triggers().code, 'InternalServerError')"  
} ]  

Nota

Per impostazione predefinita, un trigger viene attivato solo alla ricezione di una risposta "200 OK".By default, a trigger fires only on receiving a "200 OK" response. Quando un'espressione fa riferimento a un codice di stato di un trigger in qualsiasi modo, il comportamento predefinito del trigger viene sostituito.When an expression references a trigger's status code in any way, the trigger's default behavior is replaced. Di conseguenza, se si vuole che il trigger venga attivato per più codici di stato, ad esempio i codici di stato 200 e 201, è necessario includere questa istruzione come condizione:So, if you want the trigger to fire for multiple status codes, for example, status code 200 and status code 201, you must include this statement as your condition:

@or(equals(triggers().code, 200),equals(triggers().code, 201))

Trigger: suddividere una matrice in più esecuzioniTriggers: Split an array into multiple runs

Se il trigger restituisce una matrice che deve essere elaborata dall'app per la logica, a volte un ciclo "foreach" può impiegare troppo tempo per elaborare ogni elemento della matrice.If your trigger returns an array for your logic app to process, sometimes a "for each" loop might take too long to process each array item. In alternativa, è possibile usare la proprietà SplitOn nel trigger per eseguire il debatch della matrice.Instead, you can use the SplitOn property in your trigger to debatch the array.

Il debatching suddivide gli elementi della matrice e avvia una nuova istanza dell'app per la logica, eseguita per ogni elemento della matrice.Debatching splits up the array items and starts a new logic app instance that runs for each array item. Questo approccio è utile, ad esempio, quando si vuole eseguire il polling di un endpoint che può restituire più elementi nuovi tra gli intervalli di polling.This approach is useful, for example, when you want to poll an endpoint that might return multiple new items between polling intervals. Per informazioni sul numero massimo di elementi della matrice che la proprietà SplitOn può elaborare in un'unica esecuzione dell'app per la logica, vedere Limiti e configurazione.For the maximum number of array items that SplitOn can process in a single logic app run, see Limits and configuration.

Nota

È possibile aggiungere SplitOn solo ai trigger tramite la definizione o l'override manuale nella visualizzazione codice per la definizione JSON dell'app per la logica.You can add SplitOn only to triggers by manually defining or overriding in code view for your logic app's JSON definition. Non è possibile usare SplitOn se si vuole implementare un modello di risposta sincrona.You can't use SplitOn when you want to implement a synchronous response pattern. Qualsiasi flusso di lavoro che usa SplitOn e include un'azione di risposta viene eseguito in modo asincrono e invia immediatamente una risposta 202 ACCEPTED.Any workflow that uses SplitOn and includes a response action runs asynchronously and immediately sends a 202 ACCEPTED response.

Se il file Swagger del trigger descrive un payload che è una matrice, la proprietà SplitOn viene automaticamente aggiunta al trigger.If your trigger's Swagger file describes a payload that is an array, the SplitOn property is automatically added to your trigger. In caso contrario, aggiungere questa proprietà all'interno del payload della risposta che include la matrice di cui si vuole eseguire il debatch.Otherwise, add this property inside the response payload that has the array you want to debatch.

Ad esempio, si supponga che un'API restituisca questa risposta:For example, suppose you have an API that returns this response:

{
    "Status": "Succeeded",
    "Rows": [ 
        { 
            "id": 938109380,
            "name": "customer-name-one"
        },
        {
            "id": 938109381,
            "name": "customer-name-two"
        }
    ]
}

L'app per la logica richiede solo il contenuto di Rows, in modo da poter creare un trigger come in questo esempio.Your logic app only needs the content from Rows, so you can create a trigger like this example.

"myDebatchTrigger": {
    "type": "Http",
    "recurrence": {
        "frequency": "Second",
        "interval": 1
    },
    "inputs": {
        "uri": "https://mydomain.com/myAPI",
        "method": "GET"
    },
    "splitOn": "@triggerBody()?.Rows"
}

Nota

Se si usa il comando SplitOn, non è possibile ottenere le proprietà esterne alla matrice.If you use the SplitOn command, you can't get the properties that are outside the array. Di conseguenza, per questo esempio non è possibile ottenere la proprietà status nella risposta restituita dall'API.So for this example, you can't get the status property in the response returned from the API.

Per evitare un errore se la proprietà Rows non esiste, questo esempio usa l'operatore ?.To avoid a failure if the Rows property doesn't exist, this example uses the ? operator.

La definizione del flusso di lavoro può ora usare @triggerBody().name per ottenere customer-name-one dalla prima esecuzione e customer-name-two dalla seconda esecuzione.Your workflow definition can now use @triggerBody().name to get customer-name-one from the first run and customer-name-two from the second run. Gli output del trigger saranno simili a questi esempi:So, your trigger outputs look like these examples:

{
    "body": {
        "id": 938109380,
        "name": "customer-name-one"
    }
}
{
    "body": {
        "id": 938109381,
        "name": "customer-name-two"
    }
}

Trigger: opzioni relative alle operazioniTriggers: Operation options

Questi trigger forniscono altre opzioni che consentono di modificare il comportamento predefinito.These triggers provide more options that let you change the default behavior.

TriggerTrigger Opzione dell'operazioneOperation option DESCRIZIONEDescription
Recurrence,Recurrence,
HTTP,HTTP,
ApiConnectionApiConnection
singleInstancesingleInstance Il trigger viene attivato solo dopo che tutte le esecuzioni attive vengono completate.Fire the trigger only after all active runs have finished.

Trigger: attivazione solo dopo il completamento delle esecuzioni attiveTriggers: Fire only after active runs finish

Per i trigger per cui è possibile impostare la ricorrenza, è possibile specificare che il trigger venga attivato solo dopo che tutte le esecuzioni attive sono state completate.For triggers where you can set the recurrence, you can specify that the trigger fire only after all active runs have finished. Se una ricorrenza pianificata avviene durante l'esecuzione di un'istanza del flusso di lavoro, il trigger viene ignorato e attende fino alla successiva ricorrenza pianificata prima di riprovare.If a scheduled recurrence happens while a workflow instance is running, the trigger skips and waits until the next scheduled recurrence before checking again. Ad esempio: For example:

"myRecurringTrigger": {
    "type": "Recurrence",
    "recurrence": {
        "frequency": "Hour",
        "interval": 1,
    },
    "operationOptions": "singleInstance"
}

Panoramica delle azioniActions overview

Esistono molti tipi di azioni, ognuna con un comportamento univoco.There are many types of actions, each with unique behavior. Ogni tipo di azione ha input diversi che ne definiscono il comportamento.Each action type has different inputs that define an action's behavior. Le azioni di raccolta possono contenere molte altre azioni.Collection actions can contain many other actions within themselves.

Azioni standardStandard actions

Tipo di azioneAction type DESCRIZIONEDescription
HTTPHTTP Chiama un endpoint Web HTTP.Calls an HTTP web endpoint.
ApiConnectionApiConnection Funziona come l'azione HTTP, ma usa API gestite da Microsoft.Works like the HTTP action, but uses Microsoft-managed APIs.
ApiConnectionWebhookApiConnectionWebhook Funziona come HTTPWebhook, ma usa API gestite da Microsoft.Works like HTTPWebhook, but uses Microsoft-managed APIs.
RispostaResponse Definisce la risposta per una chiamata in ingresso.Defines the response for an incoming call.
ComponiCompose Costruisce un oggetto arbitrario dagli input dell'azione.Constructs an arbitrary object from the action's inputs.
FunzioneFunction Rappresenta una funzione di Azure.Represents an Azure function.
WaitWait Attende per un intervallo di tempo fisso o fino a un momento specifico.Waits a fixed amount of time or until a specific time.
WorkflowWorkflow Rappresenta un flusso di lavoro annidato.Represents a nested workflow.
ComponiCompose Costruisce un oggetto arbitrario dagli input dell'azione.Constructs an arbitrary object from the action's inputs.
QueryQuery Filtra una matrice in base a una condizione.Filters an array based on a condition.
SelectSelect Proietta ogni elemento di una matrice in un nuovo valore.Projects each element of an array into a new value. Ad esempio, è possibile convertire una matrice di numeri in una matrice di oggetti.For example, you can convert an array of numbers into an array of objects.
TabellaTable Converte una matrice di elementi in tabella CSV o HTML.Converts an array of items into a CSV or HTML table.
TerminateTerminate Arresta l'esecuzione di un flusso di lavoro.Stops running a workflow.
WaitWait Attende per un intervallo di tempo fisso o fino a un momento specifico.Waits a fixed amount of time or until a specific time.
WorkflowWorkflow Rappresenta un flusso di lavoro annidato.Represents a nested workflow.

Azioni di raccoltaCollection actions

Tipo di azioneAction type DESCRIZIONEDescription
IfIf Valuta un'espressione e, in base al risultato, esegue il ramo corrispondente.Evaluate an expression and based on the result, runs the corresponding branch.
SwitchSwitch Esegue azioni diverse in base a valori specifici di un oggetto.Perform different actions based on specific values of an object.
ForEachForEach Questa azione di esecuzione a ciclo continuo scorre una matrice ed esegue azioni interne per ogni elemento.This looping action iterates through an array and performs inner actions on each array item.
UntilUntil Questa azione di esecuzione a ciclo continuo esegue azioni interne finché una condizione non restituisce true.This looping action performs inner actions until a condition results to true.
AmbitoScope Da usare per il raggruppamento logico di altre azioni.Use for logically grouping other actions.

Azione HTTPHTTP action

Un'azione HTTP chiama un endpoint specificato e controlla la risposta per determinare se il flusso di lavoro debba o meno essere eseguito.An HTTP action calls a specified endpoint and checks the response to determine whether the workflow should run or not. Ad esempio: For example:

"myLatestNewsAction": {
    "type": "Http",
    "inputs": {
        "method": "GET",
        "uri": "https://mynews.example.com/latest"
    }
}

In questo caso, l'oggetto inputs accetta i parametri necessari per la costruzione di una chiamata HTTP:Here, the inputs object takes these parameters required for constructing an HTTP call:

Nome dell'elementoElement name ObbligatoriaRequired typeType DESCRIZIONEDescription
staticomethod Yes stringString Usare uno di questi metodi HTTP: "GET", "POST", "PUT", "DELETE", "PATCH" o "HEAD"Uses one of these HTTP methods: "GET", "POST", "PUT", "DELETE", "PATCH", or "HEAD"
Uriuri Yes stringString Endpoint HTTP o HTTPS controllato dal trigger.The HTTP or HTTPs endpoint that the trigger checks. Dimensione massima della stringa: 2 KBMaximum string size: 2 KB
queryqueries No No Oggetto JSONJSON Object Rappresenta tutti i parametri di query che si vuole includere nell'URL.Represents any query parameters that you want to include in the URL.

"queries": { "api-version": "2015-02-01" }, ad esempio, aggiunge ?api-version=2015-02-01 all'URL.For example, "queries": { "api-version": "2015-02-01" } adds ?api-version=2015-02-01 to the URL.

headersheaders No No Oggetto JSONJSON Object Rappresenta ogni intestazione inviata nella richiesta.Represents each header that's sent in the request.

Ad esempio, per impostare il linguaggio e il tipo in una richiesta:For example, to set the language and type on a request:

"headers": { "Accept-Language": "en-us", "Content-Type": "application/json" }

Corpobody No No Oggetto JSONJSON Object Rappresenta il payload inviato all'endpoint.Represents the payload that's sent to the endpoint.
retryPolicyretryPolicy No No Oggetto JSONJSON Object Usare questo oggetto per personalizzare il comportamento in caso di nuovo tentativo per gli errori 4xx o 5xx.Use this object for customizing the retry behavior for 4xx or 5xx errors. Per altre informazioni, vedere il Criteri di ripetizione dei tentativi.For more information, see Retry policies.
operationsOptionsoperationsOptions No No stringString Definisce il set di comportamenti speciali di cui eseguire l'override.Defines the set of special behaviors to override.
authenticationauthentication No No Oggetto JSONJSON Object Rappresenta il metodo che deve essere usato dalla richiesta per l'autenticazione.Represents the method that the request should use for authentication. Per altre informazioni, vedere Autenticazione in uscita dell'Utilità di pianificazione.For more information, see Scheduler Outbound Authentication.

Oltre all'Utilità di pianificazione, è supportata un'altra proprietà: authority.Beyond Scheduler, there is one more supported property: authority. Per impostazione predefinita, questo valore è https://login.windows.net quando non è specificato, ma è possibile usare un valore diverso, ad esempio https://login.windows\-ppe.net.By default, this value is https://login.windows.net when not specified, but you can use a different value, such ashttps://login.windows\-ppe.net.

Le azioni HTTP e APIConnection supportano i criteri per i tentativi.HTTP actions and APIConnection actions support retry policies. I criteri per i tentativi vengono applicati agli errori intermittenti, caratterizzati dai codici di stato HTTP 408, 429 e 5xx, oltre che alle eccezioni per la connettività.A retry policy applies to intermittent failures, characterized as HTTP status codes 408, 429, and 5xx, in addition to any connectivity exceptions. È possibile definire questi criteri con l'oggetto retryPolicy, come mostrato qui:You can define this policy with the retryPolicy object as shown here:

"retryPolicy": {
    "type": "<retry-policy-type>",
    "interval": <retry-interval>,
    "count": <number-of-retry-attempts>
}

Questa azione HTTP di esempio riprova il recupero delle ultime notizie per due volte, se si verificano errori intermittenti, per un totale di tre esecuzioni e con un ritardo di 30 secondi tra un tentativo e l'altro:This example HTTP action retries fetching the latest news two times if there are intermittent failures for a total of three executions and a 30-second delay between each attempt:

"myLatestNewsAction": {
    "type": "Http",
    "inputs": {
        "method": "GET",
        "uri": "https://mynews.example.com/latest",
        "retryPolicy": {
            "type": "fixed",
            "interval": "PT30S",
            "count": 2
        }
    }
}

L'intervallo tra i tentativi viene specificato nel formato ISO 8601.The retry interval is specified in ISO 8601 format. Questo intervallo ha un valore predefinito e minimo di 20 secondi, mentre il valore massimo è di un'ora.This interval has a default and minimum value of 20 seconds, while the maximum value is one hour. Il numero predefinito e massimo di tentativi è pari a quattro ore.The default and maximum retry count is four hours. Se non si specifica alcuna definizione dei criteri di ripetizione, viene usata una strategia fixed con valori predefiniti per l'intervallo e il numero di tentativi.If you don't specify a retry policy definition, a fixed strategy is used with default retry count and interval values. Per disabilitare i criteri per i tentativi, impostare il tipo su None.To disable the retry policy, set its type to None.

Modelli asincroniAsynchronous patterns

Per impostazione predefinita, tutte le azioni basate su HTTP supportano il modello di operazione asincrono standard.By default, all HTTP-based actions support the standard asynchronous operation pattern. Di conseguenza, se il server remoto indica che la richiesta viene accettata per l'elaborazione con una risposta "202 ACCEPTED", il motore di App per la logica continua il polling dell'URL specificato nell'intestazione location della risposta fino a raggiungere uno stato terminale, che corrisponde a una risposta diversa da 202.So if the remote server indicates that the request is accepted for processing with a "202 ACCEPTED" response, the Logic Apps engine keeps polling the URL specified in the response's location header until reaching a terminal state, which is a non-202 response.

Per disabilitare il comportamento asincrono descritto in precedenza, impostare operationOptions su DisableAsyncPattern negli input dell'azione.To disable the asynchronous behavior previously described, set operationOptions to DisableAsyncPattern in the action inputs. In questo caso, l'output dell'azione è basato sulla risposta 202 iniziale dal server.In this case, the action's output is based on the initial 202 response from the server. Ad esempio: For example:

"invokeLongRunningOperationAction": {
    "type": "Http",
    "inputs": {
        "method": "POST",
        "uri": "https://host.example.com/resources"
    },
    "operationOptions": "DisableAsyncPattern"
}

Limiti asincroniAsynchronous limits

È possibile limitare la durata di un modello asincrono a un intervallo di tempo specifico.You can limit the duration for an asynchronous pattern to a specific time interval. Se l'intervallo di tempo trascorre senza raggiungere uno stato terminale, lo stato dell'azione viene contrassegnato come Cancelled con il codice ActionTimedOut.If the time interval elapses without reaching a terminal state, the action's status is marked Cancelled with an ActionTimedOut code. Il timeout per il limite è specificato nel formato ISO 8601.The limit timeout is specified in ISO 8601 format. Questo esempio mostra come specificare i limiti:This example shows how you can specify limits:

"<action-name>": {
    "type": "Workflow|Webhook|Http|ApiConnectionWebhook|ApiConnection",
    "inputs": { },
    "limit": {
        "timeout": "PT10S"
    }
}

Azione APIConnectionAPIConnection action

Questa azione fa riferimento a un connettore gestito da Microsoft e richiede un riferimento a una connessione valida e informazioni sull'API e sui parametri.This action references a Microsoft-managed connector, requiring a reference to a valid connection and information about the API and parameters. Ecco un esempio di azione APIConnection:Here is an example APIConnection action:

"Send_Email": {
    "type": "ApiConnection",
    "inputs": {
        "host": {
            "api": {
                "runtimeUrl": "https://logic-apis-df.azure-apim.net/apim/office365"
            },
            "connection": {
                "name": "@parameters('$connections')['office365']['connectionId']"
            }
        },
        "method": "POST",
        "body": {
            "Subject": "New tweet from @{triggerBody()['TweetedBy']}",
            "Body": "@{triggerBody()['TweetText']}",
            "To": "me@example.com"
        },
        "path": "/Mail"
    },
    "runAfter": {}
}
Nome dell'elementoElement name ObbligatoriaRequired typeType DESCRIZIONEDescription
hosthost Yes Oggetto JSONJSON Object Rappresenta le informazioni sul connettore, ad esempio runtimeUrl, e il riferimento all'oggetto connection.Represents the connector information such as the runtimeUrl and reference to the connection object.
staticomethod Yes stringString Usare uno di questi metodi HTTP: "GET", "POST", "PUT", "DELETE", "PATCH" o "HEAD"Uses one of these HTTP methods: "GET", "POST", "PUT", "DELETE", "PATCH", or "HEAD"
pathpath Yes stringString Percorso per l'operazione APIThe path for the API operation
queryqueries No No Oggetto JSONJSON Object Rappresenta tutti i parametri di query che si vuole includere nell'URL.Represents any query parameters that you want to include in the URL.

"queries": { "api-version": "2015-02-01" }, ad esempio, aggiunge ?api-version=2015-02-01 all'URL.For example, "queries": { "api-version": "2015-02-01" } adds ?api-version=2015-02-01 to the URL.

headersheaders No No Oggetto JSONJSON Object Rappresenta ogni intestazione inviata nella richiesta.Represents each header that's sent in the request.

Ad esempio, per impostare il linguaggio e il tipo in una richiesta:For example, to set the language and type on a request:

"headers": { "Accept-Language": "en-us", "Content-Type": "application/json" }

Corpobody No No Oggetto JSONJSON Object Rappresenta il payload inviato all'endpoint.Represents the payload that's sent to the endpoint.
retryPolicyretryPolicy No No Oggetto JSONJSON Object Usare questo oggetto per personalizzare il comportamento in caso di nuovo tentativo per gli errori 4xx o 5xx.Use this object for customizing the retry behavior for 4xx or 5xx errors. Per altre informazioni, vedere il Criteri di ripetizione dei tentativi.For more information, see Retry policies.
operationsOptionsoperationsOptions No No stringString Definisce il set di comportamenti speciali di cui eseguire l'override.Defines the set of special behaviors to override.
authenticationauthentication No No Oggetto JSONJSON Object Rappresenta il metodo che deve essere usato dalla richiesta per l'autenticazione.Represents the method that the request should use for authentication. Per altre informazioni, vedere Autenticazione in uscita dell'Utilità di pianificazione.For more information, see Scheduler Outbound Authentication.

I criteri per i tentativi vengono applicati agli errori intermittenti, caratterizzati dai codici di stato HTTP 408, 429 e 5xx, oltre che alle eccezioni per la connettività.A retry policy applies to intermittent failures, characterized as HTTP status codes 408, 429, and 5xx, in addition to any connectivity exceptions. È possibile definire questi criteri con l'oggetto retryPolicy, come mostrato qui:You can define this policy with the retryPolicy object as shown here:

"retryPolicy": {
    "type": "<retry-policy-type>",
    "interval": <retry-interval>,
    "count": <number-of-retry-attempts>
}

Azione webhook APIConnectionAPIConnection webhook action

L'azione APIConnectionWebhook fa riferimento a un connettore gestito da Microsoft.The APIConnectionWebhook action references a Microsoft-managed connector. Questa azione richiede un riferimento a una connessione valida e informazioni sull'API e sui parametri.This action requires a reference to a valid connection and information about the API and parameters. È possibile specificare i limiti per un'azione webhook allo stesso modo dei limiti asincroni HTTP.You can specify limits on a webhook action in the same way as HTTP Asynchronous Limits.

"Send_approval_email": {
    "type": "ApiConnectionWebhook",
    "inputs": {
        "host": {
            "api": {
                "runtimeUrl": "https://logic-apis-df.azure-apim.net/apim/office365"
            },
            "connection": {
                "name": "@parameters('$connections')['office365']['connectionId']"
            }
        },
        "body": {
            "Message": {
                "Subject": "Approval Request",
                "Options": "Approve, Reject",
                "Importance": "Normal",
                "To": "me@email.com"
            }
        },
        "path": "/approvalmail",
        "authentication": "@parameters('$authentication')"
    },
    "runAfter": {}
}
Nome dell'elementoElement name ObbligatoriaRequired typeType DESCRIZIONEDescription
hosthost Yes Oggetto JSONJSON Object Rappresenta le informazioni sul connettore, ad esempio runtimeUrl, e il riferimento all'oggetto connection.Represents the connector information such as the runtimeUrl and reference to the connection object.
pathpath Yes stringString Percorso per l'operazione APIThe path for the API operation
queryqueries No No Oggetto JSONJSON Object Rappresenta tutti i parametri di query che si vuole includere nell'URL.Represents any query parameters that you want to include in the URL.

"queries": { "api-version": "2015-02-01" }, ad esempio, aggiunge ?api-version=2015-02-01 all'URL.For example, "queries": { "api-version": "2015-02-01" } adds ?api-version=2015-02-01 to the URL.

headersheaders No No Oggetto JSONJSON Object Rappresenta ogni intestazione inviata nella richiesta.Represents each header that's sent in the request.

Ad esempio, per impostare il linguaggio e il tipo in una richiesta:For example, to set the language and type on a request:

"headers": { "Accept-Language": "en-us", "Content-Type": "application/json" }

Corpobody No No Oggetto JSONJSON Object Rappresenta il payload inviato all'endpoint.Represents the payload that's sent to the endpoint.
retryPolicyretryPolicy No No Oggetto JSONJSON Object Usare questo oggetto per personalizzare il comportamento in caso di nuovo tentativo per gli errori 4xx o 5xx.Use this object for customizing the retry behavior for 4xx or 5xx errors. Per altre informazioni, vedere il Criteri di ripetizione dei tentativi.For more information, see Retry policies.
operationsOptionsoperationsOptions No No stringString Definisce il set di comportamenti speciali di cui eseguire l'override.Defines the set of special behaviors to override.
authenticationauthentication No No Oggetto JSONJSON Object Rappresenta il metodo che deve essere usato dalla richiesta per l'autenticazione.Represents the method that the request should use for authentication. Per altre informazioni, vedere Autenticazione in uscita dell'Utilità di pianificazione.For more information, see Scheduler Outbound Authentication.

Azione di rispostaResponse action

Questa azione contiene l'intero payload da una richiesta HTTP e include statusCode, body, e headers:This action contains the entire response payload from an HTTP request and includes a statusCode, body, and headers:

"myResponseAction": {
    "type": "Response",
    "inputs": {
        "statusCode": 200,
        "body": {
            "contentFieldOne": "value100",
            "anotherField": 10.001
        },
        "headers": {
            "x-ms-date": "@utcnow()",
            "Content-type": "application/json"
        }
    },
    "runAfter": {}
}

All'azione di risposta si applicano particolari restrizioni che non si applicano ad altre azioni, in particolare:The response action has special restrictions that don't apply to other actions, specifically:

  • Possono essere presenti azioni di risposta nei rami paralleli all'interno di una definizione di app per la logica perché la richiesta in ingresso richiede una risposta deterministica.You can't have response actions in parallel branches within a logic app definition because the incoming request requires a deterministic response.

  • Se il flusso di lavoro raggiunge un'azione di risposta dopo che la richiesta in ingresso ha già ricevuto una risposta, l'azione di risposta viene considerata non riuscita o in conflitto.If the workflow reaches a response action after the incoming request already received a response, the response action is considered failed or in conflict. Di conseguenza, l'esecuzione dell'app per la logica viene contrassegnata come Failed.As a result, the logic app run is marked Failed.

  • Un flusso di lavoro con azioni di risposta non può usare il comando splitOn nella definizione del trigger perché la chiamata crea più esecuzioni.A workflow with response actions can't use the splitOn command in the trigger definition because the call creates multiple runs. Di conseguenza, verificare se si tratta di questo caso quando l'operazione del flusso di lavoro è PUT e viene restituita una risposta di richiesta non valida.As a result, check for this case when the workflow operation is PUT, and return a "bad request" response.

Azione composeCompose action

Questa azione consente di costruire un oggetto arbitrario e l'output è il risultato della valutazione degli input dell'azione.This action lets you construct an arbitrary object, and the output is the result from evaluating the action's inputs.

Nota

È possibile usare l'azione Compose per costruire qualsiasi output, tra cui oggetti, matrici e altri tipi supportati in modo nativo dalle app per la logica, come file XML e binari.You can use the Compose action for constructing any output, including objects, arrays, and any other type natively supported by logic apps like XML and binary.

Ad esempio, è possibile usare l'azione Compose per unire output da più azioni:For example, you can use the Compose action for merging outputs from multiple actions:

"composeUserRecordAction": {
    "type": "Compose",
    "inputs": {
        "firstName": "@actions('getUser').firstName",
        "alias": "@actions('getUser').alias",
        "thumbnailLink": "@actions('lookupThumbnail').url"
    }
}

Azione delle funzioniFunction action

Questa azione consente di rappresentare e chiamare una funzione di Azure, ad esempio:This action lets you represent and call an Azure function, for example:

"<my-Azure-Function-name>": {
   "type": "Function",
    "inputs": {
        "function": {
            "id": "/subscriptions/<Azure-subscription-ID>/resourceGroups/<Azure-resource-group-name>/providers/Microsoft.Web/sites/<your-Azure-function-app-name>/functions/<your-Azure-function-name>"
        },
        "queries": {
            "extrafield": "specialValue"
        },  
        "headers": {
            "x-ms-date": "@utcnow()"
        },
        "method": "POST",
        "body": {
            "contentFieldOne": "value100",
            "anotherField": 10.001
        }
    },
    "runAfter": {}
}
Nome dell'elementoElement name ObbligatoriaRequired typeType DESCRIZIONEDescription
function idfunction id Yes stringString ID risorsa per la funzione di Azure che si vuole chiamare.The resource ID for the Azure function that you want to call.
staticomethod No No stringString Metodo HTTP usato per chiamare la funzione.The HTTP method used to call the function. Se non è specificato, "POST" è il metodo predefinito.If not specified, "POST" is the default method.
queryqueries No No Oggetto JSONJSON Object Rappresenta tutti i parametri di query che si vuole includere nell'URL.Represents any query parameters that you want to include in the URL.

"queries": { "api-version": "2015-02-01" }, ad esempio, aggiunge ?api-version=2015-02-01 all'URL.For example, "queries": { "api-version": "2015-02-01" } adds ?api-version=2015-02-01 to the URL.

headersheaders No No Oggetto JSONJSON Object Rappresenta ogni intestazione inviata nella richiesta.Represents each header that's sent in the request.

Ad esempio, per impostare il linguaggio e il tipo in una richiesta:For example, to set the language and type on a request:

"headers": { "Accept-Language": "en-us", "Content-Type": "application/json" }

Corpobody No No Oggetto JSONJSON Object Rappresenta il payload inviato all'endpoint.Represents the payload that's sent to the endpoint.

Quando si salva l'app per la logica, il motore di App per la logica esegue alcuni controlli sulla funzione cui viene fatto riferimento:When you save your logic app, the Logic Apps engine performs some checks on the referenced function:

  • È necessario avere accesso alla funzione.You must have access to the function.
  • È possibile usare solo un trigger HTTP standard o un trigger Webhook JSON generico.You can use only a standard HTTP trigger or generic JSON Webhook trigger.
  • Per la funzione non deve essere definita alcuna route.The function shouldn't have any route defined.
  • Sono consentiti solo i livelli di autorizzazione "funzione" e "anonimo".Only "function" and "anonymous" authorization levels are allowed.

Nota

Il motore di App per la logica recupera e memorizza nella cache l'URL del trigger, che viene usato al runtime.The Logic Apps engine retrieves and caches the trigger URL, which is used at runtime. Pertanto, se qualsiasi operazione invalida l'URL memorizzato nella cache, l'azione non riesce durante il runtime.So if any operation invalidates the cached URL, the action fails at runtime. Per risolvere questo problema, salvare di nuovo l'app per la logica, in modo che possa di nuovo recuperare e memorizzare nella cache l'URL del trigger.To work around this issue, save the logic app again, which causes the logic app to retrieve and cache the trigger URL again.

Seleziona azioneSelect action

Questa azione consente di proiettare ogni elemento di una matrice in un nuovo valore.This action lets you project each element of an array into a new value. Questo esempio converte una matrice di numeri in matrice di oggetti:This example converts an array of numbers into an array of objects:

"selectNumbersAction": {
    "type": "Select",
    "inputs": {
        "from": [ 1, 3, 0, 5, 4, 2 ],
        "select": { "number": "@item()" }
    }
}
NOMEName ObbligatoriaRequired typeType DESCRIZIONEDescription
fromfrom Yes ArrayArray Matrice di origineThe source array
selezionaselect Yes QualsiasiAny Proiezione applicata a ogni elemento nella matrice di origineThe projection applied to each element in the source array

L'output dell'azione select è una matrice con la stessa cardinalità della matrice di input.The output from the select action is an array that has the same cardinality as the input array. Ogni elemento viene trasformato come definito dalla proprietà select.Each element is transformed as defined by the select property. Se l'input è un array vuoto, lo sarà anche l'output.If the input is an empty array, the output is also an empty array.

Azione terminateTerminate action

Questa azione arresta un'esecuzione del flusso di lavoro, annulla tutte le azioni in corso e ignora tutte le azioni rimanenti.This action stops a workflow run, canceling any actions in progress, and skipping any remaining actions. L'azione terminate non influisce sulle azioni già completate.The terminate action doesn't affect already completed actions.

Ad esempio, per arrestare un'esecuzione con stato Failed:For example, to stop a run that has Failed status:

"HandleUnexpectedResponse": {
    "type": "Terminate",
    "inputs": {
        "runStatus": "Failed",
        "runError": {
            "code": "UnexpectedResponse",
            "message": "Received an unexpected response",
        }
    }
}
NOMEName ObbligatoriaRequired typeType DESCRIZIONEDescription
runStatusrunStatus Yes stringString Stato dell'esecuzione di destinazione, che può essere Failed o CancelledThe target run's status, which is either Failed or Cancelled
runErrorrunError No No Oggetto JSONJSON Object Dettagli dell'errore.The error details. Supportato solo quando runStatus è impostato su Failed.Supported only when runStatus is set to Failed.
runError coderunError code No No stringString Codice di errore dell'esecuzioneThe run's error code
runError messagerunError message No No stringString Messaggio di errore dell'esecuzioneThe run's error message

Azione di queryQuery action

Questa azione consente di filtrare una matrice in base a una condizione.This action lets you filter an array based on a condition.

Nota

Non è possibile usare l'azione Compose per costruire alcun output, tra cui oggetti, matrici e qualsiasi altro tipo supportato a livello nativo dalle app per la logica, ad esempio i file XML e binari.You can't use the Compose action to construct any output, including objects, arrays, and any other type natively supported by logic apps like XML and binary.

Ad esempio, per selezionare numeri maggiori di due:For example, to select numbers greater than two:

"filterNumbersAction": {
    "type": "Query",
    "inputs": {
        "from": [ 1, 3, 0, 5, 4, 2 ],
        "where": "@greater(item(), 2)"
    }
}
NOMEName ObbligatoriaRequired typeType DESCRIZIONEDescription
fromfrom Yes ArrayArray Matrice di origineThe source array
dovewhere Yes stringString Condizione applicata a ogni elemento della matrice di origine.The condition that's applied to each element from the source array. Se nessun valore soddisfa la condizione where, il risultato è una matrice vuota.If no values satisfy the where condition, the result is an empty array.

L'output dell'azione query è una matrice con elementi della matrice di input che soddisfano la condizione.The output from the query action is an array that has elements from the input array that satisfy the condition.

azione TabellaTable action

Questa azione permette di convertire una matrice in tabella CSV o HTML.This action lets you convert an array into a CSV or HTML table.

"ConvertToTable": {
    "type": "Table",
    "inputs": {
        "from": "<source-array>",
        "format": "CSV | HTML"
    }
}
NOMEName ObbligatoriaRequired typeType DESCRIZIONEDescription
fromfrom Yes ArrayArray Matrice di origine.The source array. Se il valore della proprietà from è un array vuoto, l'output sarà una tabella vuota.If the from property value is an empty array, the output is an empty table.
formatformat Yes stringString Formato desiderato per la tabella, tra "CSV" e "HTML"The table format that you want, either "CSV" or "HTML"
columnscolumns No No ArrayArray Colonne di tabella desiderate.The table columns that you want. Da usare per eseguire l'override della forma di tabella predefinita.Use to override the default table shape.
intestazione di colonnacolumn header No No stringString Intestazione di colonnaThe column header
valore colonnacolumn value Yes stringString Valore della colonnaThe column value

Si supponga di definire un'azione di tabella come in questo esempio:Suppose you define a table action like this example:

"convertToTableAction": {
    "type": "Table",
    "inputs": {
        "from": "@triggerBody()",
        "format": "HTML"
    }
}

Si supponga inoltre di usare questa matrice per @triggerBody():And use this array for @triggerBody():

[ {"ID": 0, "Name": "apples"},{"ID": 1, "Name": "oranges"} ]

Ecco l'output restituito da questo esempio:Here is the output from this example:

IDIDNOMEName
00meleapples
11aranceoranges

Per personalizzare la tabella, è possibile specificare le colonne in modo esplicito, ad esempio:To customize this table, you can specify the columns explicitly, for example:

"ConvertToTableAction": {
    "type": "Table",
    "inputs": {
        "from": "@triggerBody()",
        "format": "html",
        "columns": [ 
            {
                "header": "Produce ID",
                "value": "@item().id"
            },
            {
              "header": "Description",
              "value": "@concat('fresh ', item().name)"
            }
        ]
    }
}

Ecco l'output restituito da questo esempio:Here is the output from this example:

Produce IDProduce IDDESCRIZIONEDescription
00mele freschefresh apples
11arance freschefresh oranges

Azione waitWait action

Questa azione sospende l'esecuzione del flusso di lavoro per l'intervallo specificato.This action suspends workflow execution for the specified interval. Questo esempio fa sì che il flusso di lavoro attenda per 15 minuti:This example causes the workflow to wait 15 minutes:

"waitForFifteenMinutesAction": {
    "type": "Wait",
    "inputs": {
        "interval": {
            "unit": "minute",
            "count": 15
        }
    }
}

In alternativa, per attendere fino a un determinato momento, è possibile usare questo esempio:Alternatively, to wait until a specific moment in time, you can use this example:

"waitUntilOctoberAction": {
    "type": "Wait",
    "inputs": {
        "until": {
            "timestamp": "2017-10-01T00:00:00Z"
        }
    }
}

Nota

È possibile specificare l'attesa con l'oggetto interval o l'oggetto until, ma non con entrambi.You can specify the wait duration with either the interval object or the until object, but not both.

Nome dell'elementoElement name ObbligatoriaRequired typeType DESCRIZIONEDescription
untiluntil No No Oggetto JSONJSON Object Attesa in base a una data e un'oraThe wait duration based on a point in time
until timestampuntil timestamp Yes stringString Data e ora in formato UTC in corrispondenza delle quali termina l'attesaThe point in time in UTC date time format when the wait expires
intervalinterval No No Oggetto JSONJSON Object Attesa in base all'unità e al valore dell'intervalloThe wait duration based on the interval unit and count
interval unitinterval unit Yes stringString Unità di tempo.The unit of time. Usare solo uno di questi valori: "second", "minute", "hour", "day", "week" o "month"Use only one of these values: "second", "minute", "hour", "day", "week", or "month"
interval countinterval count Yes IntegerInteger Numero intero positivo che rappresenta il numero di unità dell'intervallo usate per l'attesaA positive integer representing the number of interval units used for the wait duration

Azione workflowWorkflow action

Questa azione permette di annidare un flusso di lavoro.This action lets you nest a workflow. Il motore di App per la logica esegue un controllo di accesso sul flusso di lavoro figlio e, più in particolare, sul trigger. Di conseguenza, è necessario avere accesso al flusso di lavoro figlio.The Logic Apps engine performs an access check on the child workflow, more specifically, the trigger, so you must have access to the child workflow. Ad esempio: For example:

"<my-nested-workflow-action-name>": {
    "type": "Workflow",
    "inputs": {
        "host": {
            "id": "/subscriptions/<my-subscription-ID>/resourceGroups/<my-resource-group-name>/providers/Microsoft.Logic/<my-nested-workflow-action-name>",
            "triggerName": "mytrigger001"
        },
        "queries": {
            "extrafield": "specialValue"
        },  
        "headers": {
            "x-ms-date": "@utcnow()",
            "Content-type": "application/json"
        },
        "body": {
            "contentFieldOne": "value100",
            "anotherField": 10.001
        }
    },
    "runAfter": {}
}
Nome dell'elementoElement name ObbligatoriaRequired typeType DESCRIZIONEDescription
host idhost id Yes stringString ID risorsa per il flusso di lavoro che si vuole chiamareThe resource ID for the workflow that you want to call
host triggerNamehost triggerName Yes stringString Nome del trigger che si vuole richiamareThe name of the trigger that you want to invoke
queryqueries No No Oggetto JSONJSON Object Rappresenta tutti i parametri di query che si vuole includere nell'URL.Represents any query parameters that you want to include in the URL.

"queries": { "api-version": "2015-02-01" }, ad esempio, aggiunge ?api-version=2015-02-01 all'URL.For example, "queries": { "api-version": "2015-02-01" } adds ?api-version=2015-02-01 to the URL.

headersheaders No No Oggetto JSONJSON Object Rappresenta ogni intestazione inviata nella richiesta.Represents each header that's sent in the request.

Ad esempio, per impostare il linguaggio e il tipo in una richiesta:For example, to set the language and type on a request:

"headers": { "Accept-Language": "en-us", "Content-Type": "application/json" }

Corpobody No No Oggetto JSONJSON Object Rappresenta il payload inviato all'endpoint.Represents the payload that is sent to the endpoint.

Gli output di questa azione sono basati su quanto definito nell'azione Response per il flusso di lavoro figlio.This action's outputs are based on what you define in the Response action for the child workflow. Se il flusso di lavoro figlio non definisce un'azione Response, gli output sono vuoti.If the child workflow doesn't define a Response action, the outputs are empty.

Panoramica delle azioni di raccoltaCollection actions overview

Per semplificare il controllo dell'esecuzione del flusso di lavoro, le azioni di raccolta possono includere altre azioni.To help you control workflow execution, collection actions can include other actions. È possibile fare riferimento direttamente alle azioni di riferimento in una raccolta all'esterno della raccolta.You can directly refer to referencing actions in a collection outside of the collection. Ad esempio, se si definisce un'azione Http in un ambito, @body('http') è ancora valido in qualsiasi punto di un flusso di lavoro.For example, if you define an Http action in a scope, then @body('http') is still valid anywhere in a workflow. Inoltre, le azioni in una raccolta possono essere eseguite solo dopo altre azioni nella stessa raccolta.Also, actions in a collection can only "run after" other actions in the same collection.

Azione IfIf action

Questa azione, che è un'istruzione condizionale, permette di valutare una condizione e di eseguire un ramo a seconda che l'espressione restituisca o meno true.This action, which is a conditional statement, lets you evaluate a condition and execute a branch based on whether the expression evaluates as true. Se una condizione restituisce correttamente true, viene contrassegnata con lo stato "Succeeded".If the condition evaluates successfully as true, the condition is marked with "Succeeded" status. Le azioni incluse nell'oggetto actions o else restituiscono questi valori:Actions that are in the actions or else objects evaluate to these values:

  • "Succeeded" quando vengono eseguite e riescono"Succeeded" when they run and succeed
  • "Failed" quando vengono eseguite e non riescono"Failed" when they run and fail
  • "Skipped" quando il rispettivo ramo non viene eseguito"Skipped" when the respective branch doesn't run

Per altre informazioni, vedere la pagina sulle istruzioni condizionali nelle app per la logica.Learn more about conditional statements in logic apps.

"<my-condition-name>": {
  "type": "If",
  "expression": "<condition>",
  "actions": {
    "if-true-run-this-action": {
      "type": <action-type>,
      "inputs": {},
      "runAfter": {}
    }
  },
  "else": {
    "actions": {
        "if-false-run-this-action": {
            "type": <action-type>,
            "inputs": {},
            "runAfter": {}
        }
    }
  },
  "runAfter": {}
}
NOMEName ObbligatoriaRequired typeType DESCRIZIONEDescription
Azioniactions Yes Oggetto JSONJSON Object Azioni interne da eseguire quando expression restituisce trueThe inner actions to run when expression evaluates to true
expressionexpression Yes stringString Espressione da valutareThe expression to evaluate
elseelse No No Oggetto JSONJSON Object Azioni interne da eseguire quando expression restituisce falseThe inner actions to run when expression evaluates to false

Ad esempio: For example:

"myCondition": {
    "type": "If",
    "actions": {
        "if-true-check-this-website": {
            "type": "Http",
            "inputs": {
                "method": "GET",
                "uri": "http://this-url"
            },
            "runAfter": {}
        }
    },
    "else": {
        "actions": {
            "if-false-check-this-other-website": {
                "type": "Http",
                "inputs": {
                    "method": "GET",
                    "uri": "http://this-other-url"
                },
                "runAfter": {}
            }
        }
    }
}

Esempi di condizioni che usano espressioni nelle azioniHow conditions can use expressions in actions

Ecco alcuni esempi che mostrano come è possibile usare espressioni nelle condizioni:Here are some examples that show how you can use expressions in conditions:

Espressione JSONJSON expression RisultatoResult
"expression": "@parameters('hasSpecialAction')" Tutti i valori che restituiscono true soddisfano questa condizione.Any value that evaluates as true causes this condition to pass. Supporta solo espressioni booleane.Supports only Boolean expressions. Per convertire altri tipi in valori booleani, usare la funzione empty o equalsTo convert other types to Boolean, use these functions: empty or equals
"expression": "@greater(actions('action1').output.value, parameters('threshold'))" Supporta le funzioni di confronto.Supports comparison functions. Per questo esempio, l'azione viene eseguita solo quando l'output di action1 è maggiore del valore soglia.For this example, the action runs only when the output of action1 is greater than the threshold value.
"expression": "@or(greater(actions('action1').output.value, parameters('threshold')), less(actions('action1').output.value, 100))" Supporta le funzioni logiche per la creazione di espressioni booleane annidate.Supports logic functions for creating nested Boolean expressions. In questo esempio l'azione viene eseguita quando l'output di action1 è maggiore della soglia o minore di 100.In this example, the action runs when the output of action1 is more than the threshold or under 100.
"expression": "@equals(length(actions('action1').outputs.errors), 0))" Per controllare se una matrice contiene elementi, è possibile usare funzioni di matrice.To check whether an array has any items, you can use array functions. In questo esempio l'azione viene eseguita quando la matrice di errori è vuota.In this example, the action runs when the errors array is empty.
"expression": "parameters('hasSpecialAction')" Questa espressione provoca un errore e non è una condizione valida.This expression causes an error and isn't a valid condition. Le condizioni devono usare il simbolo "@".Conditions must use the "@" symbol.

Azione switchSwitch action

Questa azione, che è un'istruzione switch, esegue azioni diverse in base a valori specifici di un oggetto, un'espressione o un token.This action, which is a switch statement, performs different actions based on specific values of an object, expression, or token. Questa azione valuta l'oggetto, l'espressione o il token, sceglie il caso corrispondente al risultato, ed esegue i passaggi solo per il caso.This action evaluates the object, expression, or token, chooses the case that matches the result, and runs actions for only that case. Quando nessun caso corrisponde al risultato, viene eseguita l'azione predefinita.When no case matches the result, the default action runs. Quando viene eseguita l'istruzione switch, un solo caso deve corrispondere al risultato.When the switch statement runs, only one case should match the result. Per altre informazioni, vedere la pagina sulle istruzioni switch nelle app per la logica.Learn more about switch statements in logic apps.

"<my-switch-statement-name>": {
   "type": "Switch",
   "expression": "<evaluate-this-object-expression-token>",
   "cases": {
      "myCase1": {
         "actions": {
           "myAction1": {}
         },
         "case": "<result1>"
      },
      "myCase2": {
         "actions": {
           "myAction2": {}
         },
         "case": "<result2>"
      }
   },
   "default": {
      "actions": {
          "myDefaultAction": {}
      }
   },
   "runAfter": {}
}
NOMEName ObbligatoriaRequired typeType DESCRIZIONEDescription
expressionexpression Yes stringString Oggetto, espressione o token da valutareThe object, expression, or token to evaluate
casescases Yes Oggetto JSONJSON Object Contiene i set di azioni interne eseguite in base al risultato dell'espressione.Contains the sets of inner actions that run based on the expression result.
casecase Yes stringString Valore da confrontare con il risultatoThe value to match with the result
Azioniactions Yes Oggetto JSONJSON Object Azioni interne eseguite per il caso che corrisponde al risultato dell'espressioneThe inner actions that run for the case matching the expression result
defaultdefault No No Oggetto JSONJSON Object Azioni interne eseguite quando nessun caso corrisponde al risultato dell'espressioneThe inner actions that run when no cases match the result

Ad esempio: For example:

"myApprovalEmailAction": {
   "type": "Switch",
   "expression": "@body('Send_approval_email')?['SelectedOption']",
   "cases": {
      "Case": {
         "actions": {
           "Send_an_email": {...}
         },
         "case": "Approve"
      },
      "Case_2": {
         "actions": {
           "Send_an_email_2": {...}
         },
         "case": "Reject"
      }
   },
   "default": {
      "actions": {}
   },
   "runAfter": {
      "Send_approval_email": [
         "Succeeded"
      ]
   }
}

Azione foreachForeach action

Questa azione di esecuzione a ciclo continuo scorre una matrice ed esegue azioni interne per ogni elemento.This looping action iterates through an array and performs inner actions on each array item. Per impostazione predefinita, il ciclo foreach viene eseguito in parallelo.By default, the Foreach loop runs in parallel. Per informazioni sul numero massimo di cicli paralleli che possono essere eseguiti dal ciclo "foreach", vedere Limiti e configurazione. Per eseguire ogni ciclo in sequenza, impostare il parametro operationOptions su Sequential.For the maximum number of parallel cycles that "for each" loops can run, see Limits and config. To run each cycle sequentially, set the operationOptions parameter to Sequential. Per altre informazioni, vedere la pagina sui cicli foreach nelle app per la logica.Learn more about Foreach loops in logic apps.

"<my-forEach-loop-name>": {
    "type": "Foreach",
    "actions": {
        "myInnerAction1": {
            "type": "<action-type>",
            "inputs": {}
        },
        "myInnerAction2": {
            "type": "<action-type>",
            "inputs": {}
        }
    },
    "foreach": "<array>",
    "runAfter": {}
}
NOMEName ObbligatoriaRequired typeType DESCRIZIONEDescription
Azioniactions Yes Oggetto JSONJSON Object Azioni interne da eseguire all'interno del cicloThe inner actions to run inside the loop
foreachforeach Yes stringString Matrice da scorrereThe array to iterate through
operationOptionsoperationOptions No No stringString Specifica le opzioni dell'operazione per la personalizzazione del comportamento.Specifies any operation options for customizing behavior. Attualmente supporta solo Sequential per l'esecuzione in sequenza di iterazioni in cui il comportamento predefinito è parallelo.Currently supports only Sequential for sequentially running iterations where the default behavior is parallel.

Ad esempio: For example:

"forEach_EmailAction": {
    "type": "Foreach",
    "foreach": "@body('email_filter')",
    "actions": {
        "Send_email": {
            "type": "ApiConnection",
            "inputs": {
                "body": {
                    "to": "@item()",
                    "from": "me@contoso.com",
                    "message": "Hello, thank you for ordering"
                },
                "host": {
                    "connection": {
                        "id": "@parameters('$connections')['office365']['connection']['id']"
                    }
                }
            }
        }
    },
    "foreach": "@body('email_filter')",
    "runAfter": {
        "email_filter": [ "Succeeded" ]
    }
}

Azione UntilUntil action

Questa azione di esecuzione a ciclo continuo esegue azioni interne finché una condizione non restituisce true.This looping action runs inner actions until a condition evaluates as true. Per altre informazioni, vedere la pagina sui cicli "until" nelle app per la logica.Learn more about "until" loops in logic apps.

 "<my-Until-loop-name>": {
    "type": "Until",
    "actions": {
        "myActionName": {
            "type": "<action-type>",
            "inputs": {},
            "runAfter": {}
        }
    },
    "expression": "<myCondition>",
    "limit": {
        "count": 1000,
        "timeout": "PT1H"
    },
    "runAfter": {}
}
NOMEName ObbligatoriaRequired typeType DESCRIZIONEDescription
Azioniactions Yes Oggetto JSONJSON Object Azioni interne da eseguire all'interno del cicloThe inner actions to run inside the loop
expressionexpression Yes stringString Espressione da valutare dopo ogni iterazioneThe expression to evaluate after each iteration
limitlimit Yes Oggetto JSONJSON Object Limiti per il ciclo.The limits for the loop. Deve definire almeno un limite.Must define at least one limit.
countcount No No IntegerInteger Limite al numero di iterazioni da eseguireThe limit on the number of iterations to perform
timeouttimeout No No stringString Limite di timeout in formato ISO 8601 che specifica per quanto tempo deve essere eseguito il cicloThe timeout limit in ISO 8601 format that specifies how long the loop should run

Ad esempio: For example:

 "runUntilSucceededAction": {
    "type": "Until",
    "actions": {
        "Http": {
            "type": "Http",
            "inputs": {
                "method": "GET",
                "uri": "http://myurl"
            },
            "runAfter": {}
        }
    },
    "expression": "@equals(outputs('Http')['statusCode', 200)",
    "limit": {
        "count": 100,
        "timeout": "PT1H"
    },
    "runAfter": {}
}

Azione scopeScope action

Questa azione consente di raggruppare logicamente le azioni in un flusso di lavoro.This action lets you logically group actions in a workflow. L'ambito ottiene il proprio stato al termine dell'esecuzione di tutte le azioni nell'ambito.The scope also gets its own status after all the actions in that scope finish running. Per altre informazioni, vedere la pagina sugli ambiti.Learn more about scopes.

"<my-scope-action-name>": {
    "type": "Scope",
    "actions": {
        "myInnerAction1": {
            "type": "<action-type>",
            "inputs": {}
        },
        "myInnerAction2": {
            "type": "<action-type>",
            "inputs": {}
        }
    }
}
NOMEName ObbligatoriaRequired typeType DESCRIZIONEDescription
Azioniactions Yes Oggetto JSONJSON Object Azioni interne da eseguire all'interno dell'ambitoThe inner actions to run inside the scope

Passaggi successiviNext steps