Reporting services ssrs订阅只运行一次,然后出现错误

Reporting services ssrs订阅只运行一次,然后出现错误,reporting-services,parameters,shared,schedule,subscriptions,Reporting Services,Parameters,Shared,Schedule,Subscriptions,大家早上好, 我有一系列基于共享计划订阅的销售代表报告。 我有一个每月运行的共享计划和一个每周运行的共享计划。 每周计划报告第一次运行,以后不再运行。进入“管理和订阅”时,周报参数值为空。有一条黄色三角形感叹消息,表示“一个或多个报表参数具有无效的参数值”。月度订阅看起来不错,但仍然填充了正确的参数 为了让您知道我是如何设置这些参数的,我首先在报告本身中创建了每周和每月参数。 我为每个代表创建了11个报告。在我的查询where子句中,我创建了一个 [>=@StartDate和 我没有设置“默认”

大家早上好, 我有一系列基于共享计划订阅的销售代表报告。 我有一个每月运行的共享计划和一个每周运行的共享计划。 每周计划报告第一次运行,以后不再运行。进入“管理和订阅”时,周报参数值为空。有一条黄色三角形感叹消息,表示“一个或多个报表参数具有无效的参数值”。月度订阅看起来不错,但仍然填充了正确的参数

为了让您知道我是如何设置这些参数的,我首先在报告本身中创建了每周和每月参数。 我为每个代表创建了11个报告。在我的查询where子句中,我创建了一个 [>=@StartDate和 我没有设置“默认”参数

这可能是您的问题。订阅无法提示任何人输入参数-那里没有人提供这些参数。您需要提供默认值,或者为订阅输入值


如果我误解了,并且您确实为订阅提供了参数值,请尝试查找SSRS日志文件-它们将位于…\Reporting Services\LogFiles\中,并且可能包含更详细的错误,以帮助您确定实际问题所在。

我记得在数据驱动订阅中使用日期参数时,我必须切换到由于日期转换问题,文本而不是日期列:您可以有datetime参数和datetime列,但SSRS会将其转换为介于两者之间的文本

因此,我没有返回带有datetime列的查询,而是返回一个varchar,如下所示:

select convert(varchar(50), getdate(), 120) MyDateParam
这将为您提供“通用”yyyy-mm-dd hh:mi:ss格式。(如果您需要更多格式,请在此选择一种具有yyy-mm-dd的格式)


通过这种方式,您可以控制到文本的转换,并确保在将其转换回datetime时SSRS能够理解。顺便说一下,这是在SSRS 2005中。我认为您不需要将报告参数更改为文本,但如果SSRS投诉,您可能需要更改。这是我认为可能存在的问题-我不确定如何更改从一份报告中选择每月或每周。我将为每周和每月分别创建一份报告,以便能够使用默认值。我今天将尝试此操作。如果手动运行报告时,报告本身可以用于每周和每月参数,那么您可能只需创建两个订阅-一个配置为每周-运行参数,一个带有月运行参数。它每周和每月都会手动运行。此外,我为每月和每周设置的订阅实际上只成功运行一次。就像您之前所说的,由于没有默认值,所以参数不会保留在第二个(每周)选项中。只有每月(排名第一)停留。今天5点后,我将复制我的周报的所有33份报告。它们将只具有每周参数do。我可以默认该版本。我还应该说我有两份报告,每个代表报告一份用于每月,一份用于每周。我刚刚创建了另一组报告,我将像你所说的那样将它们设置为默认值。我有一个问题我感觉到了这一点。我设置了默认参数,但仍然失败了。但只针对每周。我检查了共享计划,针对每周。共享计划在“计划详细信息”部分下不断将其自身重置为“天”,而不是“周”。我只是将其保留为“天”,作为每日计划,它现在每“周一”运行一次早上7点。它没有重置自己。谢谢@H B。如果这是一个问题,报表会运行订阅吗?我的子运行一次,失去了对参数的关注…到目前为止只有每周一次。每周在第二位,每月在第一位,运行后不会空白。嗨,不,订阅根本不会运行。看到您的评论,您似乎遇到了与我描述的不同的问题。您使用的是常规订阅,而不是数据驱动订阅,对吗?如果您创建一个新的数据集,该数据集基于第三个参数(“上周”或“上月”)返回每周或每月日期,可能会出现这种情况,然后将开始日期和结束日期参数建立在该数据集上,你可以愚弄SSR,使其认为所有参数都已输入。如果你愿意,我可以在回答中对此进行详细说明。信不信由你,我认为在我设置整个过程时,我在这个或类似网站上看到了这一选项,但我感到困惑并放弃了。我最终[创建了每份报告的副本-一份为每周默认值,另一份为每月默认值。目前为止效果良好。