2017-04-04 57 views
1

我使用SSRS 2016年有一個數字,將需要相應的上午11點到用戶本地時間收到的電子郵件報告用戶。SSRS跨時區的2016報告電子郵件

這樣做的最佳做法是什麼?

我最初的想法是爲每個時區創建不同的Active Directory分配列表,然後相應地添加用戶......然後爲每個報表創建多個時間表並調整報表發送時間相對於報表的時間需要分發清單。

舉個例子,SQL服務器是中央時間,而東部和中部時間員工需要由上午11點本地時間報告。 - 創建電子郵件時間表,以便在上午10點(服務器時間)向中東時間員工發送報告,並在上午11點爲中心時間員工發送報告。

有沒有更好的方法來做到這一點?

回答

0

你的做法正是我們正在做的。 SQL Server實例位於中央時區,我們在世界各地都有用戶。每個組都維護一個郵件列表,並在創建報告訂閱時手動進行算術運算。有趣的是,SSRS調整到本地用戶的語言(樂融洽HEBDOMADAIRE @ReportName一個ETE執行@ExecutionTime代替@ReportName在@ExecutionTime被執行的默認主題),但沒有提供任何幫助的時區。

如果您有SQL Server的企業版,您可以使用驅動報表訂閱數據。鑑於標準版和企業版之間的成本大幅增加,我懷疑這一特徵是否證明了成本。

其他解決方案需要的東西SSRS之外,但它可以很方便。如果您在其他位置運行其他計劃工具,則可以運行PowerShell腳本來觸發訂閱。例如,您也可以使用此方法在數據加載時運行報告。

PowerShell腳本列出訂閱及其ID:

$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) 
+0

謝謝! @gaccardo –