私が働いている場所では、SSRSレポート用に多数のサブスクリプションが設定されています。一部のレポートには、100ものサブスクリプションが設定されています。
データウェアハウスは毎晩更新され、すべてのデータが削除されて再度読み込まれます。
そのため、サブスクリプションの実行が予定されている午前中に問題が発生し、データが読み込まれない場合、パラメーターを入力できず、次のようにバグが発生します。
次に、それらを修正するために、すべてのサブスクリプションを手動で開き、再度保存をクリックする必要があります。これでは不十分な場合があり、すべてのパラメータを手動で再設定する必要があります。これは非常にイライラし、時間がかかります。だから私は私の質問に連れて行きます:
これを防ぐには?すべてのサブスクリプションを自動的に「更新」する方法はありますか?私が考えた他のソリューションですが、実行するReportServer dbの知識がありません:
おそらく、サブスクリプションの実行が設定される前にスクリプトを実行します。スクリプトは、ウェアハウスデータベーステーブルにデータが存在するかどうかをチェックします。データがない場合は、サブスクリプションを1時間遅らせてから、再試行してください。これは可能ですか?もしそうなら、サブスクリプションの実行時間へのアクセスを提供するクエリに非常に感謝します。自分で作ってみましたが、できませんでした。
他のソリューションは大歓迎です、事前に感謝します!
実行するのは、サブスクリプションを作成して一度だけ実行することです。次に、作成したエージェントジョブに移動して、ステップのコードをコピーします。これは、データがあるかどうかを確認した後、ストアドプロシージャで実行できます。
if (select * from table where date = '2018/05/18')
exec [ReportServer].dbo.AddEvent
@EventType='TimedSubscription',
@EventData='xxx data copied from job xxx'
その後、AddEventはレポートを実行して実行します。