GlideQuery - 범위, 전역

  • 릴리스 버전: Xanadu
  • 업데이트 날짜 2024년 08월 01일
  • 읽기56분
  • GlideQuery 스크립트 포함은 서버 측 스크립트의 기록 데이터에 대한 CRUD 작업을 수행하기 위한 GlideRecord API의 대안입니다.

    GlideQuery 스크립트 포함을 사용하면 다음을 수행할 수 있습니다.

    • 쿼리 및 결과에 표준 JavaScript 객체 및 유형을 사용합니다.
    • 추가 검사를 통해 쿼리 오류를 빠르게 진단하고 오류 메시지를 지웁니다.
    • 상용구 쿼리 패턴을 피하여 코드를 단순화합니다.
    • GlideRecord에 대한 심층적인 지식 없이도 일반적인 성능 문제를 방지할 수 있습니다.
    범위 지정 또는 전역 서버 측 스크립트에 GlideQuery 스크립트 포함을 사용합니다. 범위가 지정된 앱 내에서 사용되는 경우 전역 범위의 접두사가 붙어야 합니다.
    new global.GlideQuery('sys_user')
    // ...
    이 스크립트 포함에는 GlideQuery [com.sn_glidequery] 플러그인이 필요합니다.

    구현

    이 스크립트 포함은 스트림선택적 API와 함께 작동합니다. 메서드 호출이 함께 체인을 호출하는 빌더 패턴으로, 각 메서드는 이전 메서드의 반환된 결과를 기반으로 합니다. 메서드를 사용하여 쿼리의 속성을 정의합니다. 메서드는 쿼리 결과를 반환하는 메서드인 터미널 메서드를 호출할 때까지 실행되지 않으므로 쿼리를 실행하기 전에 쿼리의 요구 사항을 정의할 수 있습니다.

    쿼리가 단일 기록을 반환하는 경우 시스템은 결과를 선택적 객체로 래핑합니다. 쿼리가 레코드 스트림을 반환하는 경우 시스템은 결과를 Stream 개체로 래핑합니다. 이러한 개체를 사용하면 각 API의 메서드 집합을 사용하여 결과를 관리할 수 있습니다.

    예를 들어, 이 스크립트는 작업 테이블에서 쿼리를 수행하고, 우선순위별로 기록을 그룹화하고, 총 재할당 수가 4 이상인 각 우선순위를 반환합니다.

    var query = new global.GlideQuery('task')
        .where('active', true) //Returns new GlideQuery object with a "where" clause.
        .groupBy('priority') //Returns new GlideQuery object with a "group by" clause.
        .aggregate('sum', 'reassignment_count') //Returns new GlideQuery object with a "sum(reassignment_count)" clause.
        .having('sum', 'reassignment_count', '>', 4) //Returns new GlideQuery object with a "having reassignment_count > 4" clause.
        .select() //Returns a stream of records wrapped in a Stream object.  
        .forEach(function (priority){ //Terminal method in the Stream class that executes the query and returns the result. 
          gs.info("Priority " + priority.group.priority + ": " + priority.sum.reassignment_count + " reassignments");
        });
    출력:
    Priority 1: 11 reassignments
    Priority 3: 6 reassignments
    Priority 5: 5 reassignments

    오류 처리

    GlideQuery 스크립트 포함은 쿼리에 문제가 있을 때 오류를 발생시키고 안내에 도움이 되는 명확한 설명을 포함합니다. 이 스크립트 포함은 다음에 대한 검사를 포함합니다.

    • 잘못된 필드
    • 필드에 대한 잘못된 값 유형
    • 잘못된 선택 필드 값
    • 잘못된 쿼리 연산자

    예를 들어 다음 코드 샘플은 쿼리된 필드가 테이블에 없기 때문에 오류가 발생합니다.

    new global.GlideQuery('task')
        .where('id', '4717dfe5a9fe198100450448b2404c16') // should be 'sys_id'
        .select('description', 'severity')
        .toArray(100);
      // Error: Unable to find field 'id' in table 'task'. Known fields: active, activity_due, ...

    이 코드 샘플에서는 인수 중 하나의 데이터 형식이 잘못되었기 때문에 오류가 발생합니다.

    new global.GlideQuery('task')
        .where('priority', 'one') // priority is an integer (should be 1)
        .select('description', 'severity')
        .toArray(100);
      // Error: Unable to match value ['one'] with field 'priority' in table 'task'. Expecting type 'integer'

    재사용

    GlideQuery 개체는 변경할 수 없으므로 나중에 코드의 다른 부분에서 다시 사용할 수 있습니다. 예를 들어 이 스크립트는 쿼리를 만든 다음 나중에 GlideQuery 개체를 사용하여 보고서를 생성합니다.

    var highPriorityTasks = new global.GlideQuery('task')
        .where('active', true)
        .where('priority', 1);
    
    generateReport(highPriorityTasks);
    notifyOwners(highPriorityTasks);
    var avgReassignmentCount = highPriorityTasks
        .avg('reassignment_count')
        .orElse(0)
    

    제한

    GlideQuery 스크립트 포함은 다음을 지원하지 않습니다.

    • 다른 범위에서의 접근을 허용하지 않는 테이블을 읽거나 씁니다.
    • 인코딩된 쿼리 읽기.
    • GlideDate 또는 GlideDateTime 객체 - JavaScript 문자열로 읽힙니다.
    • FX 통화 필드.
    • 저널 필드 유형을 업데이트하는 중입니다.
    • 모호한 조건부 논리가 있는 쿼리입니다. 예를 들어 시스템에서 (active = true AND name != null) OR last_name = Luddy 또는 active = true AND (name != null OR last_name = Luddy)를 실행할지 여부를 모르기 때문에 다음 쿼리가 명확하지 않습니다.
      var user = new global.GlideQuery('sys_user')
        .where('active', true)
        .whereNotNull('name')
        .orWhere('last_name', 'Luddy')
        .selectOne()
        .get()

      대신 하위 쿼리를 중첩하는 방법을 이해하려면 where() 메서드를 참조하십시오.

    주:
    GlideQuery 스크립트 포함은 GlideRecord 객체를 표준 JavaScript 객체로 변환하기 때문에 쿼리를 실행하는 데 시간이 더 오래 걸릴 수 있습니다. 성능 문제를 줄이려면 많은 수의 레코드를 반복하는 루프를 생성하지 마십시오.

    GlideQuery의 중간 및 터미널 메서드

    GlideQuery 스크립트 포함은 중간 및 터미널이라는 두 가지 범주의 메서드를 사용합니다. 중간 메서드는 레코드와 같은 항목 스트림과 상호 작용하는 데 사용되는 API인 Stream을 반환하는 메서드로, 호출이 함께 연결되는 유창한 스타일의 구문을 허용합니다. 터미널 메서드는 스트림을 반환하지 않으므로 Stream 메서드 호출 체인을 중지하는 메서드입니다.

    GlideQuery 스크립트 포함에서 where(), orderBy()disableWorkflow()와 같은 메서드는 새 GlideQuery 객체를 반환하는 중간 메서드입니다. 마찬가지로 GlideQuery 스크립트 포함에서 가장 많이 사용되는 터미널 메서드인 select()selectOne()은 터미널 메서드입니다. 이러한 메서드는 GlideQuery 구성이 완료되고 기록 처리를 시작할 준비가 되면 호출됩니다. 특정 사용 사례에 따라 GlideQuery 스크립트 포함에 대한 호출을 구성할 때 이러한 두 메서드 유형 간의 차이점을 염두에 두어야 합니다. 중간 및 터미널 메서드에 대한 자세한 내용은 GlideQuery - 스트림 처리 1부 문서를 참조하세요.

    다음 방법은 중급으로 분류됩니다.

    • aggregate(문자열 aggregateType, 문자열 필드)
    • disableAutoSysFields()를 호출합니다.
    • disableWorkflow()를 호출합니다.
    • forceUpdate()를 호출합니다.
    • groupBy(문자열 필드)
    • having(문자열 aggregateType, 문자열 필드, 문자열 연산자, 숫자 값)
    • limit(수 제한)
    • orderBy(문자열 필드)
    • orderByDesc(문자열, fieldOrAggregate, 문자열 필드)
    • orWhere(String fieldOrQuery, 문자열 연산자, 모든 값)
    • orWhereNotNull(문자열 필드)
    • orWhereNull(문자열 필드)
    • where(문자열 fieldOrQuery, 문자열 연산자, 모든 값)
    • whereNotNull(문자열 필드)
    • whereNull(문자열 필드)
    • withAcls()를 사용합니다.

    다음 메서드는 터미널로 분류됩니다.

    • avg(문자열 필드)
    • 카운트()
    • deleteMultiple()을 호출합니다.
    • get(문자열 키, 배열 selectedFields)
    • getBy(개체 keyValues, 배열 selectedFields)
    • insert(객체 keyValues, 객체 selectedFields)
    • insertOrUpdate(오브젝트 변경, 오브젝트 selectedFields)
    • max(문자열 필드)
    • min(문자열 필드)
    • select(문자열 필드)
    • selectOne(문자열 필드)
    • sum(문자열 필드)
    • toGlideRecord()
    • update(객체 변경, 객체 selectedFields)
    • updateMultiple(오브젝트 변경)
    주:
    parse(String table, String encoded_query) 는 중간이나 터미널이 아니라 정적입니다.

    GlideQuery - GlideQuery(문자열 테이블)

    기록 쿼리를 빌드하고 실행하는 데 사용되는 GlideQuery 객체를 인스턴스화합니다.

    표 1. 매개변수
    이름 유형 설명
    테이블 문자열 쿼리할 테이블입니다.
    표 2. 반환
    유형 설명
    없음

    이 예에서는 User 테이블의 쿼리를 인스턴스화합니다.

    var query = new global.GlideQuery('sys_user');

    GlideQuery - aggregate(String, aggregateType, String field)

    지정된 집계 함수를 사용하여 필드를 집계합니다.

    여러 필드에 대해 집계하는 쿼리를 작성하거나 여러 집계 함수를 사용하거나 groupBy() 메서드를 사용해야 하는 경우 이 메서드를 사용합니다. 하나의 함수가 있는 하나의 필드에 대해서만 집계하고 groupBy()를 사용할 필요가 없는 경우 대신 다음 메서드 중 하나를 사용합니다.

    • 평균()
    • 최소()
    • 최대()
    • 카운트()
    표 3. 매개변수
    이름 유형 설명
    집계유형 문자열 수행할 집계 기능의 유형입니다. 옵션은 다음과 같습니다.
    • min: 일치하는 모든 레코드 중 가장 작은 값을 반환합니다.
    • max: 일치하는 모든 레코드 중 가장 큰 값을 반환합니다.
    • sum: 일치하는 모든 기록의 합계를 반환합니다.
    • avg: 일치하는 모든 기록의 평균을 반환합니다.
    • count: 일치하는 레코드 수를 반환합니다.
    필드 문자열 작업을 수행할 필드입니다.
    표 4. 반환
    유형 설명
    GlideQuery (영문) 빌드 중인 쿼리 개체입니다.
    스크립트는 작업 테이블에서 쿼리를 수행하고, 우선순위별로 기록을 그룹화하고, 총 재할당 수가 4 이상인 각 우선순위를 반환합니다.
    var query = new global.GlideQuery('task')
        .where('active', true) //Returns new GlideQuery object with a "where" clause.
        .groupBy('priority') //Returns new GlideQuery object with a "group by" clause.
        .aggregate('sum', 'reassignment_count') //Returns new GlideQuery object with a "sum(reassignment_count)" clause.
        .having('sum', 'reassignment_count', '>', 4) //Returns new GlideQuery object with a "having reassignment_count > 4" clause.
        .select() //Returns a stream of records wrapped in a Stream object.  
        .forEach(function (priority){ //Terminal method in the Stream class that executes the query and returns the result. 
          gs.info("Priority " + priority.group.priority + ": " + priority.sum.reassignment_count + " reassignments");
        });
    출력:
    Priority 1: 11 reassignments
    Priority 3: 6 reassignments
    Priority 5: 5 reassignments

    GlideQuery - avg(문자열 필드)

    지정된 숫자 필드의 집계 평균을 반환합니다.

    다음 유형의 필드에만 이 방법을 사용할 수 있습니다.
    • 정수
    • 길게
    • 부동 소수점 숫자
    • 두 번
    • 통화
    표 5. 매개변수
    이름 유형 설명
    필드 문자열 작업을 수행할 필드입니다.
    표 6. 반환
    유형 설명
    옵션 지정된 필드의 집계 평균을 포함하는 객체입니다.

    이 예제에서는 cmdb_ci 테이블의 평균 결함 개수를 반환하는 방법을 보여줍니다.

    var faults = new global.GlideQuery('cmdb_ci')
        .avg('fault_count')
        .orElse(0);
    
    gs.info(JSON.stringify(faults));

    출력:

    0.0037

    GlideQuery - count()

    쿼리와 일치하는 기록 수를 반환합니다.

    표 7. 매개변수
    이름 유형 설명
    없음
    표 8. 반환
    유형 설명
    번호 쿼리와 일치하는 기록 수입니다.

    이 예에서는 사용자 테이블의 활성 기록 수를 반환합니다.

    var userCount = new global.GlideQuery('sys_user')
        .where('active', true)
        .count();

    출력:

    612

    GlideQuery - deleteMultiple()

    앞의 Where 절로 지정된 테이블의 모든 기록을 삭제합니다.

    표 9. 매개변수
    이름 유형 설명
    없음
    표 10. 반환
    유형 설명
    없음

    이 예에서는 User 테이블에서 성이 Jeter인 모든 활성 레코드를 삭제합니다.

    var query = new global.GlideQuery('sys_user')
        .where('active', true)
        .where('last_name', 'Jeter')
        .deleteMultiple();

    GlideQuery - disableAutoSysFields()

    시스템 필드 또는 시스템 프리픽스로 시작하는 이름(예: sys_created_on, sys_updated_on, sys_mod_count)을 가진 필드를 업데이트하지 않습니다. 지정된 쿼리에만 적용됩니다.

    표 11. 매개변수
    이름 유형 설명
    없음
    표 12. 반환
    유형 설명
    GlideQuery (영문) 빌드 중인 쿼리 개체입니다.

    이 예시에서는 작업 테이블에 기록을 추가하지만 시스템 필드를 설정하지는 않습니다. 이 메서드를 호출하지 않으면 아래 예제는 sys_updated_on, sys_mod_count 등을 업데이트합니다.

    var query = new global.GlideQuery('task')
        .disableAutoSysFields()
        .insert({ description: 'example', priority: 1 });

    GlideQuery - disableWorkflow()

    쿼리의 결과로 실행되거나 생성될 비즈니스 규칙, 플로우, 워크플로우 또는 감사 기록을 비활성화합니다.

    표 13. 매개변수
    이름 유형 설명
    없음
    표 14. 반환
    유형 설명
    GlideQuery (영문) 빌드 중인 쿼리 개체입니다.

    이 예에서는 자동 비즈니스 프로세스를 트리거하지 않고 작업 테이블의 여러 기록을 업데이트합니다.

    var query = new global.GlideQuery('task')
        .disableWorkflow()
        .where('active', true)
        .updateMultiple({ priority: 1 });

    GlideQuery - forceUpdate()

    기록 변경 내용이 없는 경우에도 데이터베이스를 강제로 업데이트합니다. 예를 들어, 이 메서드를 사용하여 비즈니스 규칙을 강제로 실행할 수 있습니다.

    표 15. 매개변수
    이름 유형 설명
    없음
    표 16. 반환
    유형 설명
    GlideQuery (영문) 빌드 중인 쿼리 개체입니다.

    이 예제에서는 특정 sys_id로 작업 기록을 강제로 업데이트합니다.

    var forceUpdate = new global.GlideQuery('task')
        .forceUpdate()
        .where('sys_id', taskId)
        .update()

    GlideQuery - get(문자열 키, 배열 selectedFields)

    쿼리에서 단일 기록을 반환합니다.

    표 17. 매개변수
    이름 유형 설명
    문자열 반환할 기록의 Sys_id입니다.
    selectedFields 배열 옵션입니다. 결과에 반환할 추가 필드입니다.

    기본값: 시스템은 항상 sys_id 반환합니다.

    표 18. 반환
    유형 설명
    옵션 단일 기록과 상호 작용하는 데 사용되는 객체입니다.

    sys_id 기반으로 기록을 반환하는 예입니다.

    var user = new global.GlideQuery('sys_user')
        .get('5137153cc611227c000bbd1bd8cd2005', ['first_name', 'last_name']) //Returns an Optional object.
        .orElse({ first_name: 'Default', last_name: 'User' }); //Method in the Optional class to return a default value.
    
    gs.info(JSON.stringify(user, null, 2));

    출력:

    {
       "sys_id":"5137153cc611227c000bbd1bd8cd2005",
       "first_name":"Fred",
       "last_name":"Luddy"
    }

    GlideQuery - getBy(객체 keyValues, 배열 selectedFields)

    쿼리의 기준 이름-값 쌍 집합을 기반으로 하는 단일 기록을 포함하는 선택적 객체를 반환합니다. 각 이름-값 쌍에 대해 '=' 연산자를 가정합니다.

    표 19. 매개변수
    이름 유형 설명
    keyValues (키값) 객체 여기서 키는 필드의 이름이고 값은 쿼리할 값인 객체입니다.
    selectedFields 배열 옵션입니다. 결과에 반환할 추가 필드입니다.

    기본값: 시스템은 항상 sys_id 반환합니다.

    표 20. 반환
    유형 설명
    옵션 단일 기록과 상호 작용하는 데 사용되는 객체입니다.

    사용자 이름을 쿼리하여 기록을 반환하는 예입니다.

    var user = new global.GlideQuery('sys_user')
        .getBy({
            first_name: 'Fred',
            last_name: 'Luddy'
        }, ['first_name', 'last_name', 'city', 'active']) // select first_name, last_name, city, active
        .orElse({
            first_name: 'Nobody',
            last_name: 'Found',
            city: 'Nowhere',
            active: false
        });
    
    gs.info(JSON.stringify(user, null, 2));

    출력:

    {
       "first_name":"Fred",
       "last_name":"Luddy",
       "city":null,
       "active":true,
       "sys_id":"5137153cc611227c000bbd1bd8cd2005"
    }

    GlideQuery - groupBy(문자열 필드)

    지정된 필드별로 쿼리 결과를 그룹화합니다.

    aggregate() 메서드와 함께 이 메서드를 사용해야 합니다.

    표 21. 매개변수
    이름 유형 설명
    필드 문자열 또는 문자열 배열 결과를 그룹화할 필드입니다.
    표 22. 반환
    유형 설명
    GlideQuery (영문) 빌드 중인 쿼리 개체입니다.
    스크립트는 작업 테이블에서 쿼리를 수행하고, 우선순위별로 기록을 그룹화하고, 총 재할당 수가 4 이상인 각 우선순위를 반환합니다.
    var query = new global.GlideQuery('task')
        .where('active', true) //Returns new GlideQuery object with a "where" clause.
        .groupBy('priority') //Returns new GlideQuery object with a "group by" clause.
        .aggregate('sum', 'reassignment_count') //Returns new GlideQuery object with a "sum(reassignment_count)" clause.
        .having('sum', 'reassignment_count', '>', 4) //Returns new GlideQuery object with a "having reassignment_count > 4" clause.
        .select() //Returns a stream of records wrapped in a Stream object.  
        .forEach(function (priority){ //Terminal method in the Stream class that executes the query and returns the result. 
          gs.info("Priority " + priority.group.priority + ": " + priority.sum.reassignment_count + " reassignments");
        });
    출력:
    Priority 1: 11 reassignments
    Priority 3: 6 reassignments
    Priority 5: 5 reassignments

    GlideQuery - having(문자열 aggregateType, 문자열 필드, 문자열 연산자, 숫자 값)

    지정된 조건과 일치하는 결과 그룹만 표시할 수 있도록 집계 그룹을 필터링합니다.

    aggregate() 또는 groupBy() 메서드와 함께 이 메서드를 사용해야 합니다.

    표 23. 매개변수
    이름 유형 설명
    집계유형 문자열 수행할 집계 기능의 유형입니다. 옵션은 다음과 같습니다.
    • min: 일치하는 모든 레코드 중 가장 작은 값을 반환합니다.
    • max: 일치하는 모든 레코드 중 가장 큰 값을 반환합니다.
    • sum: 일치하는 모든 기록의 합계를 반환합니다.
    • avg: 일치하는 모든 기록의 평균을 반환합니다.
    • count: 일치하는 레코드 수를 반환합니다.
    필드 문자열 작업을 수행할 필드입니다.
    운영자 문자열 운영에 사용할 숫자 연산자입니다.
    옵션은 다음과 같습니다.
    • >: 보다 큼.
    • <: 보다 작음.
    • >=: 크거나 같음.
    • <=: 작거나 같음.
    • =: 같음.
    • !=: 같지 않음.
    번호 작업에 사용할 번호 값입니다.
    표 24. 반환
    유형 설명
    GlideQuery (영문) 빌드 중인 쿼리 개체입니다.
    스크립트는 작업 테이블에서 쿼리를 수행하고, 우선순위별로 기록을 그룹화하고, 총 재할당 수가 4 이상인 각 우선순위를 반환합니다.
    var query = new global.GlideQuery('task')
        .where('active', true) //Returns new GlideQuery object with a "where" clause.
        .groupBy('priority') //Returns new GlideQuery object with a "group by" clause.
        .aggregate('sum', 'reassignment_count') //Returns new GlideQuery object with a "sum(reassignment_count)" clause.
        .having('sum', 'reassignment_count', '>', 4) //Returns new GlideQuery object with a "having reassignment_count > 4" clause.
        .select() //Returns a stream of records wrapped in a Stream object.  
        .forEach(function (priority){ //Terminal method in the Stream class that executes the query and returns the result. 
          gs.info("Priority " + priority.group.priority + ": " + priority.sum.reassignment_count + " reassignments");
        });
    출력:
    Priority 1: 11 reassignments
    Priority 3: 6 reassignments
    Priority 5: 5 reassignments

    GlideQuery - insert(객체 keyValues, 객체 selectedFields)

    기록을 삽입하고 기록을 포함하는 선택적 객체를 반환합니다.

    표 25. 매개변수
    이름 유형 설명
    keyValues (키값) 객체 기록에 삽입할 이름–값 쌍이 포함된 객체입니다. 지정되지 않은 필드는 null이 됩니다.
    selectedFields 배열 옵션입니다. 결과에 반환할 추가 필드입니다.

    기본값: 시스템은 항상 sys_id 반환합니다.

    표 26. 반환
    유형 설명
    옵션 단일 기록과 상호 작용하는 데 사용되는 객체입니다.

    이 예제에서는 사용자의 이름과 성을 기반으로 레코드를 삽입하는 방법을 보여 줍니다.

    var fred = new global.GlideQuery('sys_user')
        .insert({ first_name: 'Fred', last_name: 'Luddy' })
        .get();
    
    gs.info(JSON.stringify(fred, null, 2));

    출력:

    {
       "sys_id":"cf16eed0e82a9010f8778bda83d255d2",
       "first_name":"Fred",
       "last_name":"Luddy"
    }

    GlideQuery - insertOrUpdate(객체 변경, 객체 selectedFields)

    기존 기록을 업데이트하거나 기존 기록이 없는 경우 새 기록을 삽입합니다.

    표 27. 매개변수
    이름 유형 설명
    변경 객체 기록에 업데이트하거나 삽입할 이름–값 쌍이 포함된 객체입니다.
    selectedFields 배열 옵션입니다. 결과에 반환할 추가 필드입니다.

    기본값: 시스템은 항상 sys_id 반환합니다.

    표 28. 반환
    유형 설명
    옵션 단일 기록과 상호 작용하는 데 사용되는 객체입니다.

    이 예제에서는 시스템에 아직 없는 새 레코드를 삽입하는 방법을 보여 줍니다.

    // insert a new record
    var user = new GlideQuery('sys_user')
        .insertOrUpdate({
            first_name: 'George',
            last_name: 'Griffey'
        })
        .orElse(null);

    이 예는 기존 기록을 업데이트하는 방법을 보여줍니다.

    // update existing record
    var user = new global.GlideQuery('sys_user')
        .insertOrUpdate({
            sys_id: '2d0efd6c73662300bb513198caf6a72e',
            first_name: 'George',
            last_name: 'Griffey' })
        .orElse(null);

    GlideQuery - limit(숫자 제한)

    쿼리에서 반환되는 기록 수를 제한합니다.

    표 29. 매개변수
    이름 유형 설명
    제한 번호 반환할 기록 수입니다.
    표 30. 반환
    유형 설명
    GlideQuery (영문) 빌드 중인 쿼리 개체입니다.

    이 예제에서는 반환되는 결과를 5개의 레코드로 제한하는 방법을 보여 줍니다.

    var incidents = new global.GlideQuery('incident')
        .limit(5)
        .select('priority', 'description')
        .forEach(function (incident){
            gs.info(JSON.stringify(incident, null, 2));
        });

    출력:

    *** Script: {
      "priority": 1,
      "description": "User can't get to any of his files on the file server.",
      "sys_id": "9d385017c611228701d22104cc95c371"
    }
    *** Script: {
      "priority": 1,
      "description": "I just moved from floor 2 to floor 3 and my laptop cannot connect to any wireless network.",
      "sys_id": "e8caedcbc0a80164017df472f39eaed1"
    }
    *** Script: {
      "priority": 1,
      "description": "User forgot their email password.",
      "sys_id": "9d3c1197c611228701cd1d94bc32d76d"
    }
    *** Script: {
      "priority": 1,
      "description": "When I try to print, my whole computer just freezes and stops working.",
      "sys_id": "8d6246c7c0a80164012fb063cecd4ace"
    }
    *** Script: {
      "priority": 3,
      "description": "Unable to login even though login credentials are correct.",
      "sys_id": "a9e30c7dc61122760116894de7bcc7bd"
    }

    GlideQuery - max(문자열 필드)

    지정된 필드의 집계 최대값을 반환합니다.

    표 31. 매개변수
    이름 유형 설명
    필드 문자열 작업을 수행할 필드입니다.
    표 32. 반환
    유형 설명
    옵션 단일 기록과 상호 작용하는 데 사용되는 객체입니다.

    이 예제에서는 지정된 필드의 최대값 또는 가장 높은 영숫자 값을 반환하는 방법을 보여 줍니다.

    var name = new global.GlideQuery('sys_user')
        .max('last_name')
        .orElse('');
    
    gs.info(JSON.stringify(name));

    출력:

    "Zortman"

    GlideQuery - min(문자열 필드)

    지정된 필드의 집계 최소값을 반환합니다.

    표 33. 매개변수
    이름 유형 설명
    필드 문자열 작업을 수행할 필드입니다.
    표 34. 반환
    유형 설명
    옵션 단일 기록과 상호 작용하는 데 사용되는 객체입니다.

    이 예제에서는 지정된 필드의 최소값 또는 가장 낮은 영숫자 값을 반환하는 방법을 보여 줍니다.

    var name = new global.GlideQuery('sys_user')
        .min('last_name')
        .orElse('');
    
    gs.info(JSON.stringify(name));

    출력:

    "Abel"

    GlideQuery - orderBy(문자열 필드)

    반환된 결과를 지정된 필드를 기준으로 오름차순으로 정렬합니다.

    표 35. 매개변수
    이름 유형 설명
    필드 문자열 결과를 오름차순으로 정렬하는 쉼표로 구분된 필드입니다.
    표 36. 반환
    유형 설명
    GlideQuery (영문) 빌드 중인 쿼리 개체입니다.

    이 예제에서는 기록 번호를 기준으로 결과를 오름차순으로 정렬하는 방법을 보여 줍니다.

    var query = new global.GlideQuery('incident')
        .orderBy('number')
        .limit(5)
        .select('number', 'description') //Returns a stream of records wrapped in a Stream object.  
        .forEach(function (incident){ //Terminal method in the Stream class that executes the query and returns the result.
            gs.info(JSON.stringify(incident, null, 2));
        });

    출력:

    *** Script: {
      "number": "INC0000001",
      "description": "User can't access email on mail.company.com.",
      "sys_id": "9c573169c611228700193229fff72400"
    }
    *** Script: {
      "number": "INC0000002",
      "description": "User can't get to any of his files on the file server.",
      "sys_id": "9d385017c611228701d22104cc95c371"
    }
    *** Script: {
      "number": "INC0000003",
      "description": "I just moved from floor 2 to floor 3 and my laptop cannot connect to any wireless network.",
      "sys_id": "e8caedcbc0a80164017df472f39eaed1"
    }
    *** Script: {
      "number": "INC0000004",
      "description": "User forgot their email password.",
      "sys_id": "9d3c1197c611228701cd1d94bc32d76d"
    }
    *** Script: {
      "number": "INC0000005",
      "description": "CPU was 100% busy for more than 10 minutes",
      "sys_id": "e8e875b0c0a80164009dc852b4d677d5"
    }

    GlideQuery - orderByDesc(문자열, fieldOrAggregate, 문자열 필드)

    반환된 결과를 지정된 필드를 기준으로 내림차순으로 정렬합니다.

    표 37. 매개변수
    이름 유형 설명
    fieldOrAggregate 문자열 쿼리에서 aggregate() 메서드를 사용하지 않는 경우 결과를 정렬할 필드를 전달합니다.

    쿼리에서 aggregate() 메서드를 사용하는 경우 수행할 집계 함수의 유형을 전달합니다.

    옵션은 다음과 같습니다.
    • min: 일치하는 모든 레코드 중 가장 작은 값을 반환합니다.
    • max: 일치하는 모든 레코드 중 가장 큰 값을 반환합니다.
    • sum: 일치하는 모든 기록의 합계를 반환합니다.
    • avg: 일치하는 모든 기록의 평균을 반환합니다.
    • count: 일치하는 레코드 수를 반환합니다.
    필드 문자열 옵션입니다. 결과를 내림차순으로 정렬하는 필드입니다. aggregate() 메서드를 사용하는 쿼리에 필요합니다.
    표 38. 반환
    유형 설명
    GlideQuery (영문) 빌드 중인 쿼리 개체입니다.

    이 예제에서는 숫자를 기준으로 결과를 내림차순으로 정렬하는 방법을 보여 줍니다.

    var query = new global.GlideQuery('incident')
        .orderByDesc('number')
        .limit(5)
        .select('number', 'description') //Returns a stream of records wrapped in a Stream object.  
        .forEach(function (incident){ //Terminal method in the Stream class that executes the query and returns the result.
            gs.info(JSON.stringify(incident, null, 2));
        });

    출력:

    *** Script: {
      "number": "INC0009009",
      "description": "Unable to access the shared folder. Please provide access.",
      "sys_id": "57af7aec73d423002728660c4cf6a71c"
    }
    *** Script: {
      "number": "INC0009005",
      "description": "Unable to send or receive emails.",
      "sys_id": "ed92e8d173d023002728660c4cf6a7bc"
    }
    *** Script: {
      "number": "INC0009004",
      "description": "While launching the defect tracking base URL, it is redirecting to an error page.",
      "sys_id": "e329de99731423002728660c4cf6a73c"
    }
    *** Script: {
      "number": "INC0009003",
      "description": "Having an issue with users trying to access the company portal app",
      "sys_id": "9fffc328731823002728660c4cf6a742"
    }
    *** Script: {
      "number": "INC0009002",
      "description": "My computer is not detecting the headphone device. It could be an issue with the USB port.",
      "sys_id": "1c832706732023002728660c4cf6a7b9"
    }

    이 예시에서는 하위 인시던트의 합계를 기준으로 집계 결과를 정렬하는 방법을 보여줍니다.

    var aggQuery = new GlideQuery('incident')
        .aggregate('sum', 'child_incidents')
        .groupBy('category')
        .orderByDesc('sum', 'child_incidents')
        .select()
        .forEach(function (category){
            gs.info(JSON.stringify(category, null, 2));    
        });

    출력:

    *** Script: {
      "group": {
        "category": "hardware"
      },
      "sum": {
        "child_incidents": 2
      }
    }
    *** Script: {
      "group": {
        "category": "inquiry"
      },
      "sum": {
        "child_incidents": 1
      }
    }
    *** Script: {
      "group": {
        "category": "software"
      },
      "sum": {
        "child_incidents": 0
      }
    }
    *** Script: {
      "group": {
        "category": ""
      },
      "sum": {
        "child_incidents": null
      }
    }
    *** Script: {
      "group": {
        "category": "database"
      },
      "sum": {
        "child_incidents": null
      }
    }
    *** Script: {
      "group": {
        "category": "network"
      },
      "sum": {
        "child_incidents": null
      }
    }

    GlideQuery - orWhere(문자열 fieldOrQuery, 문자열 연산자, 모든 값)

    지정된 조건에 따라 값을 반환하는 쿼리에 OR 절을 추가합니다.

    주:
    이 메서드 앞에 where(),whereNull() 또는 whereNotNull() 메서드를 사용합니다.
    표 39. 매개변수
    이름 유형 설명
    fieldOrQuery String 또는 GlideQuery 필드 또는 where 절에 사용되는 다른 GlideQuery 객체입니다. 필드를 전달하면 원하는 값으로 닷워킹할 수 있습니다. 예: 'company.name'.
    운영자 문자열 옵션입니다. OR 절에 사용되는 연산자입니다. 인수를 전달하지 않으면 시스템에서 = 연산자를 사용합니다. 자리 표시자 값을 포함할 필요가 없습니다.
    모든 OR 절에 사용되는 값입니다.
    표 40. 반환
    유형 설명
    GlideQuery (영문) 빌드 중인 쿼리 개체입니다.

    이 예제에서는 쿼리에 간단한 OR 절을 추가하는 방법을 보여 줍니다.

    var query = new global.GlideQuery('sys_user')
       .where('failed_attempts', '>', 0)
       .orWhere('last_login', '<', '2019-04-15')
       .select()
       .forEach(function (user){
          gs.info(JSON.stringify(user, null, 2));
       });

    출력:

    *** Script: {
      "sys_id": "005d500b536073005e0addeeff7b12f4"
    }
    *** Script: {
      "sys_id": "d999e5fc77e72300454792718a10611d"
    }
    *** Script: {
      "sys_id": "30ad318577ab2300454792718a10619e"
    }
    *** Script: {
      "sys_id": "4ac73ecd738123002728660c4cf6a72c"
    }
    *** Script: {
      "sys_id": "3883f4c0730123002728660c4cf6a754"
    }
    *** Script: {
      "sys_id": "3988a3ca732023002728660c4cf6a757"
    }
    *** Script: {
      "sys_id": "8ff5b254b33213005e3de13516a8dcf7"
    }

    이 예제에서는 별도의 쿼리가 포함된 orWhere 절을 추가하는 방법을 보여 줍니다.

    // active = true OR (title = 'Vice President' AND state = 'CA')
    var query = new GlideQuery('sys_user')
       .where('active', true)
       .orWhere(new GlideQuery()
           .where('title', 'Vice President')
           .where('state', 'CA'))
       .select('name')
       .limit(5)
       .forEach(function (user){
          gs.info(JSON.stringify(user, null, 2));
       });

    출력:

    *** Script: {
      "name": "ITIL User",
      "sys_id": "681b365ec0a80164000fb0b05854a0cd"
    }
    *** Script: {
      "name": "SOAP Guest",
      "sys_id": "155699460a0a0b2b009e27c10b7f68f6"
    }
    *** Script: {
      "name": "System Administrator",
      "sys_id": "6816f79cc0a8016401c5a33be04be441"
    }
    *** Script: {
      "name": "Alva Pennigton",
      "sys_id": "ca826bf03710200044e0bfc8bcbe5d89"
    }
    *** Script: {
      "name": "Benchmark Scheduler",
      "sys_id": "d3383a875b0132003d1c484c11f91a5b"
    }

    GlideQuery - orWhereNotNull(문자열 필드)

    지정된 필드에 null 값이 포함되지 않은 레코드를 반환하는 OR 절을 추가합니다.

    주:
    이 메서드 앞에 where(),whereNull() 또는 whereNotNull() 메서드를 사용합니다.
    표 41. 매개변수
    이름 유형 설명
    필드 문자열 쿼리에 사용되는 필드입니다.
    표 42. 반환
    유형 설명
    GlideQuery (영문) 빌드 중인 쿼리 개체입니다.

    이 예에서는 User 테이블을 쿼리하고 이름 또는 성이 null이 아닌 결과를 반환하는 방법을 보여 줍니다.

    var query = new global.GlideQuery('sys_user')
       .whereNotNull('first_name')
       .orWhereNotNull('last_name')
       .select('name')
       .limit(5)
       .forEach(function (user){
          gs.info(JSON.stringify(user, null, 2));
       });

    출력:

    *** Script: {
      "name": "ITIL User",
      "sys_id": "681b365ec0a80164000fb0b05854a0cd"
    }
    *** Script: {
      "name": "System Administrator",
      "sys_id": "6816f79cc0a8016401c5a33be04be441"
    }
    *** Script: {
      "name": "Alva Pennigton",
      "sys_id": "ca826bf03710200044e0bfc8bcbe5d89"
    }
    *** Script: {
      "name": "Benchmark Scheduler",
      "sys_id": "d3383a875b0132003d1c484c11f91a5b"
    }
    *** Script: {
      "name": "Allyson Gillispie",
      "sys_id": "06826bf03710200044e0bfc8bcbe5d8a"
    }

    GlideQuery - orWhereNull(문자열 필드)

    지정된 필드에 null 값이 포함된 레코드를 반환하는 쿼리에 OR 절을 추가합니다.

    주:
    이 메서드 앞에 where(),whereNull() 또는 whereNotNull() 메서드를 사용합니다.
    표 43. 매개변수
    이름 유형 설명
    필드 문자열 쿼리에 사용되는 필드입니다.
    표 44. 반환
    유형 설명
    GlideQuery (영문) 빌드 중인 쿼리 개체입니다.

    이 예에서는 User 테이블을 쿼리하고 이름 또는 성이 null인 레코드를 반환하는 방법을 보여 줍니다.

    var query = new global.GlideQuery('sys_user')
       .whereNull('last_name')
       .orWhereNull('first_name')
       .select('first_name', 'last_name')
       .forEach(function (user){
          gs.info(JSON.stringify(user, null, 2));
       });

    출력:

    *** Script: {
      "first_name": "ml.admin",
      "last_name": null,
      "sys_id": "88aad6c5c73003005f1b78d48b9763a5"
    }
    *** Script: {
      "first_name": "Sitemap Scheduler User",
      "last_name": null,
      "sys_id": "85388c25b71011104eed4643ae11a993"
    }
    *** Script: {
      "first_name": null,
      "last_name": "Guest",
      "sys_id": "5136503cc611227c0183e96598c4f706"
    }
    *** Script: {
      "first_name": "ml_report.user",
      "last_name": null,
      "sys_id": "b6bad6c5c73003005f1b78d48b97632a"
    }

    GlideQuery - parse(문자열 테이블, 문자열 encoded_query)

    GlideQuery 쿼리에 인코딩된 쿼리를 추가합니다.

    이 메서드는 모든 GlideRecord 인코딩 쿼리 연산자를 지원하지는 않습니다. 현재 지원되는 연산자는 다음과 같습니다.

    = 아무것도 GT_FIELD 에 없음
    != 사이 GT_OR_EQUALS_FIELD 좋아하지 않음
    > 포함 안으로 은사미아스
    >= 포함하지 않음 INSTANCEOF
    < 동적인 같이 사메아스
    <= EMPTYSTRING LT_FIELD STARTSWITH
    ENDSWITH LT_OR_EQUALS_FIELD
    표 45. 매개변수
    이름 유형 설명
    테이블 문자열 작업 또는 인시던트 등 쿼리할 테이블입니다.
    encoded_query 문자열 지정된 테이블의 기록에 적용할 인코딩된 쿼리입니다.
    표 46. 반환
    유형 설명
    GlideQuery (영문) 인코딩된 쿼리를 포함하는 GlideQuery 객체입니다.

    다음 예제에서는 작업 테이블의 모든 활성 레코드를 포함하는 GlideQuery 객체를 만들고, 우선순위 필드를 기준으로 정렬되고, 설명 필드만 포함하는 Stream 객체로 반환됩니다.

    GlideQuery.parse('task', 'active=true^ORDERBYpriority') // Pass the encoded query to use to parse the Task records
      .select('description') // Return the records that match the encoded query
      .forEach(doSomething); // Do some processing on each of the returned records

    GlideQuery - select(문자열 필드)

    쿼리 결과를 지정된 필드를 포함하는 Stream 개체로 반환합니다.

    주:
    Stream 클래스의 터미널 메서드를 사용하여 쿼리 결과를 가져옵니다. 자세한 내용은 Stream을 참조하세요.

    필드 이름에 플래그를 추가하여 필드 값 대신 필드의 메타데이터를 반환할 수 있습니다. 예를 들어 필드 이름 company$DISPLAY 를 사용하면 회사 필드의 표시 값이 반환됩니다. 가능한 플래그는 다음과 같습니다.

    • DISPLAY: 필드의 표시 값을 반환합니다.
    • CURRENCY_CODE: 통화 필드의 통화 코드를 반환합니다. 예를 들어 , USD입니다.
    • CURRENCY_DISPLAY: 통화 필드의 통화 표시 값을 반환합니다. 예를 들면 ¥123.45입니다.
    • CURRENCY_STRING: 통화 필드의 통화 문자열을 반환합니다. 예를 들어, JPY; 123.45.
    표 47. 매개변수
    이름 유형 설명
    필드 문자열 또는 문자열 배열 옵션입니다. 결과에 표시할 필드입니다. 원하는 수의 필드를 인수로 제공하거나, 원하는 값으로 닷워킹하거나, 플래그를 사용할 수 있습니다. 예:
    select('first_name', 'location.city', 'company$DISPLAY');
    또는
    select(['first_name', 'location.city', 'company$DISPLAY']);

    기본값: 시스템은 항상 sys_id 반환합니다.

    표 48. 반환
    유형 설명
    스트림 기록과 같은 항목 스트림과 상호작용하는 데 사용되는 객체입니다.

    이 예제에서는 쿼리에서 표시할 필드를 선택하고 $DISPLAY 사용하여 필드의 표시 값을 반환하는 방법을 보여 줍니다.

    var stream = new global.GlideQuery('sys_user')
       .select('first_name', 'last_name', 'company$DISPLAY')
       .limit(5)
       .forEach(function (user){
          gs.info(JSON.stringify(user, null, 2));
       });

    출력:

    *** Script: {
      "first_name": "System",
      "last_name": "Administrator",
      "company$DISPLAY": "",
      "sys_id": "6816f79cc0a8016401c5a33be04be441"
    }
    *** Script: {
      "first_name": "Alva",
      "last_name": "Pennigton",
      "company$DISPLAY": "ACME North America",
      "sys_id": "ca826bf03710200044e0bfc8bcbe5d89"
    }
    *** Script: {
      "first_name": "Benchmark",
      "last_name": "Scheduler",
      "company$DISPLAY": "",
      "sys_id": "d3383a875b0132003d1c484c11f91a5b"
    }
    *** Script: {
      "first_name": "Allyson",
      "last_name": "Gillispie",
      "company$DISPLAY": "ACME North America",
      "sys_id": "06826bf03710200044e0bfc8bcbe5d8a"
    }
    *** Script: {
      "first_name": "SOAP",
      "last_name": "Guest",
      "company$DISPLAY": "",
      "sys_id": "155699460a0a0b2b009e27c10b7f68f6"
    }

    GlideQuery - selectOne(문자열 필드)

    쿼리 결과를 지정된 필드를 포함하는 선택적 객체로 반환합니다.

    단일 레코드를 반환하거나 레코드가 있는지 테스트할 때 이 메서드를 사용합니다. 여러 레코드를 반환하는 경우 select() 메서드를 사용하여 Stream 객체를 반환합니다.

    필드 이름에 플래그를 추가하여 필드 값 대신 필드의 메타데이터를 반환할 수 있습니다. 예를 들어 필드 이름 company$DISPLAY 를 사용하면 회사 필드의 표시 값이 반환됩니다. 가능한 플래그는 다음과 같습니다.

    • DISPLAY: 필드의 표시 값을 반환합니다.
    • CURRENCY_CODE: 통화 필드의 통화 코드를 반환합니다. 예를 들어 , USD입니다.
    • CURRENCY_DISPLAY: 통화 필드의 통화 표시 값을 반환합니다. 예를 들면 ¥123.45입니다.
    • CURRENCY_STRING: 통화 필드의 통화 문자열을 반환합니다. 예를 들어, JPY; 123.45.
    표 49. 매개변수
    이름 유형 설명
    필드 문자열 또는 문자열 배열 옵션입니다. 결과에 표시할 필드입니다. 원하는 수의 필드를 인수로 제공하거나, 원하는 값으로 닷워킹하거나, 플래그를 사용할 수 있습니다. 예:
    selectOne('first_name', 'location.city', 'company$DISPLAY');
    또는
    selectOne(['first_name', 'location.city', 'company$DISPLAY']);

    기본값: 시스템은 항상 sys_id 반환합니다.

    표 50. 반환
    유형 설명
    옵션 단일 기록과 상호 작용하는 데 사용되는 객체입니다.

    이 예제에서는 단일 레코드를 Optional 개체로 반환하고 지정된 필드를 표시하는 방법을 보여 줍니다.

    var user = new global.GlideQuery('sys_user')
        .where('zip', '12345')
        .whereNotNull('last_name')
        .selectOne('first_name', 'last_name', 'company$DISPLAY')
        .get();
    
    gs.info(JSON.stringify(user, null, 2));

    출력:

    {
       "first_name":"Abel",
       "last_name":"Tuter",
       "company$DISPLAY":"ACME South America",
       "sys_id":"62826bf03710200044e0bfc8bcbe5df1"
    }

    GlideQuery - sum(문자열 필드)

    지정된 숫자 필드의 집계 합계를 반환합니다.

    다음 유형의 필드에만 이 방법을 사용할 수 있습니다.
    • 정수
    • 길게
    • 부동 소수점 숫자
    • 두 번
    • 통화
    표 51. 매개변수
    이름 유형 설명
    필드 문자열 작업을 수행할 필드입니다.
    표 52. 반환
    유형 설명
    옵션 단일 기록과 상호 작용하는 데 사용되는 객체입니다.

    이 예제에서는 cmdb_ci 테이블에 있는 모든 결함의 합계를 반환하는 방법을 보여줍니다.

    var totalFaults = new global.GlideQuery('cmdb_ci')
        .sum('fault_count')
        .orElse(0);
    
    gs.info(JSON.stringify(totalFaults));

    출력:

    10

    GlideQuery - toGlideRecord()

    현재 쿼리를 나타내는 GlideRecord 객체를 반환합니다. 쿼리에서 GlideQuery.aggregate() 메서드를 사용하는 경우 GlideAggregrate 객체를 반환합니다.

    쿼리를 변환한 후 GlideRecord 또는 GlideAggregate 클래스의 query() 메서드를 사용하여 데이터베이스를 쿼리합니다.

    표 53. 매개변수
    이름 유형 설명
    없음
    표 54. 반환
    유형 설명
    GlideRecord 또는 GlideAggregate 쿼리를 포함하는 GlideRecord 객체입니다. GlideQuery.aggregate() 메서드를 사용한 경우 메서드는 GlideAggregrate 객체를 대신 반환합니다.

    이 예제에서는 GlideQuery 객체를 GlideRecord로 변환하는 방법을 보여줍니다.

    var userGr = new global.GlideQuery('sys_user')
        .where('active', true)
        .whereNotNull('first_name')
        .limit(10)
        .toGlideRecord();
    userGr.query();

    GlideQuery - update(객체 변경, 객체 selectedFields)

    정의된 조건과 일치하는 기존 기록을 업데이트합니다.

    이 메서드를 사용하기 전에 where() 메서드를 호출하여 레코드를 업데이트하기 위해 충족해야 하는 조건을 지정합니다.

    표 55. 매개변수
    이름 유형 설명
    변경 객체 기록에서 업데이트할 이름–값 쌍을 포함하는 객체입니다. 이름은 테이블의 필드와 일치해야 합니다.
    selectedFields 배열 옵션입니다. 결과에 반환할 추가 필드입니다.

    기본값: 시스템은 항상 sys_id 반환합니다.

    표 56. 반환
    유형 설명
    옵션 단일 기록과 상호 작용하는 데 사용되는 객체입니다.

    이 예제에서는 새 값으로 기록을 업데이트하는 방법을 보여줍니다.

    var updateRecord = new global.GlideQuery('sys_user')
        .where('sys_id', '0a826bf03710200044e0bfc8bcbe5d7a')
        .update({ city: 'Los Angeles' });

    GlideQuery - updateMultiple(객체 변경)

    정의된 조건과 일치하는 모든 기존 기록을 업데이트합니다. 업데이트된 기록 수를 반환합니다.

    이 메서드를 사용하기 전에 where() 메서드를 호출하여 레코드를 업데이트하기 위해 충족해야 하는 조건을 지정합니다.

    표 57. 매개변수
    이름 유형 설명
    변경 객체 기록에서 업데이트할 이름–값 쌍을 포함하는 객체입니다. 이름은 테이블의 필드와 일치해야 합니다.
    표 58. 반환
    유형 설명
    객체 업데이트된 기록 수를 포함하는 객체입니다. 열쇠는 다음과 같습니다.
    • rowCount: 테이블에서 업데이트된 행의 수입니다.

    이 예시에서는 정의된 기준에 맞는 기록을 업데이트하는 방법을 보여줍니다.

    var update = new global.GlideQuery('sys_user')
        .where('active', false)
        .where('last_name', 'Griffey')
        .updateMultiple({ active: true });
    
    gs.info(JSON.stringify(update));

    출력:

    {"rowCount":1}

    GlideQuery - where(String fieldOrQuery, String 연산자, 모든 값)

    지정된 조건에 따라 값을 반환하는 쿼리에 Where 절을 추가합니다.

    주:
    이 메서드 앞에 orWhere(),orWhereNull() 또는 orWhereNotNull() 메서드를 사용하지 마십시오.
    표 59. 매개변수
    이름 유형 설명
    fieldOrQuery String 또는 GlideQuery 필드 또는 where 절에 사용되는 다른 GlideQuery 객체입니다. 필드를 전달하면 원하는 값으로 닷워킹할 수 있습니다. 예: 'company.name'.
    운영자 문자열 옵션입니다. where 절에 사용되는 연산자입니다. 인수를 전달하지 않으면 시스템에서 = 연산자를 사용합니다.
    모든 where 절에 사용되는 값입니다.
    표 60. 반환
    유형 설명
    GlideQuery (영문) 빌드 중인 쿼리 개체입니다.

    이 예는 active가 true이고 사용자의 마지막 로그인이 지정된 날짜 이후인 User 테이블에서 레코드를 반환하는 방법을 보여줍니다.

    var query = new global.GlideQuery('sys_user')
       .where('active', true)
       .where('last_login', '>', '2018-01-01')
       .limit(5)
       .select()
       .forEach(function (user){
          gs.info(JSON.stringify(user, null, 2));
       });

    출력:

    *** Script: {
      "sys_id": "6816f79cc0a8016401c5a33be04be441"
    }
    *** Script: {
      "sys_id": "005d500b536073005e0addeeff7b12f4"
    }
    *** Script: {
      "sys_id": "d999e5fc77e72300454792718a10611d"
    }
    *** Script: {
      "sys_id": "30ad318577ab2300454792718a10619e"
    }
    *** Script: {
      "sys_id": "3883f4c0730123002728660c4cf6a754"
    }

    이 예는 활성이 True이고 우선순위 또는 심각도가 1인 인시던트 테이블에서 기록을 반환하는 방법을 보여줍니다.

    // active = true AND (priority = 1 OR severity = 1)
    var query = new GlideQuery('incident')
        .where('active', true)
        .where(new GlideQuery()
            .where('priority', 1)
            .orWhere('severity', 1))
       .limit(5)
       .select()
       .toArray(5)
    
    gs.info(JSON.stringify(query, null, 2));

    출력:

    [
       {
          "sys_id":"b0f31e5673500010c2e7660c4cf6a711"
       },
       {
          "sys_id":"8ff5b254b33213005e3de13516a8dcf7"
       },
       {
          "sys_id":"d999e5fc77e72300454792718a10611d"
       },
       {
          "sys_id":"30ad318577ab2300454792718a10619e"
       },
       {
          "sys_id":"3883f4c0730123002728660c4cf6a754"
       }
    ]

    GlideQuery - whereNotNull(문자열 필드)

    지정된 필드에 null 값이 포함되지 않은 기록을 반환합니다.

    주:
    이 메서드 앞에 orWhere(),orWhereNull() 또는 orWhereNotNull() 메서드를 사용하지 마십시오.
    표 61. 매개변수
    이름 유형 설명
    필드 문자열 쿼리에 사용되는 필드입니다.
    표 62. 반환
    유형 설명
    GlideQuery (영문) 빌드 중인 쿼리 개체입니다.

    이 예에서는 사용자 테이블을 쿼리하고 first_name 필드가 null이 아닌 결과를 반환하는 방법을 보여 줍니다.

    var query = new global.GlideQuery('sys_user')
       .whereNotNull('first_name')
       .select('name')
       .limit(5)
       .forEach(function (user){
          gs.info(JSON.stringify(user, null, 2));
       });

    출력:

    *** Script: {
      "name": "System Administrator",
      "sys_id": "6816f79cc0a8016401c5a33be04be441"
    }
    *** Script: {
      "name": "Alva Pennigton",
      "sys_id": "ca826bf03710200044e0bfc8bcbe5d89"
    }
    *** Script: {
      "name": "Benchmark Scheduler",
      "sys_id": "d3383a875b0132003d1c484c11f91a5b"
    }
    *** Script: {
      "name": "Allyson Gillispie",
      "sys_id": "06826bf03710200044e0bfc8bcbe5d8a"
    }
    *** Script: {
      "name": "SOAP Guest",
      "sys_id": "155699460a0a0b2b009e27c10b7f68f6"
    }

    GlideQuery - whereNull(문자열 필드)

    지정된 필드에 null 값이 포함된 기록을 반환합니다.

    주:
    이 메서드 앞에 orWhere(),orWhereNull() 또는 orWhereNotNull() 메서드를 사용하지 마십시오.
    표 63. 매개변수
    이름 유형 설명
    필드 문자열 쿼리에 사용되는 필드입니다.
    표 64. 반환
    유형 설명
    GlideQuery (영문) 빌드 중인 쿼리 개체입니다.

    이 예에서는 User 테이블을 쿼리하고 이름 또는 성이 null인 레코드를 반환하는 방법을 보여 줍니다.

    var query = new global.GlideQuery('sys_user')
       .whereNull('last_name')
       .orWhereNull('first_name')
       .select('first_name', 'last_name')
       .forEach(function (user){
          gs.info(JSON.stringify(user, null, 2));
       });

    출력:

    *** Script: {
      "first_name": "ml.admin",
      "last_name": null,
      "sys_id": "88aad6c5c73003005f1b78d48b9763a5"
    }
    *** Script: {
      "first_name": "Sitemap Scheduler User",
      "last_name": null,
      "sys_id": "85388c25b71011104eed4643ae11a993"
    }
    *** Script: {
      "first_name": null,
      "last_name": "Guest",
      "sys_id": "5136503cc611227c0183e96598c4f706"
    }
    *** Script: {
      "first_name": "ml_report.user",
      "last_name": null,
      "sys_id": "b6bad6c5c73003005f1b78d48b97632a"
    }

    GlideQuery - withAcls()

    GlideRecordSecure API를 사용하여 쿼리를 실행하여 ACL을 준수하면서 데이터베이스를 안전하게 쿼리합니다.

    표 65. 매개변수
    이름 유형 설명
    없음
    표 66. 반환
    유형 설명
    GlideQuery (영문) 빌드 중인 쿼리 개체입니다.

    이 예제에서는 ACL을 사용하여 보안 쿼리를 실행하는 방법을 보여 줍니다.

    var users = new global.GlideQuery('sys_user')
        .withAcls()
        .limit(5)
        .orderByDesc('first_name')
        .select('first_name')
        .forEach(function (user){
            gs.info(JSON.stringify(user, null, 2));
        });

    출력:

    *** Script: {
      "first_name": "Zane",
      "sys_id": "16826bf03710200044e0bfc8bcbe5dbc"
    }
    *** Script: {
      "first_name": "Zackary",
      "sys_id": "8a826bf03710200044e0bfc8bcbe5d69"
    }
    *** Script: {
      "first_name": "Yvette",
      "sys_id": "4e826bf03710200044e0bfc8bcbe5d57"
    }
    *** Script: {
      "first_name": "Winnie",
      "sys_id": "f682abf03710200044e0bfc8bcbe5d1d"
    }
    *** Script: {
      "first_name": "Wilmer",
      "sys_id": "42826bf03710200044e0bfc8bcbe5d7b"
    }