1

このアプリケーションはSQLServerReporting Servicesを使用しており、ユーザーがカスタムフィルターをレポートに追加できるようにします。これを行うには、RDLを変更してから、変更したRDLをサーバーにアップロードして、新しいレポートを作成します。問題は、レポートが1回実行されると、それが不要になることです。これは実際には一時的なレポートです。明らかに、これは最終的には多くの一時的なレポートが配置される結果になります。これらをクリーンアップする方法が必要です。

レポートを定期的に削除するサービスやジョブを作成するなどの外部メソッドについてはすでに考えましたが、それ以上の方法が考えられない場合は、おそらくそれを実行することになります。私たちが疑問に思っているのは、SSRS自体がこれを行うためのより良い方法を提供するのでしょうか?期限切れに設定されるキャッシュされたインスタンスを何らかの方法で使用しようと考えましたが、それはレポート自体ではなく、レポートの実行されたインスタンスでのみ機能するようです。私の知る限り、レポートの有効期限を設定する方法はありません。SSRSにクリーンアップさせる他の方法はありますか?

実行は非同期であるため、レポートをすぐに削除することはできません。

4

1 に答える 1

2

組み込み、何もありません。しかし、自分で何かを書くのは簡単です。

30 分 (またはそれ以上) より古いレポートのカタログを照会するプロセスを試してみてください。ReportServerTempDB に参加して、まだアクティブなセッションがあるかどうかを確認することもできます (アクティブなセッションがある場合は、もう少し無視します)。

それらを見つけたら、Web サービス インターフェイスを使用して簡単に取得し、カタログから削除できます。

しかし...実際には、コードを使用して、カスタム フィルターを提供するより良い方法を検討したいと思います。確かに、フィルターをパラメーターとして提供し、レポート内で VB コードを使用して、ユーザーが提供したものを行ごとに評価できるものに変換することができます。

ロブ

于 2009-08-26T23:55:27.040 に答える