Ce Job utilise les composants suivants.
- deux tFixedFlowInput pour générer les données person et item depuis un fichier texte ;
- deux tAdvancedFileOutpuXML pour générer un fichier XML et écrire des enregistrements à sa suite.
Procédure
-
Déposez un tFixedFlowInput et un second tAdvancedFileOutputXML (respectivement nommés tFixedFlowInput_1 et tAdvancedFileOutputXML_1 par défaut) depuis la Palette dans l'espace de modélisation graphique. Reliez les deux composants à l'aide d'un lien Row > Main.
-
Double-cliquez sur le tFixedFlowInput_1 pour ouvrir sa vue Basic settings et sélectionnez l'option Use Inline Content (delimited file). Ajoutez les données suivantes au champ Content :
1;1;Shong
1;2;Elisa
2;1;Sabrina
2;2;Patrick
-
Cliquez sur le bouton près de Edit Schema et créez trois colonnes comme indiqué ci-dessous.
-
Lorsque cela vous est proposé, cliquez sur OK pour propager le schéma au composant suivant (le tAdvancedFileOutputXML_1). Vous pouvez également cliquer sur le bouton Sync columns de la vue Basic settings du composant tAdvancedFileOutputXML.
-
Dans la vue Basic settings du tAdvancedFileOutputXML_1, cliquez sur le bouton Configure XML tree pour ouvrir l'éditeur d'arborescence, comme suit. Vous devez configurer person en tant qu'élément de boucle et class en tant qu'élément de groupe.
Remarque : Cette fonctionnalité nécessite la présence d'un élément de groupe dans l'arborescence XML, sinon une erreur est retournée sous le nom du composant, dans cette fenêtre.
-
Cliquez sur root puis sur le bouton [+] pour ajouter le sous-élément class en sélectionnant Create as sub-element.
-
Répétez la procédure pour ajouter le sous-élément person à class et les sous-éléments id et name à person.
-
Cliquez-droit sur class pour ouvrir son menu contextuel et cliquez sur Add attribute pour ajouter l'attribut class_id.
-
Cliquez sur le bouton Auto map! afin de lier le schéma d'entrée à l'arborescence XML.
-
Dans le champ File Name de la vue Basic settings, saisissez le chemin d'accès au fichier XML à générer, "D:/out.xml" dans cet exemple.