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 使用上述方法有时客户端会获得2次许可证1详细信息报告,然后跳过License2详细信息报告。
希望这会提供更多信息。我正在使用 SQL SERver 2008报告服务。
答案 0 :(得分:0)
SSRS订阅内部发生的事情有点复杂。 (有关详细信息,请参阅此答案:https://stackoverflow.com/a/22163743/201021)。
滚动自己的解决方案的另一种方法是使用数据驱动订阅,这是SQL Server 2005及更高版本中SSRS的一项功能。有关如何使用它们的MSDN文章很好:Create a Data-Driven Subscription (SSRS Tutorial)
如果这对您不起作用,我建议您使用网络服务,而不是直接在SSRS数据库中尝试这样做。这将确保SSRS仍然可以准确控制订阅的运行方式。此外,报告服务器数据库的结构不受保证,而Web服务应保持相对相同。一些好的资源: