How to define Siebel CRM specific service fields (Fault, Header) in .WSDL, generated for a Siebel Inbound Web Service?
An external application, that consumes WSDL file, generated by Siebel CRM for an Inbound Web Service, may need to know details (schema) about Siebel CRM standard fields, appearing in SOAP message (request or response).
References:
Solution
SOAP Fault: Siebel Details part
<?xml version="1.0" encoding="UTF-8"?><xsd:schema elementFormDefault="qualified"
attributeFormDefaul="unqualified"xmlns:xsd ="http://www.w3.org/2001/XMLSchema"
xmlns:siebelfault="http://www.siebel.com/ws/fault"
targetNamespace ="http://www.siebel.com/ws/fault">
<xsd:element name="siebdetail" type="siebelfault:siebdetail"/>
<xsd:complexType name="siebdetail">
<xsd:sequence>
<xsd:element name="logfilename" maxOccurs="1" minOccurs="0" type="xsd:string"/>
<xsd:element name="errorstack" maxOccurs="1" minOccurs="0" type="siebelfault:errorstack"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="errorstack">
<xsd:sequence>
<xsd:element name="error" maxOccurs="unbounded" minOccurs="0" type="siebelfault:error"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="error">
<xsd:sequence>
<xsd:element name="errorcode" maxOccurs="1" minOccurs="0" type="xsd:string"/>
<xsd:element name="errorsymbol" maxOccurs="1" minOccurs="0" type="xsd:string"/>
<xsd:element name="errormsg" maxOccurs="1" minOccurs="0" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
SOAP Header: Siebel WS-Security part (Siebel 7.7 onwards)
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema elementFormDefault="qualified" attributeFormDefault="unqualified"
xmlns:xsd ="http://www.w3.org/2001/XMLSchema"
xmlns:siebelwsse="http://schemas.xmlsoap.org/ws/2002/07/secext"
targetNamespace ="http://schemas.xmlsoap.org/ws/2002/07/secext">
<xsd:element name="Security" type="siebelwsse:Security"/>
<xsd:complexType name="Security">
<xsd:sequence>
<xsd:element name="UsernameToken" maxOccurs="1" minOccurs="0" type="siebelwsse:UsernameToken"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="UsernameToken">
<xsd:sequence>
<xsd:element name="Username" maxOccurs="1" minOccurs="0" type="xsd:string"/>
<xsd:element name="Password" maxOccurs="1" minOccurs="0" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
SOAP Header: Siebel Web Service Session Management part (Siebel 7.8 onwards)
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema elementFormDefault="qualified" attributeFormDefault="unqualified"
xmlns:xsd ="http://www.w3.org/2001/XMLSchema"
xmlns:siebelwsh="http://siebel.com/webservices"
targetNamespace="http://siebel.com/webservices">
<xsd:element name = "SessionToken" type="xsd:string" />
<xsd:element name = "UsernameToken" type="siebelwsh:SiebelUsernameToken" />
<xsd:simpleType name = "SiebelUsernameToken">
<xsd:restriction base="xsd:string"/>
</xsd:simpleType>
<xsd:element name = "PasswordText" type="siebelwsh:SiebelPasswordText" />
<xsd:simpleType name = "SiebelPasswordText">
<xsd:restriction base="xsd:string"/>
</xsd:simpleType>
<xsd:element name = "SessionType" type="siebelwsh:SiebelSessionType" />
<xsd:simpleType name = "SiebelSessionType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="None"/>
<xsd:enumeration value="Stateless"/>
<xsd:enumeration value="Statefull"/>
<!--
Siebel 8.1.1 onwards:
--->
<xsd:enumeration value="ServerDetermine"/>
</xsd:restriction>
</xsd:simpleType>
<!--
Siebel 8.1.1 onwards (application internal use):
--->
<xsd:element name = "LangCode" type="xsd:string" />
<xsd:element name = "Locale" type="xsd:string" />
<xsd:element name = "CurrencyCode" type="xsd:string" />
</xsd:schema>
Usage example (post-edition of WSDL, generated for a Siebel Inbound Web Service)
It is presumed here, that:
- the SOAP Fault part is stored in the "SiebelFault.xsd" file, in the same folder as the .WSDL
- the SOAP Header part for Siebel Web Service Session Management is stored in the "SiebelWSHeader.xsd" file, in the same folder as the .WSDL
- the Web Service name is: "Svc1"
- the URI of the Inbound Web Service is: "http://my.site.com/Svc1"
- the Web Service port name of HTTP Transport is: "Default"
- the Web Service method(operation) name is: "Execute"
- the SOAP Binding is: rpc/literal
- the URL to virtual folder of the EAI Object Manager on Siebel Web Server is: "http://my.site.com/eai_enu"
<definitions
xmlns = "http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd = "http://www.w3.org/2001/XMLSchema"
xmlns:soap = "http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:soapenc ="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:soapenv ="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:siebelwsh ="http://siebel.com/webservices"
xmlns:siebelfault ="http://www.siebel.com/ws/fault"
xmlns:xsdLocal0 ="http://my.site.com/Svc1"
xmlns:tns ="http://my.site.com/Svc1"
targetNamespac ="http://my.site.com/Svc1">
<!--
Import of Siebel scheme for parts in SOAP Fault and SOAP Header
-->
<import namespace = "http://www.siebel.com/ws/fault" location = "SiebelFault.xsd"/>
<import namespace = "http://siebel.com/webservices" location = "SiebelWSHeader.xsd"/>
. . .
<!--
Definition of message types for Siebel part in SOAP Fault and SOAP Header
-->
<message name="SiebelFault">
<part name="siebdetail" element="siebelfault:siebdetail"/>
</message>
<message name="SiebelWSHeader">
<part name="UsernameToken" element="siebelwsh:UsernameToken"/>
<part name="PasswordText" element="siebelwsh:PasswordText"/>
<part name="SessionType" element="siebelwsh:SessionType"/>
<part name="SessionToken" element="siebelwsh:SessionToken"/>
</message>
. . .
<portType name="Default">
<operation name="Execute">
. . .
<!--
Definition of faut message for Siebel part in SOAP Fault
-->
<fault message="tns:SiebelFault" name="SiebelFault"/>
</operation>
. . .
</portType>
. . .
<binding name="Default" type="tns:Default">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc"/>
<operation name="Execute">
<soap:operation soapAction="rpc/http://my.site.com/Svc1:Execute"/>
<input>
<soap:body namespace="http://my.site.com/Svc1" use="literal"/>
<!--
Declaration of Siebel parts in SOAP Header (request)
-->
<soap:header namespace="http://siebel.com/webservices" use="literal" message="tns:SiebelWSHeader" part="UsernameToken"/>
<soap:header namespace="http://siebel.com/webservices" use="literal" message="tns:SiebelWSHeader" part="PasswordText"/>
<soap:header namespace="http://siebel.com/webservices" use="literal" message="tns:SiebelWSHeader" part="SessionType"/>
<soap:header namespace="http://siebel.com/webservices" use="literal" message="tns:SiebelWSHeader" part="SessionToken"/>
</input>
<output>
<soap:body namespace="http://my.site.com/Svc1" use="literal"/>
<!--
Declaration of Siebel parts in SOAP Header (response)
-->
<soap:header namespace="http://siebel.com/webservices" use="literal" message="tns:SiebelWSHeader" part="SessionToken"/>
</output>
<!--
Declaration of Siebel part in SOAP Fault (fault response)
-->
<fault name="SiebelFault">
<soap:fault namespace="http://www.siebel.com/ws/fault" use="literal" name="SiebelFault"/>
</fault>
. . .
</operation>
. . .
</binding>
. . .
<service name="Svc1">
<port binding="tns:Default" name="Default">
<soap:address location="http://my.site.com/eai_enu/start.swe?SWEExtSource=WebService&SWEExtCmd=Execute&WSSOAP=1"/>
</port>
. . .
</service>
. . .
</definitions>
Related Articles:
Browse Categories
Navigation
User login
Readers who viewed this page, also viewed:
- Web Portal Integration with Siebel Applications (25.8%)
- Siebel XML Web Interface (25.8%)
- How can I hide the superfluous message in the “VBC error pop-up window“ (22.6%)
- Siebel Webservice And EAI - Basic Concepts ans Steps Involved (19.4%)
- Configuring Actuate Siebel Reports Server – Post Installation Tasks (19.4%)
- How To Add a New Property or Set the Value of an Existing Property in the Siebel Message XML that is Being Sent Out Through a Workflow Process (16.1%)
- How Do Trackable URLs 'Click on URL' in Siebel 8.1.x Work and How are They Structured? (16.1%)
- What to expect from Open UI for Siebel CRM (16.1%)
- Siebel Multi Lingual Changes – Considerations (16.1%)
- Time zone implementation for Oracle BI reporting (16.1%)
