GlideQuery - 범위, 전역
GlideQuery 스크립트 포함은 서버 측 스크립트의 기록 데이터에 대한 CRUD 작업을 수행하기 위한 GlideRecord API의 대안입니다.
GlideQuery 스크립트 포함을 사용하면 다음을 수행할 수 있습니다.
- 쿼리 및 결과에 표준 JavaScript 객체 및 유형을 사용합니다.
- 추가 검사를 통해 쿼리 오류를 빠르게 진단하고 오류 메시지를 지웁니다.
- 상용구 쿼리 패턴을 피하여 코드를 단순화합니다.
- GlideRecord에 대한 심층적인 지식 없이도 일반적인 성능 문제를 방지할 수 있습니다.
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의 중간 및 터미널 메서드
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(오브젝트 변경)
GlideQuery - GlideQuery(문자열 테이블)
기록 쿼리를 빌드하고 실행하는 데 사용되는 GlideQuery 객체를 인스턴스화합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 테이블 | 문자열 | 쿼리할 테이블입니다. |
| 유형 | 설명 |
|---|---|
| 없음 |
이 예에서는 User 테이블의 쿼리를 인스턴스화합니다.
var query = new global.GlideQuery('sys_user');
GlideQuery - aggregate(String, aggregateType, String field)
지정된 집계 함수를 사용하여 필드를 집계합니다.
여러 필드에 대해 집계하는 쿼리를 작성하거나 여러 집계 함수를 사용하거나 groupBy() 메서드를 사용해야 하는 경우 이 메서드를 사용합니다. 하나의 함수가 있는 하나의 필드에 대해서만 집계하고 groupBy()를 사용할 필요가 없는 경우 대신 다음 메서드 중 하나를 사용합니다.
- 평균()
- 최소()
- 최대()
- 카운트()
| 이름 | 유형 | 설명 |
|---|---|---|
| 집계유형 | 문자열 | 수행할 집계 기능의 유형입니다. 옵션은 다음과 같습니다.
|
| 필드 | 문자열 | 작업을 수행할 필드입니다. |
| 유형 | 설명 |
|---|---|
| GlideQuery (영문) | 빌드 중인 쿼리 개체입니다. |
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 reassignmentsGlideQuery - avg(문자열 필드)
지정된 숫자 필드의 집계 평균을 반환합니다.
- 정수
- 길게
- 부동 소수점 숫자
- 두 번
- 통화
| 이름 | 유형 | 설명 |
|---|---|---|
| 필드 | 문자열 | 작업을 수행할 필드입니다. |
| 유형 | 설명 |
|---|---|
| 옵션 | 지정된 필드의 집계 평균을 포함하는 객체입니다. |
이 예제에서는 cmdb_ci 테이블의 평균 결함 개수를 반환하는 방법을 보여줍니다.
var faults = new global.GlideQuery('cmdb_ci')
.avg('fault_count')
.orElse(0);
gs.info(JSON.stringify(faults));
출력:
0.0037
GlideQuery - count()
쿼리와 일치하는 기록 수를 반환합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 번호 | 쿼리와 일치하는 기록 수입니다. |
이 예에서는 사용자 테이블의 활성 기록 수를 반환합니다.
var userCount = new global.GlideQuery('sys_user')
.where('active', true)
.count();
출력:
612
GlideQuery - deleteMultiple()
앞의 Where 절로 지정된 테이블의 모든 기록을 삭제합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 없음 |
이 예에서는 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)을 가진 필드를 업데이트하지 않습니다. 지정된 쿼리에만 적용됩니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| GlideQuery (영문) | 빌드 중인 쿼리 개체입니다. |
이 예시에서는 작업 테이블에 기록을 추가하지만 시스템 필드를 설정하지는 않습니다. 이 메서드를 호출하지 않으면 아래 예제는 sys_updated_on, sys_mod_count 등을 업데이트합니다.
var query = new global.GlideQuery('task')
.disableAutoSysFields()
.insert({ description: 'example', priority: 1 });
GlideQuery - disableWorkflow()
쿼리의 결과로 실행되거나 생성될 비즈니스 규칙, 플로우, 워크플로우 또는 감사 기록을 비활성화합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| GlideQuery (영문) | 빌드 중인 쿼리 개체입니다. |
이 예에서는 자동 비즈니스 프로세스를 트리거하지 않고 작업 테이블의 여러 기록을 업데이트합니다.
var query = new global.GlideQuery('task')
.disableWorkflow()
.where('active', true)
.updateMultiple({ priority: 1 });
GlideQuery - forceUpdate()
기록 변경 내용이 없는 경우에도 데이터베이스를 강제로 업데이트합니다. 예를 들어, 이 메서드를 사용하여 비즈니스 규칙을 강제로 실행할 수 있습니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| GlideQuery (영문) | 빌드 중인 쿼리 개체입니다. |
이 예제에서는 특정 sys_id로 작업 기록을 강제로 업데이트합니다.
var forceUpdate = new global.GlideQuery('task')
.forceUpdate()
.where('sys_id', taskId)
.update()
GlideQuery - get(문자열 키, 배열 selectedFields)
쿼리에서 단일 기록을 반환합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 키 | 문자열 | 반환할 기록의 Sys_id입니다. |
| selectedFields | 배열 | 옵션입니다. 결과에 반환할 추가 필드입니다. 기본값: 시스템은 항상 sys_id 반환합니다. |
| 유형 | 설명 |
|---|---|
| 옵션 | 단일 기록과 상호 작용하는 데 사용되는 객체입니다. |
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)
쿼리의 기준 이름-값 쌍 집합을 기반으로 하는 단일 기록을 포함하는 선택적 객체를 반환합니다. 각 이름-값 쌍에 대해 '=' 연산자를 가정합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| keyValues (키값) | 객체 | 여기서 키는 필드의 이름이고 값은 쿼리할 값인 객체입니다. |
| selectedFields | 배열 | 옵션입니다. 결과에 반환할 추가 필드입니다. 기본값: 시스템은 항상 sys_id 반환합니다. |
| 유형 | 설명 |
|---|---|
| 옵션 | 단일 기록과 상호 작용하는 데 사용되는 객체입니다. |
사용자 이름을 쿼리하여 기록을 반환하는 예입니다.
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() 메서드와 함께 이 메서드를 사용해야 합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 필드 | 문자열 또는 문자열 배열 | 결과를 그룹화할 필드입니다. |
| 유형 | 설명 |
|---|---|
| GlideQuery (영문) | 빌드 중인 쿼리 개체입니다. |
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 reassignmentsGlideQuery - having(문자열 aggregateType, 문자열 필드, 문자열 연산자, 숫자 값)
지정된 조건과 일치하는 결과 그룹만 표시할 수 있도록 집계 그룹을 필터링합니다.
aggregate() 또는 groupBy() 메서드와 함께 이 메서드를 사용해야 합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 집계유형 | 문자열 | 수행할 집계 기능의 유형입니다. 옵션은 다음과 같습니다.
|
| 필드 | 문자열 | 작업을 수행할 필드입니다. |
| 운영자 | 문자열 | 운영에 사용할 숫자 연산자입니다. 옵션은 다음과 같습니다.
|
| 값 | 번호 | 작업에 사용할 번호 값입니다. |
| 유형 | 설명 |
|---|---|
| GlideQuery (영문) | 빌드 중인 쿼리 개체입니다. |
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 reassignmentsGlideQuery - insert(객체 keyValues, 객체 selectedFields)
기록을 삽입하고 기록을 포함하는 선택적 객체를 반환합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| keyValues (키값) | 객체 | 기록에 삽입할 이름–값 쌍이 포함된 객체입니다. 지정되지 않은 필드는 null이 됩니다. |
| selectedFields | 배열 | 옵션입니다. 결과에 반환할 추가 필드입니다. 기본값: 시스템은 항상 sys_id 반환합니다. |
| 유형 | 설명 |
|---|---|
| 옵션 | 단일 기록과 상호 작용하는 데 사용되는 객체입니다. |
이 예제에서는 사용자의 이름과 성을 기반으로 레코드를 삽입하는 방법을 보여 줍니다.
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)
기존 기록을 업데이트하거나 기존 기록이 없는 경우 새 기록을 삽입합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 변경 | 객체 | 기록에 업데이트하거나 삽입할 이름–값 쌍이 포함된 객체입니다. |
| selectedFields | 배열 | 옵션입니다. 결과에 반환할 추가 필드입니다. 기본값: 시스템은 항상 sys_id 반환합니다. |
| 유형 | 설명 |
|---|---|
| 옵션 | 단일 기록과 상호 작용하는 데 사용되는 객체입니다. |
이 예제에서는 시스템에 아직 없는 새 레코드를 삽입하는 방법을 보여 줍니다.
// 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(숫자 제한)
쿼리에서 반환되는 기록 수를 제한합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 제한 | 번호 | 반환할 기록 수입니다. |
| 유형 | 설명 |
|---|---|
| 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(문자열 필드)
지정된 필드의 집계 최대값을 반환합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 필드 | 문자열 | 작업을 수행할 필드입니다. |
| 유형 | 설명 |
|---|---|
| 옵션 | 단일 기록과 상호 작용하는 데 사용되는 객체입니다. |
이 예제에서는 지정된 필드의 최대값 또는 가장 높은 영숫자 값을 반환하는 방법을 보여 줍니다.
var name = new global.GlideQuery('sys_user')
.max('last_name')
.orElse('');
gs.info(JSON.stringify(name));
출력:
"Zortman"
GlideQuery - min(문자열 필드)
지정된 필드의 집계 최소값을 반환합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 필드 | 문자열 | 작업을 수행할 필드입니다. |
| 유형 | 설명 |
|---|---|
| 옵션 | 단일 기록과 상호 작용하는 데 사용되는 객체입니다. |
이 예제에서는 지정된 필드의 최소값 또는 가장 낮은 영숫자 값을 반환하는 방법을 보여 줍니다.
var name = new global.GlideQuery('sys_user')
.min('last_name')
.orElse('');
gs.info(JSON.stringify(name));
출력:
"Abel"
GlideQuery - orderBy(문자열 필드)
반환된 결과를 지정된 필드를 기준으로 오름차순으로 정렬합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 필드 | 문자열 | 결과를 오름차순으로 정렬하는 쉼표로 구분된 필드입니다. |
| 유형 | 설명 |
|---|---|
| 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, 문자열 필드)
반환된 결과를 지정된 필드를 기준으로 내림차순으로 정렬합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| fieldOrAggregate | 문자열 | 쿼리에서 aggregate() 메서드를 사용하지 않는 경우 결과를 정렬할 필드를 전달합니다. 쿼리에서 aggregate() 메서드를 사용하는 경우 수행할 집계 함수의 유형을 전달합니다. 옵션은 다음과 같습니다.
|
| 필드 | 문자열 | 옵션입니다. 결과를 내림차순으로 정렬하는 필드입니다. aggregate() 메서드를 사용하는 쿼리에 필요합니다. |
| 유형 | 설명 |
|---|---|
| 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 절을 추가합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| fieldOrQuery | String 또는 GlideQuery | 필드 또는 where 절에 사용되는 다른 GlideQuery 객체입니다. 필드를 전달하면 원하는 값으로 닷워킹할 수 있습니다. 예: 'company.name'. |
| 운영자 | 문자열 | 옵션입니다. OR 절에 사용되는 연산자입니다. 인수를 전달하지 않으면 시스템에서 = 연산자를 사용합니다. 자리 표시자 값을 포함할 필요가 없습니다. |
| 값 | 모든 | OR 절에 사용되는 값입니다. |
| 유형 | 설명 |
|---|---|
| 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 절을 추가합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 필드 | 문자열 | 쿼리에 사용되는 필드입니다. |
| 유형 | 설명 |
|---|---|
| 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 절을 추가합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 필드 | 문자열 | 쿼리에 사용되는 필드입니다. |
| 유형 | 설명 |
|---|---|
| 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 |
| 이름 | 유형 | 설명 |
|---|---|---|
| 테이블 | 문자열 | 작업 또는 인시던트 등 쿼리할 테이블입니다. |
| encoded_query | 문자열 | 지정된 테이블의 기록에 적용할 인코딩된 쿼리입니다. |
| 유형 | 설명 |
|---|---|
| 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 개체로 반환합니다.
필드 이름에 플래그를 추가하여 필드 값 대신 필드의 메타데이터를 반환할 수 있습니다. 예를 들어 필드 이름 company$DISPLAY 를 사용하면 회사 필드의 표시 값이 반환됩니다. 가능한 플래그는 다음과 같습니다.
DISPLAY:필드의 표시 값을 반환합니다.CURRENCY_CODE: 통화 필드의 통화 코드를 반환합니다. 예를 들어, USD입니다.CURRENCY_DISPLAY: 통화 필드의 통화 표시 값을 반환합니다. 예를 들면¥123.45입니다.CURRENCY_STRING: 통화 필드의 통화 문자열을 반환합니다. 예를 들어,JPY; 123.45.
| 이름 | 유형 | 설명 |
|---|---|---|
| 필드 | 문자열 또는 문자열 배열 | 옵션입니다. 결과에 표시할 필드입니다. 원하는 수의 필드를 인수로 제공하거나, 원하는 값으로 닷워킹하거나, 플래그를 사용할 수 있습니다. 예: 또는
기본값: 시스템은 항상 sys_id 반환합니다. |
| 유형 | 설명 |
|---|---|
| 스트림 | 기록과 같은 항목 스트림과 상호작용하는 데 사용되는 객체입니다. |
이 예제에서는 쿼리에서 표시할 필드를 선택하고 $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.
| 이름 | 유형 | 설명 |
|---|---|---|
| 필드 | 문자열 또는 문자열 배열 | 옵션입니다. 결과에 표시할 필드입니다. 원하는 수의 필드를 인수로 제공하거나, 원하는 값으로 닷워킹하거나, 플래그를 사용할 수 있습니다. 예: 또는
기본값: 시스템은 항상 sys_id 반환합니다. |
| 유형 | 설명 |
|---|---|
| 옵션 | 단일 기록과 상호 작용하는 데 사용되는 객체입니다. |
이 예제에서는 단일 레코드를 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(문자열 필드)
지정된 숫자 필드의 집계 합계를 반환합니다.
- 정수
- 길게
- 부동 소수점 숫자
- 두 번
- 통화
| 이름 | 유형 | 설명 |
|---|---|---|
| 필드 | 문자열 | 작업을 수행할 필드입니다. |
| 유형 | 설명 |
|---|---|
| 옵션 | 단일 기록과 상호 작용하는 데 사용되는 객체입니다. |
이 예제에서는 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() 메서드를 사용하여 데이터베이스를 쿼리합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 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() 메서드를 호출하여 레코드를 업데이트하기 위해 충족해야 하는 조건을 지정합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 변경 | 객체 | 기록에서 업데이트할 이름–값 쌍을 포함하는 객체입니다. 이름은 테이블의 필드와 일치해야 합니다. |
| selectedFields | 배열 | 옵션입니다. 결과에 반환할 추가 필드입니다. 기본값: 시스템은 항상 sys_id 반환합니다. |
| 유형 | 설명 |
|---|---|
| 옵션 | 단일 기록과 상호 작용하는 데 사용되는 객체입니다. |
이 예제에서는 새 값으로 기록을 업데이트하는 방법을 보여줍니다.
var updateRecord = new global.GlideQuery('sys_user')
.where('sys_id', '0a826bf03710200044e0bfc8bcbe5d7a')
.update({ city: 'Los Angeles' });
GlideQuery - updateMultiple(객체 변경)
정의된 조건과 일치하는 모든 기존 기록을 업데이트합니다. 업데이트된 기록 수를 반환합니다.
이 메서드를 사용하기 전에 where() 메서드를 호출하여 레코드를 업데이트하기 위해 충족해야 하는 조건을 지정합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 변경 | 객체 | 기록에서 업데이트할 이름–값 쌍을 포함하는 객체입니다. 이름은 테이블의 필드와 일치해야 합니다. |
| 유형 | 설명 |
|---|---|
| 객체 | 업데이트된 기록 수를 포함하는 객체입니다. 열쇠는 다음과 같습니다.
|
이 예시에서는 정의된 기준에 맞는 기록을 업데이트하는 방법을 보여줍니다.
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 절을 추가합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| fieldOrQuery | String 또는 GlideQuery | 필드 또는 where 절에 사용되는 다른 GlideQuery 객체입니다. 필드를 전달하면 원하는 값으로 닷워킹할 수 있습니다. 예: 'company.name'. |
| 운영자 | 문자열 | 옵션입니다. where 절에 사용되는 연산자입니다. 인수를 전달하지 않으면 시스템에서 = 연산자를 사용합니다. |
| 값 | 모든 | where 절에 사용되는 값입니다. |
| 유형 | 설명 |
|---|---|
| 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 값이 포함되지 않은 기록을 반환합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 필드 | 문자열 | 쿼리에 사용되는 필드입니다. |
| 유형 | 설명 |
|---|---|
| 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 값이 포함된 기록을 반환합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 필드 | 문자열 | 쿼리에 사용되는 필드입니다. |
| 유형 | 설명 |
|---|---|
| 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을 준수하면서 데이터베이스를 안전하게 쿼리합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 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"
}