Reporting services SSRS Reporting services订阅未向客户端发送电子邮件或发送副本

Reporting services SSRS Reporting services订阅未向客户端发送电子邮件或发送副本,reporting-services,Reporting Services,Senario 1: 我正在向不同的客户发送具有不同数据的相同报告。例如,客户端1需要xyz区域的报告,客户端2需要其他区域的报告 我已经为报表创建了一次订阅,然后从报表服务器表中选择订阅Id和ScheduleId以手动触发 我正在从数据库中检索客户端定义的电子邮件地址和区域的所有设置。通过游标循环,我正在处理这些详细信息,并更新[ReportServer].[dbo].[Susbcriptions] 然后使用下面的SQL将PDF发送到客户端 exec ReportServer.dbo.AddE

Senario 1:

我正在向不同的客户发送具有不同数据的相同报告。例如,客户端1需要xyz区域的报告,客户端2需要其他区域的报告

我已经为报表创建了一次订阅,然后从报表服务器表中选择订阅Id和ScheduleId以手动触发

我正在从数据库中检索客户端定义的电子邮件地址和区域的所有设置。通过游标循环,我正在处理这些详细信息,并更新
[ReportServer].[dbo].[Susbcriptions]

然后使用下面的SQL将PDF发送到客户端

exec ReportServer.dbo.AddEvent @EventType='SharedSchedule', @EventData=@ScheduleID

WaitFor Delay 00:00:45 - To allow report processiong to be finished.
问题1:当通过游标循环时-有时客户端2永远不会得到报告

Senario2:

例如,我想将不同的许可证详细信息许可证1、许可证2和许可证3发送到同一个客户端。
使用上述方法,有时客户端会两次获取许可证1详细信息报告,然后跳过许可证2详细信息报告


希望这能提供更多信息。我使用的是SQL SERver 2008 Reporting services

SSRS订阅的内部操作有点复杂。(有关更多信息,请参阅此答案:)

滚动您自己的解决方案的替代方案是使用数据驱动订阅,这是SQLServer2005及更高版本中SSRS的一个功能。关于如何使用它们,有一篇很好的MSDN文章:

如果这对您不起作用,我建议您使用web服务,而不是直接在SSRS数据库中尝试这样做。这将确保SSR仍然能够准确控制订阅的运行方式。另外,报表服务器数据库的结构也不能保证,而web服务应该保持相对不变。一些好的资源: