Altova MapForce 2024 Enterprise Edition

Exemple: Parser un string (texte à longueur fixe dans Excel)

Accueil Préc Haut Suivant

Cet exemple vous guide dans les étapes nécessaires pour créer un design de mappage qui parse des données de string. L'exemple s'accompagne d'un fichier d'échantillon. Si vous souhaitez consulter le fichier échantillon avant de vous lancer dans cet exemple, vous pouvez l'ouvrir depuis le chemin suivant : <Documents>\Altova\MapForce2024\MapForceExamples\Tutorial\ParseString.mfd.

 

Partons d'un exemple dans lequel vous avez des données de texte legacy stockées dans un seul champ de base de données. Ces données de texte consistent en une liste des employés, stockés dans la colonne RESOURCE, et formatés en tant que champs de longueur fixe, comme suit :

ex_string_parse_07

 

Étant donné que les données de texte sont stockées en tant que champ unique de base de données, vous ne pouvez pas accéder et manipuler facilement les enregistrements de chaque employé. Cela complique l'ajout ou la suppression de nouveaux employés ou de trier des données. Dans notre exemple, votre objectif est d'extraire les données de texte depuis le champ de base de données RESOURCE et de les répartir dans une structure pour que vous puissiez traiter aisément les enregistrements.

 

Cette tâche peut être accomplie en utilisant un composant "Parser/Sérialiser String". Tout d'abord, le composant "Parser/Sérialiser String" prendra les données de texte en tant qu'entrée. Ensuite, il les parsera et les convertira dans une structure. Enfin, il rédigera la structure dans un format de cible. Dans cet exemple, le format de cible est une feuille de calcul Excel ; néanmoins, en général, il peut s'agir de tout autre format de sortie pris en charge par MapForce.

 

Pour résumer, le mappage décrit dans cet exemple convertira les contenus du champ de base de données RESOURCE dans une table. Une fois que le mappage est exécuté, chaque ligne de table correspondra à un employé et chaque colonne correspondra à un des champs à longueur fixe, dans cet ordre : ID, Nom de famille, Prénom, Extension, Titre professionnel, E-mail.

ex_string_parse_06

Sortie attendue après le parsage du string

Pour accomplir l'objectif, suivre les étapes ci-dessous :

 

1.Ajouter à la zone de mappage la base de données de source. La base de données est disponible en tant que fichier de base de données SQLite autonome dans le chemin suivant : <Documents>\Altova\MapForce2024\MapForceExamples\Tutorial\\dbresources.db. (Pour ajouter le composant de base de données, utiliser la commande de menu Insérer | Base de données, voir aussi Se connecter à une base de données).

2.Lorsque vous êtes invité à insérer les objets de base de données, choisir la table resources.

ex_string_parse_00

3.Ajouter à la zone de mappage un composant de Texte (utiliser la commande de menu Insérer | Fichier de texte). Puisque les données de source sont regroupées dans un texte délimité par champ, choisir Utiliser traitement simple... lorsque vous y êtes invité par MapForce.

4.Configurer la structure du composant Texte pour mapper vers la structure des données de texte de source stockées dans la base de données. Comme vous l'avez probablement déjà remarqué, dans cet exemple, le texte de source consiste en six champs à longueur fixe, comme suit :

 

Taille en caractères

Champ

6

ID

15

Nom de famille

15

Prénom

3

Extension

25

Titre professionnel

25

E-mail

 

Pour y parvenir, déclarer le composant Text en tant que Fixed, et y ajouter six champs qui correspondent aux positions ci-dessus. (Pour ouvrir le dialogue Paramètres de composant, cliquer avec la touche de droite sur le composant, puis sélectionner Propriétés depuis le menu contextuel.)

ex_string_parse_02

Observer le champ Field4, qui utilise integer en tant que type de données. Bien que la déclaration de Field4 en tant que type numérique soit optionnelle pour l'étendue de l'exemple actuel, cela permet d'assurer que l'extension téléphonique (Field4) extraite depuis le texte de source soit validé en tant que valeur numérique.

5.Cliquer sur btn_file_string, et sélectionner Parser Strings vers FLF depuis le menu contextuel. Ainsi MapForce apprend que ce composant parsera un string dans un format fixed-length field (champ de longueur fixe) (FLF).

ex_string_parse_02a

6.Ajouter à la zone de mappage le composant cible Excel 2007+. Lorsque vous êtes invité à sélectionner un fichier d'échantillon, cliquer sur Sauter. (Vous pouvez ajouter le composant Excel en utilisant la commande de menu Insérer | Excel 2007+, voir aussi Ajouter fichier Excel 2007+ en tant que composant de mappage).

7.Cliquer sur la touche excel1-compicon située à côté du nœud Row 1, n=dyn, et configurer le composant Excel pour écrire une ligne pour chaque champ de texte, en commençant avec la première ligne, comme indiqué ci-dessous. (Pour plus d'informations concernant les types de composant Excel 2007+ et leur configuration, voir À propos du composant Excel 2007+).

ex_string_parse_03

8.Tirer les connexions entre les items de composant, comme indiqué ci-dessous.

mf_map_ParseString

À gauche du mappage, les contenus de la colonne de base de données de ressource sont convertis (parsés) depuis une valeur de string vers une structure MapForce. À droite du mappage, les items du composant Parser (fichier Texte) sont connectés à des colonnes Excel individuelles, répartissant ainsi le string de source en cellules triables individuelles.

 

Vous venez de terminer la création d'un fichier de design MapForce qui parse des données de string et crée une structure depuis ce fichier. Maintenant, si vous cliquez sur l'onglet Sortie, les données de texte legacy sont maintenant converties en lignes et colonnes individuelles de la feuille de calcul Excel, ce qui était l'objectif de ce mappage.

© 2018-2024 Altova GmbH