4.2. Nœud cible

4.2.1. Description

Icône : image93

  • Nombre d’entrées : 1.

  • Nombre de sorties : 0.

Définition

Un nœud cible (Sink en anglais) permet d’envoyer des lignes vers un système de stockage.

Paramétrage

L’utilisateur doit spécifier la cible des données image94. Il peut, au besoin, créer une nouvelle cible pour les données (Répertoire fichier distant, base de données, etc.) image95.

Pour certains types de cibles (notamment les fichiers), des paramètres spécifiques sont proposés image96.

Il est possible d’utiliser un noeud cible déjà dans un flow, pour en créer un autre dans un autre flow image210.

Note

Lorsqu’une cible de données est modifiée, les changements sont appliqués automatiquement dès lors que la configuration de la cible est valide.

Exemple

image97

Ici, par exemple, on peut observer le paramétrage d’un nœud cible.

Ce nœud permettra de récupérer les données traitées dans le flow dans un fichier csv.

Indication

Pour les sorties de type CSV, toutes les extensions des fichiers en entrée sont valides lors du choix du nom de fichier de sortie ( exemple : .txt, .log…etc ).

4.2.2. Mode de sauvegarde

Le mode de sauvegarde image98 permet de déterminer le comportement du flow lorsqu’une cible existe déjà. Une variété de modes de sauvegarde sont disponibles en fonction du type de cible dont il s’agit :

  • Ecraser (Overwrite) :

    écraser le fichier existant.

  • Ajouter (Append) :

    insérer les enregistrements à la fin d’une table ou d’un fichier existant.

  • Créer (Create) :

    créer une nouvelle table ou un nouveau fichier. Dans ce cas, une erreur se produit si la table (ou le fichier) existe déjà.

  • Insérer ou remplacer un onglet :

    ce mode existe pour les feuilles Excel. Cette option permet d’insérer un onglet supplémentaire dans un fichier Excel existant afin d’y insérer les lignes envoyées vers ces types de cible. Si le fichier Excel n’existe pas, il sera créé. Si un onglet du même nom existe déjà dans le fichier Excel, cet onglet sera écrasé.

  • Ecraser (conserver la table cible si elle existe) (Overwrite) :

    disponible pour les bases de données, avec l’option suivante (Truncate). La table sera détruite, récréée puis remplie avec les données.

  • Ecraser (conserver la table cible si elle existe) (Truncate) :

    disponible pour les bases de données, avec l’option précédente. La table sera conservée, vidée puis remplie avec les données.

  • Mettre à jour (Update) :

    disponible pour le connecteur Salesforce. Permet de mettre à jour les données dans le CRM. Pour plus d’informations, voir la section concernée.

Indication

Pour les fichiers Excel, il est ainsi possible de créer des flows avec plusieurs cibles écrivant dans différents onglets du même fichier Excel. Pour ce faire, il est indispensable que toutes les cibles pointant vers ce fichier Excel utilisent le mode de sauvegarde Insérer un onglet. Si tel n’est pas le cas (i.e. si une des cibles pointant vers ce fichier Excel utilise le mode de sauvegarde Ecraser ou Créer), une erreur de configuration sera déclenchée empêchant l’exécution du flow.

4.2.3. Limite d’enregistrements

Il s’agit du nombre d’enregistrements image99 à envoyer vers la cible. Ce nombre doit être strictement positif.

Ne pas spécifier de valeur signifie que l’on souhaite envoyer tous les enregistrements.

Avertissement

La limite du nombre d’enregistrements à écrire est prise en compte après l’échantillonnage.

La limite du nombre d’enregistrements est prise en compte en production (ce qui n’est pas le cas pour un nœud source).

4.2.4. Échantillonnage - ou sampling (en %)

Cette option est à utiliser lorsque l’on ne souhaite pas envoyer la totalité ni les N premiers enregistrements vers la cible. Contrairement à un nœud source, un nœud cible applique cette option en production.

Il s’agit d’un échantillonnage aléatoire d’enregistrements image100 que l’on exprime en pourcentage de la taille totale du jeu de données à envoyer vers la cible. Pour des raisons de performances, ce pourcentage est estimé.

Une valeur de 100 signifie : pas d’échantillonnage : dans ce cas, on souhaite soit envoyer la totalité des enregistrements (pas de limite spécifiée) ou les N premiers enregistrements (limite fixée à N).

4.2.5. Alertes

Il est possible de paramétrer l’envoi d’alertes sur chacune des cibles afin d’être informé lorsque les enregistrements écrits dans une cible valident un critère d’activation. Pour configurer une alerte, se reporter au chapitre Mise en place d’une alerte dans un flow.

4.2.6. Fonctionnement du mode Ajouter (Append) en fonction des types de cibles

Le mode Ajouter (voir modes de sauvegarde) se comporte avec certaines différences en fonction du type de cible. Ceci est visible si la structure des données ne correspond pas à celle de la cible existante telle qu’elle se présente au moment de l’exécution du flow.

Les principaux cas à signaler sont :

  • écriture dans une table de base de données

    Si les données à écrire ont des colonnes en moins par rapport à la cible existante au moment de l’exécution, alors ces colonnes seront remplies avec null pour les lignes ajoutées. Si il existe des colonnes en plus de celles de la cible existante au moment de l’exécution, alors le flow rencontrera une erreur au moment de l’exécution.

  • écriture dans un fichier parquet

    Si les données à écrire ont des colonnes en moins par rapport à la cible existante au moment de l’exécution, alors ces colonnes seront remplies avec null pour les lignes ajoutées. Si il existe des colonnes en plus de celles de la cible existante au moment de l’exécution, alors ces colonnes seront ajoutées au fichier parquet et remplies avec null pour les lignes précédentes.

  • écriture dans un fichier CSV ou Excel

    Les données seront rajoutées à la suite des précédentes sans vérification par rapport à la structure des colonnes existantes. Le respect de l’ordre des colonnes par le créateur du flow sera impératif pour conserver l’intégrité du fichier.

4.2.7. Écriture de données dans Salesforce

Pour écrire des données dans Salesforce, vous devez ajouter un nœud cible à votre flow.

Dans le configurateur du nœud cible :

salesforce-image7

  1. Sélectionnez Salesforce dans la liste déroulante Type de source de données.

  2. Sélectionnez votre instance Salesforce dans la liste déroulante Sources de données existantes.

  3. Sélectionnez le mode d’écriture :

    1. Insérer, pour ajouter de nouveaux enregistrements

    2. Mettre à jour, pour modifier des enregistrements existants

  4. Si vous cochez la case Arrêter à la 1ere erreur, l’écriture s’arrêtera le plus rapidement possible à la première erreur rencontrée (e.g. un champ requis manquant ou un doublon). Les enregistrements écrits avant l’erreur resteront présents dans Salesforce. En revanche, si cette case est décochée, le connecteur écrira dans Salesforce tous les enregistrements ne générant pas d’erreurs (« best effort »), puis déclenchera une erreur à la fin du flow pour signaler que tous les enregistrements n’ont pas pu être écrits. Le détail des échecs sera accessible dans la fenêtre d’exécution, et sera également envoyé par e-mail au propriétaire du flow.

  5. Si vous cochez la case Contourner les règles de duplication le connecteur ne pas tiendra pas compte des règles de dédoublonnage paramétrées dans Salesforce Attention : lorsque vous activez cette option, vous devez vous assurer que votre flow ne génère pas de doublons (pour cela utilisez les fonctions de dédoublonnage avancées de l’éditeur de préparation de Tale of Data).

  6. Objet Salesforce cible : la collection d’objets Salesforce dans laquelle vous souhaitez écrire des données. Dans la capture d’écran ci-dessus : Account (= Compte)

  7. Champs cibles : cette table permet d’afficher les correspondances (et les erreurs de correspondance) entre les colonnes venant de votre flow Tale of Data et les champs attendus par Salesforce. Les règles de correspondances sont les suivantes :

    1. La colonne Tale of Data doit avoir exactement le même nom (et la même casse de caractères) que le champ cible Salesforce correspondant

    2. La colonne Tale of Data doit avoir un type compatible avec celui du champ Salesforce cible correspondant (e.g. vous ne pouvez pas écrire une valeur de type texte dans un champ Salesforce de type Date)

salesforce-image8

Exemple d’erreur de correspondance sur le nom du champ

Autre type d’erreur (signalées en rouge) dans la table des champs cibles :

Lorsque vous êtes en mode d’écriture Mettre à jour, votre flow doit impérativement produire sur sa sortie une colonne nommée Id (sensible à la casse, de type texte), contenant l’identifiant unique Salesforce des enregistrements à mettre à jour. Notez que seuls les champs produits par le flow seront mis à jour : si vous souhaitez, par exemple, ne mettre à jour qu’une seule colonne C, la sortie de votre flow devra contenir uniquement les colonnes Id et C. Les autres champs ne seront pas modifiés.

salesforce-image9

Lorsque vous êtes en mode d’écriture Insérer, votre flow ne doit pas produire sur sa sortie de colonne nommée Id. “Id“ est le nom réservé pour l’identifiant unique de tous les objets Salesforce. Seul Salesforce peut attribuer une valeur à ce champ :

salesforce-image10

Lorsqu’un champ Salesforce est requis et qu’il n’est pas fourni par votre flow, la configuration du nœud cible se met en erreur, empêchant l’exécution du flow :

salesforce-image11

Note

Important : en mode Mettre à jour, Tale of Data vous permet, dans le même flow, de lire et d’écrire dans la même table Salesforce