The SOAP Interface
The Spectrum OnDemand server provides access to services using SOAP in document/literal mode. Document/literal web services are the WS-I compliant format for web services.
To view the SOAP web services available on your Spectrum OnDemand server, go to:
http://server:port/soap
WSDL URL
The WSDL for a Spectrum OnDemand Web service is:
http://server:port/soap/service_name?wsdl
https://OnDemandServer/soap/service_name?wsdl
For a list of Spectrum OnDemand servers, see Connecting to Spectrum OnDemand Servers.
For example:
http://myserver:8080/soap/ValidateAddress?wsdl
https://spectrum.precisely.com/soap/ValidateAddress?wsdl
The web service model is a generic model for all services. The WSDL for any Spectrum OnDemand web service contains the same definition of data types and operations. What differentiates the WSDL is the target service and the values (options and data) provided at runtime.
User Fields
You can pass extra fields through the web service even if the web service does not
use them. These fields are returned, unmodified, in the
<user_fields>
element of the response. For example, this request
contains a user field named id with a value of 5:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:val="http://www.pb.com/spectrum/services/ValidateAddress">
<soapenv:Header/>
<soapenv:Body>
<val:ValidateAddressRequest>
<val:input_port>
<val:Address>
<val:AddressLine1>3001 summer</val:AddressLine1>
<val:City>stamford</val:City>
<val:StateProvince>ct</val:StateProvince>
<val:user_fields>
<val:user_field>
<val:name>id</val:name>
<val:value>5</val:value>
</val:user_field>
</val:user_fields>
</val:Address>
</val:input_port>
</val:ValidateAddressRequest>
</soapenv:Body>
</soapenv:Envelope>
The user field is returned, unmodified, in the response:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns3:ValidateAddressResponse xmlns:ns2="http://spectrum.pb.com/" xmlns:ns3="http://www.pb.com/spectrum/services/ValidateAddress">
<ns3:output_port>
<ns3:Address>
<ns3:Confidence>86</ns3:Confidence>
<ns3:RecordType>HighRise</ns3:RecordType>
<ns3:RecordType.Default>Y</ns3:RecordType.Default>
<ns3:CountryLevel>A</ns3:CountryLevel>
<ns3:ProcessedBy>USA</ns3:ProcessedBy>
<ns3:MatchScore>0</ns3:MatchScore>
<ns3:AddressLine1>3001 Summer St</ns3:AddressLine1>
<ns3:City>Stamford</ns3:City>
<ns3:StateProvince>CT</ns3:StateProvince>
<ns3:PostalCode>06905-4317</ns3:PostalCode>
<ns3:PostalCode.Base>06905</ns3:PostalCode.Base>
<ns3:PostalCode.AddOn>4317</ns3:PostalCode.AddOn>
<ns3:Country>United States Of America</ns3:Country>
<ns3:AdditionalInputData.Base/>
<ns3:POBoxOnlyDeliveryZone/>
<ns3:user_fields>
<ns3:user_field>
<ns3:name>id</ns3:name>
<ns3:value>5</ns3:value>
</ns3:user_field>
</ns3:user_fields>
</ns3:Address>
</ns3:output_port>
</ns3:ValidateAddressResponse>
</soap:Body>
</soap:Envelope>
Sample SOAP Request
The following sample SOAP request calls the ValidateAddress service. The sections for options and rows are all dependent on the metadata for that particular web service; therefore, different components will have different metadata entries. Additionally, there is a user_fields section that allows you to pass in field values that will be returned, unmodified, in the response.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:val="http://www.pb.com/spectrum/services/ValidateAddress">
<soapenv:Header/>
<soapenv:Body>
<val:ValidateAddressRequest>
<val:options>
<val:OutputFormattedOnFail>Y</val:OutputFormattedOnFail>
</val:options>
<val:input_port>
<val:Address>
<val:AddressLine1>1525B Kramer Lane</val:AddressLine1>
<val:AddressLine2>Suite 100</val:AddressLine2>
<val:PostalCode>78758</val:PostalCode>
</val:Address>
</val:input_port>
</val:ValidateAddressRequest>
</soapenv:Body>
</soapenv:Envelope>
Sample SOAP Response
The sample request above would return the following response.
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns3:ValidateAddressResponse xmlns:ns2="http://spectrum.pb.com/" xmlns:ns3="http://www.pb.com/spectrum/services/ValidateAddress">
<ns3:output_port>
<ns3:Address>
<ns3:Confidence>88</ns3:Confidence>
<ns3:RecordType>Normal</ns3:RecordType>
<ns3:CountryLevel>A</ns3:CountryLevel>
<ns3:ProcessedBy>USA</ns3:ProcessedBy>
<ns3:MatchScore>0</ns3:MatchScore>
<ns3:AddressLine1>1525B Kramer Ln Ste 100</ns3:AddressLine1>
<ns3:City>Austin</ns3:City>
<ns3:StateProvince>TX</ns3:StateProvince>
<ns3:PostalCode>78758-4227</ns3:PostalCode>
<ns3:PostalCode.Base>78758</ns3:PostalCode.Base>
<ns3:PostalCode.AddOn>4227</ns3:PostalCode.AddOn>
<ns3:Country>United States Of America</ns3:Country>
<ns3:user_fields/>
</ns3:Address>
</ns3:output_port>
</ns3:ValidateAddressResponse>
</soap:Body>
</soap:Envelope>