无法识别的SSRS参数

时间:2014-08-18 20:09:23

标签: soap reporting-services parameters

我正在开发一个SSIS 2012软件包,该软件包使用脚本任务通过使用SOAP的Web服务从SSRS服务器加载和呈现SSRS 2012报告。我的问题在于设置参数值的代码。当下面的代码运行时,我在尝试执行 rs.SetExecutionParameters 方法时收到以下SOAP错误消息:

Microsoft.ReportingServices.Diagnostics.Utilities.UnknownReportParameterException:尝试设置报告参数' prmDomainID'未在此报告中定义。

然而,如果我在设计模式下打开报告,那么参数显然就在那里。并在运行时检查execInfo变量,也显示参数在那里。我尝试删除服务器上的报告并重新部署它,但这不起作用。我尝试更改参数名称以包含前导" @"符号,但也没有工作。我已经确定参数数据类型(整数)与我传入的值的类型相匹配。我已经谷歌搜索了几个小时,似乎没有任何东西让它识别参数I' m传入。(注意prmDomainID参数设置为Visible。不确定是否重要。)

我在这里缺少什么?

Dim rs As New ReportExecutionService
Dim format As String = "HTML4.0"
Dim mimeType As String = Nothing
Dim historyID As String = Nothing
Dim deviceInfo As String = Nothing
Dim extension As String = Nothing
Dim encoding As String = Nothing
Dim warnings() As Warning = Nothing
Dim streamIDs() As String = Nothing
Dim results() As Byte
Dim execInfo As New ExecutionInfo
Dim parameters(1) As ParameterValue

parameters(0) = New ParameterValue()
parameters(0).Name = "prmDomainID"
parameters(0).Value = "15"

With rs
    .Credentials = System.Net.CredentialCache.DefaultCredentials
    execInfo = .LoadReport(ReportPath, historyID)
    .SetExecutionParameters(parameters, "en-us")

    results = .Render(format, deviceInfo, extension, mimeType, encoding, warnings, streamIDs)
End With

Return System.Text.Encoding.Default.GetString(results)

1 个答案:

答案 0 :(得分:0)

你有这个工作吗?我看了看这个 - 我看到的唯一的事情是我不知道你的ReportPath设置在哪里 - 但我认为这是因为你在execInfo中得到了数据......所以我看到的唯一的其他东西是你没有设置ExecutionHeaderValue ......

所以添加此代码并尝试一下......

Dim execHeader as New ExecutionHeader()
rs.ExecutionHeaderValue = execHeader

确保将其放在execInfo = .LoadReport(ReportPath, historyID)

之前

我尝试将我的c#代码转换为VB - 因此您可能需要验证语法!