Skip to content

Transformer ​

Définit des champs dans les données de travail à partir de textes qui acceptent des expressions {{ }}, avec quelques mises en forme.

Le nœud Transformer pose des champs dans les données de travail. Chaque ligne a un nom de champ, une valeur templatable et une mise en forme facultative (espaces retirés, MAJUSCULES, minuscules). Utilisez-le pour donner un nom court et stable à une valeur construite à partir de plusieurs sources, pour normaliser une valeur avant de la comparer, ou pour préparer les champs qu’un nœud suivant, une table ou un workflow appelé liront.

Il ne calcule rien au-delà des expressions : la valeur est d’abord rendue, puis la mise en forme s’applique. Les mises en forme sont les mêmes que les filtres trim, upper et lower : {{ email.subject | upper }} dans une valeur donne le même résultat. Pour calculer une date, utilisez Calculer une date.

En bref ​

  • Type : data.transform · version 1
  • Catégorie : Données
  • Nature : Étape — s’exécute pendant une exécution
  • Effet : Sans effet externe (none) — rien n’est écrit hors de Mankomail ; rejouable sans risque
  • Exige un mail porteur : Non
  • Connexion : Aucune
  • Entrées : main
  • Sorties : main

Paramètres ​

assignments ​

Champs — Chaque ligne pose un champ dans les données de travail, réutilisable en aval avec {{ data.… }}.

  • Type : Liste d’éléments (collection)
  • Requis : Non
  • De 1 à 50 éléments
  • Chaque élément a :
    • key — Nom du champ
      • Type : Texte (string)
      • Requis : Oui
      • 200 caractères au plus
      • Exemple : commande.numero
      • Expressions : {{ }} refusé
    • value — Valeur
      • Type : Texte (string)
      • Requis : Non
      • Défaut : "" (vide)
      • 10000 caractères au plus
    • operation — Mise en forme
      • Type : Un choix (options)
      • Requis : Non
      • Défaut : none
      • Options :
        • none — Aucune
        • trim — Espaces retirés
        • upper — MAJUSCULES
        • lower — minuscules

Sorties ​

  • main

Données produites ​

Ce que ce nœud ajoute aux données de l’exécution, et comment le lire dans une expression. <step> désigne la clé de l’étape : le nom du nœud ramené à un identifiant (voir Données et expressions).

  • {{ data.<step>.<field> }} — string. Un champ par ligne, au nom donné par « Nom du champ », qui contient la valeur rendue après mise en forme. Les valeurs sont toujours du texte.
  • {{ data.<step>.<a>.<b> }} — object. Un nom de champ pointé construit des objets imbriqués : commande.numero se lit {{ data.<step>.commande.numero }}, et {{ data.<step>.commande }} est l’objet qui le contient.

Example ​

Préparer les champs d’une fiche CRM à partir d’une étape Extraire nommée Extraire. Nommez le nœud Transformer Fiche et ajoutez les lignes :

key: client.email     value: {{ email.from.email }}         operation: lower
key: client.nom       value: {{ data.extraire.nom }}        operation: trim
key: reference        value: {{ data.extraire.reference }}  operation: upper
key: source           value: email                          operation: none

En aval, {{ data.fiche.client.email }} contient l’adresse de l’expéditeur en minuscules et {{ data.fiche.reference }} la référence en majuscules.

Tips ​

  • Les valeurs sont du texte. Le nœud enregistre la chaîne rendue ; un nombre ou une liste issus d’une expression arrivent sous forme de texte (listes et objets en JSON).
  • Noms de champs. Chaque segment entre deux points doit commencer par une lettre, _ ou $ et ne contenir que des lettres, des chiffres, _ et $, ou bien être un nombre. __proto__, prototype et constructor sont refusés. Un seul nom inutilisable fait échouer toute l’étape avec node_invalid_param, et rien n’est écrit. Les lettres accentuées ne sont pas acceptées dans les noms de champs.
  • Le nom de champ ne peut pas contenir d’expression {{ }} : les nœuds en aval doivent savoir quels champs existent.
  • L’ordre des lignes compte. Quand deux lignes écrivent le même chemin, la dernière l’emporte : client = x après client.email = y remplace l’objet par le texte x, et l’inverse remplace x par un objet.
  • Une ligne sans nom de champ est ignorée.