계층적 쿼리 작성
조건 작성기에서 계층적 관계를 활용하여 보다 효율적인 쿼리를 단순화하고 작성합니다.
주요 이점
- 기록 계층 구조를 기반으로 조건 작성기에서 테이블 데이터를 필터링합니다.
- 단일 조건으로 전체 계층 구조를 검색합니다.
- 지속적인 유지관리를 줄여 쿼리 작성을 간소화합니다.
여러 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], [포함됨]
- 다음과 같은 쿼리를 사용하여 IT 부서에 속한 모든 자산을 찾습니다.
- 위치 계층 구조
- 위치 계층 구조 기록 계층 구조를 사용하여 위치에 따라 기록을 검색합니다.
각 위치 기록에는 계층 경로가 포함되어 있어 위치 계층 구조를 기반으로 조건 작성기에서 쿼리를 생성할 수 있습니다. 인시던트 기록에는 위치 참조 필드가 있으므로 호출자의 위치를 기반으로 인시던트를 검색할 수 있습니다.
- 다음과 같은 쿼리를 사용하여 일리노이주에 기반을 둔 호출자의 모든 인시던트를 찾습니다.
[숙박 위치 정보] [계층 구조에 있음] [위치 계층 구조]에서 시작하는 [일리노이], [포함됨]
이 쿼리는 호출자의 위치가 일리노이, 일리노이의 모든 도시 또는 일리노이의 모든 도시의 주소인 인시던트를 반환합니다.
- 일리노이의 도시와 도로명 주소에 대한 인시던트를 찾을 수 있지만 다음과 같은 쿼리를 사용하여 호출자 위치가 단순히 일리노이인 인시던트는 찾을 수 없습니다.
[숙박 위치 정보] [계층 구조에 있음] [위치 계층 구조] [제외됨]인 [일리노이]에서 시작
- 다음과 같은 쿼리에서 동적 필터를 사용하여 로그인한 사용자로서의 위치를 기반으로 모든 인시던트를 찾습니다.
[숙박 위치 정보] [계층 구조에 있음(동적)] [포함됨]인 [내 위치]에서 시작하는 [위치 계층 구조]
- 다음과 같은 쿼리를 사용하여 일리노이주에 기반을 둔 호출자의 모든 인시던트를 찾습니다.
- 관리자 계층 구조
- 관리자 계층 구조 기록 계층 구조를 사용하여 조직의 관리 체인 전체에서 기록을 검색합니다.
각 사용자 기록에는 관리 계층 구조를 기반으로 조건 작성기에서 쿼리를 생성할 수 있는 계층 경로가 포함되어 있습니다. 테이블을 쿼리하고 사용자 [sys_user] 테이블을 가리키는 참조 필드를 선택하면 관리 체인을 통해 검색할 수 있습니다.
- 다음과 같은 쿼리를 사용하여 Bud Richman에게 보고하는 사용자에게 할당된 모든 인시던트를 찾습니다.
[할당 대상] [계층 구조에 있음] [관리자 계층 구조] [Bud Richman]에서 시작 [포함됨]
이 예에서 계층 구조를 검색하면 Bud에게 보고하는 사용자와 그 직속 부하에게 할당된 인시던트 등을 포함하여 Bud Richman에게 할당된 인시던트가 반환됩니다.
- 다음과 같은 동적 쿼리를 사용하여 본인과 조직의 사용자에게 할당된 모든 인시던트를 찾습니다.
[할당 대상] [계층 구조에 있음(동적)] [관리자 계층 구조]에서 시작([포함됨])
- 다음과 같은 쿼리를 사용하여 사용자 [sys_user] 테이블에서 직접 필터링하여 관리 체인 자체를 봅니다.
[관리자] [계층 구조에 있음] [관리자 계층 구조] [Bud Richman]에서 시작 [포함됨]
- 다음과 같은 동적 쿼리를 사용하여 사용자 [sys_user] 테이블에서 직접 필터링하여 보고하는 사용자를 봅니다.
[관리자] [계층 구조에 있음(동적)] [관리자 계층 구조]에서 시작([포함됨])
- 다음과 같은 쿼리를 사용하여 Bud Richman에게 보고하는 사용자에게 할당된 모든 인시던트를 찾습니다.
기록 계층 구조 작성 개요
인스턴스에 포함된 미리 정의된 기록 계층 구조 외에도, 선택한 테이블에 기록 계층 구조를 구축할 수 있습니다.
동일한 테이블에 있는 관련 기록 간에 계층 구조를 구축하려면 자체 참조 필드가 필요합니다. 계층 구조를 만들 때 상위-하위 관계를 이미 정의한 기존 참조 필드를 사용하거나 자체 참조 필드를 생성하여 각 기록에 적합한 값으로 채울 수 있습니다.
- 계층 쿼리를 작성하는 데 사용할 상위-하위 기록이 포함된 테이블을 식별합니다. 예를 들어 관련 자산을 기반으로 쿼리를 작성하려면 자산 [alm_asset] 테이블을 기반으로 기록 계층 구조를 정의할 수 있습니다.
- 테이블에서 기록 간의 관계를 정의하는 참조 필드를 결정합니다. 예를 들어, 자산 [alm_asset] 테이블의 상위 필드는 자산의 상위 자산을 설명합니다.
- 기록 계층 구조 [sys_record_hierarchy] 테이블에 계층 구조를 만들고 사용할 테이블과 참조 필드를 지정합니다. 테이블의 ServiceNow AI Platform 각 기록에 계층 경로 정보를 자동으로 추가합니다.
- 생성한 계층 구조를 선택하여 조건 작성기에서 계층 쿼리를 생성합니다. 연산자를 사용하여 계층 구조를 검색합니다.