cancel
Showing results for 
Search instead for 
Did you mean: 

Presence of multiref tag in soap response message

ren_chan-mane
Discoverer
0 Kudos

We are having a problem when we try to call a web service in PI. The web services called is provided by an Axis server.

We tried to use the plain HTTP protocol in the definition of the communication channel as shown here:

Adapter type: SOAP

Transport protocol: HTTP

Message protocol: SOAP 1.1

Adapter engine: Central Adapter Engine

We got the followong error response in SXMB_MONI:

The payload shown in SXNB_MONI is:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>

<!-- XML Validation Inbound Channel Response -->

<ns1:cedstr_obt_cle_elem_v2_Response xmlns:ns1='urn:CEDSTR' soapenv:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' 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'>

<tab_cle soapenc:arrayType='ns1:cedstr_cle_elem_v1[3]' xmlns:soapenc='http://schemas.xmlsoap.org/soap/encoding/' xsi:type='soapenc:Array'>

<item href='#id0'/>

<item href='#id1'/>

<item href='#id2'/>

</tab_cle><nb_cle xsi:type='xsd:int'>3</nb_cle><stat_elem href='#id3'/>

<cdr href='#id4'/>

</ns1:cedstr_obt_cle_elem_v2_Response>

The expected payload is:

<?xml version="1.0" encoding="UTF-8" ?>

- <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:cedstr_obt_cle_elem_v2_Response soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:CEDSTR">

- <tab_cle xsi:type="soapenc:Array" soapenc:arrayType="ns1:cedstr_cle_elem_v1[3]" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">

<item href="#id0" />

<item href="#id1" />

<item href="#id2" />

</tab_cle>

<nb_cle xsi:type="xsd:int">3</nb_cle>

<stat_elem href="#id3" />

<cdr href="#id4" />

</ns1:cedstr_obt_cle_elem_v2_Response>

- <multiRef id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns2:cedstr_cle_elem_v1" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns2="urn:CEDSTR">

<id_structure_det xsi:type="xsd:int">118406</id_structure_det>

<ordinal xsi:type="xsd:int">2648545</ordinal>

<appareil xsi:type="xsd:string">C3D1E</appareil>

<type_cable xsi:type="xsd:string">H</type_cable>

</multiRef>

- <multiRef id="id1" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns3:cedstr_cle_elem_v1" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns3="urn:CEDSTR">

<id_structure_det xsi:type="xsd:int">984806</id_structure_det>

<ordinal xsi:type="xsd:int">2723425</ordinal>

<appareil xsi:type="xsd:string">O5C3X</appareil>

<type_cable xsi:type="xsd:string">H</type_cable>

</multiRef>

- <multiRef id="id2" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns4:cedstr_cle_elem_v1" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns4="urn:CEDSTR">

<id_structure_det xsi:type="xsd:int">1163686</id_structure_det>

<ordinal xsi:type="xsd:int">3144641</ordinal>

<appareil xsi:type="xsd:string">Y0A6B</appareil>

<type_cable xsi:type="xsd:string">H</type_cable>

</multiRef>

- <multiRef id="id3" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns5:cedstr_stat_elem_v1" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns5="urn:CEDSTR">

<tension xsi:type="xsd:string">MT</tension>

<nb_concess xsi:type="xsd:int">0</nb_concess>

<nb_restr xsi:type="xsd:int">0</nb_restr>

<localisation xsi:type="xsd:string">DEVILLERS EST DE BEAUREGARD</localisation>

<remarque xsi:type="xsd:string" />

</multiRef>

- <multiRef id="id4" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns6:utlgen_cdr" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns6="urn:CEDSTR">

<succes xsi:type="xsd:int">1</succes>

<code xsi:type="xsd:int">0</code>

<message xsi:type="xsd:string" />

</multiRef>

</soapenv:Body>

</soapenv:Envelope>

</ns1:cedptr_obt_cle_di_v1_HResponse>

What I can see is that PI seems to ignore the multiref tag in the SOAP response message. Does anybody knows if there is an issue with the mutiref tag in PI ?

Thanks for your help.

Accepted Solutions (0)

Answers (1)

Answers (1)

stefan_grube
Active Contributor
0 Kudos

The SOAP adapter does not support more than one body child.

If a SOAP message with several body childs arrive, then only the first body child is considered, all other body childs are ignored.

Regards

Stefan

ren_chan-mane
Discoverer
0 Kudos

Thank you Stefan for your reply. Does that mean that there is nothing we can do in PI to consume these web services ?

Regards.

stefan_grube
Active Contributor
0 Kudos

You can set the parameter 'dono use SOAP envelope' in SOAP adapter channl.

Then you have to work with the whole message, including the SOAP envelope.

Edited by: Stefan Grube on Feb 9, 2009 12:58 AM