2010-09-29 4 views
1

j'ai transformé un fichier XMLSSIS XML Tâche avec un pour chaque boucle

See this question for a complete description

Ce que je veux faire savoir est de prendre cette tâche xml et l'ont préformé dans un pour chaque boucle. Je veux que tous les fichiers xml d'un répertoire spécifique soient transformés et que le fichier résultant soit déplacé dans le répertoire séparé.

Cela ne fonctionne pas. Je reçois les messaes d'erreur suivantes:

Error: 0xC002F304 at XML Task, XML Task: An error occurred with the following error message: "Data at the root level is invalid. Line 1, position 1.". 
Error: 0xC002928F at XML Task, XML Task: Property "New Source" has no source Xml text; Xml Text is either invalid, null or empty string. 

Pouvez-vous effectuer une transformation XML dans un pour chaque boucle?

Répondre

4

Le problème est que la tâche XML attendait que la variable contienne les données XML que j'essayais de transformer. En fait, la variable contenait le nom du fichier et le chemin pointant vers les données XML.

Mon collègue m'a montré la solution.

À l'intérieur de la tâche XML, sélectionnez SourceType = File connection.

Définissez ensuite la source pour qu'elle pointe vers votre fichier.

Voici l'astuce. En bas, vous verrez le gestionnaire de connexion et l'intérieur sera le nom du fichier vers lequel vous avez pointé votre tâche XML. Cliquez sur le nom du fichier (à l'intérieur de Connection Manager) et notez que la fenêtre des propriétés s'affichera.

Modifiez ConnectionString à n'importe quelle valeur de chaîne (j'ai utilisé "espace réservé").

Cliquez sur le signe plus aux expressions et ajouter un connectionstring comme ceci: @ [User :: FileName]

Dans ce cas FileName est une variable de package qui contient le chemin vers le fichier xml.

2

Vous devriez être en mesure d'exécuter la tâche XML dans une boucle Foreach. Les messages d'erreur semblent indiquer que la tâche XML a un problème avec le fichier source. Vous devez probablement regarder comment les noms de fichiers de la boucle Foreach sont appliqués à la propriété appropriée dans la tâche XML. Bien sûr, vous devez vous assurer que Foreach Loop saisit la bonne liste de fichiers.

+0

aurait la tâche XML à l'intérieur de la pour chaque boucle? Y a-t-il une autre étape requise? – codingguy3000

Questions connexes