SOAPMessageV2 - スコープ指定、グローバル
SOAPMessageV2 API は、JavaScript を使用して送信 SOAP メッセージを送信するメソッドを提供します。
この API を使用して、SOAP プロバイダーによって返される応答を管理します。
この API は、スコープ対象のアプリケーションまたはグローバルスコープで使用できます。この API は sn_ws 名前空間で実行されます。
SOAPMessageV2 - SOAPMessageV2()
空の SOAPMessageV2 オブジェクトをインスタンス化します。
この方法でインスタンス化されたオブジェクトを使用する場合は、SOAP アクションとエンドポイントを手動で指定する必要があります。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
var sm = new sn_ws.SOAPMessageV2();
SOAPMessageV2 - SOAPMessageV2(文字列 soapMessage, 文字列 soapFunction)
SOAP メッセージレコードとそのレコードに関連付けられた関数から、SOAPMessageV2 オブジェクトをインスタンス化します。
SOAP メッセージレコードのエンドポイント、認証、MID サーバー 設定などの値がこのオブジェクトに適用されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| 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.timeout と glide.http.connection_timeout の 2 つがあります。デフォルトでは、これらのタイムアウトはそれぞれ 175 秒と 10 秒に設定されています。
- 一般に、要求が MID サーバーを経由する必要がある場合は、このメソッドを使用しないでください。 MID サーバー 要求は、非同期キューである外部通信チャネル (ECC) キューを経由する必要があります。スレッドは、要求自体によって保持されるだけでなく、 MID サーバー がインスタンスに応答するのを待つ間も保持されます。MID サーバーが関係している場合は、センサービジネスルールで非同期呼び出しを使用します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 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 サービスプロバイダーからの応答を待機しません。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 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 メッセージのエンドポイントを取得します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 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 メッセージ本文の内容を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 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 に設定します。
| 名前 | タイプ | 説明 |
|---|---|---|
| headerName | 文字列 | 値を取得する要求ヘッダー。 |
| タイプ | 説明 |
|---|---|
| 文字列 | 指定されたヘッダーの値。 |
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 に設定します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| オブジェクト | 各ヘッダーの名前を関連する値にマッピングするオブジェクト。 |
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 - スコープ指定」を参照してください。
| 名前 | タイプ | 説明 |
|---|---|---|
| URI | アレイ | 1 つ以上の URI がリダイレクトに許可されています。各 URI は「文字列」形式でリストする必要があります。 |
| タイプ | 説明 |
|---|---|
| なし |
次の例は、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 メッセージレコードで定義された基本認証値が上書きされます。
| 名前 | タイプ | 説明 |
|---|---|---|
| userName | 文字列 | SOAP メッセージを認証するときに使用するユーザー名。 |
| userPass | 文字列 | 指定されたユーザーのパスワード。 |
| タイプ | 説明 |
|---|---|
| なし |
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 キュー内の正しい結果を要求に関連付けます。
| 名前 | タイプ | 説明 |
|---|---|---|
| correlator | 文字列 | 一意の識別子 |
| タイプ | 説明 |
|---|---|
| なし |
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 メッセージにある値が無効な場合は、このメソッドを使用します。
- source:エンドポイント URL。
- name:実行する SOAP メッセージ関数。
| 名前 | タイプ | 説明 |
|---|---|---|
| name | 文字列 | ECC パラメーターの名前。 |
| value | 文字列 | 指定された ECC パラメーターに割り当てる値。 |
| タイプ | 説明 |
|---|---|
| なし |
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() コンストラクターを使用する場合は、このメソッドを呼び出す必要があります。
| 名前 | タイプ | 説明 |
|---|---|---|
| endpoint | 文字列 | 連携する SOAP Web サービスプロバイダーの URL。 |
| タイプ | 説明 |
|---|---|
| なし |
var sm = new sn_ws.SOAPMessageV2();
sm.setEndpoint("http://web.service.endpoint");
SOAPMessageV2 - setFollowRedirect (ブール値 followRedirect)
自動 HTTP リダイレクトを制御する API のパラメーターを設定します。デフォルトでは、自動リダイレクトはオフになっています。
HTTP リダイレクトの詳細については、「 HTTP でのリダイレクト」を参照してください。
| 名前 | タイプ | 説明 |
|---|---|---|
| followRedirect | ブール | SOAPMessageV2 呼び出しの実行時に発生するリダイレクトに API が自動的に従うかどうかを示すフラグ。 有効な値:
|
| タイプ | 説明 |
|---|---|
| なし |
次のコード例は、自動リダイレクトをオンにして 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 サービスプロバイダーからの応答を待機する時間を設定します。
| 名前 | タイプ | 説明 |
|---|---|---|
| timeoutMs | 数字 | Web サービスプロバイダーからの応答を待機する時間 (ミリ秒単位)。 |
| タイプ | 説明 |
|---|---|
| なし |
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 サービスログを表示するには、次に移動します: .
| 名前 | タイプ | 説明 |
|---|---|---|
| level | 文字列 | ログレベル。 有効な値:
|
| タイプ | 説明 |
|---|---|
| なし |
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 サーバー を使用します。このメソッドを使用してデフォルトを上書きします。
| 名前 | タイプ | 説明 |
|---|---|---|
| midServerName | 文字列 | SOAP メッセージを送信する際に使用する MID サーバー の名前。インスタンスには、名前が指定されたアクティブな MID サーバー が必要です。 |
| タイプ | 説明 |
|---|---|
| なし |
SOAPMessageV2 - setMutualAuth(文字列 profileName)
SOAP メッセージの相互認証プロトコルプロファイルを設定します。
このメソッドを使用してプロトコルプロファイルを設定すると、SOAP メッセージレコードに対して選択されたプロトコルプロファイルが上書きされます。
| 名前 | タイプ | 説明 |
|---|---|---|
| profileName | 文字列 | 相互認証に使用するプロトコルプロファイルの名前。 |
| タイプ | 説明 |
|---|---|
| なし |
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 メッセージ本文内のすべての値を明示的に定義する必要があります。
| 名前 | タイプ | 説明 |
|---|---|---|
| requestBody | 文字列 | SOAP メッセージの本文。 |
| タイプ | 説明 |
|---|---|
| なし |
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 ヘッダーを指定された値に設定します。
| 名前 | タイプ | 説明 |
|---|---|---|
| headerName | 文字列 | ヘッダーの名前。 |
| headerValue | 文字列 | 指定されたヘッダーに割り当てる値。 |
| タイプ | 説明 |
|---|---|
| なし |
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() コンストラクターを使用する場合は、このメソッドを呼び出す必要があります。
| 名前 | タイプ | 説明 |
|---|---|---|
| soapAction | 文字列 | この SOAP メッセージが実行する SOAP アクション。 |
| タイプ | 説明 |
|---|---|
| なし |
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 予約文字は、同等のエスケープ文字に変換されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| name | 文字列 | SOAP メッセージ変数の名前。 |
| value | 文字列 | 指定された変数に割り当てる値。 |
| タイプ | 説明 |
|---|---|
| なし |
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 予約文字をエスケープしません。
| 名前 | タイプ | 説明 |
|---|---|---|
| name | 文字列 | SOAP メッセージ変数の名前。 |
| value | 文字列 | 指定された変数に割り当てる値。 |
| タイプ | 説明 |
|---|---|
| なし |
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 サービスセキュリティの値が上書きされます。
| 名前 | タイプ | 説明 |
|---|---|---|
| keystoreId | 文字列 | 使用する Java または PKCS12 キーストアの sys_id。 |
| keystoreAlias | 文字列 | 公開鍵と秘密鍵を識別するエイリアス。 |
| keystorePassword | 文字列 | キーストアレコードに割り当てられたパスワード。 |
| certificateId | 文字列 | 信頼できるサーバー証明書の sys_id。 |
| タイプ | 説明 |
|---|---|
| なし |
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");