MSCRM 3.0 Reporting Services 错误 处理报表时出错 操作已被用户取消
Posted on 2009-10-29 16:52 Amos Chen-莫斯 阅读(1028) 评论(3) 收藏 举报今天笔者在MSCRM 3.0平台给客户开发一个基于SQL Server Reporing Services 2000报表时遇到了困难,经过多方排除瓦解,最后还是搞定了。
情况是这样的,首先报表代码很长,涉及到业务逻辑相对复杂。故运行时间也相对较长。但报表运行结果老提示:
Reporting Services 错误
- 处理报表时出错。 (rsProcessingAborted) 获取联机帮助
- 对数据集“V_Sale”执行查询失败。 (rsErrorExecutingCommand) 获取联机帮助
- 操作已被用户取消。
- 对数据集“V_Sale”执行查询失败。 (rsErrorExecutingCommand) 获取联机帮助
Microsoft Reporting Services
笔者通过windows 事件查看器也没发现什么蛛丝马迹。为了排除问题的所在。故笔者做了如下操作:
首先:笔者把报表涉及的SQL代码在SQL 查询分析器运行,大概30分钟到40分钟左右能正常地把记录集运行出来,故排除是SQL代码的问题。
其次:笔者就怀疑,为什么在SQL查询分析器可以正常执行,在MSCRM 3.0里面运行就老报错呢。后来突然一晃,MSCRM 3.0是通过Reporting Services 服务组件来运行报表的,而且我的报表运行的时间又比较长,会不会是Reporting Services 服务超时了呢。故笔者去网上查阅相关这方面的资料:
在报表服务器命名空间中托管的所有报表的默认报表处理超时值(以秒为单位)。可在报表级别覆盖该值。如果设置了此属性,则超过指定时间后报表服务器会尝试停止处理报表。有效值为 -1 到 2、147、483、647。如果值为 -1,则处理期间命名空间中的报表不会超时。默认值为 1800。
最后,笔者为了检验问题所在,马上打开SQL Server 企业管理器,展开ReportServer数据库,打开ConfigurationInfo表,发现 SystemReportTimeout 列值为1800。1800就是30分钟,而笔者在SQL 查询分析器运行都至少需要30分钟,怀疑这里的问题导致的。接着笔者立刻把值修改为-1。保存并关闭该表。重启服务器后再次运行该报表,最终报表如愿以偿的出现了。
^_^
浙公网安备 33010602011771号