---
title: "Une solution rapide pour les fonctions complexes"
date: "2011-06-27"
tags: 
  - "data-integration"
  - "data-mapping"
  - "mapforce"
  - "version-2011"
description: Altova MapForce 2011 simplifie la complexité de la transformation des données en permettant aux utilisateurs de combiner graphiquement des fonctions. Il prend en charge les tests étape par étape pour garantir une conversion précise des données.
---
Status: #blog

Tags:  #data-integration #data-mapping #mapforce #version-2011

Categories: [Altova](/blog/fr/category/altova.md) 
# Une solution rapide pour les fonctions complexes

Certaines conversions de données nécessitent plusieurs étapes pour répondre aux exigences complexes actuelles en matière de communication de données. [Altova MapForce 2011](https://www.altova.com/fr/mapforce.html) vous permet de combiner graphiquement une grande variété de fonctions mathématiques, logiques, de manipulation de chaînes de caractères et d'autres [fonctions spécialisées](https://www.altova.com/fr/mapforce/data-processing-functions.html) afin de créer des "équations de données" complexes et d'obtenir les résultats souhaités. Si vous travaillez sur une cartographie complexe, si vous utilisez une fonction que vous n'avez jamais utilisée auparavant, ou lorsque votre fonction produit un résultat intermédiaire qui nécessite un traitement supplémentaire, il est utile de tester votre travail à chaque étape de sa création. Vous pouvez utiliser un [simple fichier texte](https://www.altova.com/fr/mapforce/flat-file-mapping.html) comme cible temporaire pour visualiser le résultat de votre fonction en cours de développement. Supposons que nous voulions ajouter une date et une heure à une association existante entre un fichier de sortie et un enregistrement, afin de consigner le moment où les données ont été générées. Nous pouvons maintenant expérimenter facilement avec la fonction "MapForce" dans une nouvelle configuration qui se connecte simplement à un fichier texte. 

[![Une fonction associée à un fichier texte](https://lh4.ggpht.com/-NecSm6arE0g/Tf-MKZyrP4I/AAAAAAAAAZM/DyO5RHvbDpU/technote27_1_thumb%25255B2%25255D.png?imgmax=800 "A function connected to a text file")](http://lh3.ggpht.com/-nlHcCbcvjFc/Tf-MJ9mMqQI/AAAAAAAAAZI/lFddbb7blzc/s1600-h/technote27_1%25255B4%25255D.png)

En cliquant sur le bouton "Sortie" situé en bas de la fenêtre de mappage, on peut visualiser immédiatement le résultat : 

[![Résultat de la fonction "now"](https://lh3.ggpht.com/-d_iemv_ykrc/Tf-MLG7DA1I/AAAAAAAAAZU/tPounch7Ofc/technote27_2_thumb%25255B2%25255D.png?imgmax=800 "Output of the now function")](http://lh5.ggpht.com/-_I-NteTD0tE/Tf-MK-qeWAI/AAAAAAAAAZQ/byuCmyEmvrA/s1600-h/technote27_2%25255B4%25255D.png) 

D'accord, cela fonctionne, mais peut-être que l'utilisateur du fichier de sortie souhaiterait voir une version plus élégamment formatée. Nous pouvons utiliser diverses fonctions de manipulation de dates et de chaînes de caractères, et construire une fonction complexe jusqu'à ce que notre mappage ressemble à ceci : 

[![Fonction complexe pour générer une chaîne de caractères](https://lh3.ggpht.com/-zuEPfPxnuLY/Tf-MMIRLZKI/AAAAAAAAAZc/zj0xQr561RU/technote27_3_thumb%25255B2%25255D.png?imgmax=800 "Complicated function to produce a string")](http://lh6.ggpht.com/-429i3ML-88k/Tf-MLsxsfjI/AAAAAAAAAZY/n5PU6-z0sjs/s1600-h/technote27_3%25255B4%25255D.png) 

Ou bien, nous pourrions simplement utiliser la fonction de conversion `format-dateTime` avec une chaîne de caractères constante pour définir le format : 

[![Utilisation de la fonction format-dateTime pour une sortie personnalisée](https://lh3.ggpht.com/-It_hoxtBz5I/Tf-MM0Jw2oI/AAAAAAAAAZk/bsKoKQGZkNc/technote27_4_thumb%25255B2%25255D.png?imgmax=800 "Using the format-dateTime function for customized output")](http://lh5.ggpht.com/-aHLThUl46bI/Tf-MMWQUnkI/AAAAAAAAAZg/oVQM37fNsAg/s1600-h/technote27_4%25255B4%25255D.png) 

Pendant que nous travaillons, nous pouvons appuyer sur le bouton "Sortie" à tout moment, jusqu'à ce que nous obtenions un résultat qui ressemble à ceci : 

[![Chaîne de caractères personnalisée pour la date et l'heure](https://lh4.ggpht.com/-94YVgt5hGAc/Tf-MNzI5DaI/AAAAAAAAAZs/f1hokVgdvBo/technote27_5_thumb%25255B2%25255D.png?imgmax=800 "Custom string for date and time")](http://lh3.ggpht.com/-mOgE_ufw_ds/Tf-MNTQyQvI/AAAAAAAAAZo/gMCh3pkDtSI/s1600-h/technote27_5%25255B4%25255D.png) 

Si vous n'utilisez pas quotidiennement les types de données "dateTime", il est difficile, du premier coup, de créer une chaîne de format qui produise le résultat souhaité ! Après plusieurs tentatives, des modifications et des consultations de l'aide de MapForce, voici la chaîne de format que nous avons développée et que nous avons stockée dans la constante de chaîne associée à l'entrée de format de la fonction de conversion "format-dateTime" : 

[![Chaîne de caractères définissant le format de la date et de l'heure](https://lh4.ggpht.com/-vJlxfpnWDLE/Tf-MOqGOehI/AAAAAAAAAZ0/5kU5pfLXnjI/technote27_6_thumb%25255B2%25255D.png?imgmax=800 "String to define format for dateTime")](http://lh6.ggpht.com/-HT699QUkXRg/Tf-MOSslQNI/AAAAAAAAAZw/qAjirhgmTKw/s1600-h/technote27_6%25255B4%25255D.png)

Jusqu'à présent, nous avons utilisé un fichier texte défini comme un fichier CSV de base, ne contenant qu'un seul champ. Cependant, vous pouvez ouvrir la fenêtre de propriétés du fichier et ajouter des champs, ou créer un fichier de sortie plus personnalisé.

[![Paramètres des propriétés pour un simple fichier texte](https://lh6.ggpht.com/-uU2CKqIDYDQ/Tf-MPvuAgYI/AAAAAAAAAZ8/SzheowFYP3w/technote27_7_thumb%25255B3%25255D.png?imgmax=800 "Properties settings for a simple text file")](http://lh4.ggpht.com/-qZ5CeImVIuI/Tf-MPNq4zRI/AAAAAAAAAZ4/lfbmBTAuC_g/s1600-h/technote27_7%25255B5%25255D.png) 

L'un des avantages d'utiliser un fichier texte comme cible de sortie est qu'il n'y a pas de vérification du type du résultat de la fonction. Ainsi, la cible de sortie sous forme de fichier texte vous permet d'examiner et de vérifier le résultat de n'importe quelle fonction. Dans la capture d'écran ci-dessous, nous avons créé une fonction mathématique et nous avons ajouté un deuxième champ à la cible de sortie sous forme de fichier texte pour y enregistrer le résultat. 

[![Fichier texte contenant deux champs cibles](https://lh4.ggpht.com/-bkqK8zHzSGc/Tf-MQXFDV8I/AAAAAAAAAaE/lXmO7FFVIVE/technote27_8_thumb%25255B2%25255D.png?imgmax=800 "Text file with two target fields")](http://lh5.ggpht.com/-i2GuUy7xGa4/Tf-MP0AmpQI/AAAAAAAAAaA/DoEDCUBTPRw/s1600-h/technote27_8%25255B4%25255D.png)

Le résultat est maintenant une seule ligne, avec des valeurs séparées par des virgules, comme ceci :

[![Deux champs dans un simple fichier texte](https://lh6.ggpht.com/-pZMEjI9YzCA/Tf-MRRwlbrI/AAAAAAAAAaM/H61gauIPrpw/technote27_9_thumb%25255B2%25255D.png?imgmax=800 "Two fields in a simple text file")](http://lh3.ggpht.com/-4qI-JEQq6KU/Tf-MREv_AEI/AAAAAAAAAaI/TlRYz1Ucn_o/s1600-h/technote27_9%25255B4%25255D.png) 

Si notre objectif final est un champ de base de données ou un élément XML avec un type de données entier, nous pouvons immédiatement constater que cette fonction mathématique ne produit pas le type de données attendu. Une fois que vous avez perfectionné votre fonction dans la configuration de test, vous pouvez simplement la sélectionner, la copier et la coller directement dans votre configuration plus importante. Vous pouvez ensuite connecter la sortie de la fonction à votre objectif final. Dans la capture d'écran ci-dessous, notre fonction de formatage de date et heure est associée à un élément dans un schéma XML qui est défini comme une chaîne de caractères.

[![Fonction intégrée dans une carte plus étendue](https://lh4.ggpht.com/-yWufMDEjtr4/Tf-MSSrvKUI/AAAAAAAAAaU/jy-aqhTO4vI/technote27_10_thumb%25255B2%25255D.png?imgmax=800 "Function pasted into larger mapping")](http://lh3.ggpht.com/-V7xU_lpVjpA/Tf-MR4WsmXI/AAAAAAAAAaQ/hfRmKCiFRFM/s1600-h/technote27_10%25255B4%25255D.png) 

Si vous pensez que vous aurez besoin de cette fonction à nouveau à l'avenir, vous pouvez la convertir en une fonction définie par l'utilisateur et la sauvegarder dans votre bibliothèque pour pouvoir la réutiliser facilement. 

[![Menu des fonctions d'Altova MapForce](https://lh6.ggpht.com/-Qx5nsgVq1MA/Tf-MS30X-JI/AAAAAAAAAac/_IyIHiUGYWE/technote27_11_thumb%25255B5%25255D.png?imgmax=800 "Altova MapForce Function menu")](http://lh6.ggpht.com/-sL7Qf6AitKg/Tf-MSuQoegI/AAAAAAAAAaY/Yz14z0P3Uvo/s1600-h/technote27_11%25255B9%25255D.png) 

Vous pouvez même utiliser un fichier texte comme cible temporaire pour créer et tester une fonction complexe directement au sein de votre mappage. Dans ce cas, votre mappage comprend plusieurs résultats possibles. Le bouton en forme d'œil situé en haut à droite de chaque fichier de sortie permet de sélectionner quel fichier de sortie est affiché dans la fenêtre de sortie.

[![Fichier texte utilisé comme cible temporaire dans une opération de mappage plus globale](https://lh6.ggpht.com/-ROHTGmMGhCc/Tf-MUbPViPI/AAAAAAAAAak/1OdyEKLbGvY/technote27_12_thumb%25255B2%25255D.png?imgmax=800 "Text file as a temporary target")](http://lh3.ggpht.com/-JEuO0O-O1d8/Tf-MTy-EOVI/AAAAAAAAAag/q10Mjah9tBQ/s1600-h/technote27_12%25255B4%25255D.png) 

Lorsque vous sélectionnez un fichier texte comme aperçu de la sortie, le moteur d'exécution de MapForce ne traite pas la transformation complète, mais uniquement la fonction associée au fichier texte. Cela peut vous faire gagner beaucoup de temps lorsque vous souhaitez simplement examiner le résultat de la fonction, surtout si votre transformation traite un grand volume de données, ou si vous ne voulez pas risquer d'insérer des données incorrectes dans une base de données, et dans de nombreuses autres situations. **Découvrez par vous-même à quel point il est facile d'utiliser MapForce pour vos propres projets de transformation de données !** [**Téléchargez une version d'essai gratuite de 30 jours**](https://www.altova.com/fr/download/mapforce/data_mapping_enterprise.html) **de MapForce.**
