基于BIRT Web服务的DataSet:多级SOAP响应

时间:2014-05-28 09:30:21

标签: web-services birt

我不确定这个标题是否明确,所以我会尝试更好地解释它。

我正在使用BIRT创建报告,我将从Web服务获取数据。 为了实现这一点,我创建了我的数据源没有问题,但是,在尝试创建相应的数据集时,行/列映射屏幕中缺少字段:/

我使用了一个示例XML响应来向BIRT展示它将要使用的内容:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <soapenv:Body>
      <ns1:recupererDetailsContratsResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://webservices.main.gimaweb.itrec.com">
         <recupererDetailsContratsReturn href="#id0"/>
      </ns1:recupererDetailsContratsResponse>
      <multiRef id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns2:ResponseObject" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns2="urn:MyWS">
         <lieux soapenc:arrayType="ns2:myObject[1]" xsi:type="soapenc:Array">
            <lieux href="#id1"/>
         </lieux>
         <someField1 xsi:type="xsd:string">Data</someField1>
         <someField2 xsi:type="xsd:string">Date</someField2>
      </multiRef>
      <multiRef id="id1" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns3:myObject" xmlns:ns3="urn:MyWS" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
         <missingField1 xsi:type="xsd:string">Data</missingField1>
         <missingField2 xsi:type="xsd:string">Data</missingField2>
         <missingField3 xsi:type="xsd:string">Data</missingField3>
      </multiRef>
   </soapenv:Body>
</soapenv:Envelope>

然后,当我到达列映射屏幕时,那3个字段都没有...... 树只会转到le“lieux”对象,而不是missingFields

有人遇到过这种问题吗?如果事情不够清楚,请不要犹豫,要求提供更多信息。

1 个答案:

答案 0 :(得分:0)

嗯,对于接下来的人来说,这就是我所做的。

我在客户端创建了一个模块,用XML转换SOAP响应,然后在BIRT中使用XML数据源。不是我打算做的,但这是我找到的唯一方式。