2010-07-23 1 views
1

.NET 웹 서비스에서 웹 메서드에 복잡한 매개 변수가 있는데이 웹 메서드를 Report Builder 2.0 using SOAP으로 쿼리하려고합니다. soapUI으로, 그 웹 방법에 대해 다음 SOAP 요청을 얻을 :XML 데이터 소스에 대한이 SOAP 요청을 보고서 작성기 2.0 쿼리로 변환하는 데 도움이됩니다.

내가 전에 함께 작업 한 보고서 작성기 두 쿼리의 유일한 종류로 문자열, 정수, 또는 기타 단순 유형을했다 웹 메소드했다
<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> 

매개 변수. 이 SOAP 요청에 대해 Report Builder 2 query을 작성하려면 어떻게해야합니까? 간단한 매개 변수를 사용하여 웹 메소드에 대한

샘플 보고서 작성기 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> 

답변

0

나는 그것이 단순한 매개 변수를 사용하도록 웹 서비스의 웹 방법을 변경했다 해낸 최선은 다음 대표의 몇 가지 방법을 찾아 문자열에있는 복잡한 객체와 웹 메소드에서 파싱합니다. 키 - 값 쌍과 정규식, JSON 문자열 등. 웹 서비스의 코드를 제어 할 수 없다면 작동하지 않을 것입니다. 실제로 보고서의 직렬화 가능 매개 변수를 전달하는 방법이 있어야합니다. XML 웹 서비스에 대한 빌더. 일반적인 SOAP 요청에서 매개 변수를 전달할 수 있다면 보고서 작성기의 어리 석음 인 Query 구문을 통해 매개 변수를 전달할 수 있어야합니다. 이 형식 key1=value1,key2=value2의 쉼표로 구분 된 키 - 값 쌍을 구문 분석에 대한 다른 사람이 도움이된다면

, 내 C# 웹 서비스에 매개 변수의 IDictionary<string, string>를 얻을 수 new Regex(@"([^=,]*)=(""[^""]*""|[^,""]*)")paramStr.Split(',').Select(pair => pair.Split('=')).ToDictionary(pair => pair[0], pair => pair[1])을 사용했다.

관련 문제