2010-07-30 24 views
1

Relativement nouveau dans BizTalk; Je pourrais utiliser une aide expérimentée.Fichier XML BizTalk dans un format de fichier plat

Je suis confronté à devoir essayer de mapper un document XML source à une destination délimitée par des tabulations de fichier plat. Mon document source contient des nœuds imbriqués que je dois parcourir et les traduire chacun en tant que ligne sur le document à fichier plat; relation d'en-tête/de détail d'ordre de vente classique. Les résultats auraient besoin que je répète les informations d'en-tête pour chaque élément imbriqué dans le nœud enfant.

J'ai essayé une solution en utilisant un fonctoid en boucle mais je ne suis pas sûr de savoir comment représenter la liste de destination correctement. Est-ce que je rate l'évidence? A quel élément de ligne de destination dois-je lier mon paramètre de sortie "Looping"?

Pour des raisons de démonstration, voici un exemple des schémas avec lesquels je travaille.

SOURCE SCHEMA (Ne pas la possibilité de modifier la structure source)

  • schéma \
  • SalesOrders \
  • SalesOrders \ commandes \
  • commandes \ soid
  • commandes \ cust nom
  • commandes \ adresse
  • commandes \ détail \
  • commandes \ détail \ PDSF
  • commandes \ détail \ ModelNo
  • commandes \ détail \ sku

DESTINATION SCHEMA

  • schéma \
  • \ root \
  • soid
  • custname
  • Adresse
  • etc ...

fichier plat SORTIE (Une ligne par élément de détail)

  • Adresse SOID custname PDSF ModelNo sku
  • Adresse SOID custname PDSF ModelNo sku

Quelqu'un peut-il m'orienter dans la bonne direction?

Répondre

1

Vous allez lier votre Functoïde Looping à partir du noeud source que vous souhaitez générer pour générer un nouvel enregistrement (généralement) le noeud d'enregistrement externe (généralement le premier enfant de la racine, mais pas toujours) de la destination. Cela indiquera essentiellement la carte "Chaque fois que vous voyez un nouveau blah dans ma source, créez un nouvel enregistrement complet dans ma destination."

+0

Salut, merci d'avoir répondu. J'ai tenté de lier le nœud source "salesorders \ orders" à mon functoid "looping" puis le functoid au premier enfant de l'enregistrement.Je ne suis toujours pas capable de reproduire x nombre de lignes par x nombre d'éléments enfants. Donc, en gros, je fais référence à mes exemples de schémas; Je glisse/dépose des commandes/soid sur mon functoïde puis je glisse/dépose une connexion du fonctoid vers le noeud \ root \ soid. Pas de chance :( –

+0

est votre schéma de destination mis en place pour une structure en boucle? Rappelez-vous que dans le schéma, la racine se réfère (plus ou moins) au fichier.En fonction de ce que je vois, vous avez un schéma d'enregistrement unique Ce à quoi je m'attendrais, c'est un enregistrement enfant de racine appelé 'Order' qui aurait alors des éléments enfants/attributs de SOID, custName, etc. 'Order' serait réglé sur Min Occurs = 1, Max Se produit = Unbounded. d puis accrochez votre functoid en boucle au noeud 'Order'. – AllenG