직접 웹 서비스

  • 릴리스 버전: Xanadu
  • 업데이트 날짜 2024년 08월 01일
  • 읽기5분
  • 올바른 액세스 제어 목록이 구성된 경우 시스템의 모든 테이블에 대해 직접 웹 서비스를 사용할 수 있습니다.

    들어오는 메시지의 지원되는 형식은 문서 스타일 리터럴 XML SOAP 문서(Document/Literal)입니다. 직접 웹 서비스 WSDL 설명과 XML 스키마를 검색하려면 상대 URL을 가리키십시오 <tablename>.do? WSDL입니다. 예를 들어, 온라인 데모 시스템의 인시던트 테이블에 대한 WSDL을 검색하려면 다음 URL을 사용합니다. https://<인스턴스 이름>.service-now.com/incident.do?WSDL.

    확장된 쿼리 매개변수

    확장 쿼리 매개변수를 사용하면 get, getKeysgetRecords 함수를 사용할 때 SOAP 쿼리의 반환 결과를 필터링하고 수정할 수 있습니다.
    주:
    확장 쿼리 요소 이름 앞에는 두 개의 밑줄 문자가 옵니다.
    표 1. 사용 가능한 확장 쿼리 매개변수
    매개변수 설명 예제
    __encoded_query 반환된 결과를 필터링하는 데 사용할 인코딩된 쿼리 문자열을 지정합니다. 인코딩된 쿼리 문자열 형식은 sysparm_query URL 매개 변수에 지정할 수 있는 값과 유사합니다. RSS 피드 생성기 예제에서 인코딩된 쿼리 작성 예제를 참조하세요. <__encoded_query>active=true^category='하드웨어'</__encoded_query>
    __order_by 반환된 결과를 지정된 필드별로 정렬하도록 지시합니다. <__order_by>우선순위</__order_by>
    __order_by_desc 반환된 결과를 지정된 필드별로 내림차순으로 정렬하도록 지시합니다. <__order_by_desc>opened_date</__order_by_desc>
    __exclude_columns 결과 집합에서 제외할 쉼표로 구분된 필드 이름 목록을 지정합니다. <__exclude_columns>sys_created_on,sys_created_by,caller_id,우선순위</__exclude_columns>
    __한계 반환되는 기록 수를 제한합니다. <__limit>100</__limit>
    __first_row 결과를 세트의 시작부터 이 기록 수로 오프셋하도록 지시합니다. __last_row와 함께 사용하면 결과 창을 쿼리하는 효과가 있습니다. 결과에는 첫 번째 행 번호가 포함됩니다. <__first_row>250</__first_row>
    __last_row 결과를 세트의 시작부터 이 기록 수 또는 지정된 경우 __start_row 값으로 제한하도록 지시합니다. __first_row와 함께 사용하면 결과 창을 쿼리하는 효과가 있습니다. 결과는 마지막 행 번호보다 작으며 마지막 행을 포함하지 않습니다. <__last_row>500</__last_row>
    __use_view 반환되는 결과를 제한하고 확대하는 데 사용할 이름으로 양식 뷰를 지정합니다. 양식 뷰에 caller_id.email과 같은 심층 참조 필드가 포함되어 있으면 이 필드도 결과에 반환됩니다. <__use_view>soap_view</__use_view>

    직접 웹 서비스 네임스페이스

    각 테이블에 대한 고유 네임스페이스 지정

    glide.wsdl.definition.use_unique_namespace 속성은 각 테이블의 직접 웹 서비스 WSDL에 고유한 targetNamespace 속성이 있도록 합니다. 이 속성은 기본적으로 true이며, 테이블의 직접 웹 서비스 WSDL이 http://www.service-now.com/<table name> 값을 사용해야 targetNamespace 합니다. false인 경우(또는 속성이 없는 경우) 모든 테이블은 동일한 targetNamespace값 http://www.service-now.com 를 사용합니다. 또한 모든 테이블이 동일한 운영 이름을 공유하기 때문에 둘 ServiceNow 이상의 웹 서비스를 사용하려는 웹 서비스 클라이언트는 여러 테이블 간의 요청을 구분할 수 없습니다. 고유한 targetNamespace 값을 사용하면 웹 서비스 클라이언트가 여러 테이블 간에 요청을 구분할 수 있습니다.

    예를 들어, 인시던트 테이블에 대한 직접 웹 서비스 WSDL은 다음 targetNamepsace 값을 사용합니다.

    <wsdl:definitions xmlns:soapenc= "http://schemas.xmlsoap.org/soap/encoding/"xmlns:wsdl = "http://schemas.xmlsoap.org/wsdl/"xmlns:http = "http://schemas.xmlsoap.org/wsdl/http/"xmlns:tns = "http://www.service-now.com/incident"xmlns:xsd = "http://www.w3.org/2001/XMLSchema"xmlns:mime = "http://schemas.xmlsoap.org/wsdl/mime/"xmlns:soap = "http://schemas.xmlsoap.org/wsdl/soap/"targetNamespace = "http://www.service-now.com/incident" ><wsdl:types><xsd:schema elementFormDefault = "unqualified"targetNamespace = "http://www.service-now.com/incident" >

    네임스페이스 요구 사항 설정

    ServiceNow의 WSDL 스키마는 기본적으로 elementFormDefault="unqualified". 이 속성은 로컬로 선언된 요소가 인스턴스 문서에서 로 targetNamepsace 한정되어야 하는지 여부를 나타냅니다. 이 특성의 값이 정규화되지 않은 경우 로컬로 선언된 요소는 targetNamepsace. 이 특성의 값이 한정된 경우 로컬로 선언된 요소는 targetNamepsace.

    그러나 이는 WSDL에서 생성된 클라이언트(예: .NET, Axis2, webMethods)가 임베디드 스키마를 처리하는 방식과 호환되지 않습니다. 결과적으로 스키마 네임스페이스가 제거되어 웹 서비스 응답을 구문 분석할 수 없게 됩니다.

    이 호환성 문제를 극복하기 위해 호출 glide.wsdl.schema.UnqualifiedElementFormDefault 된 부울 속성이 도입되었습니다. 이 속성의 기본값은 true 입니다. false로 설정하면 WSDL에서 생성된 클라이언트가 웹 서비스 호출의 리턴 값을 구문 분석할 수 있습니다. 다음 웹 서비스 속성 페이지를 사용하여 이 속성을 수정할 수 있습니다. 시스템 속성 > 웹 서비스.

    중복 서비스 이름 허용

    기본적으로 동적으로 작성된 WSDL의 서비스 이름은 고유하며 형식은 다음과 같습니다.

    ServiceNow_<table name>

    중복된 서비스 이름을 허용하기 위해 관리자는 속성을 false로 설정할 glide.wsdl.unique_service_name 수 있습니다. 속성이 없는 경우 속성을 만듭니다.