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).
Siebel Web Services Framework use at run-time some standard fields in SOAP Header and SOAP Fault parts of SOAP message. Such definitions are not produced by WSDL Generator of Siebel User Interface (design-time).
This documents provides some usage examples, how scheme for some standard Siebel fields could be explicitly included in .WSDL file, after it has generated.
WARNING: XSD/WSDL code examples, given in this document, are provided just FOR ILLUSTRATION purpose.
References:
- Siebel Bookshelf document: "Integration Platform Technologies: Siebel Enterprise Application Integration", Chapter: "Web Services"
- SOAP 1.1 standard (W3C Note 08 May 2000)
- Schema of SOAP 1.1 envelope
Solution
SOAP Fault: Siebel Details part
<?xml version="1.0" encoding="UTF-8"?>
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">
siebdetail" type="siebelfault:siebdetail"/>
logfilename" maxOccurs="1" minOccurs="0" type="xsd:string"/>
errorstack" maxOccurs="1" minOccurs="0" type="siebelfault:errorstack"/>
error" maxOccurs="unbounded" minOccurs="0" type="siebelfault:error"/>
errorcode" maxOccurs="1" minOccurs="0" type="xsd:string"/>
errorsymbol" maxOccurs="1" minOccurs="0" type="xsd:string"/>
errormsg" maxOccurs="1" minOccurs="0" type="xsd:string"/>
SOAP Header: Siebel WS-Security part (Siebel 7.7 onwards)
<?xml version="1.0" encoding="UTF-8"?>
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">
Security" type="siebelwsse:Security"/>
UsernameToken" maxOccurs="1" minOccurs="0" type="siebelwsse:UsernameToken"/>
Username" maxOccurs="1" minOccurs="0" type="xsd:string"/>
Password" maxOccurs="1" minOccurs="0" type="xsd:string"/>
SOAP Header: Siebel Web Service Session Management part (Siebel 7.8 onwards)
<?xml version="1.0" encoding="UTF-8"?>
xmlns:xsd ="http://www.w3.org/2001/XMLSchema"
xmlns:siebelwsh="http://siebel.com/webservices"
targetNamespace="http://siebel.com/webservices">
SessionToken" type="xsd:string" />
UsernameToken" type="siebelwsh:SiebelUsernameToken" />
PasswordText" type="siebelwsh:SiebelPasswordText" />
SessionType" type="siebelwsh:SiebelSessionType" />
None"/>
Stateless"/>
Statefull"/>
Siebel 8.1.1 onwards:
--->
ServerDetermine"/>
Siebel 8.1.1 onwards (application internal use):
--->
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"
<?xml version="1.0" encoding="UTF-8"?>
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
-->
SiebelFault.xsd"/>
SiebelWSHeader.xsd"/>
. . .
Definition of message types for Siebel part in SOAP Fault and SOAP Header
-->
. . .
Default">
Execute">
. . .
Definition of faut message for Siebel part in SOAP Fault
-->
. . .
. . .
"Default" type="tns:Default">
rpc"/>
Execute">
rpc/http://my.site.com/Svc1:Execute"/>
http://my.site.com/Svc1" use="literal"/>
Declaration of Siebel parts in SOAP Header (request)
-->
literal" message="tns:SiebelWSHeader" part="UsernameToken"/>
literal" message="tns:SiebelWSHeader" part="PasswordText"/>
literal" message="tns:SiebelWSHeader" part="SessionType"/>
literal" message="tns:SiebelWSHeader" part="SessionToken"/>
http://my.site.com/Svc1" use="literal"/>
Declaration of Siebel parts in SOAP Header (response)
-->
literal" message="tns:SiebelWSHeader" part="SessionToken"/>
Declaration of Siebel part in SOAP Fault (fault response)
-->
literal" name="SiebelFault"/>
. . .
. . .
. . .
Svc1">
Default" name="Default">
http://my.site.com/eai_enu/start.swe?SWEExtSource=WebService&SWEExtCmd=…;WSSOAP=1"/>
. . .
. . .