@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

ファイルが存在しなかった時に「Foreachループコンテナ」から処理を抜けるには?

1
投稿者投稿内容
緑茶太郎
会議室デビュー日: 2008/12/11
投稿数: 8
投稿日時: 2008-12-15 12:10
お世話になっています。

取り込むファイル名の情報を取得して取得したファイル分、「Foreachループコンテナ」で繰り返しています。
「Foreachループコンテナ」内でファイルが存在しているかを「スクリプトタスク」で下記のように記述してファイルをチェックしています。

If File.Exists(ファイル名) Then
 Dts.Variables("Err").Value = True
Else
 Dts.Variables("Err").Value = False
End If

「制御フロー」で「スクリプトタスク」の矢印を選択して「優先順位制約エディタ」で下記のように設定しました。
評価操作:「式と制約」
値:「成功」
式:「@[User::Err]==True」
※「Foreachループコンテナ」でファイル分繰り返しているので、ファイルが存在していない場合は次の処理に行かないんですが、
次のファイル名で処理を実行してしまいます。

「スクリプトタスク」に以下の記述を追加したらエラー(赤く)にして処理を止める事ができました。
一応、処理を止める事ができたんですが・・・

If CType(Dts.Variables("Err").Value, Boolean) Then
 Dts.TaskResult = Dts.Results.Success
Else
 Dts.TaskResult = Dts.Results.Failure
End If

やりたい事はファイルの有無を確認して、存在していない時にForeachから抜けて、メールを送信して処理を終了するパッケージを作成したいですが思うようにいきません。
どのようにすればいいのでしょうか?
宜しくお願いします。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2008-12-15 22:54
確かに .NET 関連技術なんだけど、ずばりなところの方がいいと思う。
http://www.atmarkit.co.jp/bbs/phpBB/viewforum.php?forum=26
緑茶太郎
会議室デビュー日: 2008/12/11
投稿数: 8
投稿日時: 2008-12-16 10:48
ご指摘ありがとうございます。
教えていただいた会議室にスレッドを作成したいと思います。
皆さん、ありがとうございました。
では、失礼します。
1

スキルアップ/キャリアアップ(JOB@IT)