Question

I'm having trouble doing XQuery mapping. The error reads as follows:

Error at analyzing XML: {err}FORG0005: expected exactly one item, got 0 items.

This is the response document I recieve:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
  <soapenv:Header xmlns:cgi="http://tempuri.org/Servicios/CGI"/>
  <soap:Body xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <GetConsumosResponse xmlns="http://tempuri.org/Servicios/CGI">
      <GetConsumosResult>
        <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
          <NewDataSet xmlns="">
            <Consumos diffgr:id="Consumos1" msdata:rowOrder="0">
              ...
            </Consumos>
          ...
          </NewDataSet>
        </diffgr:diffgram>
      </GetConsumosResult>
    </GetConsumosResponse>
  </soap:Body>
</soapenv:Envelope>

In my OSB console I have the following binding...

Replace [ entire node ] of [ . ] 
in [ getConsumosResponse ] with [ XQuery Resource... ]

XQuery resource: OSBSettlementProxy/XQuery/NGCombustibleXQResponse

Variable names and bindings:

newDataSet1: $getConsumosResponse/GetConsumosResponse/GetConsumosResult/diffgr:diffgram/NewDataSet

I already defined the diffgr in my namespaces, so I know that is not the problem...

Was it helpful?

Solution

It looks like GetConsumosResponse and GetConsumosResult are in the default namespace http://tempuri.org/Servicios/CGI. However, it looks like your path expression doesn't use this namespace. You might try adding a new namespace definition "cgi"="http://tempuri.org/Servicios/CGI" and then change your path to this:

$getConsumosResponse/cgi:GetConsumosResponse/cgi:GetConsumosResult/diffgr:diffgram/NewDataSet
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top