on 01-15-2016 11:53 AM
Hi,
I'm trying to load a WSDL provided by another system. If I load the WSDL as an external definition in the services builder, I get no errors, but one message is missing the correct structure:
Anyone know how to do this, or is this a limitation of SAP PI?
Also, the message contains a soap:body and soap:header. Once WSDL import works, how can I fill the header?
<wsdl:input>
<soap:header message="tns:MeldToetsverslagRequest" part="request_header" use="literal"/>
<soap:body parts="parameters" use="literal"/>
</wsdl:input>
Thanks for your help!
Kind regards,
Walter.
WSDL:
<?xml version="1.0" encoding="utf-8"?>
<wsdl:definitions name="Toetsverslag_v1_0" targetNamespace="http://www.prorail.nl/rrcb"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:tns="http://www.prorail.nl/rrcb">
<wsdl:types>
<xsd:schema targetNamespace="http://www.prorail.nl/rrcb">
<xsd:element name="MeldToetsverslag">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ToetsVerslag">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ToetsID" type="xsd:long" minOccurs="0"/>
<xsd:element name="OntvangenToetsverslag_Toetsbijlage" minOccurs="0" maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Toetsbijlage" minOccurs="0" maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Name" type="xsd:string" minOccurs="1"/>
<xsd:element name="Contents" type="xsd:base64Binary" minOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="OntvangenToetsverslag_OntvangenContractgebied" minOccurs="0" maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="OntvangenContractgebied" minOccurs="0" maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Naam" type="xsd:string" minOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="MeldToetsverslagResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="WebserviceResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="VerwerktOK" type="xsd:boolean" minOccurs="1"/>
<xsd:element name="Foutmelding" type="xsd:string" minOccurs="1"/>
<xsd:element name="ToetsId" type="xsd:long" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="authentication">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="username" type="xsd:string"/>
<xsd:element name="password" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</wsdl:types>
<wsdl:message name="MeldToetsverslagRequest">
<wsdl:part name="request_header" element="tns:authentication"/>
<wsdl:part name="parameters" element="tns:MeldToetsverslag"/>
</wsdl:message>
<wsdl:message name="MeldToetsverslagResponse">
<wsdl:part name="result" element="tns:MeldToetsverslagResponse"/>
</wsdl:message>
<wsdl:portType name="Toetsverslag_v1_0PortType">
<wsdl:operation name="MeldToetsverslag">
<wsdl:documentation>
</wsdl:documentation>
<wsdl:input message="tns:MeldToetsverslagRequest"/>
<wsdl:output message="tns:MeldToetsverslagResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="Toetsverslag_v1_0Soap" type="tns:Toetsverslag_v1_0PortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="MeldToetsverslag">
<soap:operation soapAction="http://www.prorail.nl/rrcbMeldToetsverslag"/>
<wsdl:input>
<soap:header message="tns:MeldToetsverslagRequest" part="request_header" use="literal"/>
<soap:body parts="parameters" use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="Toetsverslag_v1_0">
<wsdl:port name="Toetsverslag_v1_0Port" binding="tns:Toetsverslag_v1_0Soap">
<soap:address location="http://rrcb-a.prorail.nl/ws/Toetsverslag_v1_0/"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hello Walter,
Adding to Navins point,Check the WSDL in notepad++,Might be some field or type definition is wrong.
And for adding soap header you can refer the below discussion
THanks for your help guys. I was able to solve it by disabling envelope and header handling in the adapter and adding an xslt in the mapping (to manually add envelope with headers). I had to change the WSDL to only have one message part (body).
interface works now.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
90 | |
10 | |
10 | |
10 | |
7 | |
7 | |
6 | |
5 | |
4 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.