SSRS 2008 R2重复一次性订阅

时间:2013-08-06 15:18:39

标签: reporting-services reporting subscriptions

我想创建一次性S​​SRS共享计划,一旦运行就可以更改,以便在将来的某个时间点再次执行。我必须以这种方式设置订阅的原因是因为我需要根据定制的会计日历通过电子邮件发送一组报告;我们没有企业,所以数据驱动不是一种选择。

我在ReportServer.dbo.Subscription和Schedule表中测试了这个方法,但到目前为止还没有设法让它工作。我已将Schedule表的NextRunTime和StartTime列更新为我要求发送报告的时间,这似乎在Report Server Shared Schedules页面(Next Run)上更新,但电子邮件不会发送。

我需要更新ReportServer数据库上的另一个表,或者这是不可能的?

由于

安迪

2 个答案:

答案 0 :(得分:0)

我建议看看下面的文章。它详细介绍了如何在SQL Server Standard Edition上设置数据驱动的订阅,并通过SQL Server代理手动激活订阅。

http://www.sqlservercentral.com/articles/Development/datadrivensubscriptions/2432/

我曾经使用过几个客户,它通常运作良好。我之后唯一改变的就是在运行每个数据驱动的报告之间将计时器增加到10秒。

此致

杰森

答案 1 :(得分:0)

在阅读本文时,微软不支持在表格中乱七八糟。使用风险自负!

我尝试了同样的事情。当您在前端更改订阅时,ReportServer.dbo.Schedule.StartDate列会随着每次编辑而更改。我试着改变这个值,但是在这里添加一个值没有区别。没有电子邮件,当我在SSRS网页上回到我的订阅时,原始日期时间值就在那里。因此日期时间必须存储在其他地方。

我做了一个SQL Trace,发现这些Sproc被调用了。我复制了看起来很有希望的线条。通过更改最后一个中的时间值@active_start_time=160400并运行整个批次,我可以在所需的时间收到电子邮件报告。但我不满足于此;因为当我返回并查看“我的订阅”网页时,仍会列出原始日期时间。

exec msdb.dbo.sp_delete_job @job_name=N'D478A346-ED05-422D-A73E-023080AD56DD'

exec msdb.dbo.sp_add_job @job_name=N'D478A346-ED05-422D-A73E-023080AD56DD',@description=N'This job is owned by a report server process. Modifying this job could result in database incompatibilities. Use Report Manager or Management Studio to update this job.',@category_id=101

exec msdb.dbo.sp_add_jobserver @job_name=N'D478A346-ED05-422D-A73E-023080AD56DD',@server_name =N'(LOCAL)'

exec msdb.dbo.sp_add_jobstep @job_name=N'D478A346-ED05-422D-A73E-023080AD56DD',@step_name=N'D478A346-ED05-422D-A73E-023080AD56DD_step_1',@command=N'exec [ReportServer$instanceDB].dbo.AddEvent @EventType=''TimedSubscription'', @EventData=''db7d7b08-3eee-4bb8-b354-b58c653b8ab6'''

exec msdb.dbo.sp_add_jobschedule @job_name=N'D478A346-ED05-422D-A73E-023080AD56DD',@name=N'Schedule_1',@freq_type=1,@active_start_date=20180405,@active_start_time=160400,@freq_subday_type=1