[英]Dynamic scheduling of data driven subscription
我有一個數據驅動的訂閱,可以在特定時間將報告發送到電子郵件別名。 在訂閱查詢中:
select WorkProjectionReportTime,WorkProjectionReportToMailAlias,
'Work Projection Report for the period ' + CONVERT(varchar(10),GETDATE()-31,101)+ ' to '+CONVERT(varchar(10),GETDATE()-1,101) as Subject,
CONVERT(varchar(10),GETDATE()-31,101) as FromDate,CONVERT(varchar(10),GETDATE()-1,101) as ToDate, 60 as WO,
'Please see the attachment for the details' as body
from tblConfig
Pivot ( MAX(cValue) for cKey in (WorkProjectionReportTime,WorkProjectionReportToMailAlias) ) as xyz
因此,通過查詢,我得到了所有必填字段,電子郵件發送至,時間,報告參數。
我想使用時間參數來安排報告。 例如,如果時間是9:30,則報告應在9:30 AM寄出,以此類推。我想從SQL或數據庫方面而不是從C#中實現這一點。 如何實現呢?
結合上面建議的調度表,可以使用以下命令通過TSQL以@report_path作為參數來發送報告:
SELECT 'exec ReportServer.dbo.AddEvent @EventType=''TimedSubscription'',
@EventData=''' + CONVERT(VARCHAR(max), rs.SubscriptionID) + ''''
FROM ReportServer.dbo.Catalog c,
ReportServer.dbo.ReportSchedule rs,
ReportServer.dbo.Schedule s
WHERE rs.ReportID = c.ItemID
AND rs.ScheduleID = s.ScheduleID
AND c.path = @report_path
AND s.RecurrenceType = 1 -- only the ones with the regular scheduling disabled
您可以創建每分鍾運行的作業,並檢查是否有要發送和發送的報告。 但這意味着您將最多延遲1分鍾+“報表運行需要多長時間”。
更進一步
要么
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.