GlideQuery - 범위 지정, 전역
GlideQuery API는 GlideRecord의 대안으로, 서버 측 스크립트의 기록 데이터에 대해 CRUD 작업을 수행합니다.
GlideQuery API를 사용하면 다음을 수행할 수 있습니다.
- 쿼리 및 결과에 표준 JavaScript 객체 및 유형을 사용합니다.
- 추가 검사를 통해 쿼리 오류를 신속하게 진단하고 오류 메시지를 지웁니다.
- 상용구 쿼리 패턴을 방지하여 코드를 단순화합니다.
- GlideRecord에 대한 자세한 지식 없이도 일반적인 성능 문제를 방지할 수 있습니다.
new global.GlideQuery('sys_user')
// ...이 API에는 GlideQuery[com.sn_glidequery] 플러그인이 필요합니다.구현
이 API는 스트림 및 선택적 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 API는 쿼리에 문제가 있을 때 오류를 발생시키며, 여기에는 안내에 도움이 되는 명확한 설명이 포함되어 있습니다. 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 API는 다음을 지원하지 않습니다.
- 다른 범위에서 액세스를 허용하지 않는 테이블을 읽거나 씁니다.
- 인코딩된 쿼리 읽기.
- GlideDate 또는 GlideDateTime 객체로, JavaScript 문자열로 읽습니다.
- FX 통화 필드입니다.
- 저널 필드 유형 업데이트
- 모호한 조건부 논리가 있는 쿼리입니다. 예를 들어 시스템에서 실행할지(active = true AND name != null) 또는 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 는 중간 메서드와 터미널이라는 두 가지 범주의 메서드를 사용합니다. 중간 함수는 Stream (레코드와 같은 항목 스트림과 상호 작용하는 데 사용되는 API)을 반환하는 함수로, 호출이 함께 연결되는 유창한 구문 스타일을 허용합니다. 터미널 함수는 Stream을 반환하지 않으므로 Stream 메서드 호출 체인을 중지하는 함수입니다.
GlideQuery에서 where, orderBy, disableWorkflow와 같은 메서드는 새 GlideQuery 객체를 반환하는 중간 함수입니다. 마찬가지로 GlideQuery의 가장 인기 있는 터미널 함수인 select 및 selectOne은 터미널 함수입니다. GlideQuery 가 구성을 완료하고 기록 처리를 시작할 준비가 되면 호출됩니다. 특정 사용 사례에 따라 GlideQuery API에 대한 호출을 구성할 때 이 두 메서드 유형의 차이점을 염두에 두는 것이 중요합니다. 중간 및 터미널 함수에 대한 자세한 내용은 GlideQuery - 스트림 처리 1부 문서를 참조하십시오.
다음 방법은 중급으로 분류됩니다.
- aggregate(문자열, aggregateType, 문자열 필드)
- disableAutoSysFields()
- disableWorkflow()를 호출합니다.
- forceUpdate()를 호출합니다.
- groupBy(문자열 필드)
- having(문자열 aggregateType, 문자열 필드, 문자열 연산자, 숫자 값)
- limit(숫자 제한)
- orderBy(문자열 필드)
- orderByDesc(문자열, fieldOrAggregate, 문자열 필드)
- orWhere(String fieldOrQuery, 문자열 연산자, Any 값)
- orWhereNotNull(문자열 필드)
- orWhereNull(String 필드)
- where(String fieldOrQuery, 문자열 연산자, Any value)
- whereNotNull(String 필드)
- 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(문자열, aggregateType, 문자열 필드)
지정된 집계 함수를 사용하여 필드를 집계합니다.
여러 필드에 대해 집계하는 쿼리를 작성하거나 여러 집계 함수를 사용하거나 groupBy() 메서드를 사용해야 하는 경우 이 메서드를 사용합니다. 하나의 함수로 하나의 필드에 대해서만 집계하고 groupBy()를 사용할 필요가 없는 경우 대신 다음 메서드 중 하나를 사용합니다.
- 평균()
- 분()
- 최대()
- 카운트()
| 이름 | 유형 | 설명 |
|---|---|---|
| 집계 유형 | 문자열 | 수행할 집계 기능의 유형입니다. 옵션은 다음과 같습니다.
|
| 필드 | 문자열 | 작업을 수행할 필드입니다. |
| 유형 | 설명 |
|---|---|
| 글라이드쿼리 | 빌드할 쿼리 개체입니다. |
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()
쿼리와 일치하는 기록 수를 반환합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 번호 | 쿼리와 일치하는 기록 수입니다. |
이 예에서는 User 테이블의 활성 레코드 수를 반환합니다.
var userCount = new global.GlideQuery('sys_user')
.where('active', true)
.count();
출력:
612
GlideQuery - deleteMultiple()
앞의 Where 절에서 지정한 테이블의 모든 레코드를 삭제합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 없음 |
이 예에서는 성이 Jeter인 User 테이블에서 활성 레코드를 모두 삭제합니다.
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)의 업데이트를 비활성화합니다. 지정된 쿼리에만 적용됩니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 글라이드쿼리 | 빌드할 쿼리 개체입니다. |
이 예는 작업 테이블에 기록을 추가하지만 시스템 필드는 설정하지 않습니다. 이 메서드를 호출하지 않으면 아래 예제는 sys_updated_on, sys_mod_count 등을 업데이트합니다.
var query = new global.GlideQuery('task')
.disableAutoSysFields()
.insert({ description: 'example', priority: 1 });
GlideQuery - disableWorkflow()
쿼리의 결과로 실행되거나 생성될 비즈니스 규칙, 플로우, 워크플로우 또는 감사 기록을 비활성화합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 글라이드쿼리 | 빌드할 쿼리 개체입니다. |
이 예에서는 자동 비즈니스 프로세스를 트리거하지 않고 작업 테이블의 여러 기록을 업데이트합니다.
var query = new global.GlideQuery('task')
.disableWorkflow()
.where('active', true)
.updateMultiple({ priority: 1 });
GlideQuery - forceUpdate()
레코드가 변경되지 않은 경우에도 데이터베이스를 강제로 업데이트합니다. 예를 들어, 이 메서드를 사용하여 비즈니스 규칙을 강제로 실행할 수 있습니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 글라이드쿼리 | 빌드할 쿼리 개체입니다. |
이 예제에서는 작업 기록을 특정 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 배열)
쿼리에 사용할 이름-값 쌍 집합을 기반으로 단일 레코드를 포함하는 Optional 객체를 반환합니다. 각 이름-값 쌍에 대해 '=' 연산자를 가정합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 키값 | 객체 | 키가 필드의 이름이고 값이 쿼리할 값인 객체입니다. |
| 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() 메서드와 함께 사용해야 합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 필드 | 문자열 또는 문자열 배열 | 결과를 그룹화할 필드입니다. |
| 유형 | 설명 |
|---|---|
| 글라이드쿼리 | 빌드할 쿼리 개체입니다. |
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() 메서드와 함께 사용해야 합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 집계 유형 | 문자열 | 수행할 집계 기능의 유형입니다. 옵션은 다음과 같습니다.
|
| 필드 | 문자열 | 작업을 수행할 필드입니다. |
| 운영자 | 문자열 | 작업에 사용할 숫자 연산자입니다. 옵션은 다음과 같습니다.
|
| 값 | 번호 | 작업에 사용할 번호 값입니다. |
| 유형 | 설명 |
|---|---|
| 글라이드쿼리 | 빌드할 쿼리 개체입니다. |
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)
레코드를 삽입하고 레코드가 들어 있는 선택적 개체를 반환합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 키값 | 객체 | 기록에 삽입할 이름-값 쌍을 포함하는 객체입니다. 지정되지 않은 필드는 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(changes 객체, 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(number limit)
쿼리에서 반환되는 기록 수를 제한합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 제한 | 번호 | 반환할 기록 수입니다. |
| 유형 | 설명 |
|---|---|
| 글라이드쿼리 | 빌드할 쿼리 개체입니다. |
이 예제에서는 반환되는 결과를 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(문자열 필드)
지정된 필드별로 오름차순으로 반환된 결과를 정렬합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 필드 | 문자열 | 결과를 오름차순으로 정렬하는 쉼표로 구분된 필드입니다. |
| 유형 | 설명 |
|---|---|
| 글라이드쿼리 | 빌드할 쿼리 개체입니다. |
이 예제에서는 결과를 레코드 번호에 따라 오름차순으로 정렬하는 방법을 보여 줍니다.
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() 메서드를 사용하는 쿼리에 필요합니다. |
| 유형 | 설명 |
|---|---|
| 글라이드쿼리 | 빌드할 쿼리 개체입니다. |
이 예제에서는 결과를 숫자별로 내림차순으로 정렬하는 방법을 보여 줍니다.
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(String fieldOrQuery, 문자열 연산자, Any value)
지정된 조건에 따라 값을 반환하는 쿼리에 OR 절을 추가합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| fieldOrQuery | String 또는 GlideQuery | where 절에 사용된 필드 또는 다른 GlideQuery 객체입니다. 필드를 전달하면 원하는 값으로 닷워킹할 수 있습니다. 예: 'company.name'. |
| 운영자 | 문자열 | 옵션입니다. OR 절에 사용되는 연산자입니다. 인수를 전달하지 않으면 = 연산자가 사용됩니다. 자리 표시자 값은 포함할 필요가 없습니다. |
| 값 | 모두 | OR 절에 사용되는 값입니다. |
| 유형 | 설명 |
|---|---|
| 글라이드쿼리 | 빌드할 쿼리 개체입니다. |
이 예제에서는 쿼리에 간단한 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 절을 추가합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 필드 | 문자열 | 쿼리에 사용되는 필드입니다. |
| 유형 | 설명 |
|---|---|
| 글라이드쿼리 | 빌드할 쿼리 개체입니다. |
이 예제에서는 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 절을 추가합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 필드 | 문자열 | 쿼리에 사용되는 필드입니다. |
| 유형 | 설명 |
|---|---|
| 글라이드쿼리 | 빌드할 쿼리 개체입니다. |
이 예에서는 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 |
좋아하지 않음 |
> |
포함 |
에 |
NSAMEAS (사메아스) |
>= |
포함하지 않음 |
Instanceof |
에 |
< |
동적 |
처럼 |
사메아스 |
<= |
빈 문자열 |
LT_FIELD |
STARTSWITH |
Endswith |
LT_OR_EQUALS_FIELD |
| 이름 | 유형 | 설명 |
|---|---|---|
| 테이블 | 문자열 | 작업 또는 인시던트와 같이 쿼리할 테이블입니다. |
| encoded_query | 문자열 | 지정된 테이블의 기록에 적용할 인코딩된 쿼리입니다. |
| 유형 | 설명 |
|---|---|
| 글라이드쿼리 | 인코딩된 쿼리를 포함하는 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, 문자열 연산자, Any value)
지정된 조건에 따라 값을 반환하는 Where 절을 쿼리에 추가합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| fieldOrQuery | String 또는 GlideQuery | where 절에 사용된 필드 또는 다른 GlideQuery 객체입니다. 필드를 전달하면 원하는 값으로 닷워킹할 수 있습니다. 예: 'company.name'. |
| 운영자 | 문자열 | 옵션입니다. where 절에 사용되는 연산자입니다. 인수를 전달하지 않으면 = 연산자가 사용됩니다. |
| 값 | 모두 | where 절에 사용되는 값입니다. |
| 유형 | 설명 |
|---|---|
| 글라이드쿼리 | 빌드할 쿼리 개체입니다. |
이 예는 활성이 True이고 사용자의 마지막 로그인이 지정된 날짜 이후인 사용자 테이블에서 기록을 반환하는 방법을 보여줍니다.
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 값이 포함되지 않은 기록을 반환합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 필드 | 문자열 | 쿼리에 사용되는 필드입니다. |
| 유형 | 설명 |
|---|---|
| 글라이드쿼리 | 빌드할 쿼리 개체입니다. |
이 예제에서는 User 테이블을 쿼리하고 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 값을 포함하는 기록을 반환합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 필드 | 문자열 | 쿼리에 사용되는 필드입니다. |
| 유형 | 설명 |
|---|---|
| 글라이드쿼리 | 빌드할 쿼리 개체입니다. |
이 예에서는 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을 준수하면서 데이터베이스를 안전하게 쿼리합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 글라이드쿼리 | 빌드할 쿼리 개체입니다. |
이 예제에서는 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"
}