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

SSISでファイルが無い時の処理をするには?

1
投稿者投稿内容
緑茶太郎
会議室デビュー日: 2008/12/11
投稿数: 8
投稿日時: 2008-12-12 11:52
制御フローにデータフロータスクを貼り付けています。
フラットファイルソースでファイルを読み込む時に対象のファイルが有る時は正常に処理が終了するんですが、ファイルが存在しない時にコントロールが赤くなりエラーになってしまいました。

ファイルが存在しない時はどのような処理をすればいいのでしょうか?
※読み込むファイルは1つです。

読み込むファイルは1つなんですがForeachループコンテナを使うのでしょうか?
些細な事でも、何でも構いませんのでアドバイスして下さい。
申し訳ありませんが宜しくお願いします。


takacini
常連さん
会議室デビュー日: 2005/12/27
投稿数: 24
お住まい・勤務地: 東京都
投稿日時: 2008-12-12 14:36
データフローに行く前に、制御フローの段階でファイルの存在チェックをすればいいのではないでしょうか?

例えばスクリプトタスクを使用してVisualBasic.NETでチェックする方法があります。
パッケージ変数を別途用意して、ファイルが存在すればTrue、なければFalseを変数にセットするように
スクリプトタスクを作り、その後の処理を変数の値によって分岐することができます。
緑茶太郎
会議室デビュー日: 2008/12/11
投稿数: 8
投稿日時: 2008-12-12 18:09
回答ありがとうございます。

お蔭様でファイルの存在チェックを作成する事ができましたが・・・

ファイルが存在していない場合、処理を終了する事はできますか?
すみませんが再度、宜しくお願いします。
takacini
常連さん
会議室デビュー日: 2005/12/27
投稿数: 24
お住まい・勤務地: 東京都
投稿日時: 2008-12-12 18:45
ファイルが存在しない場合は後続のデータフロータスクに行かないようにすればいいだけです。
例えば、優先順位制約(ファイル存在チェックのタスクとデータフロータスクを結んでいる矢印のこと)の設定に、

評価操作:「式と制約」
値:成功
式:@[User::IsFileExist]==True (※IsFileExistは自分で作成したパッケージ変数)

などのようにきちんと条件を指定してあげれば、条件に合致しない場合は自然にパッケージの実行が終了するハズです。
緑茶太郎
会議室デビュー日: 2008/12/11
投稿数: 8
投稿日時: 2008-12-13 00:09
回答ありがとうございます。

Foreachループコンテナ内でファイル存在チェックをしています。
説明不足ですみません。

Foreachループコンテナから抜けるような設定はどのようにすればいいのでしょうか?
再度、宜しくお願いします。
緑茶太郎
会議室デビュー日: 2008/12/11
投稿数: 8
投稿日時: 2008-12-15 11:14
最初のスレッドの内容と現在のスレッドの内容が変わってしまったので別のスレッドにします。
回答してくれた皆さん、ありがとうございました。
失礼します。
1

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