Value-Map
Le composant Value-Map (capture d’écran ci-dessous) vous permet de transformer une valeur par une autre valeur à l'aide d'une table de consultation prédéfinie. Un tel composant ne traite qu'une seule valeur à la fois ; c'est pourquoi il a une entrée et un résultat dans le mappage.
![mf_lookup_01](./images/mf_lookup_01.png)
Un Value-Map est utile lorsque vous souhaitez mapper des items individuels dans deux ensembles pour pouvoir remplacer des items. Par exemple, vous pourriez mapper les jours de la semaine exprimés en chiffres (1, 2, 3, 4, 5, 6 et 7) pour le nom de chaque jour de la semaine ("Lundi", "Mardi", etc). De même, vous pourriez mapper les noms des mois ("Janvier", "Février", "Mars", etc) dans la représentation numérique de chaque mois (1, 2, 3, etc). Au moment de l'exécution du mappage, les valeurs correspondantes seront remplacées conformément à votre table de consultation personnalisée. Les valeurs dans les deux ensembles peuvent être de types différents, mais chaque ensemble doit stocker des valeurs du même type de données.
Les composants Value-Map sont idéaux pour des look-ups simples, où chaque valeur dans le premier ensemble correspond à la valeur unique dans le deuxième ensemble. Si une valeur ne peut pas être trouvée dans la table de consultation, vous pouvez soit la remplacer avec une valeur personnalisée ou une valeur vide, soit la transmettre telle quelle. Si vous souhaitez consulter ou filtrer des valeurs sur la base de critères plus complexes, utiliser un des composants de filtre à la place.
Plus important, lorsque vous générez du code ou que vous compilez un fichier d'exécution MapForce Server à partir du mappage, les données de la table de consultation sont intégrées dans le code ou le fichier généré. Par conséquent, la définition d'une table de consultation directement sur le mappage est un bon choix uniquement si vos données ne changent pas fréquemment et ne sont pas trop volumineuses (moins de quelques centaines d'enregistrements). Si les données changent fréquemment, il peut s'avérer difficile d'entretenir le mappage et le code généré régulièrement, il est plus simple d'entretenir les données de consultation en tant que texte, XML, base de données ou Excel.
Si la table de consultation est très volumineuse, l'exécution de mappage sera ralentie par la table de consultation. Dans ce cas, il est recommandé d’utiliser un composant de base de données avec SQL-Where à la place. Les bases de données sont de bons candidats pour cela, en raison de leur portabilité. Du côté serveur, vous pouvez améliorer la performance des tables de consultation en exécutant un mappage avec MapForce Server ou MapForce Server Advanced Edition.
Créer une Value-Map
Pour ajouter un composant Value-Map au mappage, faites une des choses suivantes :
•Cliquer sur la touche de barre d'outils Insérer Value-Map .
•Dans le menu Insérer, cliquer sur Value-Map.
•Cliquer avec la touche de droite sur une connexion, et sélectionner Insérer Value-Map depuis le menu contextuel.
Cela ajoute un nouveau composant Value-Map dans le mappage. Vous pouvez maintenant commencer à ajouter des paires d'items dans la table de consultation. À cette fin, double-cliquez sur le bouton droit sur la barre de titre du composant, et sélectionnez Propriétés depuis le menu contextuel.
![mf_lookup_02](./images/mf_lookup_02.png)
Au moment de l'exécution du mappage, MapForce contrôle chaque valeur qui atteint l'entrée de Value-Map. S'il existe une valeur correspondante dans la colonne gauche de la table de consultation, alors la valeur d'entrée originale sera remplacée avec la valeur provenant de la colonne de droite. Sinon, vous pouvez la configurer en option pour retourner un des éléments suivants :
•Une valeur de remplacement. Dans l’exemple ci-dessus, la valeur de remplacement est le texte « incorrect date ». Vous pouvez également définir la valeur de remplacement pour qu'elle soit vide, en ne saisissant aucun texte.
•La valeur d'entrée originale. Cela signifie que, si aucune correspondance n'est trouvée dans la table de consultation, la valeur d'entrée originale sera transmise plus loin dans le mappage, sans être modifiée.
Si vous ne configurez pas une condition "Otherwise", le Value-Map retourne un nœud vide à chaque fois qu'une correspondance n'est pas trouvée. Dans ce cas, rien ne sera transmis dans le composant cible et la sortie contiendra des champs manquants. Pour éviter que cela ne se produise, vous devriez soit configurer la condition "Otherwise" soit utiliser la fonction substitute-missing. |
Il existe une différence entre configurer une valeur de remplacement vide et ne pas spécifier la condition "Otherwise". Dans le premier cas, le champ sera généré dans la sortie, mais il aura une valeur vide. Dans le deuxième cas, le champ (ou l'élément XML) entourant la valeur ne sera pas créé du tout. Pour plus d'informations, voir Exemple : Remplacer les titres de tâches.
Remplir un Value-Map
Dans une table de consultation, vous pouvez définir autant de paires de valeurs que nécessaire. Vous pouvez soit saisir les valeurs manuellement, soit copier-coller des données tabulaires depuis des fichiers texte, CSV, ou Excel. Les tables Copier-coller depuis une page HTML utilisant un navigateur commun fonctionnera également dans la plupart des cas. Vous pouvez aussi coller des données depuis la grille de la base de données dans le volet de Requête BD. Si vous copiez des données depuis des fichiers de texte, les champs doivent être séparés par des caractères de tabulateur. De plus, MapForce reconnaîtra du texte séparé par des virgules ou des points-virgules dans la plupart des cas.
Veuillez considérer les éléments suivants lorsque vous créez des tables de consultation :
1.Tous les items dans la colonne de gauche doivent être uniques. Autrement, il ne serait pas possible de déterminer quel item vous voulez faire correspondre spécifiquement.
2.Les items qui correspondent à la même colonne doivent être du même type de données. Vous pouvez choisir le type de données depuis la liste déroulante au sommet de chaque colonne dans la table de consultation. Si vous devez convertir les types booléens, saisissez le texte « true » ou « false » litéralement. Pour consulter une illustration de ce cas, voir Exemple : Remplacer les jours de la semaine.
Si MapForce rencontre des données invalides dans la table de consultation, il affiche un message d'erreur et souligne les lignes invalides en rose, par exemple :
![mf_lookup_03](./images/mf_lookup_03.png)
Pour importer des données depuis une source externe dans le composant Value-Map, suivez les étapes suivantes :
1.Sélectionner les cellules pertinentes dans le programme de source (par exemple, Excel). Cela peut être soit une colonne de données simple ou deux colonnes adjacentes.
2.Copier des données dans le presse-papiers en utilisant la commande Copier du programme externe.
3.Dans le composant Value-Map, cliquer sur la ligne précédent celle dans laquelle vous souhaitez coller les données.
4.Cliquer sur la touche Coller la table depuis le presse-papiers dans le composant Value-Map. En alternative, appuyez sur Ctrl+V ou Shift+Insert.
Note : | La touche Coller la table depuis le presse-papiers est uniquement activée si vous avez tout d'abord copié des données depuis une source (donc, si des données se trouvent dans le presse-papiers). |
Lorsque vous données contenues dans le presse-papiers contient plusieurs colonnes, alors seules les données provenant des premières deux colonnes sont insérées dans la table de consultation ; toutes les autres colonnes seront ignorées. Si vous collez des données provenant d'une seule colonne sur des valeurs existantes, un menu contextuel apparaît, vous demandant si les données contenues dans le presse-papiers doivent être insérées dans les nouvelles lignes ou si les lignes existantes doivent être écrasées. Ainsi, si vous souhaitez écraser les valeurs existantes dans la table de consultation (par opposition à l'insertion de nouvelles lignes), veuillez vous assurer que le presse-papiers ne contient qu'une seule colonne.
Pour insérer des lignes manuellement avant une ligne existante, cliquer tout d'abord sur la ligne concernée, puis cliquer sur la touche Insertion .
Pour déplacer une ligne existante à une autre position, glisser la ligne sur la nouvelle position (vers le haut ou vers le bas) tout en maintenant appuyée la touche de gauche de la souris.
Pour copier ou couper des lignes pour les coller ensuite sur une autre position, sélectionner tout d'abord la ligne, puis cliquer sur la touche Copier (ou sur la touche Couper
, respectivement). Vous pouvez aussi copier ou couper plusieurs lignes qui ne sont pas forcément consécutives. Pour sélectionner plusieurs lignes, maintenir appuyée la touche Ctrl tout en cliquant sur la ligne. Veuillez noter que le texte coupé ou copié contient toujours des valeurs provenant des deux colonnes ; vous ne pouvez pas couper ou copier des valeurs provenant d'une seule colonne.
Pour supprimer une ligne, cliquer dessus puis cliquer sur la touche Supprimer .
Pour changer l'ordre de deux colonnes, cliquer sur la touche Échanger .
Renommer des paramètres de Value-Map
Par défaut, le paramètre d'entrée d'un composant Value-Map est appelé "entry" et le paramètre de sortie est appelé "result". Pour rendre le mappage plus clair, vous pouvez renommer en option un de ces paramètres en cliquant sur la touche Édition située à côté du nom respectif. Le graphique suivant est un exemple d'un Value-Map avec des noms de paramètre personnalisés :
![mf_lookup_04](./images/mf_lookup_04.png)
Préconsulter un Value-Map
Une fois le Value-Map créé, vous pouvez rapidement consulter sa mise en place directement dans le mappage en plaçant la souris au-dessus de la barre de titre du composant :
![mf_lookup_05](./images/mf_lookup_05.png)
Créer un Value-Map depuis le type d’énumération
MapForce vous permet de créer un Value-Map depuis de nœuds avec des valeurs d’énumération. Cette fonction est actuellement prise en charge pour les composants XML dont les nœuds ont des facettes d’énumération (toutes éditions) et composants EDI dont les nœuds ont des listes de code EDI (Enterprise Edition). Dépendant de vos besoins, vous pouvez créer un tel Value-Map depuis le connecteur d’entrée ou de sortie du nœud.
Pour créer un Value-Map à partir de type d’énumération, suivez les instructions ci-dessous :
1.Dépendant de vos objectifs, cliquez avec la touche de droite ou connecteur de sortie du nœud pour les valeurs d’énumération pour lesquelles vous souhaitez créer un Value-Map. Dans notre exemple (capture d’écran ci-dessous), nous avons sélectionné le connecteur de sortie du nœud Genre.
![MF_CreateValueMapForEnumValues](./images/mf_createvaluemapforenumvalues.png)
2.Sélectionnez Créer Value-Map pour Valeurs d’énumération depuis le menu contextuel.
3.Le dialogue Propriétés Value-Map apparaît. Les deux parties input et result de Value-Map sont pré-remplies avec les mêmes valeurs d’énumération. Pour pouvez revoir et éditer les valeurs tel que requis. La capture d’écran ci-dessous affiche la liste des valeurs Genre inhérente au fichier XML source d’origine (input) et la liste des valeurs modifiées que nous voulons mapper (result).
![MF_ValueMapModifiedEnumValues](./images/mf_valuemapmodifiedenumvalues.png)
4.Après avoir revu les valeurs d’énumération, cliquez sur OK. Cette action ajoutera un composant Value-Map au domaine de mappage. Le composant Value-Map sera automatiquement connecté au nœud dont les valeurs d’énumération du Value-Map ont été créées.
5.Connectez les autres paramètres du Value-Map avec le nœud pertinent et continuez de concevoir votre mappage tel que requis.