【问题标题】:SSRS 2008 R2 Repeat One-Time SubscriptionSSRS 2008 R2 重复一次性订阅
【发布时间】:2013-08-06 15:18:39
【问题描述】:

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

我已经在 ReportServer.dbo.Subscription 和 Schedule 表中测试了这个方法,但到目前为止还没有成功。我已将 Schedule 表的 NextRunTime 和 StartTime 列更新为我需要发送报告的时间,这似乎在 Report Server Shared Schedules 页面(下一次运行)上更新,但电子邮件未发送。

我需要更新 ReportServer 数据库中的另一个表吗,或者这根本不可能?

谢谢

安迪

【问题讨论】:

  • 将其设置为重复发生。由于您无法查询下一个运行时,您需要让它在特定时间第一次运行,然后在未来每 5 年运行一次。然后,您可以将重复发生时间从五年更新到其他日期以再次触发。
  • 您好 LRB,感谢您的回复 - 我已经尝试过了,但没有成功。你知道是否有某种系统表覆盖了 dbo.Schedule 表中的信息?
  • 否,但如果失败,您应该在日志文件中看到它。在其中一个订阅页面上有一个指示状态的列。订阅本应触发但未触发后的状态指示什么。

标签: reporting-services reporting subscriptions


【解决方案1】:

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

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

我已经为几个客户使用过 if,它通常效果很好。此后我唯一更改的是将运行每个数据驱动报告之间的计时器增加到 10 秒。

问候,

杰森

【讨论】:

    【解决方案2】:

    在阅读此内容时,Microsoft 不支持表格中的大量混乱。使用风险自负!

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

    我进行了 SQL 跟踪,发现正在调用这些 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-28
      • 1970-01-01
      相关资源
      最近更新 更多