【发布时间】:2019-05-09 09:25:57
【问题描述】:
我正在使用 Concurs IBM Cognos 集成解决方案。我正在使用的数据是差旅费用报告数据。我对这个报告的目标是有一个提示页面,允许用户选择报告应该从中提取数据的时间范围。 由于此报告也可能计划定期运行,因此它不仅应包括日期范围提示(或在本例中为两个日期提示),还应包括相对时间范围的选项,如“去年”、“过去 6 个月”和“年初至今”。
到目前为止,我已经使用两个日期提示(“TravelDateIntervallStart”和“TravelDateIntervallEnd”)和两个值提示设置了一个提示页面。但是,这些值提示中只有一个与时间范围选项相关。 这个想法是为用户提供日期提示,以便在特定时间范围内运行临时报告。 除了使用日期提示的“SelectTimeFrame”选项之外,值提示(“RelativeTimePrompt”)应提供使用相对时间范围的选项,具体取决于报告计划运行的时间。我已经在值提示中相应地设置了选项并构建了一个过滤器,如下所示:
CASE ?RelativeTimePrompt?
WHEN 'SelectTimeframe' THEN
([Arrival Date/Time] between ?TravelDateIntervallStart? and ?TravelDateIntervallEnd?
AND
[Departure Date/Time] between ?TravelDateIntervallStart? and ?TravelDateIntervallEnd?)
WHEN 'Last12m' THEN ([Arrival Date/Time] >= _add_years (current_date, -1) AND [Departure Date/Time] >= _add_years (current_date, -1))
WHEN 'Last6m' THEN ([Arrival Date/Time] >= _add_months (current_date, -6) AND [Departure Date/Time] >= _add_months (current_date, -6))
WHEN 'Year2Date' THEN (_year([Arrival Date/Time]) = _year (current_date) AND _year([Departure Date/Time]) = _year (current_date))
END
当在值提示中选择“Year to date”(“Year2Date”)时,会抛出错误:
“RQP-DEF-0177 执行操作“sqlPrepareWithOptions”状态=“-126”时出错。 CAF-WRN-2082 发生错误。请联系您的管理员。 CAF 已使用 SecureErrorID 记录了完整的错误:“[某些日期和数字]
我用谷歌搜索了错误,但找不到任何适用于我的情况。是否有任何明显的东西可能导致“年初至今”过滤器出错?
【问题讨论】:
-
该错误基本上意味着您需要查看后端日志才能找到真正的错误。我猜您无权访问后端日志。你需要做的只是一点一点地建立这个表达式来解决这个问题。不要对整个事情进行编码并期望它能够工作。最后你可能需要使用令牌提示来生成你需要的过滤器
-
你说得对,我无权访问后端日志。感谢您一点一点地构建表达式的提示 - 年初至今的部分确实是罪魁祸首,更具体地说,是从到达或离开日期/时间字段中获取年份的函数。 "_year([Arrival Date/Time])" 或 "year([Arrival Date/Time])" 和 "extract(year, [Arrival Date/Time])" 一旦使用就会出错在过滤器中。我不知道为什么。
-
我认为'year'函数不像其他一些函数那样以下划线开头。尝试删除下划线。
-
是的 - 您再次需要进一步分解它,通过尝试将表达式作为列并查看它们返回的内容来学习正确的语法。
标签: cognos cognos-10 cognos-bi