Support Power Platform - Apps - Automate - SharePoint - Copilot

Fonctions [WiP]

https://docs.microsoft.com/fr-fr/azure/logic-apps/workflow-definition-language-functions-reference

https://docs.microsoft.com/fr-fr/azure/search/query-odata-filter-orderby-syntax

Fonctions Power Automate

Nom fonctionExplicationExempleDoc
<div style="text-align: left; margin-top: 0.5em; margin-bottom: 0.5em;"><span>Split(</span><span style="font-style: italic;">chaine</span><span>, </span><span style="font-style: italic;">séparateur</span><span>)</span></div>Crée une array en coupant la chaine par le séparateur.
<div style="text-align: left; margin-top: 0.5em; margin-bottom: 0.5em;"><span>First(</span><span style="font-style: italic;">array</span><span>), Last(</span><span style="font-style: italic;">array</span><span>)</span></div>Retourne le premier/denier élément d’une array.
<div style="text-align: left; margin-top: 0.5em; margin-bottom: 0.5em;"><span>Skip(</span><span style="font-style: italic;">array</span><span>, </span><span style="font-style: italic;">num</span><span>)</span></div>Retourne l’élément numéro num d’une array.
'<Nom étape>')?['{<Propriété}']Retourne une Propriété de Nom étape.

Exemples complet de fonctions Power Automate

ExempleExplication
<div style="text-align: left; margin-top: 0.5em; margin-bottom: 0.5em;"><span>first(split(variables('varAttachmentName'), '.')</span><span style="font-weight: bold;">)</span></div>Retourne le nom d’une pièce jointe, placée dans une variable varAttachmentName (nom à gauche de l’extension)
<div style="text-align: left; margin-top: 0.5em; margin-bottom: 0.5em;"><span>first(skip(split(body('Get_file_properties')?['{Path}'],'/'),2))</span></div>Retourne le dossier d’une étape Get_file_properties.
'Get_file_properties')?['{Path}']Chemin de l’étape

Récupérer la valeur d’une étape

triggerBody()[’UserEmail_Inputs’] : Récupère l’e-mail du lanceur du flux

Variables(nom_variable) : retourne le contenu d’une variable nom_variable.

Variables(nom_variable).element : récupère le nœud element d’une variable de type JSON.

outputs(action_name) : retourne la valeur d’une action_name précédente si l’action est de type Variable.

dataURL(outputs(’Get_file_content’)?[’body]’ : récupère l’action précédente et transforme en URL (cas d’une image par exemple).

Fonctions Variable et contenu JSON

  1. Créer une variable
    image.png
  2. Ajouter une étape Mettre à jour des lignes :
    image.png

    La syntaxe est donc Variables(NomVariable).nom_element.

Fonction formatNumber

Fonction Office365Users

Office365Users.ManagerV2(ThisItem.'Created By'.Email).displayName

Fonction formatDateTime

formatDateTime(utcNow(),'DD/mm/yyyy')

Fonction dataURL

dataURL(outputs('Get_file_content')?['body'])

Convertir une source en JSON (source de Run d’un flux)

JSON(
  Filter(
    tblTache;
      Statut=ddStatut.Selected.Statut
      );
    IgnoreUnsupportedTypes & IncludeBinaryData
)

Fonction base64ToBinary

Par exemple dans une étape Ajoute un attachement (SP), dans File Content.

image.png

Parcours d’une liste

  1. Dans une variable, indiquer la liste sous la forme [”valeur1”, “valeur2”].
    image.png
  2. Dans une boucle Pour chaque, indiquer l’expression item() pour faire référence à l’élément courant de la variable.
    image.png

Pour tester le nombre d’éléments dans la liste :

length(variables(’ListeEmail’))

Récupérer le manager

Action Obtenir le responsable (v2)

Créer un fichier Excel

Créer une étape Envoyer une requête HTTP à SharePoint, puis indiquer dans la zone URI :

_api/web/GetFolderByServerRelativeUrl('Shared%20Documents')/Files/add(url='Fichier.xlsx',overwrite=true)

Fonction getPastTime

getPastTime(rand(0,60), 'Day')

Variable de type Objet

Création

Créer une étape de type Définir Variable. Sélectionner Objet comme Type. Saisir du JSON.

Par exemple varData.

{
  "communes": [
    {
      "nom": "Rennes"
    },
    {
      "nom": "Paris"
    },
    {
      "nom": "Brest"
    }
 ]
}

Utilisation

Dans une boucle ForEach :

variables('varData').communes

Dans une expression, on veut 1 des 3 communes, aléatoirement :

variables('varData').communes[rand(0, sub(length(variables('varData').communes),1))].nom

Sinon :

variables('varData').communes[rand(0, sub(length(variables('InputData').buildings),1))].nom

Fonctions Données

Compose (Message)

L’action se nomme Message (et non Compose ou Composer) dans les actions de type Données.

Proche dans le principe du fonctionnement d’une variable.

Cas d’usage :

  • Construire des chaînes de texte dynamiques (concaténer des valeurs ou expressions).
  • Calculer ou transformer des valeurs, sans avoir à créer une variable formelle.
  • Structurer des données JSON, en vue d’une utilisation ultérieure dans votre flux.

La sortie de l’action Composer est en lecture seule : utiliser Composer dès qu’une données ne doit pas être modifiée, utiliser à la place des variables quand la valeur de la variable doit être modifiée.

Compose = concat(outputs('Prénom'), ' ', outputs('Nom'))
Compose = formatDateTime(utcNow(), 'dd-MM-yyyy HH:mm')
{
  "nom": "@{outputs('Nom')}",
  "age": @{outputs('Age')}
}

Rôles dans les flux

ÉlémentComposeInitialiser une variable
TypeAction de traitement statiqueAction de stockage réutilisable
But principalCalculer ou contenir une valeur intermédiaireStocker une valeur modifiable
Modifiable ensuite ?❌ Non✅ Oui
Lisible dans un tableau ?✅ Oui (facile à lire dans le suivi du flux)✅ Oui aussi
Nom spécifiqueNon (juste "Sortie de Compose")Oui, vous donnez un nom à la variable
Réutilisation dans un Apply to each✔️ (souvent plus performant)✔️ mais un peu plus verbeux
Cas d’usagePréféré
Vous stockez un JSON temporairement sans le modifier✅ Compose (plus léger)
Vous devez mettre à jour la valeur ensuite✅ Initialiser une variable
Vous réutilisez plusieurs fois la valeur dans un flux complexe✅ Variable (mieux identifié)
Vous êtes dans un Apply to each avec performance critique✅ Compose (moins de surcharge mémoire)

Analyser JSON (Parse JSON)

Cas d'usage :

  • Extraire des données spécifiques d'une réponse d'API.
  • Désérialiser des données stockées sous forme de chaîne JSON.
  • Valider la structure d'un JSON reçu.

Sous la propriété Schéma, cliquer sur Utiliser un exemple de charge utile pour générer un schéma, puis coller un exemple de code JSON :

image.png

Après Validation, le schéma est affiché. Coller ensuite le code JSON (ou un autre) dans Content :

image.png

Interroger ensuite le JSON :

body('Analyser_JSON')['utilisateur']['nom'] donnerait "Jean Dupont"

body('Analyser_JSON')['utilisateur']['adresse']['ville'] donnerait "Paris"

body('Analyser_JSON')['utilisateur']['roles'][0] donnerait "administrateur"

Sélectionner (Select)

(Différent de la fonction Select)

Transforme un tableau en un nouveau tableau avec une structure différente. Vous pouvez choisir les propriétés à inclure, les renommer ou créer de nouvelles propriétés basées sur des expressions

Cas d'usage :

  • Réduire un grand tableau à seulement quelques colonnes nécessaires.
  • Renommer des colonnes pour correspondre à un schéma cible.
  • Créer des propriétés calculées dans le nouveau tableau.

Un JSON fourni par un étape (par exemple Liste des éléments SharePoint) :

[
    {
        "ProductID": "P001",
        "Name": "Clavier mécanique",
        "Description": "Clavier ergonomique avec rétroéclairage",
        "Price": 99.99,
        "Category": "Périphériques",
        "Stock": 150
    },
    {
        "ProductID": "P002",
        "Name": "Souris sans fil",
        "Description": "Souris optique avec autonomie longue durée",
        "Price": 49.50,
        "Category": "Périphériques",
        "Stock": 200
    }
]

Dans Carte (Map) :

image.png

L’expression avec item() est de la forme : item()['Price']