2017-07-21 6 views
-1

J'ai beaucoup étudié sur internet, mais toujours pas en mesure d'obtenir une solution exacte à mon problème. Le problème mentionné dans le lien ci-dessous est très similaire au mien, mais cela ne fonctionnera pas.Noeud racine manquant dans le fichier XML dans biztalk

If record exists then map, if not map another - Biztalk mapping

Mon problème:
J'ai fichier source xml qui contient des informations facture, quelque chose comme ça.

-<invoice>  
<invoiceNumber>1124</invoiceNumber> 
+<invoiceHeader> 
+<invoiceDetails>  
</invoice> 
<invoiceNumber>1598</invoiceNumber>  
+<invoiceHeader> 
+<invoiceDetails>  
</invoice> 

Il est possible que, parfois, le sous-noeud. L'information de invoiceDetails peut manquer pour quelques numéros de facture, mais des informations d'en-tête seront présentes.

Sortie requise: Le fichier de sortie (.csv) doit avoir tous les numéros de facture indépendamment de l'étiquette de détail présente ou non?

+0

Quelle est la structure dans le fichier .csv? Pouvez-vous ajouter un exemple de schéma du XML et du fichier plat ainsi qu'un exemple de carte? – Dijkgraaf

+0

S'il vous plaît fournir un [mcve] – Dijkgraaf

Répondre

1

Ajoutez un Functoïde de bouclage à la mappe avec le lien source de et la cible à partir du maillet de bouclage lié à l'élément de ligne dans le schéma de fichier plat.

Cela va fonctionner, faites-nous confiance. :)

+0

Il fonctionne uniquement pour le numéro de facture qui a à la fois l'en-tête de facture et les informations détaillées, mais les factures qui n'ont pas d'informations détaillées sont manquantes en sortie (fichier csv). – RAHUL

0

Cela dépend de la façon dont est le schéma de sortie, mais la solution doit être facile, seule la balise de liaison à la sortie. En coulisses, le XSLT produit est une boucle pour chaque variable et copie cette valeur à la sortie, indépendamment de l'étiquette de détail présente ou non.

Pouvez-vous partager le schéma de sortie?