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 메시지 기록입니다. |
| soap함수 | 문자열 | 실행할 SOAP 함수입니다. 사용 가능한 SOAP 함수는 웹 서비스 제공자가 제공한 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을 제어하는 두 가지 속성이 있습니다. 기본적으로 이러한 시간 제한은 각각 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 큐를 통해 메시지를 보낼 때 웹 서비스 제공자의 응답을 기다리지 않습니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 안 함 |
| 유형 | 설명 |
|---|---|
| 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 웹 서비스 제공자의 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(배열 Uris)
리디렉션이 허용된 하나 이상의 URI를 설정합니다. 허용된 아웃바운드 URI를 제어하면 보안 문제가 줄어들고 사용자를 악성 사이트로 보내는 URL 리디렉션 공격을 방지하는 데 도움이 됩니다.
URI를 리디렉션하는 보다 포괄적인 방법은 다음을 참조하십시오 UriMatcher - 범위 지정됨.
| 이름 | 유형 | 설명 |
|---|---|---|
| 유리스 | 배열 | 하나 이상의 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(문자열 관련자)
아웃바운드 요청과 결과 응답 기록을 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 서버. 엔드포인트 URL이 최대 SOAP 엔드포인트 필드 길이보다 긴 경우와 같이 데이터베이스의 SOAP 메시지의 값이 유효하지 않은 경우 이 방법을 사용하십시오.
- source: 엔드포인트 URL입니다.
- name: 실행할 SOAP 메시지 함수입니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 이름 | 문자열 | ECC 매개변수의 이름입니다. |
| 값 | 문자열 | 지정된 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() 생성자를 사용할 때 이 메서드를 호출해야 합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 엔드포인트 | 문자열 | 인터페이스할 SOAP 웹 서비스 제공자의 URL입니다. |
| 유형 | 설명 |
|---|---|
| 무효 |
var sm = new sn_ws.SOAPMessageV2();
sm.setEndpoint("http://web.service.endpoint");
SOAPMessageV2 - setFollowRedirect(부울 followRedirect)
자동 HTTP 리디렉션을 제어하는 API에서 매개변수를 설정합니다. 기본적으로 자동 리디렉션은 꺼져 있습니다.
HTTP 리디렉션에 대한 자세한 내용은 HTTP의 리디렉션을 참조하십시오.
| 이름 | 유형 | 설명 |
|---|---|---|
| 팔로우리디렉션 | 부울 | API가 SOAPMessageV2 호출을 실행할 때 발생하는 리디렉션을 자동으로 따라야 하는지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
|
| 유형 | 설명 |
|---|---|
| 없음 |
다음 코드 예제에서는 자동 리디렉션을 설정하고 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(Number timeoutMs)
요청 시간이 초과되기 전에 SOAP 메시지가 웹 서비스 제공자로부터 응답을 기다리는 시간을 설정합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| timeoutMs | 번호 | 웹 서비스 제공자로부터 응답을 기다리는 시간(밀리초)입니다. |
| 유형 | 설명 |
|---|---|
| 무효 |
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 이 예인 경우 이 로그 수준이 적용되지 않을 수 있습니다. 아웃바운드 웹 서비스 로그를 보려면 다음으로 이동하십시오. .
| 이름 | 유형 | 설명 |
|---|---|---|
| 수준 | 문자열 | 로그 수준입니다. 유효한 값은 다음과 같습니다.
|
| 유형 | 설명 |
|---|---|
| 무효 |
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)
SOAP 메시지가 다음을 통해 전송되도록 구성합니다 MID 서버.
기본적으로 SOAP 메시지는 SOAP 메시지 함수 기록에 지정된 값을 MID 서버 사용합니다. 이 방법을 사용하여 기본값을 재정의합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| midServerName | 문자열 | MID 서버 SOAP 메시지를 보낼 이름입니다. 인스턴스에는 지정된 이름의 활성이 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)
웹 서비스 제공자에게 보낼 본문 컨텐츠를 설정합니다.
이 메서드를 사용하여 본문 컨텐츠를 설정할 때 본문의 변수가 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 작업을 정의합니다.
웹 서비스 제공자의 WSDL에는 수행할 수 있는 SOAP 동작이 나열되어 있습니다. 매개변수 없이 SOAPMessageV2() 생성자를 사용할 때 이 메서드를 호출해야 합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| soap동작 | 문자열 | 이 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 예약 문자는 해당하는 이스케이프 문자로 변환됩니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 이름 | 문자열 | SOAP 메시지 변수의 이름입니다. |
| 값 | 문자열 | 지정된 변수에 할당할 값입니다. |
| 유형 | 설명 |
|---|---|
| 무효 |
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 예약 문자를 이스케이프하지 않습니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 이름 | 문자열 | SOAP 메시지 변수의 이름입니다. |
| 값 | 문자열 | 지정된 변수에 할당할 값입니다. |
| 유형 | 설명 |
|---|---|
| 무효 |
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 메시지에 대한 웹 서비스 보안 값을 설정합니다.
이 방법을 사용하여 보안 값을 설정하면 SOAP 메시지 기록에 대해 정의된 웹 서비스 보안 값을 겹쳐씁니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 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");