---
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


---

# SOAPMessageV2 - Scoped, Global

# SOAPMessageV2 - Scoped, Global {#ariaid-title1}

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

The SOAPMessageV2 API provides methods to send an outbound SOAP message using JavaScript.

Use this API to manage the response returned by the SOAP provider.

You can use this API in scoped applications or within the global scope. This API runs in the `sn_ws` namespace.

Use the [SOAPResponseV2 - Scoped, Global](https://servicenow-prod.fluidtopics.net/QzaKMK_OdfahknWr6bYJ9g#c_SOAPResponseV2API "The SOAPResponseV2 API provides methods that use the data returned by an outbound SOAP message in JavaScript code.") API to query the return parameters.  
See also:

* [Direct SOAPMessageV2 example](https://servicenow-prod.fluidtopics.net/Q0oC78mmlaS0VIM_o4HTZw "You can send an outbound SOAP message directly to the endpoint.")
* [Recordless SOAPMessageV2
  example](https://servicenow-prod.fluidtopics.net/NNAaS_T1LCv2SqDVr6oyaQ "You can use the SOAPMessageV2() constructor with no parameters to define a SOAP message entirely in the script.")
* [Asynchronous SOAPMessageV2
  example](https://servicenow-prod.fluidtopics.net/v0q1hWnHjzDy5mH~yx8NjA "You can send an outbound SOAP message asynchronously.")
* [SOAPMessageV2 MID server
  example](https://servicenow-prod.fluidtopics.net/7aPfnb7IRscgj1OX6Q0Rlg "You can send an outbound SOAP message through a MID Server.")
{#c_SOAPMessageV2API__ul_kh3_zx1_w4b}

## SOAPMessageV2 - SOAPMessageV2() {#ariaid-title2}

Instantiates an empty SOAPMessageV2 object.
When using an object instantiated this way, you must manually specify a SOAP action and
endpoint.
{#r_SMV2-SOAPMessageV2__table_vy2_525_jqz__entry__3}

| Name | Type | Description |
|-|-|-|
| None |   |   |
[Table 1. Parameters]

{#r_SMV2-SOAPMessageV2__table_vy2_525_jqz}  

    var sm = new sn_ws.SOAPMessageV2();

## SOAPMessageV2 - SOAPMessageV2(String soapMessage, String soapFunction) {#ariaid-title3}

Instantiates a SOAPMessageV2 object from a SOAP message record and a function
associated with that record.
Values such as the endpoint, authentication, or MID Server settings from the
SOAP message record apply to this object.
{#r_SMV2-SOAPMessageV2_S_S__table_vy2_525_jq__entry__3}

| Name | Type | Description |
|-|-|-|
| soapMessage | String | SOAP message record you want to use as the base for this object. |
| soapFunction | String | SOAP function you want to execute. Available SOAP functions depend on the WSDL supplied by the web service provider. |
[Table 2. Parameters]

{#r_SMV2-SOAPMessageV2_S_S__table_vy2_525_jq}  

    var sm = new sn_ws.SOAPMessageV2("StockQuote","GetQuote"); //Might throw exception if message doesn't exist or not visible due to scope.

## SOAPMessageV2 - execute() {#ariaid-title4}

Sends the SOAP message to the endpoint.
{#r_SMV2-execute__table_vy2_525_jqn__entry__3}

| Name | Type | Description |
|-|-|-|
| None |   |   |
[Table 3. Parameters]

{#r_SMV2-execute__table_vy2_525_jqn} {#r_SMV2-execute__table_qpt_3f5_jq__entry__2}

| Type | Description |
|-|-|
| SOAPResponseV2 - Scoped, Global | Response returned by the SOAP provider. |
[Table 4. Returns]

{#r_SMV2-execute__table_qpt_3f5_jq}  

    var sm = new sn_ws.SOAPMessageV2("StockQuote","GetQuote"); //Might throw exception if message doesn't exist or not visible due to scope.
    var response = sm.execute(); //Might throw exception if http connection timed out or some issue with sending request itself because of encryption/decryption of password.

## SOAPMessageV2 - executeAsync() {#ariaid-title5}

Sends the SOAP message to the ECC queue.
SOAP messages in the ECC queue are processed by the SOAPClient business rule.

By default, this business rule does not run asynchronously. To configure this business rule
to run asynchronously, set the When value to Async and add
current.update() to the end of the Script. The instance does not wait
for a response from the web service provider when sending a message through the ECC
queue.
{#r_SMV2-executeAsync__table_vy2_525_jqo__entry__3}

| Name | Type | Description |
|-|-|-|
| None |   |   |
[Table 5. Parameters]

{#r_SMV2-executeAsync__table_vy2_525_jqo} {#r_SMV2-executeAsync__table_qpt_3f5_jq__entry__2}

| Type | Description |
|-|-|
| SOAPResponseV2 - Scoped, Global | Response returned by the SOAP provider. Note: Attempting to use the SOAP response object before the response has been processed may result in a timeout error. |
[Table 6. Returns]

{#r_SMV2-executeAsync__table_qpt_3f5_jq}  

    var sm = new sn_ws.SOAPMessageV2("StockQuote","GetQuote"); //Might throw exception if message doesn't exist or not visible due to scope.
    var response = sm.executeAsync();

## SOAPMessageV2 - getEndpoint() {#ariaid-title6}

Gets the endpoint for the SOAP message.
{#r_SMV2-getEndpoint__table_vy2_525_jqp__entry__3}

| Name | Type | Description |
|-|-|-|
| None |   |   |
[Table 7. Parameters]

{#r_SMV2-getEndpoint__table_vy2_525_jqp} {#r_SMV2-getEndpoint__table_qpt_3f5_jq__entry__2}

| Type | Description |
|-|-|
| String | URL of the SOAP web service provider. |
[Table 8. Returns]

{#r_SMV2-getEndpoint__table_qpt_3f5_jq}  

    var sm = new sn_ws.SOAPMessageV2("StockQuote","GetQuote"); //Might throw exception if message doesn't exist or not visible due to scope.
    var endpoint = sm.getEndpoint();

## SOAPMessageV2 - getRequestBody() {#ariaid-title7}

Returns the content of the SOAP message body.
Note:  
Before calling the getRequestBody() method, you must call the [execute()](https://servicenow-prod.fluidtopics.net/ZyOGlBLIgmYj3f_IrYAOhA#r_SMV2-execute "Sends the SOAP message to the endpoint.") method to obtain the response object. {#r_SMV2-getRequestBody__table_vy2_525_jqq__entry__3}

| Name | Type | Description |
|-|-|-|
| None |   |   |
[Table 9. Parameters]

{#r_SMV2-getRequestBody__table_vy2_525_jqq} {#r_SMV2-getRequestBody__table_qpt_3f5_jq__entry__2}

| Type | Description |
|-|-|
| String | SOAP message body. |
[Table 10. Returns]

{#r_SMV2-getRequestBody__table_qpt_3f5_jq}  

    var sm = new sn_ws.SOAPMessageV2("StockQuote","StockQuoteSoap.GetQuote"); //Might throw exception if message doesn't exist or not visible due to scope.
    var response = sm.execute();
    var requestBody = response.getRequestBody();

## SOAPMessageV2 - getRequestHeader(String headerName) {#ariaid-title8}

Gets the value for an HTTP header specified by the SOAP client.
By default, this method cannot return the value for a header set automatically by the
system. To grant this method access to all headers, set the property glide.http.log_debug to
true.
{#r_SMV2-getRequestHeader_S__table_vy2_525_jqrr__entry__3}

| Name | Type | Description |
|-|-|-|
| headerName | String | Request header you want to get the value for. |
[Table 11. Parameters]

{#r_SMV2-getRequestHeader_S__table_vy2_525_jqrr} {#r_SMV2-getRequestHeader_S__table_qpt_3f5_jq__entry__2}

| Type | Description |
|-|-|
| String | Value of the specified header. |
[Table 12. Returns]

{#r_SMV2-getRequestHeader_S__table_qpt_3f5_jq}  

    var sm = new sn_ws.SOAPMessageV2("StockQuote","GetQuote"); //Might throw exception if message doesn't exist or not visible due to scope.
    var header = sm.getRequestHeader("Accept");

## SOAPMessageV2 - getRequestHeaders() {#ariaid-title9}

Gets HTTP headers that were set by the SOAP client and the associated
values.
This method does not return headers set automatically by the system. To configure this
method to return all headers, set the property glide.http.log_debug to true.
{#r_SMV2-getRequestHeaders__table_vy2_525_jqr__entry__3}

| Name | Type | Description |
|-|-|-|
| None |   |   |
[Table 13. Parameters]

{#r_SMV2-getRequestHeaders__table_vy2_525_jqr} {#r_SMV2-getRequestHeaders__table_qpt_3f5_jq__entry__2}

| Type | Description |
|-|-|
| Object | Object that maps the name of each header to the associated value. |
[Table 14. Returns]

{#r_SMV2-getRequestHeaders__table_qpt_3f5_jq}  

    var sm = new sn_ws.SOAPMessageV2("StockQuote","GetQuote"); //Might throw exception if message doesn't exist or not visible due to scope.
    var requestHeaders = sm.getRequestHeaders();

## SOAPMessageV2 - setBasicAuth(String userName, String userPass) {#ariaid-title10}

Sets basic authentication headers for the SOAP message.
Setting basic authentication headers using this method overrides basic authentication
values defined in the SOAP message record.
{#r_SMV2-setBasicAuth_S_S__table_vy2_525_jq1__entry__3}

| Name | Type | Description |
|-|-|-|
| userName | String | Username to use when authenticating the SOAP message. |
| userPass | String | Password for the specified user. |
[Table 15. Parameters]

{#r_SMV2-setBasicAuth_S_S__table_vy2_525_jq1} {#r_SMV2-setBasicAuth_S_S__table_kvg_2mh_dr__entry__2}

| Type | Description |
|-|-|
| void |   |
[Table 16. Returns]

{#r_SMV2-setBasicAuth_S_S__table_kvg_2mh_dr}  

    var sm = new sn_ws.SOAPMessageV2("StockQuote","GetQuote"); //Might throw exception if message doesn't exist or not visible due to scope.
    sm.setBasicAuth("username","password");

## SOAPMessageV2 - setEccCorrelator(String correlator) {#ariaid-title11}

Associates outbound requests and the resulting response record in the ECC
queue.
This method only applies to SOAP messages sent through a MID Server. The correlator
provided populates the Agent correlator field on the ECC queue record
for the response. Provide a unique correlator for each outbound request to associate the
correct results in the ECC queue with the request when designing asynchronous automation
through a MID Server.
{#r_SMV2-setEccCorrelator_S__table_vy2_525_jq2__entry__3}

| Name | Type | Description |
|-|-|-|
| correlator | String | Unique identifier |
[Table 17. Parameters]

{#r_SMV2-setEccCorrelator_S__table_vy2_525_jq2} {#r_SMV2-setEccCorrelator_S__table_yfc_2mh_dr__entry__2}

| Type | Description |
|-|-|
| void |   |
[Table 18. Returns]

{#r_SMV2-setEccCorrelator_S__table_yfc_2mh_dr}  

    var sm = new sn_ws.SOAPMessageV2("StockQuote","GetQuote"); //Might throw exception if message doesn't exist or not visible due to scope.
    sm.setEccCorrelator("unique_id");

## SOAPMessageV2 - setEccParameter(String name, String value) {#ariaid-title12}

Overrides a value from the database by writing to the SOAP message payload.
This method only applies to SOAP messages sent through a MID Server. Use
this method when a value from the SOAP message in the database is invalid, such as when the
endpoint URL is longer than the maximum SOAP endpoint field
length.  
These are valid values for the name parameter.

* source: The endpoint URL.
* name: The SOAP message function to run.
{#r_SMV2-setEccParameter_S_S__ul_cfp_wck_xq}
{#r_SMV2-setEccParameter_S_S__table_vy2_525_jq3__entry__3}

| Name | Type | Description |
|-|-|-|
| name | String | Name of the ECC parameter. |
| value | String | Value to assign to the specified ECC parameter. |
[Table 19. Parameters]

{#r_SMV2-setEccParameter_S_S__table_vy2_525_jq3} {#r_SMV2-setEccParameter_S_S__table_m3m_2mh_dr__entry__2}

| Type | Description |
|-|-|
| void |   |
[Table 20. Returns]

{#r_SMV2-setEccParameter_S_S__table_m3m_2mh_dr}  

    var sm = new sn_ws.SOAPMessageV2("StockQuote","GetQuote"); //Might throw exception if message doesn't exist or not visible due to scope.
    sm.setEccParameter("source","http://very.long.endpoint");

## SOAPMessageV2 - setEndpoint(String endpoint) {#ariaid-title13}

Sets the endpoint for the SOAP message.
By default, the SOAP message uses the endpoint specified in the SOAP message record. Use
this method to override the default. You must call this method when using the [SOAPMessageV2()](https://servicenow-prod.fluidtopics.net/ZyOGlBLIgmYj3f_IrYAOhA#r_SMV2-SOAPMessageV2 "Instantiates an empty SOAPMessageV2 object.") constructor with no
parameters.
{#r_SMV2-setEndpoint_String_endpoint__table_vy2_525_jq4__entry__3}

| Name | Type | Description |
|-|-|-|
| endpoint | String | URL of the SOAP web service provider you want to interface with. |
[Table 21. Parameters]

{#r_SMV2-setEndpoint_String_endpoint__table_vy2_525_jq4} {#r_SMV2-setEndpoint_String_endpoint__table_pwq_2mh_dr__entry__2}

| Type | Description |
|-|-|
| void |   |
[Table 22. Returns]

{#r_SMV2-setEndpoint_String_endpoint__table_pwq_2mh_dr}  

    var sm = new sn_ws.SOAPMessageV2();
    sm.setEndpoint("http://web.service.endpoint");

## SOAPMessageV2 - setHttpTimeout(Number timeoutMs) {#ariaid-title14}

Sets the amount of time the SOAP message waits for a response from the web service
provider before the request times out.
{#r_SMV2-setHttpTimeout_N__table_vy2_525_jq5__entry__3}

| Name | Type | Description |
|-|-|-|
| timeoutMs | Number | Amount of time to wait for a response from the web service provider, in milliseconds. |
[Table 23. Parameters]

{#r_SMV2-setHttpTimeout_N__table_vy2_525_jq5} {#r_SMV2-setHttpTimeout_N__table_a1v_2mh_dr__entry__2}

| Type | Description |
|-|-|
| void |   |
[Table 24. Returns]

{#r_SMV2-setHttpTimeout_N__table_a1v_2mh_dr}  

    var sm = new sn_ws.SOAPMessageV2("StockQuote","GetQuote"); //Might throw exception if message doesn't exist or not visible due to scope.
    sm.setHttpTimeout(6000);

## SOAPMessageV2 - setLogLevel(String level) {#ariaid-title15}

Sets the log level for this message and the corresponding response.
Setting a log level using the SOAPMessageV2 API overrides the log level configured on the
SOAP message record. This log level may not apply if the endpoint domain is excluded, or if
the property glide.outbound_http_log.override is true. To view outbound
web service logs, navigate to System LogsOutbound HTTP Requests.
{#SMV2-setLogLevel_S__table_lxw_gnc_sw__entry__3}

| Name | Type | Description |
|-|-|-|
| level | String | The log level. Valid values are basic, elevated, and all. |
[Table 25. Parameters]

{#SMV2-setLogLevel_S__table_lxw_gnc_sw} {#SMV2-setLogLevel_S__table_mxw_gnc_sw__entry__2}

| Type | Description |
|-|-|
| void |   |
[Table 26. Returns]

{#SMV2-setLogLevel_S__table_mxw_gnc_sw}

## SOAPMessageV2 - setMIDServer(String midServerName) {#ariaid-title16}

Configures the SOAP message to be sent through a MID Server.
By default, the SOAP message uses the MID Server specified in the SOAP
message function record. Use this method to override the default.
{#r_SMV2-setMIDServer_S__table_vy2_525_jq6__entry__3}

| Name | Type | Description |
|-|-|-|
| midServerName | String | Name of the MID Server you want to send the SOAP message through. Your instance must have an active MID Server with the specified name. |
[Table 27. Parameters]

{#r_SMV2-setMIDServer_S__table_vy2_525_jq6} {#r_SMV2-setMIDServer_S__table_kgz_2mh_dr__entry__2}

| Type | Description |
|-|-|
| void |   |
[Table 28. Returns]

{#r_SMV2-setMIDServer_S__table_kgz_2mh_dr}

## SOAPMessageV2 - setMutualAuth(String profileName) {#ariaid-title17}

Sets the mutual authentication protocol profile for the SOAP message.
Setting a protocol profile using this method overrides the protocol profile selected for
the SOAP message record.
{#r_SMV2-setMutualAuth_S__table_vy2_525_jq7__entry__3}

| Name | Type | Description |
|-|-|-|
| profileName | String | Name of the protocol profile to use for mutual authentication. |
[Table 29. Parameters]

{#r_SMV2-setMutualAuth_S__table_vy2_525_jq7} {#r_SMV2-setMutualAuth_S__table_lh2_fmh_dr__entry__2}

| Type | Description |
|-|-|
| void |   |
[Table 30. Returns]

{#r_SMV2-setMutualAuth_S__table_lh2_fmh_dr}  

    var sm = new sn_ws.SOAPMessageV2("StockQuote","GetQuote"); //Might throw exception if message doesn't exist or not visible due to scope.
    sm.setMutualAuth("auth_profile_name");

## SOAPMessageV2 - setRequestBody(String requestBody) {#ariaid-title18}

Sets the body content to send to the web service provider.
When you set the body content using this method, variables in the body are not substituted
for parameters from the SOAP message function record. You must explicitly define all values
within the SOAP message body.
{#r_SMV2-setRequestBody_S__table_vy2_525_jq8__entry__3}

| Name | Type | Description |
|-|-|-|
| requestBody | String | Body of the SOAP message. |
[Table 31. Parameters]

{#r_SMV2-setRequestBody_S__table_vy2_525_jq8} {#r_SMV2-setRequestBody_S__table_qg3_fmh_dr__entry__2}

| Type | Description |
|-|-|
| void |   |
[Table 32. Returns]

{#r_SMV2-setRequestBody_S__table_qg3_fmh_dr}  

    var sm = new sn_ws.SOAPMessageV2("StockQuote","GetQuote"); //Might throw exception if message doesn't exist or not visible due to scope.
    var body = "<SOAP message body>";
    sm.setRequestBody(body);

## SOAPMessageV2 - setRequestHeader(String headerName, String headerValue) {#ariaid-title19}

Sets an HTTP header in the SOAP message to the specified value.
{#r_SMV2-setRequestHeader_S_S__table_vy2_525_jq9__entry__3}

| Name | Type | Description |
|-|-|-|
| headerName | String | Name of the header. |
| headerValue | String | Value to assign to the specified header. |
[Table 33. Parameters]

{#r_SMV2-setRequestHeader_S_S__table_vy2_525_jq9} {#r_SMV2-setRequestHeader_S_S__table_jml_fmh_dr__entry__2}

| Type | Description |
|-|-|
| void |   |
[Table 34. Returns]

{#r_SMV2-setRequestHeader_S_S__table_jml_fmh_dr}  

    var sm = new sn_ws.SOAPMessageV2("StockQuote","GetQuote"); //Might throw exception if message doesn't exist or not visible due to scope.
    sm.setRequestHeader("Accept","Application/json");

## SOAPMessageV2 - setSOAPAction(String soapAction) {#ariaid-title20}

Defines the SOAP action this SOAP message performs.
The WSDL for your web service provider lists SOAP actions you can perform. You must call
this method when using the [SOAPMessageV2()](https://servicenow-prod.fluidtopics.net/ZyOGlBLIgmYj3f_IrYAOhA#r_SMV2-SOAPMessageV2 "Instantiates an empty SOAPMessageV2 object.") constructor with no parameters.
{#r_SMV2-setSOAPAction_S__table_vy2_525_jq10__entry__3}

| Name | Type | Description |
|-|-|-|
| soapAction | String | SOAP action this SOAP message performs. |
[Table 35. Parameters]

{#r_SMV2-setSOAPAction_S__table_vy2_525_jq10} {#r_SMV2-setSOAPAction_S__table_ur5_fmh_dr__entry__2}

| Type | Description |
|-|-|
| void |   |
[Table 36. Returns]

{#r_SMV2-setSOAPAction_S__table_ur5_fmh_dr}  

    var sm = new sn_ws.SOAPMessageV2();
    sm.setSOAPAction("GetQuote");
    //construct SOAP message by specifying endpoint and auth
    sm.execute();

## SOAPMessageV2 - setStringParameter(String name, String value) {#ariaid-title21}

Sets a variable with the specified name from the SOAP message record to the specified
value.
XML reserved characters in the value are converted to the equivalent escaped
characters.
{#r_SMV2-setStringParameter_S_S__table_vy2_525_jq11__entry__3}

| Name | Type | Description |
|-|-|-|
| name | String | Name of the SOAP message variable. |
| value | String | Value to assign to the specified variable. |
[Table 37. Parameters]

{#r_SMV2-setStringParameter_S_S__table_vy2_525_jq11} {#r_SMV2-setStringParameter_S_S__table_pdy_fmh_dr__entry__2}

| Type | Description |
|-|-|
| void |   |
[Table 38. Returns]

{#r_SMV2-setStringParameter_S_S__table_pdy_fmh_dr}  

    var sm = new sn_ws.SOAPMessageV2("StockQuote","GetQuote"); //Might throw exception if message doesn't exist or not visible due to scope.
    sm.setStringParameter("symbol","NOW");

## SOAPMessageV2 - setStringParameterNoEscape(String name, String value) {#ariaid-title22}

Sets a variable with the specified name from the SOAP message record to the specified
value.
This method is equivalent to setStringParameter but does not escape XML reserved
characters.
{#r_SMV2-setStrParamNoEscape_S_S__table_vy2_525_jq12__entry__3}

| Name | Type | Description |
|-|-|-|
| name | String | Name of the SOAP message variable. |
| value | String | Value to assign to the specified variable. |
[Table 39. Parameters]

{#r_SMV2-setStrParamNoEscape_S_S__table_vy2_525_jq12} {#r_SMV2-setStrParamNoEscape_S_S__table_uqc_gmh_dr__entry__2}

| Type | Description |
|-|-|
| void |   |
[Table 40. Returns]

{#r_SMV2-setStrParamNoEscape_S_S__table_uqc_gmh_dr}  

    var sm = new sn_ws.SOAPMessageV2("StockQuote","GetQuote"); //Might throw exception if message doesn't exist or not visible due to scope.
    sm.setStringParameterNoEscape("symbol","NOW");

## SOAPMessageV2 - setWSSecurity(String keystoreId, String keystoreAlias, String
keystorePassword, String certificateId) {#ariaid-title23}

Sets web service security values for the SOAP message.
Setting security values using this method overwrites web service security values defined
for the SOAP message record.
{#r_SMV2-setWSSecurity_S_S_S_S__table_vy2_525_jq13__entry__3}

| Name | Type | Description |
|-|-|-|
| keystoreId | String | Sys_id of the Java or PKCS12 key store to use. |
| keystoreAlias | String | Alias that identifies the public and private keys. |
| keystorePassword | String | Password assigned to the key store record. |
| certificateId | String | Sys_id of the trusted server certificate. |
[Table 41. Parameters]

{#r_SMV2-setWSSecurity_S_S_S_S__table_vy2_525_jq13} {#r_SMV2-setWSSecurity_S_S_S_S__table_kyg_gmh_dr__entry__2}

| Type | Description |
|-|-|
| void |   |
[Table 42. Returns]

{#r_SMV2-setWSSecurity_S_S_S_S__table_kyg_gmh_dr}  

    var sm = new sn_ws.SOAPMessageV2("StockQuote","GetQuote"); //Might throw exception if message doesn't exist or not visible due to scope.
    sm.setWSSecurity("70d65e074f3812001f6eac118110c71a","Quote keys","UXr82cqX75Z7MaSa+EyjGA==","ba969a074f3812001f6eac118110c76d");

*[\>]: and then


