2017-02-28 14 views
4

私はSSISパッケージ作成で少し新しく、SSISパッケージにループをネストしました.1つはすべてのフォルダを1つの場所にループし、内部ループは各フォルダのすべてのファイルをループしています。オブジェクト変数をSSISのスクリプトタスクからリセットする方法はありますか?

私の最初の仕事は、以下のような文字列の配列としてパッケージレベルのスコープを持つオブジェクト変数にすべてのファイルパスを取得しているスクリプトタスクです。

string targetDirectory = Convert.ToString(Dts.Variables["SourceFolderLocation"].Value); 
string[] fileEntries = Directory.GetFiles(targetDirectory, "*.pdf"); 
Dts.Variables["FileList"].Value = fileEntries; 

Dts.Variables ["FileList"]。値はパッケージレベルのスコープのオブジェクト変数です。

私の要件は、オブジェクト変数をリセットしてから、そのオブジェクト変数に新しいファイルリストを設定するという、フォルダレベルループのスクリプトタスクです。アクセスフォルダへの例外があるかのように、前のフォルダのファイルは処理しません。

私の質問は、スクリプトのタスクのC#コードでオブジェクト変数をリセットする方法ですか?したがって、以前のフォルダのファイルを再度処理しないで、列挙子にnull値のエラーが含まれてはいけません。

ご協力いただきますようお願い申し上げます。

答えて

2

私が正しく理解していれば、GetFilesへの呼び出しの前に新しいstring[]に設定して、それを 'リセット'する必要があります。

string[] fileEntries = new string[] {}; 
try { 
    string targetDirectory = Convert.ToString(Dts.Variables["SourceFolderLocation"].Value); 
    fileEntries = Directory.GetFiles(targetDirectory, "*.pdf"); 
    Dts.Variables["FileList"].Value = fileEntries; 
} 
catch (Exeception e) { 
    // handle exception 
} 
関連する問題