あなたのアプローチはまさに私たちがやっていることです。 SQL Serverインスタンスは中央のタイムゾーンにあり、世界中のユーザーがいます。各グループはメーリングリストを維持し、レポート購読を作成するときに手動で算術演算を行います。興味深いことに、SSRSはローカルユーザーの言語に合わせて調整されます(@ReportNameの代わりに@ReportTimeがデフォルトのサブジェクトの@ExecutionTimeで実行されました)が、タイムゾーンの助けにはなりません。
エンタープライズエディションのSQL Serverを使用している場合は、データ駆動型レポートサブスクリプションを使用できます。標準版とエンタープライズ版のコストが大幅に増加したことを考えると、この1つの機能がコストを正当化するのではないかと疑う。
他の解決策では、SSRS以外のものが必要ですが、それは便利です。さまざまな場所で実行されている他のスケジューリングツールがある場合、PowerShellスクリプトを実行してサブスクリプションをトリガすることができます。また、この方法を使用して、データがロードされたときにレポートを実行することもできます。サブスクリプションをトリガする
$server = 'http://server.company.com/reportserver'
$site = '/'
$rs2010 = New-WebServiceProxy -Uri "$server/ReportService2010.asmx" -Namespace SSRS.ReportingService2010 -UseDefaultCredential
$subscriptions = $rs2010.ListSubscriptions($site)
$subscriptions | Sort-Object -property path,owner,SubscriptionID -Unique | select Path, Owner, SubscriptionID
PowerShellスクリプト:
# Given an SSRS URL and a subscription ID, trigger the subscription.
$server = 'http://server.company.com/reportserver'
$subscriptionid = "55477447-b0b0-433c-a75f-08ad0b6d18bd"
$rs2010 = New-WebServiceProxy -Uri "$server/ReportService2010.asmx" -Namespace SSRS.ReportingService2010 -UseDefaultCredential ;
$rs2010.FireEvent("TimedSubscription",$subscriptionid,$null)
おかげでサブスクリプションとそのIDをリストする
PowerShellスクリプト! @gaccardo –