SOAPMessageV2 - スコープ指定、グローバル

  • リリースバージョン: Zurich
  • 更新日 2025年07月31日
  • 所要時間:23分
  • SOAPMessageV2 API は、JavaScript を使用して送信 SOAP メッセージを送信するメソッドを提供します。

    この API を使用して、SOAP プロバイダーによって返される応答を管理します。

    この API は、スコープ対象のアプリケーションまたはグローバルスコープで使用できます。この API は sn_ws 名前空間で実行されます。

    SOAPMessageV2 - SOAPMessageV2()

    空の SOAPMessageV2 オブジェクトをインスタンス化します。

    この方法でインスタンス化されたオブジェクトを使用する場合は、SOAP アクションとエンドポイントを手動で指定する必要があります。

    表 : 1. パラメーター
    名前 タイプ 説明
    なし
    var sm = new sn_ws.SOAPMessageV2();

    SOAPMessageV2 - SOAPMessageV2(文字列 soapMessage, 文字列 soapFunction)

    SOAP メッセージレコードとそのレコードに関連付けられた関数から、SOAPMessageV2 オブジェクトをインスタンス化します。

    SOAP メッセージレコードのエンドポイント、認証、MID サーバー 設定などの値がこのオブジェクトに適用されます。

    表 : 2. パラメーター
    名前 タイプ 説明
    soapMessage 文字列 このオブジェクトのベースとして使用する SOAP メッセージレコード。
    soapFunction 文字列 実行する SOAP 関数。使用可能な SOAP 関数は、Web サービスプロバイダーによって提供される WSDL によって異なります。
    var sm = new sn_ws.SOAPMessageV2("StockQuote","GetQuote"); //Might throw exception if message doesn't exist or not visible due to scope.

    SOAPMessageV2 - execute()

    SOAP メッセージをエンドポイントに送信します。

    このメソッドは同期的に呼び出します。つまり、スクリプトの実行は、呼び出しが完了するまで待機してから続行します。

    この方法を使用する際の考慮事項:
    • この方法は、迅速なサービス呼び出しにのみ使用してください。サービスがどれほど高速であっても、このメソッドを大量に呼び出すべきではありません。
    • タイムアウトが非常に短い場合にのみこのメソッドを使用します。そうしないと、インスタンスが停止する可能性があります。タイムアウト期間を制御するプロパティには、 glide.http.timeoutglide.http.connection_timeout の 2 つがあります。デフォルトでは、これらのタイムアウトはそれぞれ 175 秒と 10 秒に設定されています。
    • 一般に、要求が MID サーバーを経由する必要がある場合は、このメソッドを使用しないでください。 MID サーバー 要求は、非同期キューである外部通信チャネル (ECC) キューを経由する必要があります。スレッドは、要求自体によって保持されるだけでなく、 MID サーバー がインスタンスに応答するのを待つ間も保持されます。MID サーバーが関係している場合は、センサービジネスルールで非同期呼び出しを使用します。
    表 : 3. パラメーター
    名前 タイプ 説明
    なし
    表 : 4. 返される内容
    タイプ 説明
    SOAPResponseV2 SOAP プロバイダーによって返される応答。
    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()

    SOAP メッセージを外部通信チャネル (ECC) キューに送信します。

    ECC キュー内の SOAP メッセージは SOAPClient ビジネスルールによって処理されます。

    デフォルトでは、このビジネスルールは非同期的には実行されません。このビジネスルールを非同期で実行するように構成するには、When の値を Async に設定し、スクリプトの末尾に current.update() を追加します。インスタンスは、ECC キューを介してメッセージを送信するときに、Web サービスプロバイダーからの応答を待機しません。

    表 : 5. パラメーター
    名前 タイプ 説明
    なし
    表 : 6. 返される内容
    タイプ 説明
    SOAPResponseV2 - スコープ指定、グローバル SOAP プロバイダーによって返される応答。
    注:
    応答が処理される前に SOAP 応答オブジェクトを使用しようとすると、タイムアウトエラーが発生する可能性があります。
    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()

    SOAP メッセージのエンドポイントを取得します。

    表 : 7. パラメーター
    名前 タイプ 説明
    なし
    表 : 8. 返される内容
    タイプ 説明
    文字列 SOAP Web サービスプロバイダーの URL。
    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()

    SOAP メッセージ本文の内容を返します。

    注:
    getRequestBody() メソッドを呼び出す前に、execute() メソッドを呼び出して応答オブジェクトを取得する必要があります。
    表 : 9. パラメーター
    名前 タイプ 説明
    なし
    表 : 10. 返される内容
    タイプ 説明
    文字列 SOAP メッセージの本文。
    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(文字列 headerName)

    SOAP クライアントによって指定された HTTP ヘッダーの値を取得します。

    デフォルトでは、このメソッドはシステムによって自動的に設定されたヘッダーの値を返すことはできません。このメソッドにすべてのヘッダーへのアクセスを許可するには、プロパティ glide.http.log_debug を true に設定します。

    表 : 11. パラメーター
    名前 タイプ 説明
    headerName 文字列 値を取得する要求ヘッダー。
    表 : 12. 返される内容
    タイプ 説明
    文字列 指定されたヘッダーの値。
    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()

    SOAP クライアントによって設定された HTTP ヘッダーと関連する値を取得します。

    このメソッドは、システムによって自動的に設定されたヘッダーを返しません。このメソッドがすべてのヘッダーを返すように設定するには、プロパティ glide.http.log_debug を true に設定します。

    表 : 13. パラメーター
    名前 タイプ 説明
    なし
    表 : 14. 返される内容
    タイプ 説明
    オブジェクト 各ヘッダーの名前を関連する値にマッピングするオブジェクト。
    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 - setAllowedRedirectURIs(アレイ URI)

    リダイレクト先として許可される 1 つ以上の URI を設定します。許可された送信 URI を制御することで、セキュリティ上の懸念が軽減され、ユーザーを悪意のあるサイトに誘導する URL リダイレクト攻撃を防ぐことができます。

    URI をリダイレクトするより包括的な方法については、「 UriMatcher - スコープ指定」を参照してください。

    表 : 15. パラメーター
    名前 タイプ 説明
    URI アレイ 1 つ以上の URI がリダイレクトに許可されています。各 URI は「文字列」形式でリストする必要があります。
    表 : 16. 戻り値
    タイプ 説明
    なし

    次の例は、SOAP メッセージ関数のリダイレクトを許可する URL のリストを追加する方法を示しています。

    // Redirection URI Allow list
    try {
    	var sm = new sn_ws.SOAPMessageV2('TemperatureConvert', 'TempConvertHttpPost.FahrenheitToCelsius');
    	sm.setAllowedRedirectURIs(['https://www.w3schools.com/', 'https://www.google.com']);
    
    	sm.execute();
    
    } catch(ex) {
    	var message = ex.getMessage();
    }

    SOAPMessageV2 - setBasicAuth(文字列 userName, 文字列 userPass)

    SOAP メッセージの基本認証ヘッダーを設定します。

    このメソッドを使用して基本認証ヘッダーを設定すると、SOAP メッセージレコードで定義された基本認証値が上書きされます。

    表 : 17. パラメーター
    名前 タイプ 説明
    userName 文字列 SOAP メッセージを認証するときに使用するユーザー名。
    userPass 文字列 指定されたユーザーのパスワード。
    表 : 18. 返される内容
    タイプ 説明
    なし
    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(文字列 correlator)

    送信要求と ECC キュー内の結果の応答レコードを関連付けます。

    このメソッドは、MID サーバーを介して送信される SOAP メッセージにのみ適用されます。提供されたコリレーターは、応答の ECC キューレコードの [エージェントコリレーター] フィールドに入力されます。MID サーバーを介して非同期自動化を設計するときに、それぞれの送信要求に一意のコリレーターを提供して、ECC キュー内の正しい結果を要求に関連付けます。

    表 : 19. パラメーター
    名前 タイプ 説明
    correlator 文字列 一意の識別子
    表 : 20. 返される内容
    タイプ 説明
    なし
    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(文字列 name, 文字列 value)

    SOAP メッセージペイロードに書き込むことで、データベースの値を上書きします。

    このメソッドは、MID サーバー を介して送信される SOAP メッセージにのみ適用されます。エンドポイント URL が SOAP エンドポイントの最大フィールド長よりも長い場合など、データベース内の SOAP メッセージにある値が無効な場合は、このメソッドを使用します。

    name パラメーターの有効な値は次のとおりです。
    • source:エンドポイント URL。
    • name:実行する SOAP メッセージ関数。
    表 : 21. パラメーター
    名前 タイプ 説明
    name 文字列 ECC パラメーターの名前。
    value 文字列 指定された ECC パラメーターに割り当てる値。
    表 : 22. 返される内容
    タイプ 説明
    なし
    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(文字列 endpoint)

    SOAP メッセージのエンドポイントを設定します。

    デフォルトでは、SOAP メッセージは SOAP メッセージレコードで指定されたエンドポイントを使用します。このメソッドを使用してデフォルトを上書きします。パラメーターなしで SOAPMessageV2() コンストラクターを使用する場合は、このメソッドを呼び出す必要があります。

    表 : 23. パラメーター
    名前 タイプ 説明
    endpoint 文字列 連携する SOAP Web サービスプロバイダーの URL。
    表 : 24. 返される内容
    タイプ 説明
    なし
    var sm = new sn_ws.SOAPMessageV2();
    sm.setEndpoint("http://web.service.endpoint");

    SOAPMessageV2 - setFollowRedirect (ブール値 followRedirect)

    自動 HTTP リダイレクトを制御する API のパラメーターを設定します。デフォルトでは、自動リダイレクトはオフになっています。

    HTTP リダイレクトの詳細については、「 HTTP でのリダイレクト」を参照してください。

    表 : 25. パラメーター
    名前 タイプ 説明
    followRedirect ブール SOAPMessageV2 呼び出しの実行時に発生するリダイレクトに API が自動的に従うかどうかを示すフラグ。
    有効な値:
    • true:自動的にリダイレクトに従います。
    • false:自動的にリダイレクトに従いません。コード内のすべてのリダイレクト条件を処理する必要があります。
    表 : 26. 戻り値
    タイプ 説明
    なし

    次のコード例は、自動リダイレクトをオンにして API にリダイレクトを処理する方法を示しています。

    var sMessage = new sn_ws.SOAPMessageV2(); //Create an empty SOAP message
    sMessage.setBasicAuth('admin','admin');
    sMessage.setSOAPAction('http://www.service-now.com/incident/insert'); //set the SOAP action to perform
    sMessage.setEndpoint('http://<instance>.service-now.com/incident.do?SOAP'); //set the web service provider endpoint
    sMessage.setRequestBody('<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:inc=\"http://www.service-now.com/incident\"><soapenv:Header/><soapenv:Body><inc:insert><short_description>Test Dynamic SOAP</short_description></inc:insert></soapenv:Body></soapenv:Envelope>');
    sMessage.setFollowRedirect(true);
    var response = sMessage.execute();
    gs.info(response.getStatusCode());
    

    出力:

    200

    次のコード例は、false に設定された自動リダイレクトを示しています。返されるステータスコードはリダイレクトコードです。この場合、コード内でリダイレクトを処理する必要があります。

    var sMessage = new sn_ws.SOAPMessageV2(); //Create an empty SOAP message
    sMessage.setBasicAuth('admin','admin');
    sMessage.setSOAPAction('http://www.service-now.com/incident/insert'); //set the SOAP action to perform
    sMessage.setEndpoint('http://<instance>.service-now.com/incident.do?SOAP'); //set the web service provider endpoint
    sMessage.setRequestBody('<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:inc=\"http://www.service-now.com/incident\"><soapenv:Header/><soapenv:Body><inc:insert><short_description>Test Dynamic SOAP</short_description></inc:insert></soapenv:Body></soapenv:Envelope>');
    sMessage.setFollowRedirect(false);
    var response = sMessage.execute();
    gs.info(response.getStatusCode());
    

    出力:

    3xx  // Redirect status code

    SOAPMessageV2 - setHttpTimeout(数字 timeoutMs)

    要求がタイムアウトするまでに SOAP メッセージが Web サービスプロバイダーからの応答を待機する時間を設定します。

    表 : 27. パラメーター
    名前 タイプ 説明
    timeoutMs 数字 Web サービスプロバイダーからの応答を待機する時間 (ミリ秒単位)。
    表 : 28. 返される内容
    タイプ 説明
    なし
    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(文字列 level)

    このメッセージおよび対応する応答のログレベルを設定します。

    SOAPMessageV2 API を使用してログレベルを設定すると、SOAP メッセージレコードで設定されたログレベルが上書きされます。エンドポイントドメインが除外されている場合、またはプロパティ glide.outbound_http_log.override が true の場合、このログレベルは適用されません。送信 Web サービスログを表示するには、次に移動します: システムログ > 送信 HTTP 要求.

    表 : 29. パラメータ
    名前 タイプ 説明
    level 文字列 ログレベル。
    有効な値:
    • すべて
    • basic
    • 高架
    表 : 30. 戻り値
    タイプ 説明
    なし
    var sm = new sn_ws.SOAPMessageV2("StockQuote","GetQuote"); //Might throw exception if message doesn't exist or not visible due to scope.
    sm.setLogLevel("all");

    SOAPMessageV2 - setMIDServer(文字列 midServerName)

    MID サーバー を介して送信される SOAP メッセージを設定します。

    デフォルトでは、SOAP メッセージは SOAP メッセージ関数レコードで指定された MID サーバー を使用します。このメソッドを使用してデフォルトを上書きします。

    表 : 31. パラメーター
    名前 タイプ 説明
    midServerName 文字列 SOAP メッセージを送信する際に使用する MID サーバー の名前。インスタンスには、名前が指定されたアクティブな MID サーバー が必要です。
    表 : 32. 返される内容
    タイプ 説明
    なし

    SOAPMessageV2 - setMutualAuth(文字列 profileName)

    SOAP メッセージの相互認証プロトコルプロファイルを設定します。

    このメソッドを使用してプロトコルプロファイルを設定すると、SOAP メッセージレコードに対して選択されたプロトコルプロファイルが上書きされます。

    表 : 33. パラメーター
    名前 タイプ 説明
    profileName 文字列 相互認証に使用するプロトコルプロファイルの名前。
    表 : 34. 返される内容
    タイプ 説明
    なし
    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(文字列 requestBody)

    Web サービスプロバイダーに送信する本文のコンテンツを設定します。

    このメソッドを使用して本文のコンテンツを設定すると、本文の変数が SOAP メッセージ関数レコードのパラメーターに置き換えられません。SOAP メッセージ本文内のすべての値を明示的に定義する必要があります。

    表 : 35. パラメーター
    名前 タイプ 説明
    requestBody 文字列 SOAP メッセージの本文。
    表 : 36. 返される内容
    タイプ 説明
    なし
    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(文字列 headerName, 文字列 headerValue)

    SOAP メッセージ内の HTTP ヘッダーを指定された値に設定します。

    表 : 37. パラメーター
    名前 タイプ 説明
    headerName 文字列 ヘッダーの名前。
    headerValue 文字列 指定されたヘッダーに割り当てる値。
    表 : 38. 返される内容
    タイプ 説明
    なし
    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(文字列 soapAction)

    この SOAP メッセージが実行する SOAP アクションを定義します。

    Web サービスプロバイダーの WSDL に、実行できる SOAP アクションが一覧表示されます。パラメーターなしで SOAPMessageV2() コンストラクターを使用する場合は、このメソッドを呼び出す必要があります。

    表 : 39. パラメーター
    名前 タイプ 説明
    soapAction 文字列 この SOAP メッセージが実行する SOAP アクション。
    表 : 40. 返される内容
    タイプ 説明
    なし
    var sm = new sn_ws.SOAPMessageV2();
    sm.setSOAPAction("GetQuote");
    //construct SOAP message by specifying endpoint and auth
    sm.execute();

    SOAPMessageV2 - setStringParameter(文字列 name, 文字列 value)

    SOAP メッセージレコードにある指定の名前の変数を、指定した値に設定します。

    値の中の XML 予約文字は、同等のエスケープ文字に変換されます。

    表 : 41. パラメーター
    名前 タイプ 説明
    name 文字列 SOAP メッセージ変数の名前。
    value 文字列 指定された変数に割り当てる値。
    表 : 42. 返される内容
    タイプ 説明
    なし
    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(文字列 name, 文字列 value)

    SOAP メッセージレコードにある指定の名前の変数を、指定した値に設定します。

    このメソッドは setStringParameter と同等ですが、XML 予約文字をエスケープしません。

    表 : 43. パラメーター
    名前 タイプ 説明
    name 文字列 SOAP メッセージ変数の名前。
    value 文字列 指定された変数に割り当てる値。
    表 : 44. 返される内容
    タイプ 説明
    なし
    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(文字列 keystoreId, 文字列 keystoreAlias, 文字列 keystorePassword, 文字列 certificateId)

    SOAP メッセージの Web サービスセキュリティの値を設定します。

    このメソッドを使用してセキュリティ値を設定すると、SOAP メッセージレコードに対して定義された Web サービスセキュリティの値が上書きされます。

    表 : 45. パラメーター
    名前 タイプ 説明
    keystoreId 文字列 使用する Java または PKCS12 キーストアの sys_id。
    keystoreAlias 文字列 公開鍵と秘密鍵を識別するエイリアス。
    keystorePassword 文字列 キーストアレコードに割り当てられたパスワード。
    certificateId 文字列 信頼できるサーバー証明書の sys_id。
    表 : 46. 返される内容
    タイプ 説明
    なし
    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");