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 サーバー 設定などの値がこのオブジェクトに適用されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| soapメッセージ | 文字列 | このオブジェクトのベースとして使用する 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 ビジネスルールによって処理されます。
デフォルトでは、このビジネスルールは非同期的に実行されません。このビジネスルールを非同期で実行するように構成するには、[時期] の値を [非同期] に設定し、スクリプトの末尾に 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 - setAllowedRedirectURI (アレイ 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 メッセージを認証するときに使用するユーザー名。 |
| ユーザーパス | 文字列 | 指定されたユーザーのパスワード。 |
| タイプ | 説明 |
|---|---|
| なし |
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(文字列コリレーター)
送信要求とその結果の応答レコードを ECC キューに関連付けます。
この方法は、MID サーバー経由で送信される SOAP メッセージにのみ適用されます。指定されたコリレーターは、応答の ECC キューレコードの [ エージェントコリレーター ] フィールドに入力されます。MID サーバーを介して非同期自動化を設計するときに、ECC キュー内の正しい結果を要求に関連付けるために、各送信要求に一意のコリレーターを指定します。
| 名前 | タイプ | 説明 |
|---|---|---|
| コリレーター | 文字列 | 一意の識別子 |
| タイプ | 説明 |
|---|---|
| なし |
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(文字列名, 文字列値)
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(文字列エンドポイント)
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 でのリダイレクト」を参照してください。
| 名前 | タイプ | 説明 |
|---|---|---|
| フォローリダイレクト | ブーリアン | 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 サービスプロバイダーからの応答を待機する時間を設定します。
| 名前 | タイプ | 説明 |
|---|---|---|
| timeoutM | 番号 | 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(文字列レベル)
このメッセージと対応する応答のログレベルを設定します。
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 サーバー を使用します。このメソッドを使用して、デフォルトを上書きします。
| 名前 | タイプ | 説明 |
|---|---|---|
| midServer名 | 文字列 | 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(文字列名, 文字列値)
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(文字列名, 文字列値)
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 サービスセキュリティ値が上書きされます。
| 名前 | タイプ | 説明 |
|---|---|---|
| キーストア ID | 文字列 | 使用する Java または PKCS12 キーストアのSys_id。 |
| キーストアエイリアス | 文字列 | 公開鍵と秘密鍵を識別するエイリアス。 |
| キーストアパスワード | 文字列 | キーストアレコードに割り当てられたパスワード。 |
| 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");