---
sourceDocument: Xanadu API Reference
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - en-US

ft:publication_title :

    - Xanadu API Reference

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# Direct web services

# Direct web services {#ariaid-title1}

* Release version: Xanadu
* 
* Updated August 1, 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 3 minutes to read

A direct web service is available for any table in the system if the correct access
control list is configured.

The supported format of the incoming message is document style literal XML SOAP documents
(Document/Literal). To retrieve a direct web service WSDL description and XML schema, point to
the relative URL \<tablename\>.do?WSDL. For example, to retrieve the WSDL
for the Incident table on the online demo system, use the following URL:
https://\<instance name\>.service-now.com/incident.do?WSDL.

## Extended query parameters {#c_DirectWebServices__section_nj5_kfy_23b}

Extended query parameters enable you to filter and modify the return results of a SOAP query when using the get, getKeys, and getRecords functions.  
Note:  
Extended query element names are preceded by two underscore characters.
{#c_DirectWebServices__table_xwm_4fy_23b__entry__3}

| Parameter | Description | Example |
|-|-|-|
| __encoded_query | Specify an encoded query string to be used in filtering the returned results. The encoded query string format is similar to the value that may be specified in a `sysparm_query` URL parameter. See the encoded query building example in the RSS feed generator examples. | `<__encoded_query>active=true^category='hardware'</__encoded_query>` |
| __order_by | Instruct the returned results to be ordered by the specified field. | `<__order_by>priority</__order_by>` |
| __order_by_desc | Instruct the returned results to be ordered by the specified field, in descending order. | `<__order_by_desc>opened_date</__order_by_desc>` |
| __exclude_columns | Specify a list of comma delimited field names to exclude from the result set. | `<__exclude_columns>sys_created_on,sys_created_by,caller_id,priority</__exclude_columns>` |
| __limit | Limit the number of records that are returned. | `<__limit>100</__limit>` |
| __first_row | Instruct the results to be offset by this number of records from the beginning of the set. When used with `__last_row` has the effect of querying for a window of results. The results are inclusive of the first row number. | `<__first_row>250</__first_row>` |
| __last_row | Instruct the results to be limited by this number of records from the beginning of the set, or the `__start_row` value when specified. When used with `__first_row` has the effect of querying for a window of results. The results are less than the last row number, and does not include the last row. | `<__last_row>500</__last_row>` |
| __use_view | Specify a Form view by name, to be used for limiting and expanding the results returned. When the form view contains deep referenced fields such as caller_id.email, this field will be returned in the result as well. | `<__use_view>soap_view</__use_view>` |
[Table 1. Available extended query parameters]

{#c_DirectWebServices__table_xwm_4fy_23b}

## Direct web services namespace {#c_DirectWebServices__section_lc1_lgy_23b}

## Specifying a unique namespace for each table {#c_DirectWebServices__section_hb2_kgy_23b}

The glide.wsdl.definition.use_unique_namespace property ensures that each
table's direct web service WSDL has a unique targetNamespace attribute.
This property is true by default, which requires a table's direct web
service WSDL to use a targetNamespace value of
http://www.service-now.com/\<table name\>. When
false (or when the property is not present), all tables use the same
targetNamespace value of http://www.service-now.com.
Since all tables also share the same operation names, a web service client attempting to consume
more than one ServiceNow web service
would be unable to differentiate between requests between multiple tables. Using a unique
targetNamespace value allows web service clients to distinguish requests
between multiple tables.

For example, the direct web service WSDL for the incident table uses this
targetNamepsace value:

    <wsdl:definitions xmlns:soapenc= "http://schemas.xmlsoap.org/soap/encoding/"xmlns:wsdl = "http://schemas.xmlsoap.org/wsdl/"xmlns:http = "http://schemas.xmlsoap.org/wsdl/http/"xmlns:tns = "http://www.service-now.com/incident"xmlns:xsd = "http://www.w3.org/2001/XMLSchema"xmlns:mime = "http://schemas.xmlsoap.org/wsdl/mime/"xmlns:soap = "http://schemas.xmlsoap.org/wsdl/soap/"targetNamespace = "http://www.service-now.com/incident" ><wsdl:types><xsd:schema elementFormDefault = "unqualified"targetNamespace = "http://www.service-now.com/incident" >

## Setting namespace requirements {#c_DirectWebServices__section_yvp_mgy_23b}

ServiceNow's WSDL schema by default declares an attribute of
elementFormDefault="unqualified". This attribute indicates whether or not
locally declared elements must be qualified by the targetNamepsace in an
instance document. If the value of this attribute is unqualified, then
locally declared elements should not be qualified by the targetNamepsace.
If the value of this attribute is qualified, then locally declared
elements must be qualified by the targetNamepsace.

However, this is incompatible with the way clients generated from WSDL (for example, .NET,
Axis2, webMethods) process the embedded schema. It removes the schema namespace as a result,
making the web service response unparseable.

To overcome this compatibility issue, a boolean property called
glide.wsdl.schema.UnqualifiedElementFormDefault is introduced. This
property has the value of true by default. Setting it to
false enables clients generated from WSDL to parse the return value of
the web service invocation. You can modify this property using the Web Services properties page
at System PropertiesWeb Services.

## Allowing duplicate service names {#c_DirectWebServices__section_ytf_qjv_bdb}

By default, service names from dynamically generated WSDL are unique and have the following
format:

    ServiceNow_<table name>

To allow duplicate service names, administrators can set the
glide.wsdl.unique_service_name property to false.
Create the property if it does not exist.
* **[Use forms to limit or extend the query response](https://servicenow-prod.fluidtopics.net/m7tyIZhLJata4jEK0zNK0A)**   
  On occasion, there is a need to limit the number of field values that a SOAP query returns.
* **[Return the display value for reference variables](https://servicenow-prod.fluidtopics.net/ghcpgTLmrDFjbwT8JPlfZQ)**   
  When you query a record using a get or getRecords function, the instance returns all fields associated with that record. The fields are often reference fields that contain a sys_id for a record on another table.
* **[Clear values from a target instance](https://servicenow-prod.fluidtopics.net/ibHtp5YxHam~07bgelX3KA)**   
  You can pass an empty value through a SOAP parameter to clear the respective value in the target instance.
* **[Retrieve journal entries using direct web services](https://servicenow-prod.fluidtopics.net/We_rrkdN~9_4C2eEVbCrFQ)**   
  To get the contents of a journal field, make a second soap request against the sys_journal_field table to pull the appropriate journal records back for the record in question.
* **[Retrieve choice fields using direct web services](https://servicenow-prod.fluidtopics.net/UKRQMVoU2VrWpJeY0VWVIw)**   
  To retrieve or set choice fields, use the choice Value, not the Label.
* **[Persist an HTTP session across all SOAP calls](https://servicenow-prod.fluidtopics.net/iS3ozZygbwJT8~rXNxSVcA)**   
  In circumstances when a SOAP client makes many calls in a short amount of time, you may want to re-use a single HTTP session for all SOAP calls.
* **[SOAP direct web service API functions](https://servicenow-prod.fluidtopics.net/ScwF7nQVmMA5sgyQUQvOxg)**   
  The standard SOAP API is a set of small, globally defined functions that can be performed on a targeted resource.

**Related concepts**   

* [SOAP web service](https://servicenow-prod.fluidtopics.net/sTBQth13zJB9qSZPTI08ng "Simple Object Access Protocol (SOAP) is an XML-based protocol for accessing web services over HTTP.")

*[\>]: and then


