【问题标题】:ssrs subscription runs only once and then errorsssrs 订阅只运行一次然后出错
【发布时间】:2014-02-11 12:46:56
【问题描述】:

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

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

我尝试了常规订阅计划和共享订阅计划。同样的事情发生了,每周运行一次,再也不会。 我的时间表设置为每周一的早上 7:30 运行。 共享的每月计划是每月 1 日一次。 在报告参数值下,我看到两个下拉菜单“开始日期”和“结束日期”,我的报告参数“月开始”和“周开始”以及“月末”和“周末”都在那里 - 按此顺序.

我没有设置“默认”参数。检查的参数说提示用户。 处理表示使用最新数据运行并且不缓存此报告的临时副本。也没有快照设置。 当我确实有“允许手动创建报告历史记录”时,它也给出了错误。所以我取消选中它。 我正在拼命寻找订阅失败的原因。我相信这可能是我从报告参数计算的日期公式......我只是不知道。我在枪下。我很感激能得到任何帮助。

【问题讨论】:

    标签: reporting-services parameters shared schedule subscriptions


    【解决方案1】:

    我没有设置“默认”参数

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

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

    【讨论】:

    • 我认为这可能是一个问题 - 我不确定如何从一份报告中获得每月或每周的选项。我将为每周和每月制作一份报告,以便能够使用默认值。我今天要试试这个。
    • 如果报表本身在手动运行时适用于每周和每月参数,那么您可以简单地创建两个订阅 - 一个配置了周运行参数,一个配置了月运行参数参数。
    • 它确实每周和每月手动运行。此外,我为每月和每周设置的订阅实际上只成功运行一次。就像您之前所说的那样,由于没有默认值,因此参数不会保留在第二个(每周)选择中。仅每月(列表中的第一个)停留。今天 5 点之后,我将为我的每周分会复制所有 33 份报告。他们只有每周参数,我可以默认那个版本。
    • 我也应该说我有两个潜艇,每个代表报告一个是每月的,一个是每周的。我刚刚创建了另一组报告,我将按照您所说的将它们设置为默认值。我对此感觉很好。
    • 我设置了默认参数,它仍然被炸毁。但仅限于每周。我检查了每周的共享时间表。共享时间表在“时间表详细信息”部分下不断将自身重置为“天”而不是“周”。我只是将其保留为“日”,并且作为每日计划,现在每个“星期一”早上 7 点运行它。它没有自行重置。
    【解决方案2】:

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

    因此,我返回的不是带有日期时间列的查询,而是这样的 varchar:

    select convert(varchar(50), getdate(), 120) MyDateParam
    

    这将为您提供“通用”yyyy-mm-dd hh:mi:ss 格式。 (如果您需要,请在此处提供更多格式。选择 yyyy-mm-dd http://msdn.microsoft.com/en-us/library/ms187928.aspx 之一)

    通过这种方式,您可以控制文本的转换,并确保 SSRS 在将其转换回日期时间时能够理解。顺便说一句,这是在 SSRS 2005 中。我认为您不需要将报告参数更改为文本,但如果 SSRS 抱怨,您可能需要这样做。

    【讨论】:

    • 谢谢@HB。如果这是一个问题,报告会运行订阅吗?我的 sub 运行一次并且失去了对参数的关注......到目前为止只有每周一次。每周在第二位,每月在第一位,运行后不会空白。
    • 嗨,不,订阅根本不会运行。看到您的 cmets,您的问题似乎与我描述的不同。您使用的是常规订阅,而不是数据驱动订阅,对吗?也许如果您创建一个基于第三个参数(“上周”或“上个月”)返回每周或每月日期的新数据集,然后将您的开始和结束日期参数基于该数据集,您可以欺骗 SSRS 认为所有参数都已输入. 如果您愿意,我可以在答案中详细说明。
    • 信不信由你,我认为当我设置这一切时,我认为这是在这个或类似网站上的一个选项,但我感到困惑并放弃了。我最终[为每份报告创建了副本——一份每周默认,另一份每月默认。到目前为止一切顺利。
    猜你喜欢
    • 2018-05-22
    • 1970-01-01
    • 2020-08-16
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 2021-04-11
    • 1970-01-01
    • 2019-09-22
    相关资源
    最近更新 更多