0

У меня есть веб-служба, которая возвращает данные, но я не могу найти способ выбора полей, возвращающихся из веб-службы. У меня есть параметр, который я отправляю на веб-службу, и я получаю параметры полей как параметры. это, как я разборе его:настроить поля, возвращаемые из веб-службы, используя конструктор запросов ssrs xml

<Query> 
<Method Name="methodname" Namespace="namespacename"> 
<Paramenters> 
<Parameter Name="param-in-name-1"> 
<DefaultValue>0</DefaultValue> 
</Parameter> 
<Parameter Name="param-in-name-2"> 
<DefaultValue>0</DefaultValue> 
</Parameter> 
</Parameters> 
</Method> 
<ElementPath IgnoreNamespace="true"> 
* 
</ElementPath> 
</Query> 

это синтаксический выше приносит все поля, но мне нужно, чтобы принять конкретные поля. я пытался добавить это ниже к ElementPath но не работал: /elementname1 {}/elementname2 {}/FIELDNAME1

+0

Почему бы не вернуть все поля и использовать только те, которые вам нужны в отчетах? – Jonnus

+0

Привет, проблема в том, что параметры из некоторых находятся на первом уровне, а некоторые находятся на втором уровне (массив параметров), и я думаю, что именно поэтому не все данные извлекаются по умолчанию (*), некоторые параметры, которые находятся на первый уровень, то, если есть параметр, который имеет 2 уровня, я получу его, а затем остальные параметры на уровне 1 не достигают –

ответ

0

я понял, что его действительно зависит от схемы веб-службы, например, эту схему, я сделал более сложным путем добавления вложенных параметров:

<wsdl:types> 
<s:schema targetNamespace="VS13" elementFormDefault="qualified"> 
<s:element name="datatable"> 
<s:complexType> 
<s:sequence> 
<s:element name="prmin" type="tns:paramin" maxOccurs="1" minOccurs="0"/> 
</s:sequence> 
</s:complexType> 
</s:element> 
<s:complexType name="paramin"> 
<s:sequence> 
<s:element name="name" type="s:string" maxOccurs="1" minOccurs="0"/> 
<s:element name="age" type="s:int" maxOccurs="1" minOccurs="1"/> 
<s:element name="height" type="s:int" maxOccurs="1" minOccurs="1"/> 
</s:sequence> 
</s:complexType> 
<s:element name="datatableResponse"> 
<s:complexType> 
<s:sequence> 
<s:element name="datatableResult" type="tns:data" maxOccurs="1" minOccurs="0"/> 
</s:sequence> 
</s:complexType> 
</s:element> 
<s:complexType name="data"> 
<s:sequence> 
<s:element name="name" type="s:string" maxOccurs="1" minOccurs="0"/> 
<s:element name="age" type="s:int" maxOccurs="1" minOccurs="1"/> 
<s:element name="ltr" type="tns:ArrayOfLetters" maxOccurs="1" minOccurs="0"/> 
<s:element name="height" type="s:int" maxOccurs="1" minOccurs="1"/> 
</s:sequence> 
</s:complexType> 
<s:complexType name="ArrayOfLetters"> 
<s:sequence> 
<s:element name="letters" type="tns:letters" maxOccurs="unbounded" minOccurs="0"/> 
</s:sequence> 
</s:complexType> 
<s:complexType name="letters"> 
<s:sequence> 
<s:element name="letter" type="s:string" maxOccurs="1" minOccurs="0"/> 
<s:element name="count" type="s:int" maxOccurs="1" minOccurs="1"/> 
</s:sequence> 
</s:complexType> 
</s:schema> 
</wsdl:types> 

я сделал его более сложным путем отправки параметров из второго слоя (параметры внутри элемента/класс):

<Query> 
<Method Name="datatable" Namespace="VS13" > 
<Parameters> 
<Parameter Name="prmin" Type="xml"> 
<DefaultValue> 
<name>stiv</name> 
<age>30</age> 
<height>180</height> 
</DefaultValue> 
</Parameter> 
</Parameters> 
</Method> 

есть 2 способа для меня, чтобы реализовать данные, извлеченные из запроса xmldp

1.second слой без поля данных массива:

<ElementPath IgnoreNamespaces="True"> 
datatableResponse/datatableResult 
</ElementPath> 

слой только 2. Во-вторых поле данных массива:

<ElementPath IgnoreNamespaces="True"> 
datatableResponse/datatableResult{}/ltr/letters{letter,count} 
</ElementPath> 

 Смежные вопросы

  • Нет связанных вопросов^_^