Guide de référence du schéma des types d’actions et de déclencheurs dans Azure Logic AppsSchema reference guide for trigger and action types in Azure Logic Apps

Ce document de référence décrit les types généraux utilisés pour identifier les déclencheurs et les actions dans la définition de flux de travail sous-jacente de votre application logique, qui est décrite et validée par le langage de définition du flux de travail.This reference describes the general types used for identifying triggers and actions in your logic app's underlying workflow definition, which is described and validated by the Workflow Definition Language. Pour rechercher des déclencheurs et des actions de connecteur spécifiques que vous pouvez utiliser dans vos applications logiques, consultez la liste figurant sous la présentation des connecteurs.To find specific connector triggers and actions that you can use in your logic apps, see the list under the Connectors overview.

Vue d’ensemble des déclencheursTriggers overview

Tous les flux de travail incluent un déclencheur, qui définit les appels qui instancient et démarrent le workflow.Every workflow includes a trigger, which defines the calls that instantiate and start the workflow. Voici les catégories générales de déclencheurs :Here are the general trigger categories:

  • Déclencheur d’interrogation, qui vérifie le point de terminaison d’un service à intervalles réguliersA polling trigger, which checks a service's endpoint at regular intervals

  • Déclencheur push, qui crée un abonnement à un point de terminaison et fournit une URL de rappel permettant au point de terminaison d’informer le déclencheur quand l’événement spécifié se produit ou quand des données sont disponibles.A push trigger, which creates a subscription to an endpoint and provides a callback URL so the endpoint can notify the trigger when the specified event happens or data is available. Le déclencheur attend ensuite la réponse du point de terminaison avant de s’activerThe trigger then waits for the endpoint's response before firing.

Les déclencheurs ont les éléments principaux suivants, bien que certains soient facultatifs :Triggers have these top-level elements, although some are optional:

"<trigger-name>": {
   "type": "<trigger-type>",
   "inputs": { "<trigger-inputs>" },
   "recurrence": { 
      "frequency": "<time-unit>",
      "interval": <number-of-time-units>
   },
   "conditions": [ "<array-with-conditions>" ],
   "runtimeConfiguration": { "<runtime-config-options>" },
   "splitOn": "<splitOn-expression>",
   "operationOptions": "<operation-option>"
},

ObligatoireRequired

ValeurValue TypeType DescriptionDescription
<trigger-name><trigger-name> StringString Nom du déclencheurThe name for the trigger
<trigger-type><trigger-type> StringString Type de déclencheur, tel que « Http » ou « ApiConnection »The trigger type such as "Http" or "ApiConnection"
<trigger-inputs><trigger-inputs> Objet JSONJSON Object Entrées qui définissent le comportement du déclencheurThe inputs that define the trigger's behavior
<time-unit><time-unit> StringString Unité de temps qui décrit la fréquence d’activation du déclencheur : "Second", "Minute", "Hour", "Day", "Week", "Month"The unit of time that describes how often the trigger fires: "Second", "Minute", "Hour", "Day", "Week", "Month"
<number-of-time-units><number-of-time-units> IntegerInteger Valeur qui spécifie la fréquence d’activation du déclencheur, qui correspond au nombre d’unités de temps à attendre avant que le déclencheur soit activé à nouveauA value that specifies how often the trigger fires based on the frequency, which is the number of time units to wait until the trigger fires again

Les intervalles minimaux et maximaux sont les suivants :Here are the minimum and maximum intervals:

- Mois : 1-16 mois- Month: 1-16 months
Jour : 1-500 jours- Day: 1-500 days
- Heure : 1-12 000 heures- Hour: 1-12,000 hours
- Minute : 1-72 000 minutes- Minute: 1-72,000 minutes
- Seconde : 1-9 999 999 secondes- Second: 1-9,999,999 seconds

Par exemple, si l’intervalle est défini sur 6 et la fréquence sur « Month », la périodicité est tous les six mois.For example, if the interval is 6, and the frequency is "Month", the recurrence is every 6 months.

FacultatifOptional

ValeurValue TypeType DescriptionDescription
<array-with-conditions><array-with-conditions> ArrayArray Tableau qui contient une ou plusieurs conditions qui déterminent s’il faut exécuter le workflow.An array that contains one or more conditions that determine whether to run the workflow. Uniquement disponible pour les déclencheurs.Available only for triggers.
<runtime-config-options><runtime-config-options> Objet JSONJSON Object Vous pouvez modifier le comportement d’exécution du déclencheur en définissant des propriétés runtimeConfiguration.You can change trigger runtime behavior by setting runtimeConfiguration properties. Pour plus d’informations, consultez Paramètres de configuration d’exécution.For more information, see Runtime configuration settings.
<splitOn-expression><splitOn-expression> StringString Pour les déclencheurs qui retournent un tableau, vous pouvez spécifier une expression qui fractionne ou dégroupe des éléments de tableau dans plusieurs instances de workflows à des fins de traitement.For triggers that return an array, you can specify an expression that splits or debatches array items into multiple workflow instances for processing.
<operation-option><operation-option> StringString Vous pouvez modifier le comportement par défaut en définissant la propriété operationOptions.You can change the default behavior by setting the operationOptions property. Pour plus d’informations, consultez Options d’opérations.For more information, see Operation options.

Liste des types de déclencheursTrigger types list

Chaque type de déclencheur a une interface et des entrées différentes qui définissent son comportement.Each trigger type has a different interface and inputs that define the trigger's behavior.

Déclencheurs intégrésBuilt-in triggers

Type de déclencheurTrigger type DescriptionDescription
HTTPHTTP Vérifie ou interroge n’importe quel point de terminaison.Checks or polls any endpoint. Ce point de terminaison doit être conforme à un contrat de déclencheur spécifique, soit en utilisant un modèle asynchrone « 202 », soit en retournant un tableau.This endpoint must conform to a specific trigger contract either by using a "202" asynchronous pattern or by returning an array.
HTTPWebhookHTTPWebhook Crée un point de terminaison pouvant être appelé pour votre application logique, mais appelle l’URL spécifiée pour inscrire ou désinscrire.Creates a callable endpoint for your logic app but calls the specified URL to register or unregister.
RecurrenceRecurrence Se déclenche selon une planification définie.Fires based on a defined schedule. Vous pouvez définir une date et une heure ultérieures pour déclencher ce déclencheur.You can set a future date and time for firing this trigger. En fonction de la fréquence, vous pouvez également spécifier des heures et des jours d’exécution de votre workflow.Based on the frequency, you can also specify times and days for running your workflow.
RequestRequest Crée un point de terminaison pouvant être appelé pour votre application logique (également appelé déclencheur « manuel »).Creates a callable endpoint for your logic app and is also known as a "manual" trigger. Par exemple, consultez Appeler, déclencher ou imbriquer des workflows via des points de terminaison HTTP.For example, see Call, trigger, or nest workflows with HTTP endpoints.

Déclencheurs d’API managéesManaged API triggers

Type de déclencheurTrigger type DescriptionDescription
ApiConnectionApiConnection Vérifie ou interroge un point de terminaison à l’aide d’API managées par Microsoft.Checks or polls an endpoint by using Microsoft-managed APIs.
ApiConnectionWebhookApiConnectionWebhook Crée un point de terminaison pouvant être appelé pour votre application logique en appelant des API managées par Microsoft pour s’abonner et annuler l’abonnement.Creates a callable endpoint for your logic app by calling Microsoft-managed APIs to subscribe and unsubscribe.

Déclencheurs - Référence détailléeTriggers - Detailed reference

Déclencheur APIConnectionAPIConnection trigger

Ce déclencheur vérifie ou interroge un point de terminaison à l’aide d’API managées par Microsoft afin que les paramètres de ce déclencheur puissent différer en fonction du point de terminaison.This trigger checks or polls an endpoint by using Microsoft-managed APIs so the parameters for this trigger can differ based on the endpoint. De nombreuses sections de cette définition de déclencheur sont facultatives.Many sections in this trigger definition are optional. Le comportement du déclencheur dépend de l’inclusion des sections.The trigger's behavior depends on whether or not sections are included.

"<APIConnection_trigger_name>": {
   "type": "ApiConnection",
   "inputs": {
      "host": {
         "connection": {
            "name": "@parameters('$connections')['<connection-name>']['connectionId']"
         }
      },
      "method": "<method-type>",
      "path": "/<api-operation>",
      "retryPolicy": { "<retry-behavior>" },
      "queries": { "<query-parameters>" }
   },
   "recurrence": { 
      "frequency": "<time-unit>",
      "interval": <number-of-time-units>
   },
   "runtimeConfiguration": {
      "concurrency": {
         "runs": <max-runs>,
         "maximumWaitingRuns": <max-runs-queue>
      }
   },
   "splitOn": "<splitOn-expression>",
   "operationOptions": "<operation-option>"
}

ObligatoireRequired

ValeurValue TypeType DescriptionDescription
<APIConnection_trigger_name><APIConnection_trigger_name> StringString Nom du déclencheurThe name for the trigger
<connection-name><connection-name> StringString Nom de la connexion à l’API managée utilisée par le workflowThe name for the connection to the managed API that the workflow uses
<method-type><method-type> StringString Méthode HTTP pour communiquer avec l’API managée : « GET », « PUT », « POST », « PATCH », « DELETE »The HTTP method for communicating with the managed API: "GET", "PUT", "POST", "PATCH", "DELETE"
<api-operation><api-operation> StringString Opération d’API à appelerThe API operation to call
<time-unit><time-unit> StringString Unité de temps qui décrit la fréquence d’activation du déclencheur : "Second", "Minute", "Hour", "Day", "Week", "Month"The unit of time that describes how often the trigger fires: "Second", "Minute", "Hour", "Day", "Week", "Month"
<number-of-time-units><number-of-time-units> IntegerInteger Valeur qui spécifie la fréquence d’activation du déclencheur, qui correspond au nombre d’unités de temps à attendre avant que le déclencheur soit activé à nouveauA value that specifies how often the trigger fires based on the frequency, which is the number of time units to wait until the trigger fires again

Les intervalles minimaux et maximaux sont les suivants :Here are the minimum and maximum intervals:

- Mois : 1-16 mois- Month: 1-16 months
Jour : 1-500 jours- Day: 1-500 days
- Heure : 1-12 000 heures- Hour: 1-12,000 hours
- Minute : 1-72 000 minutes- Minute: 1-72,000 minutes
- Seconde : 1-9 999 999 secondes- Second: 1-9,999,999 seconds

Par exemple, si l’intervalle est défini sur 6 et la fréquence sur « Month », la périodicité est tous les six mois.For example, if the interval is 6, and the frequency is "Month", the recurrence is every 6 months.

FacultatifOptional

ValeurValue TypeType DescriptionDescription
<retry-behavior><retry-behavior> Objet JSONJSON Object Personnalise le comportement de nouvelle tentative pour les défaillances intermittentes, qui présentent le code d’état 408, 429 et 5XX, ainsi que les éventuelles exceptions de connectivité.Customizes the retry behavior for intermittent failures, which have the 408, 429, and 5XX status code, and any connectivity exceptions. Pour plus d’informations, consultez Stratégies de relance.For more information, see Retry policies.
<query-parameters><query-parameters> Objet JSONJSON Object Paramètres de requête à inclure avec l’appel d’API.Any query parameters to include with the API call. Par exemple, l’objet "queries": { "api-version": "2018-01-01" } ajoute ?api-version=2018-01-01 à l’appel.For example, the "queries": { "api-version": "2018-01-01" } object adds ?api-version=2018-01-01 to the call.
<max-runs><max-runs> IntegerInteger Par défaut, les instances de workflows s’exécutent en même temps, ou en parallèle jusqu’à la limite par défaut.By default, workflow instances run at the same time, or in parallel up to the default limit. Pour changer cette limite en définissant une nouvelle valeur <count>, consultez Changer la concurrence du déclencheur.To change this limit by setting a new <count> value, see Change trigger concurrency.
<max-runs-queue><max-runs-queue> IntegerInteger Lorsque votre application logique exécute déjà le nombre maximal d’instances, que vous pouvez modifier en fonction de la propriété runtimeConfiguration.concurrency.runs, les nouvelles exécutions sont placées dans cette file d’attente jusqu’à la limite par défaut.When your workflow is already running the maximum number of instances, which you can change based on the runtimeConfiguration.concurrency.runs property, any new runs are put into this queue up to the default limit. Pour changer la limite par défaut, consultez Changer la limite d’exécutions en attente.To change the default limit, see Change waiting runs limit.
<splitOn-expression><splitOn-expression> StringString Pour les déclencheurs qui retournent des tableaux, cette expression référence le tableau à utiliser pour que vous puissiez créer et exécuter une instance de workflow pour chaque élément du tableau, au lieu d’utiliser une boucle « for each ».For triggers that return arrays, this expression references the array to use so that you can create and run a workflow instance for each array item, rather than use a "for each" loop.

Par exemple, cette expression représente un élément dans le tableau retourné dans le contenu du corps du déclencheur : @triggerbody()?['value']For example, this expression represents an item in the array returned within the trigger's body content: @triggerbody()?['value']

<operation-option><operation-option> StringString Vous pouvez modifier le comportement par défaut en définissant la propriété operationOptions.You can change the default behavior by setting the operationOptions property. Pour plus d’informations, consultez Options d’opérations.For more information, see Operation options.

SortiesOutputs

ÉlémentElement TypeType DescriptionDescription
headersheaders Objet JSONJSON Object En-têtes de la réponseThe headers from the response
bodybody Objet JSONJSON Object Corps de la réponseThe body from the response
Code d’étatstatus code IntegerInteger Code d’état de la réponseThe status code from the response

ExempleExample

Cette définition de déclencheur vérifie tous les jours les e-mails dans la boîte de réception d’un compte Office 365 Outlook :This trigger definition checks for email every day inside the inbox for an Office 365 Outlook account:

"When_a_new_email_arrives": {
   "type": "ApiConnection",
   "inputs": {
      "host": {
         "connection": {
            "name": "@parameters('$connections')['office365']['connectionId']"
         }
      },
      "method": "get",
      "path": "/Mail/OnNewEmail",
      "queries": {
          "fetchOnlyWithAttachment": false,
          "folderPath": "Inbox",
          "importance": "Any",
          "includeAttachments": false
      }
   },
   "recurrence": {
      "frequency": "Day",
      "interval": 1
   }
}

Déclencheur ApiConnectionWebhookApiConnectionWebhook trigger

Ce déclencheur envoie une demande d’abonnement à un point de terminaison à l’aide d’une API managée par Microsoft, fournit une URL de rappel où le point de terminaison peut envoyer une réponse, et attend que le point de terminaison réponde.This trigger sends a subscription request to an endpoint by using a Microsoft-managed API, provides a callback URL to where the endpoint can send a response, and waits for the endpoint to respond. Pour plus d’informations, consultez Abonnements de point de terminaison.For more information, see Endpoint subscriptions.

"<ApiConnectionWebhook_trigger_name>": {
   "type": "ApiConnectionWebhook",
   "inputs": {
      "body": {
          "NotificationUrl": "@{listCallbackUrl()}"
      },
      "host": {
         "connection": {
            "name": "@parameters('$connections')['<connection-name>']['connectionId']"
         }
      },
      "retryPolicy": { "<retry-behavior>" },
      "queries": "<query-parameters>"
   },
   "runTimeConfiguration": {
      "concurrency": {
         "runs": <max-runs>,
         "maximumWaitingRuns": <max-run-queue>
      }
   },
   "splitOn": "<splitOn-expression>",
   "operationOptions": "<operation-option>"
}

ObligatoireRequired

ValeurValue TypeType DescriptionDescription
<connection-name><connection-name> StringString Nom de la connexion à l’API managée utilisée par le workflowThe name for the connection to the managed API that the workflow uses
<body-content><body-content> Objet JSONJSON Object Tout contenu de message à envoyer en tant que charge utile à l’API managéeAny message content to send as payload to the managed API

FacultatifOptional

ValeurValue TypeType DescriptionDescription
<retry-behavior><retry-behavior> Objet JSONJSON Object Personnalise le comportement de nouvelle tentative pour les défaillances intermittentes, qui présentent le code d’état 408, 429 et 5XX, ainsi que les éventuelles exceptions de connectivité.Customizes the retry behavior for intermittent failures, which have the 408, 429, and 5XX status code, and any connectivity exceptions. Pour plus d’informations, consultez Stratégies de relance.For more information, see Retry policies.
<query-parameters><query-parameters> Objet JSONJSON Object Paramètres de requête à inclure avec l’appel d’APIAny query parameters to include with the API call

Par exemple, l’objet "queries": { "api-version": "2018-01-01" } ajoute ?api-version=2018-01-01 à l’appel.For example, the "queries": { "api-version": "2018-01-01" } object adds ?api-version=2018-01-01 to the call.

<max-runs><max-runs> IntegerInteger Par défaut, les instances de workflows s’exécutent en même temps, ou en parallèle jusqu’à la limite par défaut.By default, workflow instances run at the same time, or in parallel up to the default limit. Pour changer cette limite en définissant une nouvelle valeur <count>, consultez Changer la concurrence du déclencheur.To change this limit by setting a new <count> value, see Change trigger concurrency.
<max-runs-queue><max-runs-queue> IntegerInteger Lorsque votre application logique exécute déjà le nombre maximal d’instances, que vous pouvez modifier en fonction de la propriété runtimeConfiguration.concurrency.runs, les nouvelles exécutions sont placées dans cette file d’attente jusqu’à la limite par défaut.When your workflow is already running the maximum number of instances, which you can change based on the runtimeConfiguration.concurrency.runs property, any new runs are put into this queue up to the default limit. Pour changer la limite par défaut, consultez Changer la limite d’exécutions en attente.To change the default limit, see Change waiting runs limit.
<splitOn-expression><splitOn-expression> StringString Pour les déclencheurs qui retournent des tableaux, cette expression référence le tableau à utiliser pour que vous puissiez créer et exécuter une instance de workflow pour chaque élément du tableau, au lieu d’utiliser une boucle « for each ».For triggers that return arrays, this expression references the array to use so that you can create and run a workflow instance for each array item, rather than use a "for each" loop.

Par exemple, cette expression représente un élément dans le tableau retourné dans le contenu du corps du déclencheur : @triggerbody()?['value']For example, this expression represents an item in the array returned within the trigger's body content: @triggerbody()?['value']

<operation-option><operation-option> StringString Vous pouvez modifier le comportement par défaut en définissant la propriété operationOptions.You can change the default behavior by setting the operationOptions property. Pour plus d’informations, consultez Options d’opérations.For more information, see Operation options.

ExempleExample

Cette définition de déclencheur s’abonne à l’API Office 365 Outlook, fournit une URL de rappel au point de terminaison d’API, et attend que le point de terminaison réponde quand un nouvel e-mail arrive.This trigger definition subscribes to the Office 365 Outlook API, provides a callback URL to the API endpoint, and waits for the endpoint to respond when a new email arrives.

"When_a_new_email_arrives_(webhook)": {
   "type": "ApiConnectionWebhook",
   "inputs": {
      "body": {
         "NotificationUrl": "@{listCallbackUrl()}" 
      },
      "host": {
         "connection": {
            "name": "@parameters('$connections')['office365']['connectionId']"
         }
      },
      "path": "/MailSubscription/$subscriptions",
      "queries": {
          "folderPath": "Inbox",
          "hasAttachment": "Any",
          "importance": "Any"
      }
   },
   "splitOn": "@triggerBody()?['value']"
}

Déclencheur HTTPHTTP trigger

Ce déclencheur vérifie ou interroge le point de terminaison spécifié d’après la planification de périodicité spécifiée.This trigger checks or polls the specified endpoint based on the specified recurrence schedule. La réponse du point de terminaison détermine si le workflow s’exécute.The endpoint's response determines whether the workflow runs.

"HTTP": {
   "type": "Http",
   "inputs": {
      "method": "<method-type>",
      "uri": "<endpoint-URL>",
      "headers": { "<header-content>" },
      "body": "<body-content>",
      "authentication": { "<authentication-method>" },
      "retryPolicy": { "<retry-behavior>" },
      "queries": "<query-parameters>"
   },
   "recurrence": {
      "frequency": "<time-unit>",
      "interval": <number-of-time-units>
   },
   "runtimeConfiguration": {
      "concurrency": {
         "runs": <max-runs>,
         "maximumWaitingRuns": <max-runs-queue>
      }
   },
   "operationOptions": "<operation-option>"
}

ObligatoireRequired

ValeurValue TypeType DescriptionDescription
<method-type><method-type> StringString Méthode HTTP à utiliser pour interroger le point de terminaison spécifié : « GET », « PUT », « POST », « PATCH », « DELETE »The HTTP method to use for polling the specified endpoint: "GET", "PUT", "POST", "PATCH", "DELETE"
<endpoint-URL><endpoint-URL> StringString URL HTTP ou HTTPS pour interroger le point de terminaisonThe HTTP or HTTPS URL for the endpoint to poll

Taille de chaîne maximale : 2 KoMaximum string size: 2 KB

<time-unit><time-unit> StringString Unité de temps qui décrit la fréquence d’activation du déclencheur : "Second", "Minute", "Hour", "Day", "Week", "Month"The unit of time that describes how often the trigger fires: "Second", "Minute", "Hour", "Day", "Week", "Month"
<number-of-time-units><number-of-time-units> IntegerInteger Valeur qui spécifie la fréquence d’activation du déclencheur, qui correspond au nombre d’unités de temps à attendre avant que le déclencheur soit activé à nouveauA value that specifies how often the trigger fires based on the frequency, which is the number of time units to wait until the trigger fires again

Les intervalles minimaux et maximaux sont les suivants :Here are the minimum and maximum intervals:

- Mois : 1-16 mois- Month: 1-16 months
Jour : 1-500 jours- Day: 1-500 days
- Heure : 1-12 000 heures- Hour: 1-12,000 hours
- Minute : 1-72 000 minutes- Minute: 1-72,000 minutes
- Seconde : 1-9 999 999 secondes- Second: 1-9,999,999 seconds

Par exemple, si l’intervalle est défini sur 6 et la fréquence sur « Month », la périodicité est tous les six mois.For example, if the interval is 6, and the frequency is "Month", the recurrence is every 6 months.

FacultatifOptional

ValeurValue TypeType DescriptionDescription
<header-content><header-content> Objet JSONJSON Object En-têtes à envoyer avec la requêteThe headers to send with the request

Par exemple, pour définir la langue et le type d’une requête :For example, to set the language and type for a request:

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

<body-content><body-content> StringString Contenu du message à envoyer en tant que charge utile avec la requêteThe message content to send as payload with the request
<authentication-method><authentication-method> Objet JSONJSON Object Méthode utilisée par la requête pour l’authentification.The method the request uses for authentication. Pour plus d’informations, consultez Authentification sortante de Scheduler.For more information, see Scheduler Outbound Authentication. Au-delà de Scheduler, la propriété authority est prise en charge.Beyond Scheduler, the authority property is supported. Si vous ne spécifiez aucune valeur, la valeur par défaut est https://login.windows.net, mais vous pouvez utiliser une autre valeur comme 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.
<retry-behavior><retry-behavior> Objet JSONJSON Object Personnalise le comportement de nouvelle tentative pour les défaillances intermittentes, qui présentent le code d’état 408, 429 et 5XX, ainsi que les éventuelles exceptions de connectivité.Customizes the retry behavior for intermittent failures, which have the 408, 429, and 5XX status code, and any connectivity exceptions. Pour plus d’informations, consultez Stratégies de relance.For more information, see Retry policies.
<query-parameters><query-parameters> Objet JSONJSON Object Paramètres de requête à inclure avec la requêteAny query parameters to include with the request

Par exemple, l’objet "queries": { "api-version": "2018-01-01" } ajoute ?api-version=2018-01-01 à la requête.For example, the "queries": { "api-version": "2018-01-01" } object adds ?api-version=2018-01-01 to the request.

<max-runs><max-runs> IntegerInteger Par défaut, les instances de workflows s’exécutent en même temps, ou en parallèle jusqu’à la limite par défaut.By default, workflow instances run at the same time, or in parallel up to the default limit. Pour changer cette limite en définissant une nouvelle valeur <count>, consultez Changer la concurrence du déclencheur.To change this limit by setting a new <count> value, see Change trigger concurrency.
<max-runs-queue><max-runs-queue> IntegerInteger Lorsque votre application logique exécute déjà le nombre maximal d’instances, que vous pouvez modifier en fonction de la propriété runtimeConfiguration.concurrency.runs, les nouvelles exécutions sont placées dans cette file d’attente jusqu’à la limite par défaut.When your workflow is already running the maximum number of instances, which you can change based on the runtimeConfiguration.concurrency.runs property, any new runs are put into this queue up to the default limit. Pour changer la limite par défaut, consultez Changer la limite d’exécutions en attente.To change the default limit, see Change waiting runs limit.
<operation-option><operation-option> StringString Vous pouvez modifier le comportement par défaut en définissant la propriété operationOptions.You can change the default behavior by setting the operationOptions property. Pour plus d’informations, consultez Options d’opérations.For more information, see Operation options.

SortiesOutputs

ÉlémentElement TypeType DescriptionDescription
headersheaders Objet JSONJSON Object En-têtes de la réponseThe headers from the response
bodybody Objet JSONJSON Object Corps de la réponseThe body from the response
Code d’étatstatus code IntegerInteger Code d’état de la réponseThe status code from the response

Conditions requises pour les requêtes entrantesRequirements for incoming requests

Pour fonctionner correctement avec votre application logique, le point de terminaison doit être conforme à un modèle ou contrat de déclencheur spécifique, et reconnaître ces propriétés :To work well with your logic app, the endpoint must conform to a specific trigger pattern or contract, and recognize these properties:

responseResponse ObligatoireRequired DescriptionDescription
Code d’étatStatus code OUIYes Le code d’état « 200 OK » démarre une exécution.The "200 OK" status code starts a run. Les autres codes d’état ne démarrent pas d’exécution.Any other status code doesn't start a run.
En-tête Retry-afterRetry-after header NonNo Nombre de secondes au bout duquel l’application logique interroge à nouveau le point de terminaisonThe number of seconds until your logic app polls the endpoint again
En-tête LocationLocation header NonNo URL à appeler lors du prochain intervalle d’interrogation.The URL to call at the next polling interval. Si aucune valeur n’est spécifiée, l’URL d’origine est utilisée.If not specified, the original URL is used.

Exemples de comportements pour différentes requêtesExample behaviors for different requests

Code d’étatStatus code Retry after (Réessayer après)Retry after ComportementBehavior
200200 {aucune}{none} Exécutez le workflow et vérifiez de nouveau pour obtenir plus de données après la périodicité définie.Run the workflow, then check again for more data after the defined recurrence.
200200 10 secondes10 seconds Exécutez le workflow et vérifiez de nouveau pour obtenir plus de données après 10 secondes.Run the workflow, then check again for more data after 10 seconds.
202202 60 secondes60 seconds Ne pas déclencher le workflow.Don't trigger the workflow. La prochaine tentative se produit dans une minute conformément à la périodicité définie.The next attempt happens in one minute, subject to the defined recurrence. Si la périodicité définie est inférieure à une minute, l’en-tête retry-after est prioritaire.If the defined recurrence is less than one minute, the retry-after header takes precedence. Dans le cas contraire, la périodicité définie est utilisée.Otherwise, the defined recurrence is used.
400400 {aucune}{none} Requête incorrecte, ne pas exécuter le workflow.Bad request, don't run the workflow. Si aucune valeur retryPolicy n’est définie, la stratégie par défaut est utilisée.If no retryPolicy is defined, then the default policy is used. Une fois que le nombre de nouvelles tentatives a été atteint, le déclencheur vérifie de nouveau pour obtenir plus de données après la périodicité définie.After the number of retries has been reached, the trigger checks again for data after the defined recurrence.
500500 {aucune}{none} Erreur de serveur, ne pas exécuter le workflow.Server error, don't run the workflow. Si aucune valeur retryPolicy n’est définie, la stratégie par défaut est utilisée.If no retryPolicy is defined, then the default policy is used. Une fois que le nombre de nouvelles tentatives a été atteint, le déclencheur vérifie de nouveau pour obtenir plus de données après la périodicité définie.After the number of retries has been reached, the trigger checks again for data after the defined recurrence.

Déclencheur HTTPWebhookHTTPWebhook trigger

Ce déclencheur permet à votre application logique de pouvoir être appelée en créant un point de terminaison capable d’inscrire un abonnement en appelant l’URL de point de terminaison spécifiée.This trigger makes your logic app callable by creating an endpoint that can register a subscription by calling the specified endpoint URL. Quand vous créez ce déclencheur dans votre workflow, une requête sortante effectue l’appel pour inscrire l’abonnement.When you create this trigger in your workflow, an outgoing request makes the call to register the subscription. De cette façon, le déclencheur peut commencer à écouter les événements.That way, the trigger can start listening for events. Quand une opération rend ce déclencheur non valide, une requête sortante effectue automatiquement l’appel afin d’annuler l’abonnement.When an operation makes this trigger invalid, an outgoing request automatically makes the call to cancel the subscription. Pour plus d’informations, consultez Abonnements de point de terminaison.For more information, see Endpoint subscriptions.

Vous pouvez également spécifier des limites asynchrones sur un déclencheur HTTPWebhook.You can also specify asynchronous limits on an HTTPWebhook trigger. Le comportement du déclencheur varie en fonction des sections que vous incluez ou omettez.The trigger's behavior depends on the sections that you use or omit.

"HTTP_Webhook": {
   "type": "HttpWebhook",
   "inputs": {
      "subscribe": {
         "method": "<method-type>",
         "uri": "<endpoint-subscribe-URL>",
         "headers": { "<header-content>" },
         "body": "<body-content>",
         "authentication": { "<authentication-method>" },
         "retryPolicy": { "<retry-behavior>" }
         },
      },
      "unsubscribe": {
         "method": "<method-type>",
         "url": "<endpoint-unsubscribe-URL>",
         "headers": { "<header-content>" },
         "body": "<body-content>",
         "authentication": { "<authentication-method>" }
      }
   },
   "runTimeConfiguration": {
      "concurrency": {
         "runs": <max-runs>,
         "maximumWaitingRuns": <max-runs-queue>
      }
   },
   "operationOptions": "<operation-option>"
}

Certaines valeurs, telles que < -method-type>, sont disponibles pour les objets "subscribe" et "unsubscribe".Some values, such as <method-type>, are available for both the "subscribe" and "unsubscribe" objects.

ObligatoireRequired

ValeurValue TypeType DescriptionDescription
<method-type><method-type> StringString Méthode HTTP utilisée pour la requête d’abonnement : « GET », « PUT », « POST », « PATCH » ou « DELETE »The HTTP method to use for the subscription request: "GET", "PUT", "POST", "PATCH", or "DELETE"
<endpoint-subscribe-URL><endpoint-subscribe-URL> StringString URL du point de terminaison où envoyer la requête d’abonnementThe endpoint URL where to send the subscription request

FacultatifOptional

ValeurValue TypeType DescriptionDescription
<method-type><method-type> StringString Méthode HTTP utilisée pour la requête d’annulation : « GET », « PUT », « POST », « PATCH » ou « DELETE »The HTTP method to use for the cancellation request: "GET", "PUT", "POST", "PATCH", or "DELETE"
<endpoint-unsubscribe-URL><endpoint-unsubscribe-URL> StringString URL du point de terminaison où envoyer la requête d’annulationThe endpoint URL where to send the cancellation request
<body-content><body-content> StringString Tout contenu de message à envoyer dans la requête d’abonnement ou d’annulationAny message content to send in the subscription or cancellation request
<authentication-method><authentication-method> Objet JSONJSON Object Méthode utilisée par la requête pour l’authentification.The method the request uses for authentication. Pour plus d’informations, consultez Authentification sortante de Scheduler.For more information, see Scheduler Outbound Authentication.
<retry-behavior><retry-behavior> Objet JSONJSON Object Personnalise le comportement de nouvelle tentative pour les défaillances intermittentes, qui présentent le code d’état 408, 429 et 5XX, ainsi que les éventuelles exceptions de connectivité.Customizes the retry behavior for intermittent failures, which have the 408, 429, and 5XX status code, and any connectivity exceptions. Pour plus d’informations, consultez Stratégies de relance.For more information, see Retry policies.
<max-runs><max-runs> IntegerInteger Par défaut, les instances de workflows s’exécutent toutes en même temps, ou en parallèle jusqu’à la limite par défaut.By default, workflow instances all run at the same time, or in parallel up to the default limit. Pour changer cette limite en définissant une nouvelle valeur <count>, consultez Changer la concurrence du déclencheur.To change this limit by setting a new <count> value, see Change trigger concurrency.
<max-runs-queue><max-runs-queue> IntegerInteger Lorsque votre application logique exécute déjà le nombre maximal d’instances, que vous pouvez modifier en fonction de la propriété runtimeConfiguration.concurrency.runs, les nouvelles exécutions sont placées dans cette file d’attente jusqu’à la limite par défaut.When your workflow is already running the maximum number of instances, which you can change based on the runtimeConfiguration.concurrency.runs property, any new runs are put into this queue up to the default limit. Pour changer la limite par défaut, consultez Changer la limite d’exécutions en attente.To change the default limit, see Change waiting runs limit.
<operation-option><operation-option> StringString Vous pouvez modifier le comportement par défaut en définissant la propriété operationOptions.You can change the default behavior by setting the operationOptions property. Pour plus d’informations, consultez Options d’opérations.For more information, see Operation options.

SortiesOutputs

ÉlémentElement TypeType DescriptionDescription
headersheaders Objet JSONJSON Object En-têtes de la réponseThe headers from the response
bodybody Objet JSONJSON Object Corps de la réponseThe body from the response
Code d’étatstatus code IntegerInteger Code d’état de la réponseThe status code from the response

ExempleExample

Ce déclencheur crée un abonnement au point de terminaison spécifié, fournit une URL de rappel unique, et attend des articles sur la technologie venant d’être publiés.This trigger creates a subscription to the specified endpoint, provides a unique callback URL, and waits for newly published technology articles.

"HTTP_Webhook": {
   "type": "HttpWebhook",
   "inputs": {
      "subscribe": {
         "method": "POST",
         "uri": "https://pubsubhubbub.appspot.com/subscribe",
         "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"
         }
      }
   }
}

Déclencheur recurrenceRecurrence trigger

Ce déclencheur s’active en fonction de la planification de périodicité que vous spécifiez. Il offre un moyen simple de créer un workflow à l’exécution régulière.This trigger runs based on the specified recurrence schedule and provides an easy way for creating a regularly running workflow.

"Recurrence": {
   "type": "Recurrence",
   "recurrence": {
      "frequency": "<time-unit>",
      "interval": <number-of-time-units>,
      "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": <max-runs>,
         "maximumWaitingRuns": <max-runs-queue>
      }
   },
   "operationOptions": "<operation-option>"
}

ObligatoireRequired

ValeurValue TypeType DescriptionDescription
<time-unit><time-unit> StringString Unité de temps qui décrit la fréquence d’activation du déclencheur : "Second", "Minute", "Hour", "Day", "Week", "Month"The unit of time that describes how often the trigger fires: "Second", "Minute", "Hour", "Day", "Week", "Month"
<number-of-time-units><number-of-time-units> IntegerInteger Valeur qui spécifie la fréquence d’activation du déclencheur, qui correspond au nombre d’unités de temps à attendre avant que le déclencheur soit activé à nouveauA value that specifies how often the trigger fires based on the frequency, which is the number of time units to wait until the trigger fires again

Les intervalles minimaux et maximaux sont les suivants :Here are the minimum and maximum intervals:

- Mois : 1-16 mois- Month: 1-16 months
Jour : 1-500 jours- Day: 1-500 days
- Heure : 1-12 000 heures- Hour: 1-12,000 hours
- Minute : 1-72 000 minutes- Minute: 1-72,000 minutes
- Seconde : 1-9 999 999 secondes- Second: 1-9,999,999 seconds

Par exemple, si l’intervalle est défini sur 6 et la fréquence sur « Month », la périodicité est tous les six mois.For example, if the interval is 6, and the frequency is "Month", the recurrence is every 6 months.

FacultatifOptional

ValeurValue TypeType DescriptionDescription
<start-date-time-with-format-YYYY-MM-DDThh:mm:ss><start-date-time-with-format-YYYY-MM-DDThh:mm:ss> StringString Date et heure de début au format suivant :The start date and time in this format:

AAAA-MM-JJThh:mm:ss si vous spécifiez un fuseau horaireYYYY-MM-DDThh:mm:ss if you specify a time zone

-ou--or-

AAAA-MM-JJThh:mm:ssZ si vous ne spécifiez pas de fuseau horaireYYYY-MM-DDThh:mm:ssZ if you don't specify a time zone

Par exemple, si vous choisissez le 18 septembre 2017 à 14h, spécifiez « 2017-09-18T14:00:00 » et spécifiez un fuseau horaire tel que « Pacific Standard Time » (Heure standard du Pacifique), ou spécifiez « 2017-09-18T14:00:00Z » sans fuseau horaire.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.

Remarque : Cette heure de début ne peut pas dépasser 49 ans dans le futur, et doit être conforme à la spécification de date/heure ISO 8601 au format de date/heure UTC, mais sans décalage UTC.Note: This start time has a maximum of 49 years in the future and must follow the ISO 8601 date time specification in UTC date time format, but without a UTC offset. Si vous ne spécifiez pas de fuseau horaire, vous devez ajouter la lettre « Z » à la fin, sans espace.If you don't specify a time zone, you must add the letter "Z" at the end without any spaces. Ce « Z » fait référence au temps nautique équivalent.This "Z" refers to the equivalent nautical time.

Pour les planifications simples, l’heure de début est la première occurrence, tandis que pour les planifications complexes, le déclencheur ne se déclenche pas avant l’heure de début.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. Pour plus d’informations sur les dates et heures de début, consultez Create and schedule regularly running tasks (Créer et planifier des tâches à exécution régulière).For more information about start dates and times, see Create and schedule regularly running tasks.

<time-zone><time-zone> StringString S’applique uniquement quand vous spécifiez une heure de début, car ce déclencheur n’accepte pas le décalage UTC.Applies only when you specify a start time because this trigger doesn't accept UTC offset. Spécifiez le fuseau horaire à appliquer.Specify the time zone that you want to apply.
<one-or-more-hour-marks><one-or-more-hour-marks> Entier ou tableau d’entiersInteger or integer array Si vous spécifiez « Jour » ou « Semaine » pour frequency, vous pouvez spécifier un ou plusieurs entiers compris entre 0 et 23, séparés par des virgules, pour les heures de la journée durant lesquelles exécuter le workflow.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.

Par exemple, si vous spécifiez « 10 », « 12 » et « 14 », vous obtenez 10h00, 12h00 et 14h00 comme marques horaires.For example, if you specify "10", "12" and "14", you get 10 AM, 12 PM, and 2 PM as the hour marks.

<one-or-more-minute-marks><one-or-more-minute-marks> Entier ou tableau d’entiersInteger or integer array Si vous spécifiez « Jour » ou « Semaine » pour frequency, vous pouvez spécifier un ou plusieurs entiers compris entre 0 et 59, séparés par des virgules, pour les minutes de l’heure durant lesquelles exécuter le workflow.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.

Par exemple, vous pouvez spécifier « 30 » pour les minutes et à l’aide de l’exemple précédent des heures de la journée, vous obtenez 10h30, 12h30 et 14h30.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 Chaîne ou tableau de chaînesString or string array Si vous spécifiez « Semaine » pour frequency, vous pouvez spécifier un ou plusieurs jours, séparés par des virgules, pour exécuter le workflow : « Monday », « Tuesday », « Wednesday », « Thursday », « Friday », « Saturday » et « 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"
<max-runs><max-runs> IntegerInteger Par défaut, les instances de workflows s’exécutent toutes en même temps, ou en parallèle jusqu’à la limite par défaut.By default, workflow instances all run at the same time, or in parallel up to the default limit. Pour changer cette limite en définissant une nouvelle valeur <count>, consultez Changer la concurrence du déclencheur.To change this limit by setting a new <count> value, see Change trigger concurrency.
<max-runs-queue><max-runs-queue> IntegerInteger Lorsque votre application logique exécute déjà le nombre maximal d’instances, que vous pouvez modifier en fonction de la propriété runtimeConfiguration.concurrency.runs, les nouvelles exécutions sont placées dans cette file d’attente jusqu’à la limite par défaut.When your workflow is already running the maximum number of instances, which you can change based on the runtimeConfiguration.concurrency.runs property, any new runs are put into this queue up to the default limit. Pour changer la limite par défaut, consultez Changer la limite d’exécutions en attente.To change the default limit, see Change waiting runs limit.
<operation-option><operation-option> StringString Vous pouvez modifier le comportement par défaut en définissant la propriété operationOptions.You can change the default behavior by setting the operationOptions property. Pour plus d’informations, consultez Options d’opérations.For more information, see Operation options.

Exemple 1Example 1

Ce déclencheur de périodicité de base s’active tous les jours :This basic recurrence trigger runs daily:

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

Exemple 2Example 2

Vous pouvez définir une date et une heure de début pour activer le déclencheur.You can specify a start date and time for firing the trigger. Ce déclencheur de périodicité démarre à la date spécifiée, puis s’active tous les jours :This recurrence trigger starts on the specified date and then fires daily:

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

Exemple 3Example 3

Ce déclencheur de périodicité commence le 9 septembre 2017 à 14h00, et il s’active tous les lundis à 10h30, 12h30 et 14h30 Heure standard du Pacifique :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:

"Recurrence": {
   "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"
   }
}

Pour plus d’informations et pour obtenir des exemples pour ce déclencheur, consultez Créer et planifier l’exécution régulière de tâches.For more information plus examples for this trigger, see Create and schedule regularly running tasks.

Déclencheur de requêteRequest trigger

Ce déclencheur fait en sorte que votre application logique puisse être appelée en créant un point de terminaison qui peut accepter des requêtes entrantes.This trigger makes your logic app callable by creating an endpoint that can accept incoming requests. Pour ce déclencheur, fournit un schéma JSON qui décrit et valide la charge utile ou les entrées que le déclencheur reçoit de la requête entrante.For this trigger, provide a JSON schema that describes and validates the payload or inputs that the trigger receives from the incoming request. Le schéma facilite également le référencement des propriétés de déclencheur à partir d’actions ultérieures dans le workflow.The schema also makes trigger properties easier to reference from later actions in the workflow.

Pour appeler ce déclencheur, vous devez utiliser l’API listCallbackUrl, qui est décrite dans l’API REST de service de workflow.To call this trigger, you must use the listCallbackUrl API, which is described in the Workflow Service REST API. Pour découvrir comment utiliser ce déclencheur en tant que point de terminaison HTTP, consultez Appeler, déclencher ou imbriquer des workflows via des points de terminaison 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": "<method-type>",
      "relativePath": "<relative-path-for-accepted-parameter>",
      "schema": {
         "type": "object",
         "properties": { 
            "<property-name>": {
               "type": "<property-type>"
            }
         },
         "required": [ "<required-properties>" ]
      }
   },
   "runTimeConfiguration": {
      "concurrency": {
         "runs": <max-runs>,
         "maximumWaitingRuns": <max-run-queue>
      },
   },
   "operationOptions": "<operation-option>"
}

ObligatoireRequired

ValeurValue TypeType DescriptionDescription
<property-name><property-name> StringString Nom d’une propriété dans le schéma JSON qui décrit la charge utileThe name of a property in the JSON schema, which describes the payload
<property-type><property-type> StringString Type de la propriétéThe property's type

FacultatifOptional

ValeurValue TypeType DescriptionDescription
<method-type><method-type> StringString Méthode que les requêtes entrantes doivent utiliser pour appeler votre application logique : « GET », « PUT », « POST », « PATCH », « DELETE »The method that incoming requests must use to call your logic app: "GET", "PUT", "POST", "PATCH", "DELETE"
<relative-path-for-accepted-parameter><relative-path-for-accepted-parameter> StringString Chemin relatif pour le paramètre que l’URL de votre point de terminaison peut accepterThe relative path for the parameter that your endpoint's URL can accept
<required-properties><required-properties> ArrayArray Une ou plusieurs propriétés qui nécessitent des valeurs.One or more properties that require values
<max-runs><max-runs> IntegerInteger Par défaut, les instances de workflows s’exécutent toutes en même temps, ou en parallèle jusqu’à la limite par défaut.By default, workflow instances all run at the same time, or in parallel up to the default limit. Pour changer cette limite en définissant une nouvelle valeur <count>, consultez Changer la concurrence du déclencheur.To change this limit by setting a new <count> value, see Change trigger concurrency.
<max-runs-queue><max-runs-queue> IntegerInteger Lorsque votre application logique exécute déjà le nombre maximal d’instances, que vous pouvez modifier en fonction de la propriété runtimeConfiguration.concurrency.runs, les nouvelles exécutions sont placées dans cette file d’attente jusqu’à la limite par défaut.When your workflow is already running the maximum number of instances, which you can change based on the runtimeConfiguration.concurrency.runs property, any new runs are put into this queue up to the default limit. Pour changer la limite par défaut, consultez Changer la limite d’exécutions en attente.To change the default limit, see Change waiting runs limit.
<operation-option><operation-option> StringString Vous pouvez modifier le comportement par défaut en définissant la propriété operationOptions.You can change the default behavior by setting the operationOptions property. Pour plus d’informations, consultez Options d’opérations.For more information, see Operation options.

ExempleExample

Ce déclencheur spécifie qu’une requête entrante doit utiliser la méthode HTTP POST pour appeler le déclencheur, et inclut un schéma qui valide l’entrée de la requête entrante :This trigger specifies that an incoming request must use the HTTP POST method to call the trigger and includes a schema that validates input from the incoming request:

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

Conditions du déclencheurTrigger conditions

Pour les déclencheurs uniquement, vous pouvez inclure un tableau qui contient une ou plusieurs expressions pour des conditions qui déterminent si le workflow doit s’exécuter.For any trigger, and only triggers, you can include an array that contains one or more expressions for conditions that determine whether the workflow should run. Pour ajouter la propriété conditions à un déclencheur dans votre flux de travail, ouvrez l’application logique dans l’éditeur en mode code.To add the conditions property to a trigger in your workflow, open your logic app in the code view editor.

Par exemple, vous pouvez spécifier qu’un déclencheur est activé uniquement quand un site web retourne une erreur interne du serveur référençant le code d’état du déclencheur dans la propriété conditions :For example, you can specify that a trigger fires only when a website returns an internal server error by referencing the trigger's status code in the conditions property:

"Recurrence": {
   "type": "Recurrence",
   "recurrence": {
      "frequency": "Hour",
      "interval": 1
   },
   "conditions": [ {
      "expression": "@equals(triggers().code, 'InternalServerError')"
   } ]
}

Par défaut, un déclencheur s’active uniquement après avoir reçu une réponse « 200 OK ».By default, a trigger fires only after getting a "200 OK" response. Quand une expression référence le code d’état d’un déclencheur, le comportement par défaut du déclencheur est remplacé.When an expression references a trigger's status code, the trigger's default behavior is replaced. Par conséquent, si vous souhaitez que le déclencheur s’active pour plusieurs codes d’état, par exemple les codes d’état « 200 » et « 201 », vous devez inclure cette expression comme condition :So, if you want the trigger to fire for more than one status code, such as the "200" and "201" status code, you must include this expression as your condition:

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

Déclencher plusieurs exécutionsTrigger multiple runs

Si votre déclencheur renvoie un tableau à traiter pour votre application logique, il arrive qu’une boucle « for each » prenne trop de temps pour traiter chaque élément du tableau.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. Au lieu de cela, vous pouvez utiliser la propriété SplitOn dans votre déclencheur pour décomposer le tableau.Instead, you can use the SplitOn property in your trigger to debatch the array. La décomposition sépare les éléments de tableau et démarre une nouvelle instance de flux de travail qui s’exécute pour chaque élément du tableau.Debatching splits up the array items and starts a new workflow instance that runs for each array item. Par exemple, cette approche est utile lorsque vous souhaitez interroger un point de terminaison qui peut renvoyer plusieurs nouveaux éléments entre les intervalles d’interrogation.This approach is useful, for example, when you want to poll an endpoint that might return multiple new items between polling intervals. Pour connaître le nombre maximal d’éléments de tableau que SplitOn peut traiter en une seule exécution d’application logique, consultez Limites et configurations.For the maximum number of array items that SplitOn can process in a single logic app run, see Limits and configuration.

Notes

Vous ne pouvez pas utiliser SplitOn avec un modèle de réponse synchrone.You can't use SplitOn with a synchronous response pattern. Les workflows qui utilisent SplitOn et incluent une réponse action s’exécutent de façon asynchrone et envoient immédiatement une réponse 202 ACCEPTED.Any workflow that uses SplitOn and includes a response action runs asynchronously and immediately sends a 202 ACCEPTED response.

Si le fichier Swagger de votre déclencheur décrit une charge utile sous forme de tableau, la propriété SplitOn est automatiquement ajoutée à votre déclencheur.If your trigger's Swagger file describes a payload that is an array, the SplitOn property is automatically added to your trigger. Sinon, ajoutez cette propriété à l’intérieur de la charge utile de la réponse qui contient le tableau à décomposer.Otherwise, add this property inside the response payload that has the array you want to debatch.

ExempleExample

Supposez que vous avez une API qui retourne la réponse suivante :Suppose you have an API that returns this response:

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

Comme votre application logique a uniquement besoin du contenu du tableau dans Rows, vous pouvez créer votre déclencheur comme dans cet exemple :Your logic app only needs the content from the array in Rows, so you can create a trigger like this example:

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

Notes

Si vous utilisez la commande SplitOn, vous ne pouvez pas obtenir les propriétés qui ne se trouvent pas dans le tableau.If you use the SplitOn command, you can't get the properties that are outside the array. Pour cet exemple, vous ne pouvez donc pas obtenir la propriété status dans la réponse renvoyée par l’API.So for this example, you can't get the status property in the response returned from the API.

Dans cet exemple, nous utilisons l’opérateur ? afin d’éviter un échec si la propriété Rows n’existe pas.To avoid a failure if the Rows property doesn't exist, this example uses the ? operator.

Votre définition de workflow peut désormais utiliser @triggerBody().name pour obtenir les valeurs name, qui sont "customer-name-one" à partir de la première exécution et "customer-name-two" à partir de la deuxième exécution.Your workflow definition can now use @triggerBody().name to get the name values, which are "customer-name-one" from the first run and "customer-name-two" from the second run. Par conséquent, les sorties du déclencheur se présentent comme dans les exemples suivants :So, your trigger outputs look like these examples:

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

Vue d’ensemble des actionsActions overview

Azure Logic Apps fournit différents types d’actions, chacun avec des entrées différentes qui définissent le comportement unique d’une action.Azure Logic Apps provides various action types - each with different inputs that define an action's unique behavior.

Les actions ont les principaux éléments suivants, bien que certains soient facultatifs :Actions have these high-level elements, though some are optional:

"<action-name>": {
   "type": "<action-type>",
   "inputs": { 
      "<input-name>": { "<input-value>" },
      "retryPolicy": "<retry-behavior>" 
   },
   "runAfter": { "<previous-trigger-or-action-status>" },
   "runtimeConfiguration": { "<runtime-config-options>" },
   "operationOptions": "<operation-option>"
},

ObligatoireRequired

ValeurValue TypeType DescriptionDescription
<action-name><action-name> StringString Nom de l’actionThe name for the action
<action-type><action-type> StringString Type d’action, par exemple « Http » ou « ApiConnection »The action type, for example, "Http" or "ApiConnection"
<input-name><input-name> StringString Nom d’une entrée qui définit le comportement de l’actionThe name for an input that defines the action's behavior
<input-value><input-value> DiversVarious Valeur d’entrée, qui peut être une chaîne, un entier, nu objet JSON, et ainsi de suiteThe input value, which can be a string, integer, JSON object, and so on
<previous-trigger-or-action-status><previous-trigger-or-action-status> Objet JSONJSON Object Nom et état résultant du déclencheur ou de l’action qui doit s’exécuter juste avant que cette action puisse s’exécuterThe name and resulting status for the trigger or action that must run immediately before this current action can run

FacultatifOptional

ValeurValue TypeType DescriptionDescription
<retry-behavior><retry-behavior> Objet JSONJSON Object Personnalise le comportement de nouvelle tentative pour les défaillances intermittentes, qui présentent le code d’état 408, 429 et 5XX, ainsi que les éventuelles exceptions de connectivité.Customizes the retry behavior for intermittent failures, which have the 408, 429, and 5XX status code, and any connectivity exceptions. Pour plus d’informations, consultez Stratégies de relance.For more information, see Retry policies.
<runtime-config-options><runtime-config-options> Objet JSONJSON Object Pour certaines actions, vous pouvez changer le comportement de l’action au moment de l’exécution en définissant des propriétés runtimeConfiguration.For some actions, you can change the action's behavior at run time by setting runtimeConfiguration properties. Pour plus d’informations, consultez Paramètres de configuration d’exécution.For more information, see Runtime configuration settings.
<operation-option><operation-option> StringString Pour certaines actions, vous pouvez changer le comportement par défaut en définissant la propriété operationOptions.For some actions, you can change the default behavior by setting the operationOptions property. Pour plus d’informations, consultez Options d’opérations.For more information, see Operation options.

Liste des types d’actionsAction types list

Voici quelques types d’actions couramment utilisés :Here are some commonly used action types:

Actions intégréesBuilt-in actions

Type d’actionAction type DescriptionDescription
ComposerCompose Crée une sortie unique à partir des entrées, qui peuvent avoir différents types.Creates a single output from inputs, which can have various types.
Exécuter du code JavaScriptExecute JavaScript Code Exécutez des extraits de code JavaScript qui répondent à des critères spécifiques.Run JavaScript code snippets that fit within specific criteria. Pour connaître les exigences relatives au code et d’autres informations, voir Ajouter et exécuter des extraits de code avec du code inclus dans Azure Logic Apps.For code requirements and more information, see Add and run code snippets with inline code.
FunctionFunction Appelle une fonction Azure.Calls an Azure Function.
HTTPHTTP Appelle un point de terminaison HTTP.Calls an HTTP endpoint.
JoinJoin Crée une chaîne à partir de tous les éléments d’un tableau, et sépare ces éléments avec un caractère délimiteur spécifié.Creates a string from all the items in an array and separates those items with a specified delimiter character.
Parse JSONParse JSON Crée des jetons conviviaux à partir de propriétés dans du contenu JSON.Creates user-friendly tokens from properties in JSON content. Vous pouvez ensuite référencer ces propriétés en incluant les jetons dans votre application logique.You can then reference those properties by including the tokens in your logic app.
QueryQuery Crée un tableau à partir des éléments d’un autre tableau en fonction d’une condition ou d’un filtre.Creates an array from items in another array based on a condition or filter.
ResponseResponse Crée une réponse à une requête ou un appel entrant.Creates a response to an incoming call or request.
SelectSelect Crée un tableau avec des objets JSON en transformant les éléments d’un autre tableau en fonction de la carte spécifiée.Creates an array with JSON objects by transforming items from another array based on the specified map.
TableTable Crée une table CSV ou HTML à partir d’un tableau.Creates a CSV or HTML table from an array.
TerminateTerminate Arrête un workflow en cours d’exécution.Stops an actively running workflow.
WaitWait Interrompt votre workflow pour une durée spécifiée ou jusqu’à la date et l’heure spécifiées.Pauses your workflow for a specified duration or until the specified date and time.
WorkflowWorkflow Imbrique un workflow à l’intérieur d’un autre workflow.Nests a workflow inside another workflow.

Actions d’API managéesManaged API actions

Type d’actionAction type DescriptionDescription
ApiConnectionApiConnection Appelle un point de terminaison HTTP à l’aide d’une API managée par Microsoft.Calls an HTTP endpoint by using a Microsoft-managed API.
ApiConnectionWebhookApiConnectionWebhook Fonctionne comme HTTPWebhook, mais utilise une API managée par Microsoft.Works like HTTP Webhook but uses a Microsoft-managed API.

Actions de workflows de contrôleControl workflow actions

Ces actions vous permettent de contrôler l’exécution du workflow et d’inclure d’autres actions.These actions help you control workflow execution and include other actions. À partir de l’extérieur d’une action de workflow de contrôle, vous pouvez directement référencer des actions à l’intérieur de cette action de workflow de contrôle.From outside a control workflow action, you can directly reference actions inside that control workflow action. Par exemple, si vous avez une action Http à l’intérieur d’une étendue, vous pouvez référencer l’expression @body('Http') à partir de n’importe où dans le workflow.For example, if you have an Http action inside a scope, you can reference the @body('Http') expression from anywhere in the workflow. Toutefois, les actions qui existent à l’intérieur d’une action de workflow de contrôle ne peuvent « s’exécuter qu’après d’autres actions » qui se trouvent dans la même structure de workflow de contrôle.However, actions that exist inside a control workflow action can only "run after" other actions that are in the same control workflow structure.

Type d’actionAction type DescriptionDescription
ForEachForEach Exécuter les mêmes actions dans une boucle pour chaque élément d’un tableau.Run the same actions in a loop for every item in an array.
IfIf Exécuter des actions selon que la condition spécifiée est true ou false.Run actions based on whether the specified condition is true or false.
ScopeScope Exécuter des actions en fonction de l’état de groupe d’un ensemble d’actions.Run actions based on the group status from a set of actions.
SwitchSwitch Exécuter des actions organisées en cas quand les valeurs d’expressions, d’objets ou de jetons correspondent aux valeurs spécifiées par chaque cas.Run actions organized into cases when values from expressions, objects, or tokens match the values specified by each case.
UntilUntil Exécuter des actions dans une boucle jusqu’à ce que la condition spécifiée ait la valeur true.Run actions in a loop until the specified condition is true.

Actions - Référence détailléeActions - Detailed reference

Action APIConnectionAPIConnection action

Cette action envoie une requête HTTP à une API managée par Microsoft et exige des informations sur l’API et les paramètres, ainsi qu’une référence à une connexion valide.This action sends an HTTP request to a Microsoft-managed API and requires information about the API and parameters plus a reference to a valid connection.

"<action-name>": {
   "type": "ApiConnection",
   "inputs": {
      "host": {
         "connection": {
            "name": "@parameters('$connections')['<api-name>']['connectionId']"
         },
         "<other-action-specific-input-properties>"        
      },
      "method": "<method-type>",
      "path": "/<api-operation>",
      "retryPolicy": "<retry-behavior>",
      "queries": { "<query-parameters>" },
      "<other-action-specific-properties>"
    },
    "runAfter": {}
}

ObligatoireRequired

ValeurValue TypeType DescriptionDescription
<action-name><action-name> StringString Nom de l’action fournie par le connecteurThe name of the action provided by the connector
<api-name><api-name> StringString Nom de l’API managée par Microsoft qui est utilisée pour la connexionThe name of the Microsoft-managed API that is used for the connection
<method-type><method-type> StringString Méthode HTTP d’appel de l’API : « GET », « PUT », « POST », « PATCH » ou « DELETE »The HTTP method for calling the API: "GET", "PUT", "POST", "PATCH", or "DELETE"
<api-operation><api-operation> StringString Opération d’API à appelerThe API operation to call

FacultatifOptional

ValeurValue TypeType DescriptionDescription
<other-action-specific-input-properties><other-action-specific-input-properties> Objet JSONJSON Object Toutes autres propriétés d’entrée qui s’appliquent à cette action spécifiqueAny other input properties that apply to this specific action
<retry-behavior><retry-behavior> Objet JSONJSON Object Personnalise le comportement de nouvelle tentative pour les défaillances intermittentes, qui présentent le code d’état 408, 429 et 5XX, ainsi que les éventuelles exceptions de connectivité.Customizes the retry behavior for intermittent failures, which have the 408, 429, and 5XX status code, and any connectivity exceptions. Pour plus d’informations, consultez Stratégies de relance.For more information, see Retry policies.
<query-parameters><query-parameters> Objet JSONJSON Object Paramètres de requête à inclure avec l’appel d’API.Any query parameters to include with the API call.

Par exemple, l’objet "queries": { "api-version": "2018-01-01" } ajoute ?api-version=2018-01-01 à l’appel.For example, the "queries": { "api-version": "2018-01-01" } object adds ?api-version=2018-01-01 to the call.

<other-action-specific-properties><other-action-specific-properties> Objet JSONJSON Object Toutes autres propriétés qui s’appliquent à cette action spécifiqueAny other properties that apply to this specific action

ExempleExample

Cette définition décrit l’action Envoyer un e-mail pour le connecteur Office 365 Outlook, qui est une API managée par Microsoft :This definition describes the Send an email action for Office 365 Outlook connector, which is a Microsoft-managed API:

"Send_an_email": {
   "type": "ApiConnection",
   "inputs": {
      "body": {
         "Body": "Thank you for your membership!",
         "Subject": "Hello and welcome!",
         "To": "Sophie.Owen@contoso.com"
      },
      "host": {
         "connection": {
            "name": "@parameters('$connections')['office365']['connectionId']"
         }
      },
      "method": "POST",
      "path": "/Mail"
    },
    "runAfter": {}
}

Action APIConnectionWebhookAPIConnectionWebhook action

Cette action envoie une demande d’abonnement à un point de terminaison par le biais du protocole HTTP à l’aide d’une API managée par Microsoft, fournit une URL de rappel où le point de terminaison peut envoyer une réponse, et attend que le point de terminaison réponde.This action sends a subscription request over HTTP to an endpoint by using a Microsoft-managed API, provides a callback URL to where the endpoint can send a response, and waits for the endpoint to respond. Pour plus d’informations, consultez Abonnements de point de terminaison.For more information, see Endpoint subscriptions.

"<action-name>": {
   "type": "ApiConnectionWebhook",
   "inputs": {
      "subscribe": {
         "method": "<method-type>",
         "uri": "<api-subscribe-URL>",
         "headers": { "<header-content>" },
         "body": "<body-content>",
         "authentication": { "<authentication-method>" },
         "retryPolicy": "<retry-behavior>",
         "queries": { "<query-parameters>" },
         "<other-action-specific-input-properties>"
      },
      "unsubscribe": {
         "method": "<method-type>",
         "uri": "<api-unsubscribe-URL>",
         "headers": { "<header-content>" },
         "body": "<body-content>",
         "authentication": { "<authentication-method>" },
         "<other-action-specific-properties>"
      },
   },
   "runAfter": {}
}

Certaines valeurs, telles que < -method-type>, sont disponibles pour les objets "subscribe" et "unsubscribe".Some values, such as <method-type>, are available for both the "subscribe" and "unsubscribe" objects.

ObligatoireRequired

ValeurValue TypeType DescriptionDescription
<action-name><action-name> StringString Nom de l’action fournie par le connecteurThe name of the action provided by the connector
<method-type><method-type> StringString Méthode HTTP à utiliser pour s’abonner ou annuler l’abonnement à un point de terminaison : « GET », « PUT », « POST », « PATCH » ou « DELETE »The HTTP method to use for subscribing or unsubscribing from an endpoint: "GET", "PUT", "POST", "PATCH", or "DELETE"
<api-subscribe-URL><api-subscribe-URL> StringString URI à utiliser pour s’abonner à l’APIThe URI to use for subscribing to the API

FacultatifOptional

ValeurValue TypeType DescriptionDescription
<api-unsubscribe-URL><api-unsubscribe-URL> StringString URI à utiliser pour annuler l’abonnement à l’APIThe URI to use for unsubscribing from the API
<header-content><header-content> Objet JSONJSON Object En-têtes à envoyer dans la requêteAny headers to send in the request

Par exemple, pour définir la langue et le type d’une requête :For example, to set the language and type on a request:

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

<body-content><body-content> Objet JSONJSON Object Tout contenu de message à envoyer dans la requêteAny message content to send in the request
<authentication-method><authentication-method> Objet JSONJSON Object Méthode utilisée par la requête pour l’authentification.The method the request uses for authentication. Pour plus d’informations, consultez Authentification sortante de Scheduler.For more information, see Scheduler Outbound Authentication.
<retry-behavior><retry-behavior> Objet JSONJSON Object Personnalise le comportement de nouvelle tentative pour les défaillances intermittentes, qui présentent le code d’état 408, 429 et 5XX, ainsi que les éventuelles exceptions de connectivité.Customizes the retry behavior for intermittent failures, which have the 408, 429, and 5XX status code, and any connectivity exceptions. Pour plus d’informations, consultez Stratégies de relance.For more information, see Retry policies.
<query-parameters><query-parameters> Objet JSONJSON Object Paramètres de requête à inclure avec l’appel d’APIAny query parameters to include with the API call

Par exemple, l’objet "queries": { "api-version": "2018-01-01" } ajoute ?api-version=2018-01-01 à l’appel.For example, the "queries": { "api-version": "2018-01-01" } object adds ?api-version=2018-01-01 to the call.

<other-action-specific-input-properties><other-action-specific-input-properties> Objet JSONJSON Object Toutes autres propriétés d’entrée qui s’appliquent à cette action spécifiqueAny other input properties that apply to this specific action
<other-action-specific-properties><other-action-specific-properties> Objet JSONJSON Object Toutes autres propriétés qui s’appliquent à cette action spécifiqueAny other properties that apply to this specific action

Vous pouvez aussi spécifier les limites sur une action ApiConnectionWebhook de la même manière que les limites asynchrones HTTP.You can also specify limits on an ApiConnectionWebhook action in the same way as HTTP asynchronous limits.

Action composeCompose action

Cette action crée une sortie unique à partir de plusieurs entrées, y compris des expressions.This action creates a single output from multiple inputs, including expressions. La sortie et les entrées peuvent avoir n’importe quel type pris en charge nativement par Azure Logic Apps, tels que des tableaux, objets JSON, XML et binaires.Both the output and inputs can have any type that Azure Logic Apps natively supports, such as arrays, JSON objects, XML, and binary. Vous pouvez ensuite utiliser la sortie de l’action dans d’autres actions.You can then use the action's output in other actions.

"Compose": {
   "type": "Compose",
   "inputs": "<inputs-to-compose>",
   "runAfter": {}
},

ObligatoireRequired

ValeurValue TypeType DescriptionDescription
<inputs-to-compose><inputs-to-compose> QuelconqueAny Entrées pour la création d’une sortie uniqueThe inputs for creating a single output

Exemple 1Example 1

Cette définition d’action fusionne abcdefg avec un espace de fin et la valeur 1234 :This action definition merges abcdefg with a trailing space and the value 1234:

"Compose": {
   "type": "Compose",
   "inputs": "abcdefg 1234",
   "runAfter": {}
},

Voici la sortie créée par cette action :Here is the output that this action creates:

abcdefg 1234

Exemple 2Example 2

Cette définition d’action fusionne une variable de chaîne qui contient abcdefg et une variable de type entier qui contient 1234 :This action definition merges a string variable that contains abcdefg and an integer variable that contains 1234:

"Compose": {
   "type": "Compose",
   "inputs": "@{variables('myString')}@{variables('myInteger')}",
   "runAfter": {}
},

Voici la sortie créée par cette action :Here is the output that this action creates:

"abcdefg1234"

Action Exécuter du code JavaScriptExecute JavaScript Code action

Cette action exécute un extrait de code JavaScript et renvoie les résultats via un jeton Result auquel les actions ultérieures peuvent faire référence.This action runs a JavaScript code snippet and returns the results through a Result token that later actions can reference.

"Execute_JavaScript_Code": {
   "type": "JavaScriptCode",
   "inputs": {
      "code": "<JavaScript-code-snippet>",
      "explicitDependencies": {
         "actions": [ <previous-actions> ],
         "includeTrigger": true
      }
   },
   "runAfter": {}
}

ObligatoireRequired

ValeurValue TypeType DescriptionDescription
<JavaScript-code-snippet><JavaScript-code-snippet> VarieVaries Code JavaScript que vous souhaitez exécuter.The JavaScript code that you want to run. Pour connaître les exigences relatives au code et d’autres informations, voir Ajouter et exécuter des extraits de code avec du code inclus dans Azure Logic Apps.For code requirements and more information, see Add and run code snippets with inline code.

Dans l’attributcode, votre extrait de code peut utiliser l’objet workflowContexten lecture seule en tant qu’entrée.In the code attribute, your code snippet can use the read-only workflowContext object as input. Cet objet possède des sous-propriétés qui permettent à votre code d’accéder aux résultats provenant du déclencheur, ainsi que les actions précédentes, dans votre flux de travail.This object has subproperties that give your code access to the results from the trigger and previous actions in your workflow. Pour en savoir plus sur l’objet workflowContext, voir Faire référence aux résultats des actions et du déclencheur dans votre code.For more information about the workflowContext object, see Reference trigger and action results in your code.

Obligatoire dans certains casRequired in some cases

L’attribut explicitDependencies spécifie que vous souhaitez inclure explicitement les résultats à partir du déclencheur et/ou des actions précédentes, en tant que dépendances de votre extrait de code.The explicitDependencies attribute specifies that you want to explicitly include results from the trigger, previous actions, or both as dependencies for your code snippet. Pour en savoir plus sur l’ajout de ces dépendances, voir Add parameters for inline code (Ajout de paramètres pour le code inclus).For more information about adding these dependencies, see Add parameters for inline code.

Pour l’attribut includeTrigger, vous pouvez spécifier les valeurs true ou false.For the includeTrigger attribute, you can specify true or false values.

ValeurValue TypeType DescriptionDescription
<previous-actions><previous-actions> Tableau de chaînesString array Tableau incluant les noms d’action que vous avez spécifiés.An array with your specified action names. Utilisez les noms d’action qui s’affichent dans votre définition de flux de travail lorsqu’ils utilisent des traits de soulignement (), et non des espaces (« »).Use the action names that appear in your workflow definition where action names use underscores (), not spaces (" ").

Exemple 1Example 1

Cette action exécute le code qui obtient le nom de votre application logique et renvoie le texte « Hello world de <nom-application-logique> » en tant que résultat.This action runs code that gets your logic app's name and returns the text "Hello world from <logic-app-name>" as the result. Dans cet exemple, le code référence le nom du flux de travail en accédant à la propriété workflowContext.workflow.name via l’objet workflowContext en lecture seule.In this example, the code references the workflow's name by accessing the workflowContext.workflow.name property through the read-only workflowContext object. Pour en savoir plus sur l’utilisation de l’objet workflowContext, voir Faire référence aux résultats des actions et du déclencheur dans votre code.For more information about using the workflowContext object, see Reference trigger and action results in your code.

"Execute_JavaScript_Code": {
   "type": "JavaScriptCode",
   "inputs": {
      "code": "var text = \"Hello world from \" + workflowContext.workflow.name;\r\n\r\nreturn text;"
   },
   "runAfter": {}
}

Exemple 2Example 2

Cette action exécute le code dans une application logique qui se déclenche lorsqu’un nouvel e-mail arrive sur un compte Office 365 Outlook.This action runs code in a logic app that triggers when a new email arrives in an Office 365 Outlook account. L’application logique utilise également une action Envoyer un e-mail d’approbation, qui transfère le contenu de l’e-mail reçu ainsi qu’une requête d’approbation.The logic app also uses a send approval email action that forwards the content from the received email along with a request for approval.

Le code extrait les adresses e-mail à partir de la propriété Body du déclencheur, et les renvoie avec la valeur de la propriété SelectedOption à partir de l’action d’approbation.The code extracts email addresses from the trigger's Body property and returns those email addresses along with the SelectedOption property value from the approval action. L’action inclut de manière explicite l’action Envoyer un e-mail d’approbation en tant que dépendance dans l’attribut explicitDependencies > actions.The action explicitly includes the send approval email action as a dependency in the explicitDependencies > actions attribute.

"Execute_JavaScript_Code": {
   "type": "JavaScriptCode",
   "inputs": {
      "code": "var re = /(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))/g;\r\n\r\nvar email = workflowContext.trigger.outputs.body.Body;\r\n\r\nvar reply = workflowContext.actions.Send_approval_email_.outputs.body.SelectedOption;\r\n\r\nreturn email.match(re) + \" - \" + reply;\r\n;",
      "explicitDependencies": {
         "actions": [
            "Send_approval_email_"
         ]
      }
   },
   "runAfter": {}
}

Action functionFunction action

Cette action appelle une fonction Azure créée précédemment.This action calls a previously created Azure function.

"<Azure-function-name>": {
   "type": "Function",
   "inputs": {
     "function": {
        "id": "<Azure-function-ID>"
      },
      "method": "<method-type>",
      "headers": { "<header-content>" },
      "body": { "<body-content>" },
      "queries": { "<query-parameters>" } 
   },
   "runAfter": {}
}

ObligatoireRequired

ValeurValue TypeType DescriptionDescription
<Azure-function-ID><Azure-function-ID> StringString ID de ressource de la fonction Azure que vous souhaitez appeler.The resource ID for the Azure function you want to call. Voici le format de cette valeur :Here is the format for this value:

"/subscriptions/<ID_abonnement_Azure>/resourceGroups/<groupe_ressources_Azure>/providers/Microsoft.Web/sites/<nom_application_fonction_Azure>/functions/<nom_fonction_Azure>""/subscriptions/<Azure-subscription-ID>/resourceGroups/<Azure-resource-group>/providers/Microsoft.Web/sites/<Azure-function-app-name>/functions/<Azure-function-name>"

<method-type><method-type> StringString Méthode HTTP à utiliser pour appeler la fonction : « GET », « PUT », « POST », « PATCH » ou « DELETE »The HTTP method to use for calling the function: "GET", "PUT", "POST", "PATCH", or "DELETE"

Si elle n’est pas spécifiée, la méthode par défaut est « POST ».If not specified, the default is the "POST" method.

FacultatifOptional

ValeurValue TypeType DescriptionDescription
<header-content><header-content> Objet JSONJSON Object En-têtes à envoyer avec l’appelAny headers to send with the call

Par exemple, pour définir la langue et le type d’une requête :For example, to set the language and type on a request:

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

<body-content><body-content> Objet JSONJSON Object Tout contenu de message à envoyer dans la requêteAny message content to send in the request
<query-parameters><query-parameters> Objet JSONJSON Object Paramètres de requête à inclure avec l’appel d’APIAny query parameters to include with the API call

Par exemple, l’objet "queries": { "api-version": "2018-01-01" } ajoute ?api-version=2018-01-01 à l’appel.For example, the "queries": { "api-version": "2018-01-01" } object adds ?api-version=2018-01-01 to the call.

<other-action-specific-input-properties><other-action-specific-input-properties> Objet JSONJSON Object Toutes autres propriétés d’entrée qui s’appliquent à cette action spécifiqueAny other input properties that apply to this specific action
<other-action-specific-properties><other-action-specific-properties> Objet JSONJSON Object Toutes autres propriétés qui s’appliquent à cette action spécifiqueAny other properties that apply to this specific action

Quand vous enregistrez votre application logique, le moteur Logic Apps effectue ces contrôles sur la fonction référencée :When you save your logic app, the Logic Apps engine performs these checks on the referenced function:

  • Votre workflow doit avoir accès à la fonction.Your workflow must have access to the function.

  • Votre workflow ne peut utiliser qu’un déclencheur HTTP standard ou un déclencheur webhook JSON générique.Your workflow can use only a standard HTTP trigger or generic JSON webhook trigger.

    Le moteur Logic Apps obtient et met en cache l’URL du déclencheur, qui est utilisée au moment de l’exécution.The Logic Apps engine gets and caches the trigger's URL, which is used at runtime. Toutefois, si une opération invalide l’URL en cache, l’action Function échoue au moment de l’exécution.However, if any operation invalidates the cached URL, the Function action fails at runtime. Pour résoudre ce problème, réenregistrez l’application logique afin qu’elle obtienne et mette en cache l’URL du déclencheur.To fix this issue, save the logic app again so that the logic app gets and caches the trigger URL again.

  • La fonction ne doit pas avoir d’itinéraire défini.The function can't have any route defined.

  • Seuls les niveaux d’autorisation « fonction » et « anonyme » sont autorisés.Only "function" and "anonymous" authorization levels are allowed.

ExempleExample

Cette définition d’action appelle la fonction « GetProductID » créée précédemment :This action definition calls the previously created "GetProductID" function:

"GetProductID": {
   "type": "Function",
   "inputs": {
     "function": {
        "id": "/subscriptions/<XXXXXXXXXXXXXXXXXXXX>/resourceGroups/myLogicAppResourceGroup/providers/Microsoft.Web/sites/InventoryChecker/functions/GetProductID"
      },
      "method": "POST",
      "headers": { 
          "x-ms-date": "@utcnow()"
       },
      "body": { 
          "Product_ID": "@variables('ProductID')"
      }
   },
   "runAfter": {}
}

Action HTTPHTTP action

Cette action envoie une requête au point de terminaison spécifique et vérifie la réponse pour déterminer si le workflow doit être exécuté.This action sends a request to the specified endpoint and checks the response to determine whether the workflow should run.

"HTTP": {
   "type": "Http",
   "inputs": {
      "method": "<method-type>",
      "uri": "<HTTP-or-HTTPS-endpoint-URL>"
   },
   "runAfter": {}
}

ObligatoireRequired

ValeurValue TypeType DescriptionDescription
<method-type><method-type> StringString Méthode à utiliser pour envoyer la requête : « GET », « PUT », « POST », « PATCH » ou « DELETE »The method to use for sending the request: "GET", "PUT", "POST", "PATCH", or "DELETE"
<HTTP-or-HTTPS-endpoint-URL><HTTP-or-HTTPS-endpoint-URL> StringString Point de terminaison HTTP ou HTTPS à appeler.The HTTP or HTTPS endpoint to call. Taille de chaîne maximale : 2 KoMaximum string size: 2 KB

FacultatifOptional

ValeurValue TypeType DescriptionDescription
<header-content><header-content> Objet JSONJSON Object En-têtes à envoyer avec la requêteAny headers to send with the request

Par exemple, pour définir la langue et le type :For example, to set the language and type:

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

<body-content><body-content> Objet JSONJSON Object Tout contenu de message à envoyer dans la requêteAny message content to send in the request
<retry-behavior><retry-behavior> Objet JSONJSON Object Personnalise le comportement de nouvelle tentative pour les défaillances intermittentes, qui présentent le code d’état 408, 429 et 5XX, ainsi que les éventuelles exceptions de connectivité.Customizes the retry behavior for intermittent failures, which have the 408, 429, and 5XX status code, and any connectivity exceptions. Pour plus d’informations, consultez Stratégies de relance.For more information, see Retry policies.
<query-parameters><query-parameters> Objet JSONJSON Object Paramètres de requête à inclure avec la requêteAny query parameters to include with the request

Par exemple, l’objet "queries": { "api-version": "2018-01-01" } ajoute ?api-version=2018-01-01 à l’appel.For example, the "queries": { "api-version": "2018-01-01" } object adds ?api-version=2018-01-01 to the call.

<other-action-specific-input-properties><other-action-specific-input-properties> Objet JSONJSON Object Toutes autres propriétés d’entrée qui s’appliquent à cette action spécifiqueAny other input properties that apply to this specific action
<other-action-specific-properties><other-action-specific-properties> Objet JSONJSON Object Toutes autres propriétés qui s’appliquent à cette action spécifiqueAny other properties that apply to this specific action

ExempleExample

Cette définition d’action obtient les informations les plus récentes en envoyant une requête au point de terminaison spécifié :This action definition gets the latest news by sending a request to the specified endpoint:

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

Join actionJoin action

Cette action crée une chaîne à partir de tous les éléments d’un tableau, et sépare ces éléments avec le caractère délimiteur spécifié.This action creates a string from all the items in an array and separates those items with the specified delimiter character.

"Join": {
   "type": "Join",
   "inputs": {
      "from": <array>,
      "joinWith": "<delimiter>"
   },
   "runAfter": {}
}

ObligatoireRequired

ValeurValue TypeType DescriptionDescription
<array><array> ArrayArray Tableau ou expression qui fournit les éléments sources.The array or expression that provides the source items. Si vous spécifiez une expression, placez l’expression entre guillemets doubles.If you specify an expression, enclose that expression with double quotes.
<delimiter><delimiter> Chaîne d’un seul caractèreSingle character string Caractère qui sépare chaque élément dans la chaîneThe character that separates each item in the string

ExempleExample

Supposez que vous avez créé une variable « myIntegerArray » qui contient ce tableau d’entiers :Suppose you have a previously created "myIntegerArray" variable that contains this integer array:

[1,2,3,4]

Cette définition d’action obtient les valeurs de la variable en utilisant la fonction variables() dans une expression, et elle crée cette chaîne avec ces valeurs, séparées par une virgule : "1,2,3,4"This action definition gets the values from the variable by using the variables() function in an expression and creates this string with those values, which are separated by a comma: "1,2,3,4"

"Join": {
   "type": "Join",
   "inputs": {
      "from": "@variables('myIntegerArray')",
      "joinWith": ","
   },
   "runAfter": {}
}

Action Parse JSONParse JSON action

Cette action crée des jetons ou champs conviviaux à partir des propriétés dans le contenu JSON.This action creates user-friendly fields or tokens from the properties in JSON content. Vous pouvez ensuite accéder à ces propriétés dans votre application logique en utilisant les jetons à la place.You can then access those properties in your logic app by using the tokens instead. Par exemple, quand vous souhaitez utiliser la sortie JSON de services tels qu’Azure Service Bus et Azure Cosmos DB, vous pouvez inclure cette action dans votre application logique afin de pouvoir référencer plus facilement les données dans cette sortie.For example, when you want to use JSON output from services such as Azure Service Bus and Azure Cosmos DB, you can include this action in your logic app so that you can more easily reference the data in that output.

"Parse_JSON": {
   "type": "ParseJson",
   "inputs": {
      "content": "<JSON-source>",
         "schema": { "<JSON-schema>" }
      },
      "runAfter": {}
},

ObligatoireRequired

ValeurValue TypeType DescriptionDescription
<JSON-source><JSON-source> Objet JSONJSON Object Contenu JSON que vous souhaitez analyserThe JSON content you want to parse
<JSON-schema><JSON-schema> Objet JSONJSON Object Schéma JSON qui décrit le contenu JSON sous-jacent, utilisé par l’action pour analyser le contenu JSON source.The JSON schema that describes the underlying the JSON content, which the action uses for parsing the source JSON content.

Conseil : Dans le Concepteur d’applications logiques, vous pouvez fournir le schéma ou fournir un exemple de charge utile afin que l’action puisse générer le schéma.Tip: In Logic Apps Designer, you can either provide the schema or provide a sample payload so that the action can generate the schema.

ExempleExample

Cette définition d’action crée les jetons que vous pouvez utiliser dans votre flux de travail, mais uniquement dans les actions qui s’exécutent après l’action Analyser JSON :This action definition creates these tokens that you can use in your workflow but only in actions that run following the Parse JSON action:

FirstName, LastName et EmailFirstName, LastName, and Email

"Parse_JSON": {
   "type": "ParseJson",
   "inputs": {
      "content": {
         "Member": {
            "Email": "Sophie.Owen@contoso.com",
            "FirstName": "Sophie",
            "LastName": "Owen"
         }
      },
      "schema": {
         "type": "object",
         "properties": {
            "Member": {
               "type": "object",
               "properties": {
                  "Email": {
                     "type": "string"
                  },
                  "FirstName": {
                     "type": "string"
                  },
                  "LastName": {
                     "type": "string"
                  }
               }
            }
         }
      }
   },
   "runAfter": { }
},

Dans cet exemple, la propriété « content » spécifie le contenu JSON devant être analysé par l’action.In this example, the "content" property specifies the JSON content for the action to parse. Vous pouvez également fournir ce contenu JSON comme exemple de charge utile pour générer le schéma.You can also provide this JSON content as the sample payload for generating the schema.

"content": {
   "Member": { 
      "FirstName": "Sophie",
      "LastName": "Owen",
      "Email": "Sophie.Owen@contoso.com"
   }
},

La propriété « schema » spécifie le schéma JSON utilisé pour décrire le contenu JSON :The "schema" property specifies the JSON schema used for describing the JSON content:

"schema": {
   "type": "object",
   "properties": {
      "Member": {
         "type": "object",
         "properties": {
            "FirstName": {
               "type": "string"
            },
            "LastName": {
               "type": "string"
            },
            "Email": {
               "type": "string"
            }
         }
      }
   }
}

Action de requêteQuery action

Cette action crée un tableau à partir des éléments d’un autre tableau en fonction d’une condition ou d’un filtre spécifié.This action creates an array from items in another array based on a specified condition or filter.

"Filter_array": {
   "type": "Query",
   "inputs": {
      "from": <array>,
      "where": "<condition-or-filter>"
   },
   "runAfter": {}
}

ObligatoireRequired

ValeurValue TypeType DescriptionDescription
<array><array> ArrayArray Tableau ou expression qui fournit les éléments sources.The array or expression that provides the source items. Si vous spécifiez une expression, placez l’expression entre guillemets doubles.If you specify an expression, enclose that expression with double quotes.
<condition-or-filter><condition-or-filter> StringString Condition utilisée pour le filtrage des éléments dans le tableau sourceThe condition used for filtering items in the source array

Remarque: Si aucune valeur ne remplit la condition, l’action crée un tableau vide.Note: If no values satisfy the condition, then the action creates an empty array.

ExempleExample

Cette définition d’action crée un tableau qui contient des valeurs supérieures à la valeur spécifiée (deux) :This action definition creates an array that has values greater than the specified value, which is two:

"Filter_array": {
   "type": "Query",
   "inputs": {
      "from": [ 1, 3, 0, 5, 4, 2 ],
      "where": "@greater(item(), 2)"
   }
}

Action de réponseResponse action

Cette action crée la charge utile pour la réponse à une requête HTTP.This action creates the payload for the response to an HTTP request.

"Response" {
    "type": "Response",
    "kind": "http",
    "inputs": {
        "statusCode": 200,
        "headers": { <response-headers> },
        "body": { <response-body> }
    },
    "runAfter": {}
},

ObligatoireRequired

ValeurValue TypeType DescriptionDescription
<response-status-code><response-status-code> IntegerInteger Code d’état HTTP envoyé à la requête entrante.The HTTP status code that is sent to the incoming request. Le code par défaut est « 200 OK », mais il peut s’agir de tout code d’état valide commençant par 2xx, 4xx ou 5xx, mais pas avec 3xxx.The default code is "200 OK", but the code can be any valid status code that starts with 2xx, 4xx, or 5xx, but not with 3xxx.

FacultatifOptional

ValeurValue TypeType DescriptionDescription
<response-headers><response-headers> Objet JSONJSON Object Un ou plusieurs en-têtes à inclure avec la réponseOne or more headers to include with the response
<response-body><response-body> DiversVarious Corps de réponse, qui peut être une chaîne, un objet JSON ou même du contenu binaire d’une action précédenteThe response body, which can be a string, JSON object, or even binary content from a previous action

ExempleExample

Cette définition d’action crée une réponse à une requête HTTP avec le code d’état, le corps du message et les en-têtes de message spécifiés :This action definition creates a response to an HTTP request with the specified status code, message body, and message headers:

"Response": {
   "type": "Response",
   "inputs": {
      "statusCode": 200,
      "body": {
         "ProductID": 0,
         "Description": "Organic Apples"
      },
      "headers": {
         "x-ms-date": "@utcnow()",
         "content-type": "application/json"
      }
   },
   "runAfter": {}
}

RestrictionsRestrictions

Contrairement à d’autres actions, l’action Response présente des restrictions spéciales :Unlike other actions, the Response action has special restrictions:

  • Votre workflow peut utiliser l’action Response uniquement quand le workflow démarre avec un déclencheur de requête HTTP, ce qui signifie que votre workflow doit être déclenché par une requête HTTP.Your workflow can use the Response action only when the workflow starts with an HTTP request trigger, meaning your workflow must be triggered by an HTTP request.

  • Votre workflow peut utiliser l’action Response n’importe où sauf à l’intérieur de boucles Foreach, de boucles Until, y compris les boucles séquentielles, et de branches parallèles.Your workflow can use the Response action anywhere except inside Foreach loops, Until loops, including sequential loops, and parallel branches.

  • La requête HTTP d’origine obtient la réponse de votre workflow uniquement quand toutes les actions requises par l’action Response sont terminées dans la limite de délai d’attente de requête HTTP.The original HTTP request gets your workflow's response only when all actions required by the Response action are finished within the HTTP request timeout limit.

    Toutefois, si votre workflow appelle une autre application logique en tant que workflow imbriqué, le workflow parent attend que le workflow imbriqué se termine, quelle que soit la durée nécessaire.However, if your workflow calls another logic app as a nested workflow, the parent workflow waits until the nested workflow finishes, no matter how much time passes before the nested workflow finishes.

  • Quand votre workflow utilise l’action Response et un modèle de réponse synchrone, le workflow ne peut pas non plus utiliser la commande splitOn dans la définition du déclencheur, car cette commande crée plusieurs exécutions.When your workflow uses the Response action and a synchronous response pattern, the workflow can't also use the splitOn command in the trigger definition because that command creates multiple runs. Vérifiez ce cas quand la méthode PUT est utilisée et, dans l’affirmative, retournez une réponse « requête incorrecte ».Check for this case when the PUT method is used, and if true, return a "bad request" response.

    Sinon, si votre workflow utilise la commande splitOn et une action Response, le workflow s’exécute de façon asynchrone et retourne immédiatement une réponse « 202 ACCEPTED ».Otherwise, if your workflow uses the splitOn command and a Response action, the workflow runs asynchronously and immediately returns a "202 ACCEPTED" response.

  • Quand l’exécution du workflow atteint l’action Response, mais que la requête entrante a déjà reçu une réponse, l’action Response, est marquée comme « Échec » à cause du conflit.When your workflow's execution reaches the Response action, but the incoming request has already received a response, the Response action is marked as "Failed" due to the conflict. En conséquence, l’exécution de votre application logique est également marquée avec l’état « Échec ».And as a result, your logic app run is also marked with "Failed" status.

Action selectSelect action

Cette action crée un tableau avec des objets JSON en transformant les éléments d’un autre tableau en fonction de la carte spécifiée.This action creates an array with JSON objects by transforming items from another array based on the specified map. Le tableau de sortie et le tableau source ont toujours le même nombre d’éléments.The output array and source array always have the same number of items. Bien que vous ne puissiez pas changer le nombre d’objets dans le tableau de sortie, vous pouvez ajouter ou supprimer des propriétés et leurs valeurs à ces objets.Although you can't change the number of objects in the output array, you can add or remove properties and their values across those objects. La propriété select spécifie au moins une paire clé-valeur qui définit le mappage pour transformer les éléments du tableau source.The select property specifies at least one key-value pair that define the map for transforming items in the source array. Une paire clé-valeur représente une propriété et sa valeur parmi tous les objets dans le tableau de sortie.A key-value pair represents a property and its value across all the objects in the output array.

"Select": {
   "type": "Select",
   "inputs": {
      "from": <array>,
      "select": { 
          "<key-name>": "<expression>",
          "<key-name>": "<expression>"        
      }
   },
   "runAfter": {}
},

ObligatoireRequired

ValeurValue TypeType DescriptionDescription
<array><array> ArrayArray Tableau ou expression qui fournit les éléments sources.The array or expression that provides the source items. N’oubliez pas de placer une expression entre guillemets doubles.Make sure you enclose an expression with double quotes.

Remarque: Si le tableau source est vide, l’action crée un tableau vide.Note: If the source array is empty, the action creates an empty array.

<key-name><key-name> StringString Nom de la propriété attribué au résultat à partir de <expression> The property name assigned to the result from <expression>

Pour ajouter une nouvelle propriété à tous les objets dans le tableau de sortie, fournissez un <key-name> pour cette propriété et une <expression> pour la valeur de propriété.To add a new property across all objects in the output array, provide a <key-name> for that property and an <expression> for the property value.

Pour supprimer une propriété de tous les objets dans le tableau, omettez le <key-name> pour cette propriété.To remove a property from all objects in the array, omit the <key-name> for that property.

<expression><expression> ChaîneString Expression qui transforme l’élément du tableau source et assigne le résultat à <key-name>The expression that transforms the item in the source array and assigns the result to <key-name>

L’action Select crée un tableau en tant que sortie. Par conséquent, toute action qui souhaite utiliser cette sortie doit accepter un tableau, ou vous devez convertir le tableau vers le type acceptée par l’action consommatrice.The Select action creates an array as output, so any action that wants to use this output must either accept an array, or you must convert the array into the type that the consumer action accepts. Par exemple, pour convertir le tableau de sortie en une chaîne, vous pouvez passer ce tableau à l’action Compose, puis référencer la sortie de l’action Compose dans vos autres actions.For example, to convert the output array to a string, you can pass that array to the Compose action, and then reference the output from the Compose action in your other actions.

ExempleExample

Cette définition d’action crée un tableau d’objets JSON à partir d’un tableau d’entiers.This action definition creates a JSON object array from an integer array. L’action itère au sein du tableau source, obtient chaque valeur entière à l’aide de l’expression @item(), et assigne chaque valeur à la propriété « number » dans chaque objet JSON :The action iterates through the source array, gets each integer value by using the @item() expression, and assigns each value to the "number" property in each JSON object:

"Select": {
   "type": "Select",
   "inputs": {
      "from": [ 1, 2, 3 ],
      "select": { 
         "number": "@item()" 
      }
   },
   "runAfter": {}
},

Voici le tableau créé par cette action :Here is the array that this action creates:

[ { "number": 1 }, { "number": 2 }, { "number": 3 } ]

Pour utiliser ce tableau dans d’autres actions, passez cette sortie dans une action Compose :To use this array output in other actions, pass this output into a Compose action:

"Compose": {
   "type": "Compose",
   "inputs": "@body('Select')",
   "runAfter": {
      "Select": [ "Succeeded" ]
   }
},

Vous pouvez ensuite utiliser la sortie de l’action Compose dans vos autres actions, par exemple l’action Office 365 Outlook - Envoyer un e-mail :You can then use the output from the Compose action in your other actions, for example, the Office 365 Outlook - Send an email action:

"Send_an_email": {
   "type": "ApiConnection",
   "inputs": {
      "body": {
         "Body": "@{outputs('Compose')}",
         "Subject": "Output array from Select and Compose actions",
         "To": "<your-email@domain>"
      },
      "host": {
         "connection": {
            "name": "@parameters('$connections')['office365']['connectionId']"
         }
      },
      "method": "post",
      "path": "/Mail"
   },
   "runAfter": {
      "Compose": [ "Succeeded" ]
   }
},

Action tableTable action

Cette action crée une table CSV ou HTML à partir d’un tableau.This action creates a CSV or HTML table from an array. Pour les tableaux contenant des objets JSON, cette action crée automatiquement les en-têtes de colonnes à partir des noms de propriétés des objets.For arrays with JSON objects, this action automatically creates the column headers from the objects' property names. Pour les tableaux contenant d’autres types de données, vous devez spécifier les en-têtes de colonnes et les valeurs.For arrays with other data types, you must specify the column headers and values. Par exemple, ce tableau inclut les propriétés « ID » et « Product_Name » que cette action peut utiliser pour les noms d’en-têtes de colonnes :For example, this array includes the "ID" and "Product_Name" properties that this action can use for the column header names:

[ {"ID": 0, "Product_Name": "Apples"}, {"ID": 1, "Product_Name": "Oranges"} ]

"Create_<CSV | HTML>_table": {
   "type": "Table",
   "inputs": {
      "format": "<CSV | HTML>",
      "from": <array>,
      "columns": [ 
         {
            "header": "<column-name>",
            "value": "<column-value>"
         },
         {
            "header": "<column-name>",
            "value": "<column-value>"
         } 
      ]
   },
   "runAfter": {}
}

ObligatoireRequired

ValeurValue TypeType DescriptionDescription
<CSV ou HTML><CSV or HTML> ChaîneString Format de la table que vous souhaitez créerThe format for the table you want to create
<array><array> ArrayArray Tableau ou expression qui fournit les éléments sources pour la tableThe array or expression that provides the source items for the table

Remarque: Si le tableau source est vide, l’action crée une table vide.Note: If the source array is empty, the action creates an empty table.

FacultatifOptional

Pour spécifier ou personnaliser des en-têtes de colonne et des valeurs, utilisez le tableau columns.To specify or customize column headers and values, use the columns array. Quand des paires header-value ont le même nom d’en-tête, leurs valeurs s’affichent dans la même colonne sous ce nom d’en-tête.When header-value pairs have the same header name, their values appear in the same column under that header name. Dans le cas contraire, chaque en-tête unique définit une colonne unique.Otherwise, each unique header defines a unique column.

ValeurValue TypeType DescriptionDescription
<column-name><column-name> StringString Nom d’en-tête pour une colonneThe header name for a column
<column-value><column-value> QuelconqueAny Valeur de la colonneThe value in that column

Exemple 1Example 1

Supposez que vous avez créé une variable « myItemArray » qui contenant actuellement ce tableau :Suppose you have a previously created "myItemArray" variable that currently contains this array:

[ {"ID": 0, "Product_Name": "Apples"}, {"ID": 1, "Product_Name": "Oranges"} ]

Cette définition d’action crée une table CSV à partir de la variable « myItemArray ».This action definition creates a CSV table from the "myItemArray" variable. L’expression utilisée par la propriété from obtient le tableau à partir de « myItemArray » à l’aide de la fonction variables() :The expression used by the from property gets the array from "myItemArray" by using the variables() function:

"Create_CSV_table": {
   "type": "Table",
   "inputs": {
      "format": "CSV",
      "from": "@variables('myItemArray')"
   },
   "runAfter": {}
}

Voici la table CSV créée par cette action :Here is the CSV table that this action creates:

ID,Product_Name 
0,Apples 
1,Oranges 

Exemple 2Example 2

Cette définition d’action crée une table HTML à partir de la variable « myItemArray ».This action definition creates an HTML table from the "myItemArray" variable. L’expression utilisée par la propriété from obtient le tableau à partir de « myItemArray » à l’aide de la fonction variables() :The expression used by the from property gets the array from "myItemArray" by using the variables() function:

"Create_HTML_table": {
   "type": "Table",
   "inputs": {
      "format": "HTML",
      "from": "@variables('myItemArray')"
   },
   "runAfter": {}
}

Voici la table HTML créée par cette action :Here is the HTML table that this action creates:

idIDProduct_NameProduct_Name
00PommesApples
11OrangesOranges

Exemple 3Example 3

Cette définition d’action crée une table HTML à partir de la variable « myItemArray ».This action definition creates an HTML table from the "myItemArray" variable. Toutefois, cet exemple remplace les noms d’en-têtes de colonnes par défaut par « Stock_ID » et « Description », et ajoute le mot « Organic » aux valeurs dans la colonne « Description ».However, this example overrides the default column header names with "Stock_ID" and "Description", and adds the word "Organic" to the values in the "Description" column.

"Create_HTML_table": {
   "type": "Table",
   "inputs": {
      "format": "HTML",
      "from": "@variables('myItemArray')",
      "columns": [ 
         {
            "header": "Stock_ID",
            "value": "@item().ID"
         },
         {
            "header": "Description",
            "value": "@concat('Organic ', item().Product_Name)"
         }
      ]
    },
   "runAfter": {}
},

Voici la table HTML créée par cette action :Here is the HTML table that this action creates:

Stock_IDStock_IDDescriptionDescription
00Organic ApplesOrganic Apples
11Organic OrangesOrganic Oranges

Action terminateTerminate action

Cette action arrête l’exécution de l’instance de flux de travail, annule toutes les actions en cours, ignore les actions restantes et renvoie l’état spécifié.This action stops the run for a workflow instance, cancels any actions in progress, skips any remaining actions, and returns the specified status. Vous pouvez par exemple utiliser l’action Terminate quand votre application logique doit se fermer complètement suite à un état d’erreur.For example, you can use the Terminate action when your logic app must exit completely from an error state. Cette action n’affecte pas les actions déjà terminées, et ne peut pas apparaître à l’intérieur de boucles Foreach et Until, y compris les boucles séquentielles.This action doesn't affect already completed actions and can't appear inside Foreach and Until loops, including sequential loops.

"Terminate": {
   "type": "Terminate",
   "inputs": {
       "runStatus": "<status>",
       "runError": {
            "code": "<error-code-or-name>",
            "message": "<error-message>"
       }
   },
   "runAfter": {}
}

ObligatoireRequired

ValeurValue TypeType DescriptionDescription
<status><status> StringString État à retourner pour l’exécution : « Démarré », « Échec » ou « Réussi »The status to return for the run: "Failed", "Cancelled", or "Succeeded"

FacultatifOptional

Les propriétés de l’objet « runStatus » s’appliquent uniquement quand la propriété « runStatus » a l’état « Failed ».The properties for the "runStatus" object apply only when the "runStatus" property is set to "Failed" status.

ValeurValue TypeType DescriptionDescription
<error-code-or-name><error-code-or-name> StringString Code ou nom de l’erreurThe code or name for the error
<error-message><error-message> StringString Message ou texte qui décrit l’erreur et les actions que peut effectuer l’utilisateur de l’applicationThe message or text that describes the error and any actions the app user can take

ExempleExample

Cette définition d’action arrête l’exécution d’un workflow, affecte la valeur « Failed » à l’état d’exécution, et retourne l’état, un code d’erreur et un message d’erreur :This action definition stops a workflow run, sets the run status to "Failed", and returns the status, an error code, and an error message:

"Terminate": {
    "type": "Terminate",
    "inputs": {
        "runStatus": "Failed",
        "runError": {
            "code": "Unexpected response",
            "message": "The service received an unexpected response. Please try again."
        }
   },
   "runAfter": {}
}

Action waitWait action

Cette action interrompt l’exécution du workflow pendant l’intervalle spécifié ou jusqu’à l’heure spécifiée, mais pas les deux.This action pauses workflow execution for the specified interval or until the specified time, but not both.

Intervalle spécifiéSpecified interval

"Delay": {
   "type": "Wait",
   "inputs": {
      "interval": {
         "count": <number-of-units>,
         "unit": "<interval>"
      }
   },
   "runAfter": {}
},

Heure spécifiéeSpecified time

"Delay_until": {
   "type": "Wait",
   "inputs": {
      "until": {
         "timestamp": "<date-time-stamp>"
      }
   },
   "runAfter": {}
},

ObligatoireRequired

ValeurValue TypeType DescriptionDescription
<number-of-units><number-of-units> IntegerInteger Pour l’action Delay, il s’agit du nombre d’unités pendant lesquelles attendreFor the Delay action, the number of units to wait
<interval><interval> StringString Pour l’action Delay, il s’agit de l’intervalle d’attente : "Second", "Minute", "Hour", "Day", "Week", "Month"For the Delay action, the interval to wait: "Second", "Minute", "Hour", "Day", "Week", "Month"
<date-time-stamp><date-time-stamp> StringString Pour l’action Delay, il s’agit de la date et de l’heure de reprise de l’exécution.For the Delay Until action, the date and time to resume execution. Cette valeur doit utiliser le format date/heure UTC.This value must use the UTC date time format.

Exemple 1Example 1

Cette définition d’action suspend le workflow pendant 15 minutes :This action definition pauses the workflow for 15 minutes:

"Delay": {
   "type": "Wait",
   "inputs": {
      "interval": {
         "count": 15,
         "unit": "Minute"
      }
   },
   "runAfter": {}
},

Exemple 2Example 2

Cette définition d’action suspend le workflow jusqu’à l’heure spécifiée :This action definition pauses the workflow until the specified time:

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

Action workflowWorkflow action

Cette action appelle une autre application logique créée précédemment, ce qui signifie que vous pouvez inclure et réutiliser d’autres workflows d’application logique.This action calls another previously created logic app, which means you can include and reuse other logic app workflows. Vous pouvez également utiliser les sorties de l’application logique enfant ou imbriquée dans des actions qui suivent l’application logique imbriquée, à condition que l’application logique enfant retourne une réponse.You can also use the outputs from the child or nested logic app in actions that follow the nested logic app, provided that the child logic app returns a response.

Le moteur Logic Apps vérifie l’accès au déclencheur que vous souhaitez appeler. Par conséquent, vérifiez que vous pouvez accéder à ce déclencheur.The Logic Apps engine checks access to the trigger you want to call, so make sure you can access that trigger. En outre, l’application logique imbriquée doit répondre aux critères suivants :Also, the nested logic app must meet these criteria:

  • Un déclencheur fait en sorte que l’application logique imbriquée puisse être appelée (par exemple un déclencheur Request ou HTTP)A trigger makes the nested logic app callable, such as a Request or HTTP trigger

  • Il s’agit du même abonnement Azure que votre application logique parenteThe same Azure subscription as your parent logic app

  • Pour utiliser les sorties de l’application logique imbriquée dans votre application logique parente, l’application logique imbriquée doit avoir une action ResponseTo use the outputs from the nested logic app in your parent logic app, the nested logic app must have a Response action

"<nested-logic-app-name>": {
   "type": "Workflow",
   "inputs": {
      "body": { "<body-content" },
      "headers": { "<header-content>" },
      "host": {
         "triggerName": "<trigger-name>",
         "workflow": {
            "id": "/subscriptions/<Azure-subscription-ID>/resourceGroups/<Azure-resource-group>/providers/Microsoft.Logic/<nested-logic-app-name>"
         }
      }
   },
   "runAfter": {}
}

ObligatoireRequired

ValeurValue TypeType DescriptionDescription
<nested-logic-app-name><nested-logic-app-name> StringString Nom de l’application logique que vous souhaitez appelerThe name for the logic app you want to call
<trigger-name><trigger-name> StringString Nom du déclencheur dans l’application logique imbriquée que vous souhaitez appelerThe name for the trigger in the nested logic app you want to call
<Azure-subscription-ID><Azure-subscription-ID> StringString ID d’abonnement Azure pour l’application logique imbriquéeThe Azure subscription ID for the nested logic app
<Azure-resource-group><Azure-resource-group> StringString Nom du groupe de ressources Azure pour l’application logique imbriquéeThe Azure resource group name for the nested logic app
<nested-logic-app-name><nested-logic-app-name> StringString Nom de l’application logique que vous souhaitez appelerThe name for the logic app you want to call

FacultatifOptional

ValeurValue TypeType DescriptionDescription
<header-content><header-content> Objet JSONJSON Object En-têtes à envoyer avec l’appelAny headers to send with the call
<body-content><body-content> Objet JSONJSON Object Tout contenu de message à envoyer avec l’appelAny message content to send with the call

SortiesOutputs

Les sorties de cette action dépendent de l’action Response de l’application logique imbriquée.This action's outputs vary based on the nested logic app's Response action. Si celle-ci n’inclut pas d’action Response, les sorties sont vides.If the nested logic app doesn't include a Response action, the outputs are empty.

ExempleExample

Une fois que l’action « Start_search » se termine correctement, cette définition d’action de workflow appelle une autre application logique nommée « Get_product_information », qui transmet les entrées spécifiées :After the "Start_search" action finishes successfully, this workflow action definition calls another logic app named "Get_product_information", which passes in the specified inputs:

"actions": {
   "Start_search": { <action-definition> },
   "Get_product_information": {
      "type": "Workflow",
      "inputs": {
         "body": {
            "ProductID": "24601",
         },
         "host": {
            "id": "/subscriptions/XXXXXXXXXXXXXXXXXXXXXXXXXX/resourceGroups/InventoryManager-RG/providers/Microsoft.Logic/Get_product_information",
            "triggerName": "Find_product"
         },
         "headers": {
            "content-type": "application/json"
         }
      },
      "runAfter": { 
         "Start_search": [ "Succeeded" ]
      }
   }
},

Détails des actions de workflow de contrôleControl workflow action details

Action ForeachForeach action

Cette action de bouclage effectue une itération au sein d’un tableau et exécute des actions sur chaque élément.This looping action iterates through an array and performs actions on each array item. Par défaut, la boucle « for each » s’exécute en parallèle jusqu’à un nombre maximal de boucles.By default, the "for each" loop runs in parallel up to a maximum number of loops. Pour plus d’informations sur ce maximum, consultez Limites et configuration. Dévouvrez comment créer des boucles « for each ».For this maximum, see Limits and config. Learn how to create "for each" loops.

"For_each": {
   "type": "Foreach",
   "actions": { 
      "<action-1>": { "<action-definition-1>" },
      "<action-2>": { "<action-definition-2>" }
   },
   "foreach": "<for-each-expression>",
   "runAfter": {},
   "runtimeConfiguration": {
      "concurrency": {
         "repetitions": <count>
      }
    },
    "operationOptions": "<operation-option>"
}

ObligatoireRequired

ValeurValue TypeType DescriptionDescription
<action-1...n><action-1...n> StringString Noms des actions qui s’exécutent sur chaque élément du tableauThe names of the actions that run on each array item
<action-definition-1...n><action-definition-1...n> Objet JSONJSON Object Définitions des actions qui s’exécutentThe definitions of the actions that run
<for-each-expression><for-each-expression> StringString Expression référence chaque élément du tableau spécifiéThe expression that references each item in the specified array

FacultatifOptional

ValeurValue TypeType DescriptionDescription
<count><count> IntegerInteger Par défaut, les itérations de boucle « for each » s’exécutent en même temps, ou en parallèle jusqu’à la limite par défaut.By default, the "for each" loop iterations run at the same time, or in parallel up to the default limit. Pour changer cette limite en définissant une nouvelle valeur <count>, consultez Changer la concurrence de boucle « for each ».To change this limit by setting a new <count> value, see Change "for each" loop concurrency.
<operation-option><operation-option> StringString Pour exécuter une boucle « for each » séquentiellement plutôt qu’en parallèle, affectez la valeur Sequential à <operation-option> ou la valeur 1 à <count>, mais pas les deux.To run a "for each" loop sequentially, rather than in parallel, set either <operation-option> to Sequential or <count> to 1, but not both. Pour plus d’informations, consultez Exécuter des boucles « for each » séquentiellement.For more information, see Run "for each" loops sequentially.

ExempleExample

Cette boucle « for each » envoie un e-mail pour chaque élément du tableau qui contient des pièces jointes à un e-mail entrant.This "for each" loop sends an email for each item in the array, which contains attachments from an incoming email. La boucle envoie un e-mail, pièce jointe comprise, à une personne qui passe en revue la pièce jointe.The loop sends an email, including the attachment, to a person who reviews the attachment.

"For_each": {
   "type": "Foreach",
   "actions": {
      "Send_an_email": {
         "type": "ApiConnection",
         "inputs": {
            "body": {
               "Body": "@base64ToString(items('For_each')?['Content'])",
               "Subject": "Review attachment",
               "To": "Sophie.Owen@contoso.com"
                },
            "host": {
               "connection": {
                  "id": "@parameters('$connections')['office365']['connectionId']"
               }
            },
            "method": "post",
            "path": "/Mail"
         },
         "runAfter": {}
      }
   },
   "foreach": "@triggerBody()?['Attachments']",
   "runAfter": {}
}

Pour spécifier uniquement un tableau qui est passé en tant que sortie du déclencheur, cette expression obtient le tableau <array-name> à partir du corps du déclencheur.To specify only an array that is passed as output from the trigger, this expression gets the <array-name> array from the trigger body. Pour éviter un échec si le tableau n’existe pas, l’expression utilise l’opérateur ? :To avoid a failure if the array doesn't exist, the expression uses the ? operator:

@triggerBody()?['<array-name>']

Action IfIf action

Cette action, qui est une instruction conditionnelle, évalue une expression qui représente une condition et exécute une branche différente selon que la condition est true ou false.This action, which is a conditional statement, evaluates an expression that represents a condition and runs a different branch based on whether the condition is true or false. Si la condition est true, elle est marquée avec l’état « Succeeded ».If the condition is true, the condition is marked with "Succeeded" status. Découvrez comment créer des instructions conditionnelles.Learn how to create conditional statements.

"Condition": {
   "type": "If",
   "expression": { "<condition>" },
   "actions": {
      "<action-1>": { "<action-definition>" }
   },
   "else": {
      "actions": {
        "<action-2>": { "<action-definition" }
      }
   },
   "runAfter": {}
}
ValeurValue TypeType DescriptionDescription
<condition><condition> Objet JSONJSON Object Condition, qui peut être une expression, à évaluerThe condition, which can be an expression, to evaluate
<action-1><action-1> Objet JSONJSON Object Action à exécuter quand <condition> a la valeur trueThe action to run when <condition> evaluates to true
<action-definition><action-definition> Objet JSONJSON Object Définition de l’actionThe definition for the action
<action-2><action-2> Objet JSONJSON Object Action à exécuter quand <condition> a la valeur falseThe action to run when <condition> evaluates to false

Les actions dans les objets actions ou else reçoivent ces états :The actions in the actions or else objects get these statuses:

  • Réussite, lorsqu’elles sont exécutées et qu’elles réussissent"Succeeded" when they run and succeed
  • Échec, lorsqu’elles sont exécutées et qu’elles échouent"Failed" when they run and fail
  • Ignoré, lorsque la branche respective ne s’exécute pas"Skipped" when the respective branch doesn't run

ExempleExample

Cette condition spécifie que quand la variable entière a une valeur supérieure à zéro, le workflow vérifie un site web.This condition specifies that when the integer variable has a value greater than zero, the workflow checks a website. Si la variable est égale à zéro ou moins, le workflow vérifie un autre site web.If the variable is zero or less, the workflow checks a different website.

"Condition": {
   "type": "If",
   "expression": {
      "and": [ {
         "greater": [ "@variables('myIntegerVariable')", 0 ] 
      } ]
   },
   "actions": { 
      "HTTP - Check this website": {
         "type": "Http",
         "inputs": {
         "method": "GET",
            "uri": "http://this-url"
         },
         "runAfter": {}
      }
   },
   "else": {
      "actions": {
         "HTTP - Check this other website": {
            "type": "Http",
            "inputs": {
               "method": "GET",
               "uri": "http://this-other-url"
            },
            "runAfter": {}
         }
      }
   },
   "runAfter": {}
}

Utilisation des expressions dans les conditionsHow conditions use expressions

Voici des exemples illustrant comment utiliser des expressions dans des conditions :Here are some examples that show how you can use expressions in conditions:

JSONJSON RésultatResult
"expression": "@parameters(’<a_condition_spéciale>’)""expression": "@parameters('<hasSpecialAction>')" Pour les expressions booléennes, la condition est satisfaite pour toute valeur évaluée comme True.For Boolean expressions only, the condition passes for any value that evaluates to true.

Pour convertir d’autres types en valeurs booléennes, utilisez la fonction empty() ou equals().To convert other types to Boolean, use these functions: empty() or equals().

"expression": "@greater(actions(’<action>’).output.value, parameters(’<seuil>’))""expression": "@greater(actions('<action>').output.value, parameters('<threshold>'))" Pour les fonctions de comparaison, l’action s’exécute uniquement quand la sortie de <action> est supérieure à la valeur de <seuil>.For comparison functions, the action runs only when the output from <action> is more than the <threshold> value.
"expression": "@or(greater(actions(’<action>’).output.value, parameters(’<seuil>’)), less(actions(’<même_action>’).output.value, 100))""expression": "@or(greater(actions('<action>').output.value, parameters('<threshold>')), less(actions('<same-action>').output.value, 100))" Pour les fonctions logiques et la création d’expressions booléennes imbriquées, l’action s’exécute quand la sortie de <action> est supérieure à la valeur de <seuil> ou inférieure à 100.For logic functions and creating nested Boolean expressions, the action runs when the output from <action> is more than the <threshold> value or under 100.
"expression": "@equals(length(actions(’<action>’).outputs.errors), 0))""expression": "@equals(length(actions('<action>').outputs.errors), 0))" Vous pouvez utiliser des fonctions de tableau pour vérifier si le tableau contient des éléments.You can use array functions for checking whether the array has any items. L’action s’exécute quand le tableau errors est vide.The action runs when the errors array is empty.

Action scopeScope action

Cette action regroupe logiquement des actions en étendues, qui reçoivent leur propre état à la fin de l’exécution des actions dans cette étendue.This action logically groups actions into scopes, which get their own status after the actions in that scope finish running. Vous pouvez ensuite utiliser l’état de l’étendue pour déterminer si d’autres actions s’exécutent.You can then use the scope's status to determine whether other actions run. Découvrez comment créer des étendues.Learn how to create scopes.

"Scope": {
   "type": "Scope",
   "actions": {
      "<inner-action-1>": {
         "type": "<action-type>",
         "inputs": { "<action-inputs>" },
         "runAfter": {}
      },
      "<inner-action-2>": {
         "type": "<action-type>",
         "inputs": { "<action-inputs>" },
         "runAfter": {}
      }
   }
}

ObligatoireRequired

ValeurValue TypeType DescriptionDescription
<inner-action-1...n><inner-action-1...n> Objet JSONJSON Object Une ou plusieurs actions qui s’exécutent au sein de l’étendueOne or more actions that run inside the scope
<action-inputs><action-inputs> Objet JSONJSON Object Entrées pour chaque actionThe inputs for each action

Action SwitchSwitch action

Cette action, également appelée instruction switch, organise d’autres actions en cas, et affecte une valeur à chaque cas, sauf au cas par défaut s’il en existe un.This action, also known as a switch statement, organizes other actions into cases, and assigns a value to each case, except for the default case if one exists. Quand votre workflow s’exécute, l’action Switch compare la valeur d’une expression, d’un objet ou d’un jeton aux valeurs spécifiées pour chaque cas.When your workflow runs, the Switch action compares the value from an expression, object, or token against the values specified for each case. Si l’action Switch détecte un cas correspondant, votre workflow exécute uniquement les actions pour ce cas.If the Switch action finds a matching case, your workflow runs only the actions for that case. Chaque fois que l’action Switch s’exécute, soit il n’existe qu’un seul cas correspondant, soit il n’existe aucune correspondance.Each time the Switch action runs, either only one matching case exists or no matches exist. Si aucune correspondance n’existe, l’action Switch exécute les actions par défaut.If no matches exist, the Switch action runs the default actions. Découvrez comment créer des instructions switch.Learn how to create switch statements.

"Switch": {
   "type": "Switch",
   "expression": "<expression-object-or-token>",
   "cases": {
      "Case": {
         "actions": {
           "<action-name>": { "<action-definition>" }
         },
         "case": "<matching-value>"
      },
      "Case_2": {
         "actions": {
           "<action-name>": { "<action-definition>" }
         },
         "case": "<matching-value>"
      }
   },
   "default": {
      "actions": {
         "<default-action-name>": { "<default-action-definition>" }
      }
   },
   "runAfter": {}
}

ObligatoireRequired

ValeurValue TypeType DescriptionDescription
<expression-object-or-token><expression-object-or-token> VarieVaries Expression, objet JSON ou jeton à évaluerThe expression, JSON object, or token to evaluate
<action-name><action-name> StringString Nom de l’action à exécuter pour le cas correspondantThe name of the action to run for the matching case
<action-definition><action-definition> Objet JSONJSON Object Définition de l’action à exécuter pour le cas correspondantThe definition for the action to run for the matching case
<matching-value><matching-value> VarieVaries Valeur à comparer au résultat évaluéThe value to compare with the evaluated result

FacultatifOptional

ValeurValue TypeType DescriptionDescription
<default-action-name><default-action-name> StringString Nom de l’action par défaut à exécuter quand il n’existe aucun cas correspondantThe name of the default action to run when no matching case exists
<default-action-definition><default-action-definition> Objet JSONJSON Object Définition de l’action à exécuter quand il n’existe aucun cas correspondantThe definition for the action to run when no matching case exists

ExempleExample

Cette définition d’action évalue si la personne qui répond à l’e-mail de demande d’approbation a sélectionné l’option « Approuver » ou « Rejeter ».This action definition evaluates whether the person responding to the approval request email selected the "Approve" option or the "Reject" option. En fonction de ce choix, l’action Switch exécute les actions pour le cas correspondant, qui consistent à envoyer un autre e-mail au répondant, mais avec un libellé différent dans chaque cas.Based on this choice, the Switch action runs the actions for the matching case, which is to send another email to the responder but with different wording in each case.

"Switch": {
   "type": "Switch",
   "expression": "@body('Send_approval_email')?['SelectedOption']",
   "cases": {
      "Case": {
         "actions": {
            "Send_an_email": { 
               "type": "ApiConnection",
               "inputs": {
                  "Body": "Thank you for your approval.",
                  "Subject": "Response received", 
                  "To": "Sophie.Owen@contoso.com"
               },
               "host": {
                  "connection": {
                     "name": "@parameters('$connections')['office365']['connectionId']"
                  }
               },
               "method": "post",
               "path": "/Mail"
            },
            "runAfter": {}
         },
         "case": "Approve"
      },
      "Case_2": {
         "actions": {
            "Send_an_email_2": { 
               "type": "ApiConnection",
               "inputs": {
                  "Body": "Thank you for your response.",
                  "Subject": "Response received", 
                  "To": "Sophie.Owen@contoso.com"
               },
               "host": {
                  "connection": {
                     "name": "@parameters('$connections')['office365']['connectionId']"
                  }
               },
               "method": "post",
               "path": "/Mail"
            },
            "runAfter": {}     
         },
         "case": "Reject"
      }
   },
   "default": {
      "actions": { 
         "Send_an_email_3": { 
            "type": "ApiConnection",
            "inputs": {
               "Body": "Please respond with either 'Approve' or 'Reject'.",
               "Subject": "Please respond", 
               "To": "Sophie.Owen@contoso.com"
            },
            "host": {
               "connection": {
                  "name": "@parameters('$connections')['office365']['connectionId']"
               }
            },
            "method": "post",
            "path": "/Mail"
         },
         "runAfter": {} 
      }
   },
   "runAfter": {
      "Send_approval_email": [ 
         "Succeeded"
      ]
   }
}

Action untilUntil action

Cette action de boucle contient des actions qui s’exécutent jusqu’à ce que la condition spécifiée ait la valeur true.This loop action contains actions that run until the specified condition is true. La boucle vérifie la condition en guise de dernière étape une fois toutes les autres actions exécutées.The loop checks the condition as the last step after all other actions have run. Vous pouvez inclure plusieurs actions dans l’objet "actions", et l’action doit définir au moins une limite.You can include more than one action in the "actions" object, and the action must define at least one limit. Découvrez comment créer des boucles « until ».Learn how to create "until" loops.

 "Until": {
   "type": "Until",
   "actions": {
      "<action-name>": {
         "type": "<action-type>",
         "inputs": { "<action-inputs>" },
         "runAfter": {}
      },
      "<action-name>": {
         "type": "<action-type>",
         "inputs": { "<action-inputs>" },
         "runAfter": {}
      }
   },
   "expression": "<condition>",
   "limit": {
      "count": <loop-count>,
      "timeout": "<loop-timeout>"
   },
   "runAfter": {}
}
ValeurValue TypeType DescriptionDescription
<action-name><action-name> StringString Nom de l’action que vous souhaitez exécuter à l’intérieur de la boucleThe name for the action you want to run inside the loop
<action-type><action-type> StringString Type d’action à exécuterThe action type you want to run
<action-inputs><action-inputs> DiversVarious Entrées pour l’action à exécuterThe inputs for the action to run
<condition><condition> StringString Condition ou expression à évaluer une fois que toutes les actions de la boucle ont été exécutéesThe condition or expression to evaluate after all the actions in the loop finish running
<loop-count><loop-count> IntegerInteger Quantité limite de boucles que l’action peut exécuter.The limit on the most number of loops that the action can run. La valeur par défaut de count est 60.The default count value is 60.
<loop-timeout><loop-timeout> StringString Durée d’exécution maximale de la boucle.The limit on the longest time that the loop can run. La valeur par défaut de timeout est PT1H, qui est le format ISO 8601 requis.The default timeout value is PT1H, which is the required ISO 8601 format.

ExempleExample

Cette définition d’action de boucle envoie une requête HTTP à l’URL spécifiée jusqu’à ce que l’une des conditions suivantes soit remplie :This loop action definition sends an HTTP request to the specified URL until one of these conditions is met:

  • La requête obtient une réponse avec le code d’état « 200 OK ».The request gets a response with the "200 OK" status code.
  • La boucle s’est exécutée 60 fois.The loop has run 60 times.
  • La boucle s’est exécutée pendant une heure.The loop has run for one hour.
 "Run_until_loop_succeeds_or_expires": {
    "type": "Until",
    "actions": {
        "HTTP": {
            "type": "Http",
            "inputs": {
                "method": "GET",
                "uri": "http://myurl"
            },
            "runAfter": {}
        }
    },
    "expression": "@equals(outputs('HTTP')['statusCode'], 200)",
    "limit": {
        "count": 60,
        "timeout": "PT1H"
    },
    "runAfter": {}
}

Webhooks et abonnementsWebhooks and subscriptions

Les actions et déclencheurs basés sur des webhooks ne vérifient pas régulièrement les points de terminaison, mais attendent des événements ou des données spécifiques à ces points de terminaison.Webhook-based triggers and actions don't regularly check endpoints, but wait for specific events or data at those endpoints instead. Ces actions et déclencheurs s’abonnent aux points de terminaison en fournissant une URL de rappel où le point de terminaison peut envoyer des réponses.These triggers and actions subscribe to the endpoints by providing a callback URL where the endpoint can send responses.

L’appel subscribe est effectué quand le workflow change de quelque façon, par exemple quand les informations d’identification sont renouvelées ou quand les paramètres d’entrée d’un déclencheur ou d’une action changent.The subscribe call happens when the workflow changes in any way, for example, when credentials are renewed, or when the input parameters change for a trigger or action. Cet appel utilise les mêmes paramètres que les actions HTTP standard.This call uses the same parameters as standard HTTP actions.

L’appel unsubscribe se produit automatiquement quand une opération rend le déclencheur ou l’action non valide, par exemple :The unsubscribe call automatically happens when an operation makes the trigger or action invalid, for example:

  • Suppression ou désactivation du déclencheur.Deleting or disabling the trigger.
  • Suppression ou désactivation du workflow.Deleting or disabling the workflow.
  • Suppression ou désactivation de l’inscription.Deleting or disabling the subscription.

Pour prendre en charge ces appels, l’expression @listCallbackUrl() retourne une « URL de rappel » unique pour le déclencheur ou l’action.To support these calls, the @listCallbackUrl() expression returns a unique "callback URL" for the trigger or action. Cette URL représente un identificateur unique des points de terminaison qui utilisent l’API REST du service.This URL represents a unique identifier for the endpoints that use the service's REST API. Les paramètres de cette fonction sont les mêmes que ceux de l’action ou du déclencheur webhook.The parameters for this function are the same as the webhook trigger or action.

Modifier la durée asynchroneChange asynchronous duration

Pour les déclencheurs et les actions, vous pouvez limiter la durée pour le modèle asynchrone à un intervalle de temps spécifique en ajoutant la propriété limit.timeout.For both triggers and actions, you can limit the duration for the asynchronous pattern to a specific time interval by adding the limit.timeout property. De cette façon, si l’action n’est pas terminée à la fin de l’intervalle, l’état de l’action est marqué comme Cancelled avec le code ActionTimedOut.That way, if the action hasn't finished when the interval lapses, the action's status is marked as Cancelled with the ActionTimedOut code. La propriété timeout utilise le format ISO 8601.The timeout property uses ISO 8601 format.

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

Paramètres de configuration d’exécutionRuntime configuration settings

Vous pouvez changer le comportement d’exécution par défaut pour les déclencheurs et les actions avec ces propriétés runtimeConfiguration dans la définition de déclencheur ou d’action.You can change the default runtime behavior for triggers and actions with these runtimeConfiguration properties in the trigger or action definition.

PropriétéProperty TypeType DescriptionDescription Déclencheur ou actionTrigger or action
runtimeConfiguration.concurrency.runs IntegerInteger Modifiez la limite par défaut du nombre d’instances de flux de travail qui peuvent s’exécuter en même temps ou en parallèle.Change the default limit on the number of workflow instances that can run at the same time, or in parallel. Cette valeur peut aider à limiter le nombre de requêtes reçues par les systèmes backend.This value can help limit the number of requests that backend systems receive.

L’affectation de la valeur 1 à la propriété runs fonctionne de la même façon que l’affectation de la valeur SingleInstance à la propriété operationOptions.Setting the runs property to 1 works the same way as setting the operationOptions property to SingleInstance. Vous pouvez définir l’une ou l’autre propriété, mais pas les deux.You can set either property, but not both.

Pour modifier la limite par défaut, consultez Changer la concurrence du déclencheur ou Déclencher des instances séquentiellement.To change the default limit, see Change trigger concurrency or Trigger instances sequentially.

Tous les déclencheursAll triggers
runtimeConfiguration.concurrency.maximumWaitingRuns IntegerInteger Modifiez la limite par défaut du nombre d’instances de flux de travail qui peuvent attendre avant de s’exécuter lorsque votre flux de travail exécute déjà le nombre maximal d’instances simultanées.Change the default limit on the number of workflow instances that can wait to run when your workflow is already running the maximum concurrent instances. Vous pouvez modifier la limite de concurrence dans la propriété concurrency.runs.You can change the concurrency limit in the concurrency.runs property.

Pour changer la limite par défaut, consultez Changer la limite d’exécutions en attente.To change the default limit, see Change waiting runs limit.

Tous les déclencheursAll triggers
runtimeConfiguration.concurrency.repetitions IntegerInteger Modifier la limite par défaut du nombre d’itérations de boucles « for each » qui peuvent s’exécuter en même temps ou en parallèle.Change the default limit on the number of "for each" loop iterations that can run at the same time, or in parallel.

L’affectation de la valeur 1 à la propriété repetitions fonctionne de la même façon que l’affectation de la valeur SingleInstance à la propriété operationOptions.Setting the repetitions property to 1 works the same way as setting the operationOptions property to SingleInstance. Vous pouvez définir l’une ou l’autre propriété, mais pas les deux.You can set either property, but not both.

Pour changer la limite par défaut, consultez Changer la concurrence « for each » ou Exécuter des boucles « for each » séquentiellement.To change the default limit, see Change "for each" concurrency or Run "for each" loops sequentially.

Action :Action:

ForeachForeach

runtimeConfiguration.paginationPolicy.minimumItemCount IntegerInteger Pour des actions spécifiques qui prennent en charge la pagination activée et pour laquelle cette dernière est activée, cette valeur spécifie le nombre minimal de résultats à récupérer.For specific actions that support and have pagination turned on, this value specifies the minimum number of results to retrieve.

Pour savoir comment activer la pagination, voir Obtenir d’autres données, des articles ou des enregistrements à l’aide de la pagination dans Azure Logic AppsTo turn on pagination, see Get bulk data, items, or results by using pagination

Action : Différentes possibilitésAction: Varied
runtimeConfiguration.secureData.properties ArrayArray Sur de nombreux déclencheurs et actions, ces paramètres permettent de masquer les entrées et/ou les sorties dans l’historique d’exécution d’une application logique.On many triggers and actions, these settings hide inputs, outputs, or both from the logic app's run history.

Pour sécuriser ces données, voir Masquer les entrées et sorties de l'historique d'exécution.To secure this data, see Hide inputs and outputs from run history.

La plupart des déclencheurs et des actionsMost triggers and actions
runtimeConfiguration.staticResult Objet JSONJSON Object Pour les actions qui prennent en charge le paramètre Résultat statique et pour lesquelles ce dernier est activé, l’objet staticResult possède ces attributs :For actions that support and have the static result setting turned on, the staticResult object has these attributes:

- name, qui fait référence au nom de définition du résultat statique de l’action en cours, affiché dans l’attribut staticResults au sein de l’attribut definition du flux de travail.- name, which references the current action's static result definition name, which appears inside the staticResults attribute in your logic app workflow's definition attribute. Pour en savoir plus, consultez le schéma de référence du langage de définition du flux de travail de la section Résultats statiques.For more information, see Static results - Schema reference for Workflow Definition Language.

- staticResultOptions, qui spécifie si les résultats statiques ont la valeur Enabled ou non pour l’action en cours.- staticResultOptions, which specifies whether static results are Enabled or not for the current action.

Pour en savoir plus, voir Tester des applications logiques avec des données fictives en configurant des résultats statiques.To turn on static results, see Test logic apps with mock data by setting up static results

Action : Différentes possibilitésAction: Varied

Options d’opérationsOperation options

Vous pouvez changer le comportement par défaut pour les déclencheurs et les actions avec la propriété operationOptions dans la définition de déclencheur ou d’action.You can change the default behavior for triggers and actions with the operationOptions property in trigger or action definition.

Option d’opérationOperation option TypeType DescriptionDescription Déclencheur ou actionTrigger or action
DisableAsyncPattern StringString Exécuter des actions basées sur HTTP de manière synchrone plutôt qu’asynchrone.Run HTTP-based actions synchronously, rather than asynchronously.

Pour définir cette option, consultez Exécuter des actions de manière synchrone.To set this option, see Run actions synchronously.

Actions :Actions:

ApiConnection,ApiConnection,
HTTP,HTTP,
RéponseResponse

OptimizedForHighThroughput StringString Modifier la limite par défaut du nombre d’exécutions d’action par tranche de cinq minutes et affecter la limite maximale.Change the default limit on the number of action executions per 5 minutes to the maximum limit.

Pour définir cette option, consultez Exécuter en mode de débit élevé.To set this option, see Run in high throughput mode.

Toutes les actionsAll actions
Sequential StringString Exécutez les itérations de boucle « for each » une à la fois, plutôt que toutes en même temps en parallèle.Run "for each" loop iterations one at a time, rather than all at the same time in parallel.

Cette option fonctionne de la même façon que l’affectation de la valeur 1 à la propriété runtimeConfiguration.concurrency.repetitions.This option works the same way as setting the runtimeConfiguration.concurrency.repetitions property to 1. Vous pouvez définir l’une ou l’autre propriété, mais pas les deux.You can set either property, but not both.

Pour définir cette option, consultez Exécuter des boucles « for each » séquentiellement.To set this option, see Run "for each" loops sequentially.

Action :Action:

ForeachForeach

SingleInstance StringString Exécuter le déclencheur pour chaque instance d’application logique de manière séquentielle, et attendre que l’exécution active précédente se termine avant de déclencher l’instance d’application logique suivante.Run the trigger for each logic app instance sequentially and wait for the previously active run to finish before triggering the next logic app instance.

Cette option fonctionne de la même façon que l’affectation de la valeur 1 à la propriété runtimeConfiguration.concurrency.runs.This option works the same way as setting the runtimeConfiguration.concurrency.runs property to 1. Vous pouvez définir l’une ou l’autre propriété, mais pas les deux.You can set either property, but not both.

Pour définir cette option, consultez Déclencher des instances séquentiellement.To set this option, see Trigger instances sequentially.

Tous les déclencheursAll triggers

Changer la concurrence du déclencheurChange trigger concurrency

Par défaut, les instances d’applications logiques s’exécutent en même temps (de manière concurrentielle ou en parallèle) jusqu’à la limite par défaut.By default, logic app instances run at the same time (concurrently or in parallel) up to the default limit. Ainsi, chaque instance de déclencheur s’active avant la fin de l’exécution de l’instance de flux de travail précédente.So, each trigger instance fires before the preceding workflow instance finishes running. Cette limite aide à contrôler le nombre de requêtes reçues par les systèmes backend.This limit helps control the number of requests that backend systems receive.

Pour changer la limite par défaut, vous pouvez utiliser l’éditeur en mode code ou le Concepteur d’applications logiques, car la modification du paramètre de concurrence par le biais du concepteur ajoute ou met à jour la propriété runtimeConfiguration.concurrency.runs dans la définition de déclencheur sous-jacente et vice versa.To change the default limit, you can use either the code view editor or Logic Apps Designer because changing the concurrency setting through the designer adds or updates the runtimeConfiguration.concurrency.runs property in the underlying trigger definition and vice versa. Cette propriété contrôle le nombre maximal d’instances de flux de travail qui peuvent s’exécuter en parallèle.This property controls the maximum number of workflow instances that can run in parallel. Voici quelques considérations liées à l’utilisation du contrôle d’accès concurrentiel :Here are some considerations when you use the concurrency control:

  • Quand la concurrence est activée, une instance d’application logique de longue durée peut amener de nouvelles instances d’application logique à entrer dans un état d’attente.While concurrency is enabled, a long-running logic app instance might cause new logic app instances to enter a waiting state. Cet état empêche Azure Logic Apps de créer des instances et se produit même quand le nombre d’exécutions simultanées est inférieur au nombre maximal spécifié d’exécutions simultanées.This state prevents Azure Logic Apps from creating new instances and happens even when the number of concurrent runs is less than the specified maximum number of concurrent runs.

    • Pour interrompre cet état, annulez les instances les plus anciennes qui sont toujours en cours d’exécution.To interrupt this state, cancel the earliest instances that are still running.

      1. Dans le menu de votre application logique, sélectionnez Vue d’ensemble.On your logic app's menu, select Overview.

      2. Dans la section Historique des exécutions, sélectionnez l’instance la plus ancienne qui est toujours en cours d’exécution, par exemple :In the Runs history section, select the earliest instance that is still running, for example:

        Sélectionner l’instance en cours d’exécution la plus ancienne

        Conseil

        Pour voir uniquement les instances qui sont toujours en cours d’exécution, ouvrez la liste Tous, puis sélectionnez En cours d’exécution.To view only instances that are still running, open the All list, and select Running.

      3. Sous Exécution d’application logique, sélectionnez Annuler l’exécution.Under Logic app run, select Cancel run.

        Rechercher l’instance en cours d’exécution la plus ancienne

    • Pour contourner cette éventualité, ajoutez un délai d’expiration aux actions susceptibles de retenir ces exécutions.To work around this possibility, add a timeout to any action that might hold up these runs. Si vous travaillez dans l’éditeur de code, consultez Changer la durée asynchrone.If you're working in the code editor, see Change asynchronous duration. Dans le cas contraire, si vous utilisez le concepteur, procédez comme suit :Otherwise, if you're using the designer, follow these steps:

      1. Dans votre application logique, sur l’action à laquelle vous souhaitez ajouter un délai d’attente, en haut à droite, sélectionnez le bouton des points de suspension ( ... ), puis sélectionnez Paramètres.In your logic app, on the action where you want to add a timeout, in the upper-right corner, select the ellipses (...) button, and then select Settings.

        Ouvrir les paramètres de l’action

      2. Sous Expiration, spécifiez la durée du délai d’expiration au format ISO 8601.Under Timeout, specify the timeout duration in ISO 8601 format.

        Spécifier la durée du délai d’expiration

  • Si vous souhaitez exécuter votre application logique séquentiellement, vous pouvez définir la concurrence du déclencheur sur 1 à l’aide de l’éditeur en mode code ou du concepteur.If you want to run your logic app sequentially, you can set the trigger's concurrency to 1 either by using the code view editor or the designer. Toutefois, ne définissez pas également la propriété operationOptions du déclencheur sur SingleInstance dans l’éditeur en mode code.However, don't also set the trigger's operationOptions property to SingleInstance in the code view editor. car vous obtiendriez une erreur de validation.Otherwise, you get a validation error. Pour plus d’informations, consultez Déclencher des instances séquentiellement.For more information, see Trigger instances sequentially.

Modifier en mode codeEdit in code view

Dans la définition de déclencheur sous-jacente, ajoutez ou mettez à jour la propriété runtimeConfiguration.concurrency.runs en lui affectant une valeur comprise entre 1 et 50 (inclus).In the underlying trigger definition, add or update the runtimeConfiguration.concurrency.runs property to a value between 1 and 50 inclusively.

Voici un exemple qui limite les exécutions simultanées à 10 instances :Here is an example that limits concurrent runs to 10 instances:

"<trigger-name>": {
   "type": "<trigger-name>",
   "recurrence": {
      "frequency": "<time-unit>",
      "interval": <number-of-time-units>,
   },
   "runtimeConfiguration": {
      "concurrency": {
         "runs": 10
      }
   }
}

Modifier dans le Concepteur d’applications logiquesEdit in Logic Apps Designer

  1. Dans l’angle supérieur droit du déclencheur, sélectionnez le bouton représentant des points de suspension (...), puis Paramètres.In the trigger's upper-right corner, choose the ellipses (...) button, and then choose Settings.

  2. Sous Contrôle d’accès concurrentiel, définissez Limite sur Activé.Under Concurrency Control, set Limit to On.

  3. Positionnez le curseur Degré de parallélisme sur la valeur souhaitée.Drag the Degree of Parallelism slider to the value you want. Pour exécuter votre application logique séquentiellement, faites glisser le curseur vers la valeur 1.To run your logic app sequentially, drag the slider value to 1.

Changer la concurrence « for each »Change "for each" concurrency

Par défaut, les itérations de boucle « for each » s’exécutent en même temps, ou en parallèle jusqu’à la limite par défaut.By default, "for each" loop iterations run at the same time, or in parallel, up to the default limit. Pour changer la limite par défaut, vous pouvez utiliser l’éditeur en mode code ou le Concepteur d’applications logiques, car la modification du paramètre de concurrence par le biais du concepteur ajoute ou met à jour la propriété runtimeConfiguration.concurrency.repetitions dans la définition d’action « for each » sous-jacente et vice versa.To change the default limit, you can use either the code view editor or Logic Apps Designer because changing the concurrency setting through the designer adds or updates the runtimeConfiguration.concurrency.repetitions property in the underlying "for each" action definition and vice versa. Cette propriété contrôle le nombre maximal d’itérations qui peuvent s’exécuter en parallèle.This property controls the maximum number of iterations that can run in parallel.

Notes

Si vous configurez l’action « for each » pour une exécution séquentielle à l’aide du concepteur ou de l’éditeur en mode code, n’affectez pas la valeur Sequential à la propriété operationOptions de l’action dans l’éditeur en mode code,If you set the "for each" action to run sequentially either by using the designer or the code view editor, don't set the action's operationOptions property to Sequential in the code view editor. car vous obtiendriez une erreur de validation.Otherwise, you get a validation error. Pour plus d’informations, consultez Exécuter des boucles « for each » séquentiellement.For more information, see Run "for each" loops sequentially.

Modifier en mode codeEdit in code view

Dans la définition d’action « for each » sous-jacente, ajoutez ou mettez à jour la propriété runtimeConfiguration.concurrency.repetitions en lui affectant une valeur comprise entre 1 et 50 (inclus).In the underlying "for each" definition, add or update the runtimeConfiguration.concurrency.repetitions property to a value between 1 and 50 inclusively.

Voici un exemple qui limite les exécutions simultanées à 10 itérations :Here is an example that limits concurrent runs to 10 iterations:

"For_each" {
   "type": "Foreach",
   "actions": { "<actions-to-run>" },
   "foreach": "<for-each-expression>",
   "runAfter": {},
   "runtimeConfiguration": {
      "concurrency": {
         "repetitions": 10
      }
   }
}

Modifier dans le Concepteur d’applications logiquesEdit in Logic Apps Designer

  1. Dans l’angle supérieur droit de l’action For each, choisissez le bouton représentant des points de suspension (...), puis Paramètres.In the For each action, from the upper-right corner, choose the ellipses (...) button, and then choose Settings.

  2. Sous Contrôle d’accès concurrentiel, définissez Contrôle d’accès concurrentiel sur Activé.Under Concurrency Control, set Concurrency Control to On.

  3. Positionnez le curseur Degré de parallélisme sur la valeur souhaitée.Drag the Degree of Parallelism slider to the value you want. Pour exécuter votre application logique séquentiellement, faites glisser le curseur vers la valeur 1.To run your logic app sequentially, drag the slider value to 1.

Modifier la limite d’exécutions en attenteChange waiting runs limit

Par défaut, les instances de flux de travail s’exécutent en même temps, simultanément ou en parallèle jusqu’à la limite par défaut.By default, logic app workflow instances all run at the same time, concurrently, or in parallel up to the default limit. Chaque instance de déclencheur s’active avant la fin de l’exécution de l’instance de flux de travail active précédente.Each trigger instance fires before the previously active workflow instance finishes running. Bien que vous puissiez modifier cette limite par défaut, lorsque le nombre d’instances de flux de travail atteint la nouvelle limite de concurrence, les nouvelles instances doivent différer l’exécution.Although you can change this default limit, when the number of workflow instances reaches the new concurrency limit, any other new instances must wait to run.

Le nombre d’exécutions qui peuvent attendre a également une limite par défaut, que vous pouvez modifier.The number of runs that can wait also has a default limit, which you can change. Toutefois, une fois que votre application logique a atteint la limite du nombre d’exécutions en attente, le moteur Logic Apps n’accepte plus de nouvelles exécutions.However, after your logic app reaches the limit on waiting runs, the Logic Apps engine no longer accepts new runs. Les requêtes et les déclencheurs webhook retournent des erreurs 429, et les déclencheurs récurrents commencent à ignorer les tentatives d’interrogation.Request and webhook triggers return 429 errors, and recurring triggers start skipping polling attempts.

Pour modifier la limite par défaut du nombre d’exécutions en attente, dans la définition de déclencheur sous-jacente, ajoutez la propriété runtimeConfiguration.concurency.maximumWaitingRuns et affectez-lui une valeur comprise entre 0 et 100.To change the default limit on waiting runs, in the underlying trigger definition, add the runtimeConfiguration.concurency.maximumWaitingRuns property with a value between 0 and 100.

"<trigger-name>": {
   "type": "<trigger-name>",
   "recurrence": {
      "frequency": "<time-unit>",
      "interval": <number-of-time-units>,
   },
   "runtimeConfiguration": {
      "concurrency": {
         "maximumWaitingRuns": 50
      }
   }
}

Déclencher des instances séquentiellementTrigger instances sequentially

Pour exécuter chaque instance de flux de travail de l’application logique uniquement après la fin de l’exécution de l’instance précédente, configurez le déclencheur pour qu’il s’exécute de manière séquentielle.To run each logic app workflow instance only after the previous instance finishes running, set the trigger to run sequentially. Vous pouvez utiliser l’éditeur en mode code ou le Concepteur d’applications logiques, car la modification du paramètre de concurrence par le biais du concepteur ajoute ou met également à jour la propriété runtimeConfiguration.concurrency.runs dans la définition de déclencheur sous-jacente et vice versa.You can use either the code view editor or Logic Apps Designer because changing the concurrency setting through designer also adds or updates the runtimeConfiguration.concurrency.runs property in the underlying trigger definition and vice versa.

Notes

Quand vous configurez un déclencheur pour une exécution séquentielle à l’aide du concepteur ou de l’éditeur en mode code, n’affectez pas la valeur Sequential à la propriété operationOptions du déclencheur dans l’éditeur en mode code,When you set a trigger to run sequentially either by using the designer or the code view editor, don't set the trigger's operationOptions property to Sequential in the code view editor. car vous obtiendriez une erreur de validation.Otherwise, you get a validation error.

Modifier en mode codeEdit in code view

Dans la définition du déclencheur, définissez l’une ou l’autre de ces propriétés, mais pas les deux.In the trigger definition, set either of these properties, but not both.

Affectez la valeur 1 à la propriété runtimeConfiguration.concurrency.runs :Set the runtimeConfiguration.concurrency.runs property to 1:

"<trigger-name>": {
   "type": "<trigger-name>",
   "recurrence": {
      "frequency": "<time-unit>",
      "interval": <number-of-time-units>,
   },
   "runtimeConfiguration": {
      "concurrency": {
         "runs": 1
      }
   }
}

-ou--or-

Affectez la valeur SingleInstance à la propriété operationOptions :Set the operationOptions property to SingleInstance:

"<trigger-name>": {
   "type": "<trigger-name>",
   "recurrence": {
      "frequency": "<time-unit>",
      "interval": <number-of-time-units>,
   },
   "operationOptions": "SingleInstance"
}

Modifier dans le Concepteur d’applications logiquesEdit in Logic Apps Designer

  1. Dans l’angle supérieur droit du déclencheur, sélectionnez le bouton représentant des points de suspension (...), puis Paramètres.In the trigger's upper-right corner, choose the ellipses (...) button, and then choose Settings.

  2. Sous Contrôle d’accès concurrentiel, définissez Limite sur Activé.Under Concurrency Control, set Limit to On.

  3. Positionnez le curseur Degré de parallélisme sur le chiffre 1.Drag the Degree of Parallelism slider to the number 1.

Exécuter des boucles « for each » séquentiellementRun "for each" loops sequentially

Pour exécuter une itération de boucle « for each » uniquement après la fin de l’exécution de l’itération précédente, configurez l’action « for each » pour qu’elle s’exécute de manière séquentielle.To run a "for each" loop iteration only after the previous iteration finishes running, set the "for each" action to run sequentially. Vous pouvez utiliser l’éditeur en mode code ou le Concepteur d’applications logiques, car la modification de la concurrence de l’action par le biais du concepteur ajoute ou met également à jour la propriété runtimeConfiguration.concurrency.repetitions dans la définition d’action sous-jacente et vice versa.You can use either the code view editor or Logic Apps Designer because changing the action's concurrency through designer also adds or updates the runtimeConfiguration.concurrency.repetitions property in the underlying action definition and vice versa.

Notes

Quand vous configurez une action « for each » pour une exécution séquentielle à l’aide du concepteur ou de l’éditeur en mode code, n’affectez pas la valeur Sequential à la propriété operationOptions de l’action dans l’éditeur en mode code,When you set a "for each" action to run sequentially either by using the designer or code view editor, don't set the action's operationOptions property to Sequential in the code view editor. car vous obtiendriez une erreur de validation.Otherwise, you get a validation error.

Modifier en mode codeEdit in code view

Dans la définition de l’action, définissez l’une ou l’autre de ces propriétés, mais pas les deux.In the action definition, set either of these properties, but not both.

Affectez la valeur 1 à la propriété runtimeConfiguration.concurrency.repetitions :Set the runtimeConfiguration.concurrency.repetitions property to 1:

"For_each" {
   "type": "Foreach",
   "actions": { "<actions-to-run>" },
   "foreach": "<for-each-expression>",
   "runAfter": {},
   "runtimeConfiguration": {
      "concurrency": {
         "repetitions": 1
      }
   }
}

-ou--or-

Affectez la valeur Sequential à la propriété operationOptions :Set the operationOptions property to Sequential:

"For_each" {
   "type": "Foreach",
   "actions": { "<actions-to-run>" },
   "foreach": "<for-each-expression>",
   "runAfter": {},
   "operationOptions": "Sequential"
}

Modifier dans le Concepteur d’applications logiquesEdit in Logic Apps Designer

  1. Dans l’angle supérieur droit de l’action For each, choisissez le bouton représentant des points de suspension (...), puis Paramètres.In the For each action's upper-right corner, choose the ellipses (...) button, and then choose Settings.

  2. Sous Contrôle d’accès concurrentiel, définissez Contrôle d’accès concurrentiel sur Activé.Under Concurrency Control, set Concurrency Control to On.

  3. Positionnez le curseur Degré de parallélisme sur le chiffre 1.Drag the Degree of Parallelism slider to the number 1.

Exécuter des actions de manière synchroneRun actions synchronously

Par défaut, toutes les actions basées sur HTTP suivent le modèle d’opération asynchrone standard.By default, all HTTP-based actions follow the standard asynchronous operation pattern. Ce modèle spécifie que quand une action basée sur HTTP envoie une requête au point de terminaison spécifié, le serveur distant retourne une réponse « 202 ACCEPTED ».This pattern specifies that when an HTTP-based action sends a request to the specified endpoint, the remote server sends back a "202 ACCEPTED" response. Cette réponse signifie que le serveur a accepté la requête pour le traitement.This reply means the server accepted the request for processing. Le moteur Logic Apps continue à vérifier l’URL spécifiée par l’en-tête d’emplacement de la réponse jusqu’à l’arrêt du traitement, c’est-à-dire toute réponse autre que 202.The Logic Apps engine keeps checking the URL specified by the response's location header until processing stops, which is any non-202 response.

Toutefois, les requêtes ayant un délai d’expiration, pour les actions de longue durée vous pouvez désactiver le comportement asynchrone en ajoutant la propriété operationOptions et en lui affectant la valeur DisableAsyncPattern sous les entrées de l’action.However, requests have a timeout limit, so for long-running actions, you can disable the asynchronous behavior by adding and setting the operationOptions property to DisableAsyncPattern under the action's inputs.

"<some-long-running-action>": {
   "type": "Http",
   "inputs": { "<action-inputs>" },
   "operationOptions": "DisableAsyncPattern",
   "runAfter": {}
}

Exécuter en mode de débit élevéRun in high throughput mode

Pour une définition d’application logique unique, le nombre d’actions qui s’exécutent toutes les cinq minutes présente une limite par défaut.For a single logic app definition, the number of actions that execute every 5 minutes has a default limit. Pour augmenter cette limite à la valeur maximale possible, affectez la valeur OptimizedForHighThroughput à la propriété operationOptions.To raise this limit to the maximum possible, set the operationOptions property to OptimizedForHighThroughput. Ce paramètre met votre application logique en mode de « débit élevé ».This setting puts your logic app into "high throughput" mode.

Notes

Le mode de débit élevé est en préversion.High throughput mode is in preview. Vous pouvez également distribuer une charge de travail sur plusieurs applications logiques si nécessaire.You can also distribute a workload across more than one logic app as necessary.

"<action-name>": {
   "type": "<action-type>",
   "inputs": { "<action-inputs>" },
   "operationOptions": "OptimizedForHighThroughput",
   "runAfter": {}
}

Authentifier les actions et déclencheurs HTTPAuthenticate HTTP triggers and actions

Les points de terminaison HTTP prennent en charge différents types d’authentification.HTTP endpoints support different kinds of authentication. Vous pouvez configurer l’authentification pour ces actions et déclencheurs HTTP :You can set up authentication for these HTTP triggers and actions:

Voici les types d’authentification que vous pouvez configurer :Here are the kinds of authentication you can set up:

Important

Assurez-vous que vous protégez toutes les informations confidentielles que votre définition de flux de travail d’application logique gère.Make sure you protect any sensitive information that your logic app workflow definition handles. Utilisez des paramètres sécurisés et encodez des données selon les besoins.Use secured parameters and encode data as necessary. Pour plus d’informations sur l’utilisation et la sécurisation des paramètres, consultez Sécuriser votre application logique.For more information about using and securing parameters, see Secure your logic app.

Authentification de baseBasic authentication

Pour l’authentification de base à l’aide d’Azure Active Directory, votre définition de déclencheur ou d’action peut inclure un authentication objet JSON, qui a les propriétés spécifiées par le tableau suivant.For basic authentication by using Azure Active Directory, your trigger or action definition can include an authentication JSON object, which has the properties specified by the following table. Pour accéder aux valeurs de paramètre en cours d’exécution, vous pouvez utiliser l’expression @parameters('parameterName') fournie par le Langage de définition du flux de travail.To access parameter values at runtime, you can use the @parameters('parameterName') expression, which is provided by the Workflow Definition Language.

PropriétéProperty ObligatoireRequired ValueValue DescriptionDescription
typetype OUIYes "Basic""Basic" Type d’authentification à utiliser, en l’occurrence "Basic"The authentication type to use, which is "Basic" here
nom d’utilisateurusername OUIYes "@parameters('userNameParam')""@parameters('userNameParam')" Nom d’utilisateur permettant d’authentifier l’accès au point de terminaison de service cibleThe user name for authenticating access to the target service endpoint
mot de passepassword OUIYes "@parameters('passwordParam')""@parameters('passwordParam')" Mot de passe permettant d’authentifier l’accès au point de terminaison de service cibleThe password for authenticating access to the target service endpoint

Dans cet exemple de définition d’action HTTP, la authentication section spécifie Basic l’authentification.In this example HTTP action definition, the authentication section specifies Basic authentication. Pour plus d’informations sur l’utilisation et la sécurisation des paramètres, consultez Sécuriser votre application logique.For more information about using and securing parameters, see Secure your logic app.

"HTTP": {
   "type": "Http",
   "inputs": {
      "method": "GET",
      "uri": "https://www.microsoft.com",
      "authentication": {
         "type": "Basic",
         "username": "@parameters('userNameParam')",
         "password": "@parameters('passwordParam')"
      }
  },
  "runAfter": {}
}

Important

Assurez-vous que vous protégez toutes les informations confidentielles que votre définition de flux de travail d’application logique gère.Make sure you protect any sensitive information that your logic app workflow definition handles. Utilisez des paramètres sécurisés et encodez des données selon les besoins.Use secured parameters and encode data as necessary. Pour plus d’informations sur la sécurisation des paramètres, consultez Sécuriser votre application logique.For more information about securing parameters, see Secure your logic app.

Authentification par certificat clientClient Certificate authentication

Pour l’authentification basée sur un certificat à l’aide d’Azure Active Directory, votre définition de déclencheur ou d’action peut inclure un authentication objet JSON, qui a les propriétés spécifiées par le tableau suivant.For certificate-based authentication using Azure Active Directory, your trigger or action definition can include an authentication JSON object, which has the properties specified by the following table. Pour accéder aux valeurs de paramètre en cours d’exécution, vous pouvez utiliser l’expression @parameters('parameterName') fournie par le Langage de définition du flux de travail.To access parameter values at runtime, you can use the @parameters('parameterName') expression, which is provided by the Workflow Definition Language. Pour connaître les limites du nombre de certificats clients que vous pouvez utiliser, consultez Limites et configuration pour Azure Logic Apps.For limits on the number of client certificates you can use, see Limits and configuration for Azure Logic Apps.

PropriétéProperty ObligatoireRequired ValueValue DescriptionDescription
typetype OUIYes "ClientCertificate""ClientCertificate" Type d’authentification à utiliser pour les certificats clients SSL (Secure Sockets Layer).The authentication type to use for Secure Sockets Layer (SSL) client certificates. Alors que les certificats auto-signés sont pris en charge, des certificats auto-signés pour SSL ne sont pas pris en charge.While self-signed certificates are supported, self-signed certificates for SSL aren't supported.
pfxpfx OUIYes "@parameters('pfxParam')"@parameters('pfxParam') Contenu encodé en base64 à partir d’un fichier Personal Information Exchange (PFX)The base64-encoded content from a Personal Information Exchange (PFX) file
mot de passepassword OUIYes "@parameters('passwordParam')""@parameters('passwordParam')" Mot de passe pour accéder au fichier PFXThe password for accessing the PFX file

Dans cet exemple de définition d’action HTTP, la authentication section spécifie ClientCertificate l’authentification.In this example HTTP action definition, the authentication section specifies ClientCertificate authentication. Pour plus d’informations sur l’utilisation et la sécurisation des paramètres, consultez Sécuriser votre application logique.For more information about using and securing parameters, see Secure your logic app.

"HTTP": {
   "type": "Http",
   "inputs": {
      "method": "GET",
      "uri": "https://www.microsoft.com",
      "authentication": {
         "type": "ClientCertificate",
         "pfx": "@parameters('pfxParam')",
         "password": "@parameters('passwordParam')"
      }
   },
   "runAfter": {}
}

Important

Assurez-vous que vous protégez toutes les informations confidentielles que votre définition de flux de travail d’application logique gère.Make sure you protect any sensitive information that your logic app workflow definition handles. Utilisez des paramètres sécurisés et encodez des données selon les besoins.Use secured parameters and encode data as necessary. Pour plus d’informations sur la sécurisation des paramètres, consultez Sécuriser votre application logique.For more information about securing parameters, see Secure your logic app.

Authentification OAuth Azure Active Directory (AD)Azure Active Directory (AD) OAuth authentication

Pour l’authentification Azure AD OAuth, votre définition de déclencheur ou d’action peut inclure un authentication objet JSON, qui a les propriétés spécifiées par le tableau suivant.For Azure AD OAuth authentication, your trigger or action definition can include an authentication JSON object, which has the properties specified by the following table. Pour accéder aux valeurs de paramètre en cours d’exécution, vous pouvez utiliser l’expression @parameters('parameterName') fournie par le Langage de définition du flux de travail.To access parameter values at runtime, you can use the @parameters('parameterName') expression, which is provided by the Workflow Definition Language.

PropriétéProperty ObligatoireRequired ValueValue DescriptionDescription
typetype OUIYes ActiveDirectoryOAuth Type d’authentification à utiliser, qui est "ActiveDirectoryOAuth" pour Azure AD OAuthThe authentication type to use, which is "ActiveDirectoryOAuth" for Azure AD OAuth
authorityauthority NonNo <URL de l’autorité émettrice du jeton><URL-for-authority-token-issuer> URL de l’autorité qui fournit le jeton d’authentificationThe URL for the authority that provides the authentication token
clienttenant OUIYes <ID de locataire><tenant-ID> Identificateur du locataire Azure ADThe tenant ID for the Azure AD tenant
public cibléaudience OUIYes <ressource à autoriser><resource-to-authorize> Ressource à utiliser pour l’autorisation, par exemple, https://management.core.windows.net/The resource that you want to use for authorization, for example, https://management.core.windows.net/
clientIdclientId OUIYes <ID client><client-ID> ID client pour l’application demandant l’autorisationThe client ID for the app requesting authorization
credentialTypecredentialType OUIYes « Certificat » ou « Secret »"Certificate" or "Secret" Type d’informations d’identification que le client utilise pour la demande d’autorisation.The credential type the client uses for requesting authorization. Ces propriété et valeur n’apparaissent pas dans votre définition sous-jacente, mais elles déterminent les paramètres requis pour le type d’informations d’identification.This property and value don't appear in your underlying definition, but determines the required parameters for the credential type.
pfxpfx Oui, uniquement pour le type d’informations d’identification "Certificate"Yes, only for "Certificate" credential type "@parameters('pfxParam')"@parameters('pfxParam') Contenu encodé en base64 à partir d’un fichier Personal Information Exchange (PFX)The base64-encoded content from a Personal Information Exchange (PFX) file
mot de passepassword Oui, uniquement pour le type d’informations d’identification "Certificate"Yes, only for "Certificate" credential type "@parameters('passwordParam')""@parameters('passwordParam')" Mot de passe pour accéder au fichier PFXThe password for accessing the PFX file
secretsecret Oui, uniquement pour le type d’informations d’identification "Secret"Yes, only for "Secret" credential type "@parameters('secretParam')""@parameters('secretParam')" Clé secrète client permettant de demander une autorisationThe client secret for requesting authorization

Dans cet exemple de définition d’action HTTP, la authentication section spécifie ActiveDirectoryOAuth l’authentification et le type d’informations d’identification « Secret ».In this example HTTP action definition, the authentication section specifies ActiveDirectoryOAuth authentication and the "Secret" credential type. Pour plus d’informations sur l’utilisation et la sécurisation des paramètres, consultez Sécuriser votre application logique.For more information about using and securing parameters, see Secure your logic app.

"HTTP": {
   "type": "Http",
   "inputs": {
      "method": "GET",
      "uri": "https://www.microsoft.com",
      "authentication": {
         "type": "ActiveDirectoryOAuth",
         "tenant": "72f988bf-86f1-41af-91ab-2d7cd011db47",
         "audience": "https://management.core.windows.net/",
         "clientId": "34750e0b-72d1-4e4f-bbbe-664f6d04d411",
         "secret": "@parameters('secretParam')"
     }
   },
   "runAfter": {}
}

Important

Assurez-vous que vous protégez toutes les informations confidentielles que votre définition de flux de travail d’application logique gère.Make sure you protect any sensitive information that your logic app workflow definition handles. Utilisez des paramètres sécurisés et encodez des données selon les besoins.Use secured parameters and encode data as necessary. Pour plus d’informations sur la sécurisation des paramètres, consultez Sécuriser votre application logique.For more information about securing parameters, see Secure your logic app.

Étapes suivantesNext steps