Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server CRM自动预筛选未通过查询_Sql Server_Reporting Services_Dynamics Crm 2013 - Fatal编程技术网

Sql server CRM自动预筛选未通过查询

Sql server CRM自动预筛选未通过查询,sql-server,reporting-services,dynamics-crm-2013,Sql Server,Reporting Services,Dynamics Crm 2013,我使用Visual Studio 2012创建了一个简单的SSRS报告 我使用CRMAF_uuu前缀来使用CRM的自动筛选,并实现基于上下文的报告 我使用两个数据集来实现这一点;dsFiltered用于筛选数据,dsApprovalSummary用于我的报告 这是dsFiltered使用的查询: 这是dsApprovalSummary使用的查询: 参数包括: @CRM\u Filteredvrp\u investdocument-参数CRM应已填充查询,默认为空 @CRM_vrp_investd

我使用Visual Studio 2012创建了一个简单的SSRS报告

我使用CRMAF_uuu前缀来使用CRM的自动筛选,并实现基于上下文的报告

我使用两个数据集来实现这一点;dsFiltered用于筛选数据,dsApprovalSummary用于我的报告

这是dsFiltered使用的查询:

这是dsApprovalSummary使用的查询:

参数包括:

@CRM\u Filteredvrp\u investdocument-参数CRM应已填充查询,默认为空

@CRM_vrp_investdocumentId-来自DSM过滤的CRMAF_vrp_investdocument.vrp_investdocumentId;允许空值

该报表在开发服务器上运行良好。但是,当我将报表部署到生产服务器时,它不会要求我选择过滤器,或者没有默认过滤器;尝试直接运行,然后给出rsProcessingAborted。我检查了日志,看到上面说的语法错误在-

这来自报表服务器日志:

processing!ReportServer_0-20!13ec!11/11/2014-13:45:04:: w WARN: Data source 'srcApprovalSummary': Report processing has been aborted. 
processing!ReportServer_0-20!13ec!11/11/2014-13:45:04:: e ERROR: Throwing Microsoft.ReportingServices.ReportProcessing.ProcessingAbortedException: ,
 Microsoft.ReportingServices.ReportProcessing.ProcessingAbortedException: An error has occurred during report processing.
 ---> Microsoft.ReportingServices.ReportProcessing.ReportProcessingException: Query execution failed for dataset 'dsFiltered'.
 ---> System.Data.SqlClient.SqlException: Incorrect syntax near ')'
更新:在开发服务器上,我们在同一台机器上安装了所有东西;CRM前端、服务、SQL Server、报表服务器等。但在生产环境中,每台服务器都是不同的机器。这可能是错误的根源吗

更新2:运行探查器告诉我@CRM\u Filteredvrp\u investdocument为空。请参见以下来自探查器的查询:

exec sp_executesql N'declare @sql as nVarchar(max)

set @sql = ''SELECT vrp_investdocumentid

FROM ('' + @CRM_Filteredvrp_investdocument + '') as CRMAF_vrp_investdocument''

exec(@sql)',N'@CRM_Filteredvrp_investdocument nvarchar(4000)',@CRM_Filteredvrp_investdocument=NULL

这是一个排序问题,我一直在尝试使用带有此连接字符串的自定义数据源:

Data Source=myprodsqlserver; Initial Catalog=myorganization_MSCRM;
我将其改写为小写,并将数据源替换为localhost。问题神奇地消失了

data source=localhost; initial catalog=myorganization_MSCRM;

在报表编辑器中,尝试使用连接字符串生成器重新生成每个数据集使用的数据源。不要手动键入。构建它们,使它们指向您的Prod CRM数据库,然后在报表编辑器中完全测试报表。这将确定问题是否出在报表或CRM上。

此报表在开发服务器上按预期工作,该字段数据类型真的重要吗?抱歉,这只是列名更改,不是值检查,我的错误。您是否尝试运行SQL profiler以查看SQL server上实际执行的查询是什么?可能是参数由于任何原因未正确传递…为什么在dsFiltered查询中使用动态SQL?为什么不从Filteredvrp_investdocument中选择vrp_investdocumentid作为CRMAF_vrp_investdocument?我建议将数据源硬编码到与产品CRM数据库的连接。这将根据Prod数据运行报告。从这里,我们想看看报表编辑器预览是否为您提供了所需的行为。如果是的话,我们知道问题出在CRM上,如果不是的话,那么问题出在报告上。太棒了。很高兴你让它工作了。那么,最终的问题是dev和prod SQL安装有不同的排序规则吗?确切地说,prod数据库是turkish_ci_ai;作为大写字母和小写字母,没有圆点。我猜是因为大写字母i,它无法读取初始目录。很奇怪,不是吗?@JasonFaulkner,这笔赏金即将到期,如果你愿意,你可以发布一个答案,我可以投票接受你的答案,这样你就可以得到赏金,作为对您帮助的感谢礼物感谢您的提议-我将发布我的最后一条评论,即导致找到解决方案的那条评论作为答案。
Data Source=myprodsqlserver; Initial Catalog=myorganization_MSCRM;
data source=localhost; initial catalog=myorganization_MSCRM;