Mappeur
L'action Mappeur crée une sortie personnalisée en combinant les sorties de plusieurs actions et en restructurant les objets, les collections, les tableaux ou les chaînes de la sortie selon vos besoins. Vous pouvez également appliquez plusieurs fonctions sur la sortie. Il n'est ainsi pas nécessaire d'écrire des codes Node.js complexes pour récupérer et combiner des valeurs de champ ou des sorties précises de plusieurs actions. Le mappeur propose un certain nombre de fonctions modulaires qui vous permettent de réaliser ce qui suit :
Combiner des sorties
Itérer des objets, des tableaux, des chaînes et des collections
Manipuler et tester des valeurs
Utilisation de l'action Mappeur
Pour utiliser cette action dans votre processus, connectez-la à ThingWorx Flow. Pour ce faire, procédez comme suit :
1. Cliquez sur , faites glisser l'action Mappeur sous l'utilitaire Outils de développement jusqu'au canevas, placez le pointeur sur l'action, puis cliquez sur ou double-cliquez sur l'action. La fenêtre de l'action Mappeur s'ouvre.
2. Modifiez le nom de l'Etiquette, si nécessaire. Par défaut, le nom de l'étiquette est identique à celui de l'action.
3. Cliquez sur pour créer une nouvelle paire clé/valeur.
a. Renommez la clé et définissez la valeur. Vous pouvez mapper la sortie des actions précédentes en tant qu'entrée dans le champ de valeur.
b. Cliquez sur </> pour ajouter des fonctions sur l'entrée spécifiée.
Pour ajouter d'autres paires clé/valeur, cliquez sur .
4. Cliquez sur Terminé.
Types de données pris en charge par le mappeur
Le mappeur accepte les valeurs d'entrée de type de données Tableau, Collection, Objet et Chaîne.
Tableau : s'utilise lorsque la clé spécifiée renvoie un tableau. Pour définir le type de données sur Tableau, cliquez sur , puis sélectionnez Tableau dans la liste. Vous pouvez appliquer des fonctions sur le tableau en cliquant sur </>.
Collection : s'utilise lorsque la clé spécifiée renvoie un tableau d'objets. Il est possible de mapper directement au champ de valeur une collection d'une action précédente en tant que clé de collection ou d'ajouter séparément des paires clé/valeur dans la clé de collection.
Pour définir le type de données sur Collection, cliquez sur , puis sélectionnez Collection dans la liste. Vous pouvez appliquer des fonctions sur la collection en cliquant sur </>.
Objet : s'utilise lorsque la clé spécifiée renvoie un objet. Il est possible de mapper directement au champ de valeur un objet d'une action précédente en tant que clé d'objet ou d'ajouter séparément des paires clé/valeur dans la clé d'objet.
Pour définir le type de données sur Objet, cliquez sur , puis sélectionnez Objet dans la liste. Vous devez commencer par spécifier le nom de l'objet, puis cliquer sur le lien "+" situé en regard du champ Clé pour ajouter des paires clé/valeur. Vous pouvez ensuite sélectionner n'importe quel type de données pour chacune des propriétés.
Le lien de la console (</>) qui vous permet d'appliquer des fonctions est présent à la fois en regard du champ "Nom de l'objet" et en regard de chaque champ "Nom de propriété" de cet objet.
Chaîne : s'utilise lorsque la clé spécifiée renvoie une valeur de chaîne. Par défaut, toutes les paires clé/valeur sont de type de données Chaîne. Vous pouvez appliquer des fonctions sur la chaîne en cliquant sur </>.
Utilisation des fonctions intégrées du mappeur
Le mappeur vous permet d'appliquer diverses fonctions à la sortie d'actions précédentes. L'action met à votre disposition un certain nombre de fonctions intégrées (issues de la bibliothèque "lodash"). Vous pouvez également créer vos propres fonctions personnalisées.
Fonctions pour tableaux :
_.Compact : supprime les valeurs fausses du tableau donné. En savoir plus
_.difference : renvoie un tableau avec des valeurs uniques du premier tableau de la série de tableaux donnée. En savoir plus
_.flatten : aplatit un tableau à un seul niveau de profondeur. En savoir plus
_.flattenDeep : aplatit la totalité d'un tableau. En savoir plus
_.intersection : renvoie un tableau de valeurs communes à l'ensemble des tableaux donnés. En savoir plus
_.first : récupère le premier élément du tableau donné. En savoir plus
_.last : récupère le dernier élément du tableau donné. En savoir plus
_.uniq : supprime les valeurs en double du tableau donné. En savoir plus
Fonctions pour objets
_.pick : renvoie un objet avec des éléments correspondant à la propriété d'objet spécifiée. En savoir plus
_.get : renvoie la valeur d'un élément présent au chemin spécifié dans un objet. En savoir plus
_ keys : crée un tableau des noms de propriété énumérables d'un objet. En savoir plus
Fonctions pour chaînes
_.camelCase : convertit une chaîne en camelCase. En savoir plus
_.capitalize : met en majuscule le premier caractère de la chaîne et le reste en minuscule. En savoir plus
_.kebabcase : convertit une chaîne en kebab-case. En savoir plus
_.lowercase : convertit la chaîne spécifiée en minuscules. En savoir plus
_.lowerfirst : met en minuscule le premier caractère de la chaîne. En savoir plus
_.replace : remplace par une chaîne donnée la chaîne correspondant à la condition spécifiée. En savoir plus
_.repeat : répète la chaîne donnée le nombre de fois spécifié. En savoir plus
_.escape : convertit les caractères &, <, >, ' et " de la chaîne en leurs entités HTML correspondantes. En savoir plus
_.trim : supprime de la chaîne donnée les espaces de début et de fin et les caractères spécifiés. En savoir plus
_.unescape : convertit les entités HTML &, <, >, ", ' et ` de la chaîne donnée en leurs caractères correspondants. En savoir plus
Fonctions pour les nombres
_.add : ajoute deux chiffres. En savoir plus
_.ceil : calcule le nombre arrondi supérieur selon la précision spécifiée. En savoir plus
_.divide : divise deux chiffres. En savoir plus
_.floor : calcule le nombre arrondi inférieur selon la précision spécifiée. En savoir plus
_.multiply : multiplie deux chiffres. En savoir plus
_.subtract : soustrait deux chiffres. En savoir plus
Fonctions pour les collections
_filter : renvoie le tableau avec les éléments qui remplissent la condition de filtrage spécifiée. En savoir plus
_.find : renvoie le premier élément qui remplit la condition spécifiée. En savoir plus
Exemple : Utilisation des fonctions intégrées du mappeur
Vous souhaitez récupérer dans un même tableau les valeurs uniques présentes dans plusieurs tableaux. Pour ce faire, commencez par utiliser l'action Opérations sur tableaux pour concaténer vos tableaux (contenant quelques valeurs communes). Utilisez ensuite la sortie dans le mappeur et exécutez la fonction _.uniq pour écarter les valeurs en double.
1. Ajoutez les actions Opérations sur tableaux, Mappeur et Envoyer e-mail au canevas, puis connectez-les comme suit :
2. Configurez l'action Opérations sur tableaux comme suit :
Sélectionner opération sur tableau : sélectionnez Concaténer dans la liste.
Tableau source 1 : spécifiez le premier tableau à concaténer.
Tableau source 2 : spécifiez le deuxième tableau à concaténer.
Cliquez sur Ajouter pour ajouter d'autres tableaux.
Les entrées "R2-D2" et "Han" apparaissent volontairement dans les deux tableaux. Cela crée un tableau contenant des valeurs en double. Cliquez sur Terminé. Vous revenez alors au canevas.
3. Configurez l'action Mappeur comme suit :
Key1 : spécifiez le nom de la clé.
Cliquez sur pour sélectionner le type de données Tableau, puis sur pour ajouter une fonction.
Cliquez sur , puis sur pour ajouter la sortie de l'action Opérations sur tableaux en tant qu'entrée dans la fenêtre de console.
Cliquez sur Fonctions, puis sélectionnez la fonction _.uniq pour supprimer les valeurs en double du tableau.
Cliquez sur ENREGISTRER. L'onglet Custom Function est ajouté en tant qu'entrée du champ Valeur.
4. Configurez l'action Envoyer e-mail comme suit :
A : spécifiez l'adresse e-mail du destinataire.
Objet : spécifiez l'objet de l'e-mail.
Type de corps : sélectionnez le type de corps (Texte) de l'e-mail.
Corps : ajoutez en entrée la sortie de l'action Mappeur donnée à droite de la fenêtre de configuration.
5. Cliquez sur Terminé, puis Exécuter le processus. Les valeurs uniques présentes dans plusieurs tableaux sont ainsi récupérées dans un même tableau, puis envoyées au destinataire spécifié.
Ajout de fonctions personnalisées dans Mappeur
L'action Mappeur vous permet également d'écrire des fonctions personnalisées pour effectuer des opérations sur des valeurs d'entrée données. Consultez l'exemple ci-après afin de comprendre la fonction personnalisée :
Exemple
Suite de l'exemple précédent. Supposons que vous souhaitez appliquer une fonction personnalisée sur la sortie de la fonction _.uniq implémentée précédemment.
1. Effectuez les modifications suivantes dans le code existant, comme illustré dans la figure ci-dessous :
2. Une fois la fonction personnalisée ajoutée dans la console, cliquez sur ENREGISTRER, puis Exécutez le processus.
* 
Vous pouvez également écrire des fonctions personnalisées qui peuvent être uniquement implémentées sur les entrées spécifiées.
Schéma de sortie
Le schéma de sortie renvoyé par l'action Mappeur dépend des paires clé/valeur spécifiées. Un exemple de schéma de sortie est illustré ci-dessous :