Comment prioriser l'exécution des tags xml dans txmlMap en utilisant talend

Je suis nouveau à Talend et je suis confronté à des problèmes en travaillant avec txmlmap.

J'ai un file XML et j'ai besoin d'insert datatables de ce XML dans SQL Server. J'ai fait une connection dans Talend pour me connecter à SQL Server, mais je suis confronté à quelques problèmes en priorisant les balises XML.

Voici mon file XML:

<?xml version="1.0" encoding="UTF-8"?> <data> <entry name="opertaion-round-title"> <valstr>ROUND 1</valstr> </entry> <entry name="site"> <valstr>SITE NAME</valstr> </entry> <entry name="plant"> <valstr>PLANT NAME</valstr> </entry> <entry name="opertaion-area"> <valstr>G AREA</valstr> </entry> </data> 

J'utilise txmlMap pour transmettre des données de XML à la database. J'ai quatre tables. J'ai besoin de mettre les valeurs en fonction de la balise d'input (nom).

 SITES, PLANTS, OPERATING_AREAS, OPERATING_ROUNDS 

J'ai besoin de mettre la valeur du site à la table SITES, la valeur de la plante à la table PLANTS, la valeur de la zone d'opération à la table OPERATING_AREAS et la table operation-round-title à la table OPERATING_ROUNDS.

J'obtiens avec succès les valeurs dans la table, cependant je veux d'abord insert la valeur de site à la table de SITES suivie par la valeur de plantes dans la table de PLANTS puis la table OPERATING_AREAS et la table OPERATING_ROUNDS.

Le problème auquel je suis confronté est que quelle que soit la valeur est d'abord présente dans xml son insertion à cette table. c'est-à-dire dans ce cas, c'est d'abord l'insertion des valeurs dans la table OPERATING_ROUNDS car la première balise dans le xml est <entry name="opertaion-round-title"> . Mais je veux dans l'ordre suivant

 SITES PLANTS OPERATING_AREAS OPERATING_ROUNDS 

Donc Y at-il de toute façon dans lequel nous pouvons définir la priorité d'exécution des balises dans txmlMap de sorte que, quelle que soit la balise qui vient en premier, il va traiter les balises en fonction de la priorité que nous avons définie.

S'il vous plaît find ci-joint capture d'écran de

conception de composants

et

Configuration de txmlMap

Si je ne me trompe pas, il se peut que vous deviez réfléchir à la façon dont vous pensez traiter datatables:

  • D'abord, vous allez parcourir un file XML (s'il y a plus d'inputs dans la section de data )
  • Ensuite, vous allez faire un peu de cartographie. Habituellement, cela se produit dans le composant d'input. Donc, c'est là que vous diriez "J'ai une variable de ligne appelée SITES et elle devrait être remplie avec le contenu de data / sites / valstr". Il n'y a pas d'image de la cartographie, donc c'est difficile à deviner
  • Votre rangée serait remplie de 4 valeurs, étant celles que vous avez notées 4
  • Ensuite, vous divisez simplement ceux-ci dans les quatre compartiments que vous avez créés (les composants de sortie dans la database)

Ce qui signifie, il n'y a pas de priorisation nécessaire. Vous avez seulement besoin de vous assurer que le mappage est correct, et vous pourrez également le faire dans un tMap.