7

SSIS2012の非常に単純なタスクに問題があります。

FOR-EACH-FILE列挙子モードで実行されるfor-eachコンテナーがあります。XMLファイルを含むターゲットフォルダを読み取りたい。フォルダへのパスが正しく設定されています。ファイルフィールドは*.xmlに設定されます

変数マッピングは、次の変数で定義されます:User :: FileVar、Index0。

次に、コンテナ内に簡単なデータフロータスクを追加します。データフロータスクには、XML-データソースタスクのみがあります。それだけです。XMLデータソースタスクの場合、XSDの場所が設定されます。[列の選択]をクリックすると、XSDスキーマの列が表示されます。

しかし、XMLタスクを保存すると、常にエラーメッセージが表示されますThe Property XMLDataVariable is empty。変数からのXMLファイルと変数からのXMLデータの両方のデータアクセスモードを試しました。エラーメッセージが表示されたままです。パッケージを実行できません。

foreachループコンテナでもデータフロータスクでも、式は使用しません。

ここで何が問題なのかわかりません。古いバージョンのSSISのいくつかのチュートリアルに示されている手順を正確に実行しました。

あなたはなにか考えはありますか?

4

1 に答える 1

20

問題は、XMLソースが設計時に指定されたファイルの存在を検証しようとしていることです。ただし、ファイル名がわかるのは、実行時にForeachループコンテナーが実行され、特定のフォルダーで使用可能なすべてのXMLファイルをループするときだけです。

他のSOの質問の1つに対する回答を使用して、SSIS2012パッケージを再作成しました。 SSISがフォルダから複数のxmlファイルを読み取る

エラーを再現できましたThe property "XMLDataVariable" on the XML Source was empty

エラー

XMLソースで、プロパティValidateExternalMetadataをに設定しましたFalse。これをfalseに設定すると、パッケージは設計時にxmlファイルパスの存在を確認しなくなります。

ValidateExternalMetadata

パッケージを正常に実行できました。

正常な実行

お役に立てば幸いです。

于 2012-04-26T15:30:10.630 に答える