SOAPMessageV2 - 범위 지정, 전역

  • 릴리스 버전: Zurich
  • 업데이트 날짜 2025년 07월 31일
  • 소요 시간: 21분
  • 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. 매개변수
    이름 유형 설명
    비누메시지 문자열 이 객체의 기반으로 사용할 SOAP 메시지 기록입니다.
    soapFunction 문자열 실행할 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 - 실행()

    SOAP 메시지를 엔드포인트로 보냅니다.

    이 메서드는 동기적으로 호출하므로 스크립트 실행은 호출이 완료될 때까지 기다렸다가 계속합니다.

    이 방법을 사용할 때 고려해야 할 사항:
    • 빠른 서비스 호출용으로만 이 방법을 사용하십시오. 서비스가 아무리 빨라도 이 메서드를 대량으로 호출해서는 안 됩니다.
    • 제한 시간이 매우 짧을 때만 이 방법을 사용하십시오. 그렇지 않으면 인스턴스가 정지 상태가 될 수 있습니다. 시간 초과 기간을 제어하는 두 가지 속성과 glide.http.timeoutglide.http.connection_timeout. 기본적으로 이러한 시간 제한은 각각 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(External Communication Channel) 큐로 보냅니다.

    ECC 큐의 SOAP 메시지는 SOAPClient 비즈니스 규칙에 의해 처리됩니다.

    기본적으로 이 비즈니스 규칙은 비동기식으로 실행되지 않습니다. 이 비즈니스 규칙이 비동기적으로 실행되도록 구성하려면 When 값을 Async 로 설정하고 current.update()스크립트 끝에 추가합니다. 인스턴스는 ECC 큐를 통해 메시지를 보낼 때 웹 서비스 제공자의 응답을 기다리지 않습니다.

    표 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 웹 서비스 제공자의 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)

    리디렉션할 수 있는 URI를 하나 이상 설정합니다. 허용되는 아웃바운드 URI를 제어하면 보안 문제가 줄어들고 사용자를 악성 사이트로 보내는 URL 리디렉션 공격을 방지할 수 있습니다.

    URI를 리디렉션하는 보다 포괄적인 방법은 다음을 참조하십시오 UriMatcher - 범위 지정됨.

    표 15. 매개변수
    이름 유형 설명
    URI 배열 리디렉션에 하나 이상의 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(String userName, String userPass)

    SOAP 메시지의 기본 인증 헤더를 설정합니다.

    이 방법을 사용하여 기본 인증 헤더를 설정하면 SOAP 메시지 기록에 정의된 기본 인증 값이 무효화됩니다.

    표 17. 매개변수
    이름 유형 설명
    userName 문자열 SOAP 메시지를 인증할 때 사용할 사용자 이름입니다.
    userPass 문자열 지정된 사용자의 암호입니다.
    표 18. 반환
    유형 설명
    void
    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 큐의 올바른 결과를 요청과 연결합니다.

    표 19. 매개변수
    이름 유형 설명
    관련자 문자열 고유 식별자
    표 20. 반환
    유형 설명
    void
    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 메시지의 값이 잘못된 경우 이 메서드를 사용합니다.

    name 매개변수에 유효한 값입니다.
    • source: 엔드포인트 URL입니다.
    • name: 실행할 SOAP 메시지 함수입니다.
    표 21. 매개변수
    이름 유형 설명
    이름 문자열 ECC 매개변수의 이름입니다.
    문자열 지정된 ECC 매개변수에 할당할 값입니다.
    표 22. 반환
    유형 설명
    void
    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() 생성자를 사용할 때 이 메서드를 호출해야 합니다.

    표 23. 매개변수
    이름 유형 설명
    엔드포인트 문자열 인터페이스할 SOAP 웹 서비스 제공자의 URL입니다.
    표 24. 반환
    유형 설명
    void
    var sm = new sn_ws.SOAPMessageV2();
    sm.setEndpoint("http://web.service.endpoint");

    SOAPMessageV2 - setFollowRedirect(부울 팔로우 리디렉션)

    자동 HTTP 리디렉션을 제어하는 API에서 매개변수를 설정합니다. 기본적으로 자동 리디렉션은 사용 중지되어 있습니다.

    HTTP 리디렉션에 대한 자세한 내용은 HTTP의 리디렉션을 참조하세요.

    표 25. 매개변수
    이름 유형 설명
    팔로우리디렉션 부울 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 메시지가 웹 서비스 제공자의 응답을 기다리는 시간을 설정합니다.

    표 27. 매개변수
    이름 유형 설명
    타임아웃Ms 번호 웹 서비스 제공자의 응답을 기다리는 시간(밀리초)입니다.
    표 28. 반환
    유형 설명
    void
    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인 경우 이 로그 수준이 적용되지 않을 수 있습니다. 아웃바운드 웹 서비스 로그를 보려면 다음으로 이동합니다. 시스템 로그 > 아웃바운드 HTTP 요청.

    표 29. 매개변수
    이름 유형 설명
    수준 문자열 로그 수준입니다.
    유효한 값은 다음과 같습니다.
    • 모두
    • 기본
    • 높은
    표 30. 반환
    유형 설명
    void
    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 문자열 MID 서버 SOAP 메시지를 보낼 이름입니다. 인스턴스에 지정된 이름의 활성 MID 서버 항목이 있어야 합니다.
    표 32. 반환
    유형 설명
    void

    SOAPMessageV2 - setMutualAuth(문자열 프로파일 이름)

    SOAP 메시지에 대한 상호 인증 프로토콜 프로파일을 설정합니다.

    이 메소드를 사용하여 프로토콜 프로파일을 설정하면 SOAP 메시지 레코드에 대해 선택된 프로토콜 프로파일이 재정의됩니다.

    표 33. 매개변수
    이름 유형 설명
    profileName 문자열 상호 인증에 사용할 프로토콜 프로파일의 이름입니다.
    표 34. 반환
    유형 설명
    void
    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 메시지 본문 내의 모든 값을 명시적으로 정의해야 합니다.

    표 35. 매개변수
    이름 유형 설명
    requestBody 문자열 SOAP 메시지의 본문입니다.
    표 36. 반환
    유형 설명
    void
    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, String headerValue)

    SOAP 메시지의 HTTP 헤더를 지정된 값으로 설정합니다.

    표 37. 매개변수
    이름 유형 설명
    headerName 문자열 헤더의 이름입니다.
    headerValue 문자열 지정된 헤더에 할당할 값입니다.
    표 38. 반환
    유형 설명
    void
    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)

    이 SOAP 메시지가 수행하는 SOAP 작업을 정의합니다.

    웹 서비스 제공자의 WSDL은 수행할 수 있는 SOAP 작업을 나열합니다. 매개변수 없이 SOAPMessageV2() 생성자를 사용할 때 이 메서드를 호출해야 합니다.

    표 39. 매개변수
    이름 유형 설명
    비누액션 문자열 이 SOAP 메시지가 수행하는 SOAP 작업입니다.
    표 40. 반환
    유형 설명
    void
    var sm = new sn_ws.SOAPMessageV2();
    sm.setSOAPAction("GetQuote");
    //construct SOAP message by specifying endpoint and auth
    sm.execute();

    SOAPMessageV2 - setStringParameter(문자열 이름, 문자열 값)

    SOAP 메시지 기록에서 지정된 이름의 변수를 지정된 값으로 설정합니다.

    값의 XML 예약 문자는 해당 이스케이프 문자로 변환됩니다.

    표 41. 매개변수
    이름 유형 설명
    이름 문자열 SOAP 메시지 변수의 이름입니다.
    문자열 지정된 변수에 할당할 값입니다.
    표 42. 반환
    유형 설명
    void
    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 예약 문자를 이스케이프하지 않습니다.

    표 43. 매개변수
    이름 유형 설명
    이름 문자열 SOAP 메시지 변수의 이름입니다.
    문자열 지정된 변수에 할당할 값입니다.
    표 44. 반환
    유형 설명
    void
    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)

    SOAP 메시지에 대한 웹 서비스 보안 값을 설정합니다.

    이 메서드를 사용하여 보안 값을 설정하면 SOAP 메시지 기록에 대해 정의된 웹 서비스 보안 값을 덮어씁니다.

    표 45. 매개변수
    이름 유형 설명
    키 스토어 ID 문자열 사용할 Java 또는 PKCS12 키 스토어의 Sys_id입니다.
    키 스토어 별칭 문자열 공개 키와 개인 키를 식별하는 별칭입니다.
    keystorePassword 문자열 키 스토어 기록에 할당된 암호입니다.
    certificateId 문자열 신뢰할 수 있는 서버 인증서의 Sys_id입니다.
    표 46. 반환
    유형 설명
    void
    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");