2017-01-01 18 views
0

SSISを使用してExcelファイルをデータベースにインポートするパッケージを作成しようとしています。親コンテナのSSIS実行ファイルタスク子コンテナプロセスが失敗する場合

操作は、定期的にこれを行う必要があり、ファイル名は規約に従うが、同じではない、と同じようにシート/タブ名は常に同じではありません、次のように、SSISパッケージが設定されているとおり:

本体容器 - > 各コンテナの最初は(FE1それを呼び出す) は、ファイル名(変数に割り当てる) 取得 - コンテナごと> セカンド(FE2それを呼び出す) 得ますワークシート名を、インポートするプロセスを開始します。

私が行ったことは、FE2からFE1のファイルシステムタスクプロセスへの "失敗"優先順位制約を作成することでした。

アイデアは、インポートが何らかの理由で失敗した場合にファイルの移動が行われるという考えです。

(それが動作たら私がアーカイブフォルダにファイルを移動し、「成功」プロセスを作成したいのですが)

一つだけが「各コンテナのため」がある場合、ファイルタスクプロセスの動作(すなわちありません現在の方法で入れ子になっていますが、すべてのプロセスが "file in use"を引用して入れ子になっているコンテナにあると失敗します)。これは、各コンテナの最初のファイルがロックされているためです。なぜ、各コンテナのファイルタスクプロセスを最初に移動し、先行コントロールを使用したのでしょうか?

ご迷惑をおかけして申し訳ありません。同様の問題があり、誰の利益のために

screenshot

答えて

0

:愛もお金のために

を移動、ファイルタスクは外だった場合でも、私は、ファイルを解放するために、Excelのコネクタを得ることができますループ。

最後に、DBのテーブルに移動されたファイルを記録してから、ムーブファイルタスクを含む2番目のパッケージを実行し、正常にインポートされた(インポートに失敗した)ファイルを作成し、失敗/成功フラグに基づいて宛先に移動しました。

これが成功するための唯一の方法でした。

各Excelファイルのワークシートを繰り返し処理する必要がある場合(つまり、2つの接続を効果的に処理する場合)、SSISはファイルを解放しないため、使用エラーと失敗のファイルを永久に受信します。

関連する問題