私の現在のプロジェクトでは、既知のディレクトリですが不明な名前のファイルをデータベーステーブルに入れて、使用されるファイル。SSIS - ファイルシステムタスクが変数を割り当てるためにスクリプトタスクを使用した後にファイルパスを見つけることができません
これは私の最初のプロジェクトですので、いくつかのチュートリアルとスタックオーバーフローページを長く使いました。なぜなら、コントロールフローは(必要でないかもしれないとしても)各ループの内側にあるのはなぜですか?制御フロー:
http://i.stack.imgur.com/Nepgg.png
ここでは私のスクリプトタスクは、Excelファイルを検索し、変数を割り当てることです:
public void Main()
{
string directoryLocation = @"I:\All\L3VA Import\"; //Change this for new directory
int directoryLength = directoryLocation.Length;
string[] filePath = Directory.GetFiles(directoryLocation, "*.xls*");
int filePathLength = filePath[0].Length;
Dts.Variables["myConnectionString"].Value = filePath[0];
Dts.Variables["myFileName"].Value = filePath[0].Substring(directoryLength, filePathLength - directoryLength);
私は、OLE DBにスプレッドシートのデータをポンプするためにデータフロータスクを使用し、それは独力では動作しませんが、スクリプトタスクが最初に実行された場合は、私の変数が正しく割り当てられていると思います。
私は[ファイルシステムタスクを使用してこのファイルを移動し、名前を変更しようとすると、私の問題は、これらの変数の値を見つけることではないようで、エラーが発生している、付属しています。ここ
Error: 0xC002F304 at File System Task, File System Task: An error occurred with >the following error message: "Could not find a part of the path.".
Task failed: File System Task
は変数リストですファイルシステムタスク: http://i.stack.imgur.com/p6FWD.png
申し訳ありませんが、なぜ活動は並行であり、連続していないのですか?最初にインポートを実行してからファイルを移動するべきではありませんか?ファイルシステムタスク内のファイル名だけでなく、パス全体でmyConnectionString変数を設定してください。ファイルシステムタスクのソース変数と宛先変数には、パス+ファイル名 –
が含まれている必要があります。コード を参照すると、string [] filePath = Directory.GetFiles(directoryLocation、 "* .xls *"); Dts.Variables ["myConnectionString"]。値=ファイルパス[0]。 myConnectionStringはファイルパス全体です。私は、余分な緑色の矢印を追加して、ファイルシステムタスクにmyConnectionStringの値を保持することを望んでいましたが、これは起きていないようです。 –
...すべてがOKです。正しいことなど... –