【问题标题】:help convert this SOAP request to Report Builder 2.0 query for XML data source帮助将此 SOAP 请求转换为 XML 数据源的 Report Builder 2.0 查询
【发布时间】:2023-03-22 00:55:01
【问题描述】:

我的 .NET Web 服务中有一个 Web 方法的复杂参数,我想使用 Report Builder 2.0 using SOAP 查询该 Web 方法。使用soapUI,我收到了针对该 Web 方法的以下 SOAP 请求:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:qcr="MyNamespace">
   <soapenv:Header/>
   <soapenv:Body>
      <qcr:MyWebMethod>
         <qcr:MyComplexParameter><!--Represents a serializable class-->
            <qcr:Action>?</qcr:Action><!--string-->
            <qcr:ActionSortAscending>?</qcr:ActionSortAscending><!--Boolean-->
            <qcr:ActionSortOrder>?</qcr:ActionSortOrder><!--int-->
         </qcr:MyComplexParameter>
      </qcr:MyWebMethod>
   </soapenv:Body>
</soapenv:Envelope>

我之前使用过的唯一一种 Report Builder 2 查询是用于将字符串、整数或其他简单类型作为参数的 Web 方法。我将如何为此 SOAP 请求编写 Report Builder 2 query

使用简单参数的 Web 方法的示例 Report Builder 2 查询:

<Query>
   <Method Name="MyWebMethod" Namespace="MyNamespace">
   <Parameters>
       <Parameter Name="MyStringParameter"><DefaultValue>foo</DefaultValue></Parameter>
       <Parameter Name="MyNumericParameter"><DefaultValue>3</DefaultValue></Parameter>
   </Parameters>
   </Method>
   <ElementPath IgnoreNamespaces="true">MyWebMethodResponse {}/MyWebMethodResult {}/Result</ElementPath>
</Query>

【问题讨论】:

    标签: xml soap reporting-services ssrs-2008 reportbuilder


    【解决方案1】:

    我想出的最好办法是更改 Web 服务的 Web 方法,使其只接受简单的参数,然后找到某种方法在字符串中表示复杂对象并在 Web 方法中解析它。键值对和正则表达式、JSON 字符串等。如果我无法控制 Web 服务的代码,这将不起作用,而且看起来应该有一种方法可以从 Report 传递任何类型的可序列化参数生成器到 XML Web 服务。如果我可以在普通的 SOAP 请求中传递参数,我应该能够通过 Report Builder 愚蠢的Query 语法传递参数。

    如果它对其他人有帮助,为了解析 key1=value1,key2=value2 格式的逗号分隔键值对,我使用 new Regex(@"([^=,]*)=(""[^""]*""|[^,""]*)")paramStr.Split(',').Select(pair =&gt; pair.Split('=')).ToDictionary(pair =&gt; pair[0], pair =&gt; pair[1]) 在我的 C# Web 服务中获取 IDictionary&lt;string, string&gt; 参数。

    【讨论】:

    • 您找到更好的解决方案了吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-30
    • 1970-01-01
    • 2018-08-09
    • 2014-04-13
    • 2021-10-06
    • 2021-08-01
    相关资源
    最近更新 更多