Altova MapForce 2025 Basic Edition

Exemple : Remplacer les titres de tâche

Accueil Préc Haut Suivant

Cet exemple vous montre comment remplacer des valeurs d'éléments spécifiques dans un fichier XML à l'aide de composants Value-Map (c'est à dire, en utilisant une table de consultation prédéfinie).

 

Le fichier XML nécessaire pour cet exemple est disponible dans le chemin suivant : <Documents>\Altova\MapForce2025\MapForceExamples\Tutorial\ MFCompany.xml. Il stocke, entre autres données, des informations concernant les employés de l'entreprise et leurs titres de poste, par exemple :

 

<Person>
  <First>Michelle</First>
  <Last>Butler</Last>
  <Title>Software Engineer</Title>
</Person>
<Person>
  <First>Lui</First>
  <Last>King</Last>
  <Title>Support Engineer</Title>
</Person>

<Person>
  <First>Steve</First>
  <Last>Meier</Last>
  <Title>Office Manager</Title>
</Person>

 

Partons du principe que vous souhaitez remplacer certains des titres de poste dans le fichier XML ci-dessus. En particulier, le titre "Software Engineer" doit être remplacé par "Code Magician". De même, le titre "Support Engineer" doit être remplacé par "Support Magician". Les autres titres de poste ne doivent pas être modifiés.

 

Pour atteindre cet objectif, ajouter le fichier XML à la surface de mappage, en cliquant sur la touche de la barre d'outils Insérer Schéma/Fichier XML ic-new-schema ou en exécutant la commande de menu Insérer | Schéma/Fichier XML. Ensuite, copier-coller le composant XML dans le mappage et créer les connexions comme indiqué ci-dessous. Veuillez noter que vous devrez éventuellement tout d'abord désactiver l'option dans la barre d'outils ic-conn-child Basculer l'auto-connexion des enfants, pour pouvoir éviter l'établissement automatique de connexions inutiles.

mf_lookup_06

Le mappage créé jusqu'à présent copie les éléments Person dans le fichier cible XML, sans effectuer de modifications dans les éléments First, Last et Title.

 

Pour remplacer les titres de postes requis, ajoutons un composant Value-Map. Cliquer avec la touche de droite sur la connexion entre les deux éléments Title, et choisir Insérer Value-Map depuis le menu contextuel. Configurer les propriétés Value-Map comme indiqué ci-dessous :

mf_lookup_07

Conformément à la configuration ci-dessus, chaque occurrence de "Software Engineer" sera remplacée par "Code Magician", et chaque occurrence de "Support Engineer" sera remplacée par "Support Magician". Veuillez noter que la condition Otherwise n'est pas encore spécifiée. C'est pour cette raison que Value-Map retourne un nœud vide à chaque fois que le titre de poste est différent de "Software Engineer" et de "Support Engineer". Par conséquent, si vous cliquez sur l'onglet Sortie et que vous consultez le mappage, certains des éléments Person auront un titre manquant Title, par exemple :

 

<Person>
  <First>Vernon</First>
  <Last>Callaby</Last>
</Person>
<Person>
  <First>Frank</First>
  <Last>Further</Last>
</Person>

<Person>
  <First>Michelle</First>
  <Last>Butler</Last>

  <Title>Code Magician</Title>
</Person>

 

Comme indiqué auparavant, des nœuds vides entraînent des entrées manquantes dans la sortie générée ; c'est pourquoi, dans le fragment XML ci-dessus, seul le titre de Michelle Butler a été remplacé, étant donné que son titre était présent dans la table de consultation. La configuration créée jusqu'à présent ne remplit toujours pas l'exigence originale. La configuration correcte est la suivante :

mf_lookup_09

Avec la configuration ci-dessus, la chose suivante se produit au moment de l'exécution :

 

Chaque occurrence de "Software Engineer" sera remplacée par "Code Magician"

Chaque occurrence de "Support Engineer" sera remplacée par "Support Magician"

Si le titre original ne se trouve pas dans la table de consultation, le Value-Map le retournera sans le modifier.

 

À seul titre illustratif, nous pouvons aussi changer tous les titres de poste différents de "Software Engineer" et de "Support Engineer" en une valeur personnalisée, par exemple "N/A". Pour ce faire, définir les propriétés Value-Map comme indiqué ci-dessous :

mf_lookup_08

Maintenant, lorsque vous consultez le mappage, chaque titre de poste est présent dans la sortie, mais ceux qui n'avaient pas de correspondance auront la valeur "N/A", par exemple :

 

<Person>
  <First>Vernon</First>
  <Last>Callaby</Last>
  <Title>N/A</Title>
</Person>
<Person>
  <First>Frank</First>
  <Last>Further</Last>
  <Title>N/A</Title>
</Person>
<Person>
  <First>Michelle</First>
  <Last>Butler</Last>
  <Title>Code Magician</Title>
</Person>

 

Cela complète l'exemple Value-Map. En appliquant la logique ci-dessus, vous pouvez obtenir le résultat désiré dans d'autres mappages.

© 2018-2024 Altova GmbH