シナリオ:パッケージ#1は、外部システムの「INPUT」フォルダーにドロップされる複数のメッセージ(1行に1つ)を含むフラットファイルを作成します。ファイルは外部システムによって取得されて処理され、応答は同じ形式で「OUTPUT」フォルダー内のファイルに書き込まれます。外部システムがメッセージを処理している間にファイルの書き込みが開始されるため、foo.rspproとして書き込まれます。処理が完了し、すべての応答メッセージが書き込まれると、名前がfoo.rspに変更されます。
完了したら(つまり、名前の変更後に)そのファイルを取得し、Package#1の直後に開始されるPackage#2を使用して処理する必要があります。Package#2が起動すると、外部システムは次の3つの状態になる可能性があります。
- 最初のメッセージの処理はまだ完了しておらず、応答ファイルもまだ書き込まれていません。この場合、foo.rspproが書き込まれるのを待ってから、名前をfoo.rspに変更する必要があります。
- 処理が進行中で、foo.rspproが書き込まれます。この場合、foo.rspproの名前がfoo.rspに変更されるのを待つ必要があります。
- 処理が完了し、foo.rspproが作成され、名前がfoo.rspに変更されました。この場合、foo.rspを処理する必要があります。
私が試してみました:
- 使用中のファイルを使用しているが、タスクの開始時に予期されたファイルが存在しない場合のエラー(つまり、シナリオ1および2のエラー)
- ファイルウォッチャータスクを使用しますが、設計上ファイルの名前変更を無視しているように見えるため、シナリオ1または2を処理することはありません。
スクリプトタスクを作成する以外に、3つのシナリオすべてを処理するカスタムタスクはありますか?
編集:SSIS 2008 R2