ユーザーが Report Builder 3.0 から作成されたレポートを実行するたびに、SSIS パッケージを使用してテーブルを更新したいので、SSIS ジョブを作成し、sp_start_job
このジョブを呼び出すストアド プロシージャとして Report Builder から呼び出します。
これはすべて正常に機能しますが、レポートはデータセットにデータを入力する前にジョブが完了するのを待ちません (テーブルに「最終更新日」列があるのでわかります)。
データがレポート自体に読み込まれる前に、ジョブが確実に終了するようにする方法はありますか?
編集:だから私はジョブを呼び出して、次のSELECT
ようなステートメントの前に待機することにしました:
USE msdb;
EXECUTE dbo.sp_start_job N'CUBE - IS Inventory Report Refresh'
WAITFOR DELAY '00:00:25'
USE OtherDatabase;
SELECT ...
しかし、タイムスタンプはまだ古い日付を示しています。SSIS ジョブは (履歴ログから) 17 秒で実行されるため、テーブルから選択する前に 25 秒待つだけで十分なはずです...なぜこれが起こっているのかについて洞察を持っている人はいますか?
Management Studio でクエリを実行すると、返されたテーブルに正しいタイムスタンプが表示されるので、レポート ビルダーの問題 (?) である可能性があると考えています。