계층적 쿼리 작성

  • 릴리스 버전: Zurich
  • 업데이트 날짜 2025년 07월 31일
  • 소요 시간: 6분
  • 조건 작성기에서 계층적 관계를 활용하여 보다 효율적인 쿼리를 단순화하고 작성합니다.

    주요 이점

    • 기록 계층 구조를 기반으로 조건 작성기에서 테이블 데이터를 필터링합니다.
    • 단일 조건으로 전체 계층 구조를 검색합니다.
    • 더 적은 지속적인 유지관리로 쿼리 작성을 간소화합니다.

    조건 작성기에서 쿼리를 작성하는 작업은 여러 OR 조건을 사용하여 계층적 관계의 각 수준을 검색해야 하는 경우 번거로울 수 있습니다. 계층적 쿼리는 단일 노드를 지정하고 거기에서 계층 구조를 검색하여 시간과 노력을 절약할 수 있도록 하여 이 프로세스를 간소화합니다.

    기록 계층 구조

    기본적으로 인스턴스에는 다음과 같은 기록 계층 구조가 포함됩니다.

    • 부서 [cmn_department] 테이블의 부서 계층 구조
    • 위치 [cmn_location] 테이블의 위치 계층 구조
    • 사용자 [sys_user] 테이블의 관리자 계층 구조

    다음으로 이동하여 미리 정의된 이러한 기록 계층 구조를 볼 수 있습니다. 모두 > 시스템 정의 > 기록 계층 구조.

    각 기록 계층 구조는 동일한 테이블에 있는 기록 간의 상위-하위 관계를 포함하는 참조 필드를 기반으로 합니다.

    • 부서 계층 구조는 부서 [cmn_department] 테이블의 상위 참조 필드를 기반으로 합니다.
    • 위치 계층 구조는 위치 [cmn_location] 테이블의 상위 참조 필드를 기반으로 합니다.
    • 관리자 계층 구조는 사용자 [sys_user] 테이블의 관리자 참조 필드를 기반으로 합니다.

    예를 들어, 위치 [cmn_location] 테이블의 위치 계층 구조는 상위 참조 필드를 사용합니다. 각 위치에는 위치 [cmn_location] 테이블의 또 다른 기록인 상위 항목이 있습니다. 예를 들어 시카고 및 스프링필드 위치 기록의 상위 필드에는 일리노이 위치 기록의 sys_id 값이 있습니다. 도로명 주소에는 상위 필드에 자신이 속한 도시의 위치가 sys_id.

    조건 작성기에서 위치 계층 구조를 사용하여 대상 쿼리를 생성할 수 있습니다. 예를 들어 위치 계층 구조에서 시작점을 지정하고 계층 구조를 쿼리하여 계층 구조의 해당 부분에서 위치와 연결된 모든 자산을 검색할 수 있습니다.

    계층 경로

    레코드 계층 구조에 속하는 각 레코드는 계층 구조 정보를 경로 필드에 저장합니다. 경로 필드는 조건 작성기에서 계층 구조 전체를 검색하는 데 사용됩니다.

    미리 정의된 각 기록 계층 구조에 대한 경로는 에 ServiceNow AI Platform 의해 자동으로 생성되어 부서 [cmn_department], 위치 [cmn_location] 및 사용자 [sys_user] 테이블의 경로 필드에 저장됩니다.

    • 부서 경로는 부서 [cmn_department] 테이블의 상위 HP1 필드에 저장됩니다.
    • 위치 경로는 위치 [cmn_location] 테이블의 상위 HP1 필드에 저장됩니다.
    • 관리 경로는 사용자 [sys_user] 테이블의 관리자 HP1 필드에 저장됩니다.

    예를 들어 위치 ServiceNow AI Platform [cmn_location] 테이블의 각 위치 기록에 대한 계층 구조 경로를 자동으로 빌드합니다. 이렇게 하면 각 위치에 하위 위치가 있을 수 있는 중첩 구조가 생성되어 트리와 같은 계층 구조를 형성합니다. 또한 ServiceNow AI Platform 이 경로는 기록이 추가, 변경 또는 제거될 때 이러한 경로를 업데이트합니다.

    다른 많은 테이블에는 기록 간의 상위-하위 관계를 나타내는 자체 참조 필드가 포함되어 있습니다. 그러나 기록 계층 구조 [sys_record_hierarchy] 테이블에서 계층 구조를 정의할 때까지 해당 테이블에 의해 ServiceNow AI Platform 계층 경로가 생성되지 않습니다.

    사용 사례

    부서 [cmn_department], 위치 [cmn_location], 사용자 [sys_user] 테이블에는 기본적으로 상위-하위 관계가 있는 참조 필드가 포함되어 있습니다.

    부서 계층 구조
    부서 계층 구조 기록 계층 구조를 사용하여 회사의 부서와 연결된 자산을 검색합니다.

    각 부서 기록에는 계층 경로가 포함되어 있어 부서 계층 구조를 기반으로 조건 작성기에서 쿼리를 생성할 수 있습니다. 자산 레코드에는 부서 참조 필드가 있으므로 특정 부서에 속한 자산을 쿼리할 수 있습니다.

    • 다음과 같은 쿼리를 사용하여 IT 부서에 속한 모든 자산을 찾습니다.

      [부서] [계층 구조에 있음] [부서 계층 구조] 시작 위치 [IT], [포함됨]

      이 예에서 계층 구조를 검색하면 IT 부서에 속한 부서와 연결된 자산 등을 포함하여 IT 부서와 연결된 자산이 반환됩니다.

    • 다음과 같은 쿼리를 사용하여 부서 [cmn_department] 테이블에서 직접 필터링하여 IT 부서 아래의 모든 부서를 찾습니다.

      [상위] [계층 구조에 있음] [부서 계층 구조] 시작 위치 [IT], [포함됨]

    위치 계층 구조
    위치 계층 구조 기록 계층 구조를 사용하여 위치에 따라 기록을 검색합니다.

    각 위치 기록에는 계층 경로가 포함되어 있어 위치 계층 구조를 기반으로 조건 작성기에서 쿼리를 생성할 수 있습니다. 인시던트 기록에는 위치 참조 필드가 있으므로 호출자의 위치를 기반으로 인시던트를 검색할 수 있습니다.

    • 다음과 같은 쿼리를 사용하여 일리노이주에 기반을 둔 호출자의 모든 인시던트를 찾습니다.

      [숙박 위치 정보] [계층 구조에 있음] [위치 계층 구조]에서 시작하는 [일리노이], [포함됨]

      이 쿼리는 호출자의 위치가 일리노이, 일리노이의 모든 도시 또는 일리노이의 모든 도시의 주소인 인시던트를 반환합니다.

    • 일리노이의 도시와 도로명 주소에 대한 인시던트를 찾을 수 있지만 다음과 같은 쿼리를 사용하여 호출자 위치가 단순히 일리노이인 인시던트는 찾을 수 없습니다.

      [숙박 위치 정보] [계층 구조에 있음] [위치 계층 구조] [제외됨]인 [일리노이]에서 시작

    • 다음과 같은 쿼리에서 동적 필터를 사용하여 로그인한 사용자로서의 위치를 기반으로 모든 인시던트를 찾습니다.

      [숙박 위치 정보] [계층 구조에 있음(동적)] [포함됨]인 [내 위치]에서 시작하는 [위치 계층 구조]

    관리자 계층 구조
    관리 계층 구조 기록 계층 구조를 사용하여 조직의 관리 체인 전체에서 기록을 검색합니다.

    각 사용자 기록에는 관리 계층 구조를 기반으로 조건 작성기에서 쿼리를 생성할 수 있는 계층 경로가 포함되어 있습니다. 테이블을 쿼리하고 사용자 [sys_user] 테이블을 가리키는 참조 필드를 선택하면 관리 체인을 통해 검색할 수 있습니다.

    • 다음과 같은 쿼리를 사용하여 Bud Richman에게 보고하는 사용자에게 할당된 모든 인시던트를 찾습니다.

      [할당 대상] [계층 구조에 있음] [관리자 계층 구조] [Bud Richman]에서 시작 [포함됨]

      이 예에서 계층 구조를 검색하면 Bud에게 보고하는 사용자와 그 직속 부하에게 할당된 인시던트 등을 포함하여 Bud Richman에게 할당된 인시던트가 반환됩니다.

    • 다음과 같은 동적 쿼리를 사용하여 본인과 조직의 사용자에게 할당된 모든 인시던트를 찾습니다.

      [할당 대상] [계층 구조에 있음(동적)] [관리자 계층 구조]에서 시작([포함됨])

    • 다음과 같은 쿼리를 사용하여 사용자 [sys_user] 테이블에서 직접 필터링하여 관리 체인 자체를 봅니다.

      [관리자] [계층 구조에 있음] [관리자 계층 구조] [Bud Richman]에서 시작 [포함됨]

    • 다음과 같은 동적 쿼리를 사용하여 사용자 [sys_user] 테이블에서 직접 필터링하여 보고하는 사용자를 봅니다.

      [관리자] [계층 구조에 있음(동적)] [관리자 계층 구조]에서 시작([포함됨])

    기록 계층 구조 작성 개요

    인스턴스에 포함된 미리 정의된 기록 계층 구조 외에도, 선택한 테이블에 기록 계층 구조를 구축할 수 있습니다.

    동일한 테이블에 있는 관련 기록 간에 계층 구조를 구축하려면 자체 참조 필드가 필요합니다. 계층 구조를 만들 때 상위-하위 관계를 이미 정의한 기존 참조 필드를 사용하거나 자체 참조 필드를 생성하여 각 기록에 적합한 값으로 채울 수 있습니다.

    1. 계층 쿼리를 작성하는 데 사용할 상위-하위 기록이 포함된 테이블을 식별합니다. 예를 들어 관련 자산을 기반으로 쿼리를 작성하려면 자산 [alm_asset] 테이블을 기반으로 기록 계층 구조를 정의할 수 있습니다.
    2. 테이블에서 기록 간의 관계를 정의하는 참조 필드를 결정합니다. 예를 들어, 자산 [alm_asset] 테이블의 상위 필드는 자산의 상위 자산을 설명합니다.
    3. 기록 계층 구조 [sys_record_hierarchy] 테이블에 계층 구조를 만들고 사용할 테이블과 참조 필드를 지정합니다. 테이블의 ServiceNow AI Platform 각 기록에 계층 경로 정보를 자동으로 추가합니다.
    4. 생성한 계층 구조를 선택하여 조건 작성기에서 계층 쿼리를 생성합니다. 연산자를 사용하여 계층 구조를 검색합니다.