使用参数在SSRS中使用web api

我试图在ssrs中使用webapi(XML源代码)。

如果将在url中使用参数(用于测试目的)那么它的工作非常好,例如http://some_xyz_url.com/Api/Report/GetReport?id=7 。 所以我可以在SSRS中使用web api

真正的问题 – 我不知道如何从SSRS将参数传递给webapi。 我努力但没有运气。 我也搜索了stackoverflow,毫无疑问接近我的要求。

我使用VS2012,(。net framework 4.0),SQL server 2008(使用Microsoft SQL Server报告生成器)

任何帮助真的很感激。

当我尝试将参数从SSRS传递给webapi时,我上传了错误消息。

在此处输入图像描述

更新

我试图传递参数但由于某种原因,参数的值始终为null,即使在设置了默认值之后。 (见下面附带的jpg)

在此处输入图像描述

这是我传递参数的方式

在此处输入图像描述

但仍然得到404(但我将使用硬编码的Id,它在浏览器中工作正常)

请指教。

连接字符串可以是表达式。 因此,您可以创建一个参数并将数据源连接字符串设置为:

="http://some_xyz_url.com/Api/Report/GetReport?id=" & Parameters!ReportParameter1.Value 

对于’数据源’的XML源我已经使用WCF完成了它,我假设它与您所描述的类似,如果您想要为您获得的数据使用Web服务而您只想传入参数进入您正在制作的方法调用的签名。

使用SSRS使用Web服务时有四件事:

  1. 您需要将数据源设置为使用XML(看起来您已经获得了该部分)。
  2. 您的Web服务必须使用基本HTTP作为绑定类型。
  3. 如果您正在使用服务,则“连接字符串”需要是服务地址。 对于本地托管服务的EG将是:

     http: //localhost/Reporting/ReportService.svc 

    对于部署在我的默认目录下的服务,名为“Reporting”的项目和具有ReportService接口的服务。 我还测试你可以通过尝试寻找它并确保它正常工作来获得Visual Studio中的这项服务。 或者,如果它是可发现的,请使用浏览器找到它。

  4. 有了这个,我需要创建一个’DataSet’正确查询这个服务。 MS有一个“查询”xml blob来执行此操作。 如果您有服务将采用的参数,则在“参数”节点中列出它们非常重要。

            http://tempuri.org/IReportingService/GetStateLike   

大多数问题是消费的微妙程度。 我得到了它的工作,但认为它是如此脆弱,我不想最终用于我的问题。 此处还有更多内容: 如何使用SSRS 2008 R2使用WCF服务

经过长时间的尝试,我无法解决这个问题,这是我最后遵循的,它的工作原理我不能改变web api,所以我在解决方案中添加了一个wcf服务,它正在消耗webapi(只是一个包装器)。 我知道wcf包装器不明智,但它解决了将参数传递给webapi的目的。

然后我在我的SSRS应用程序中使用wcf服务。