[ServiceNow] GlideQuery를 사용해보기
10120 단어 GlideQueryServiceNow
GlideQuery란?
ITAM에 포함된 Server API이지만 별도의 Plugin으로 설치할 수 있습니다.
우연히 발견했는데, GlideRecord보다 편리한 것 같았기 때문에 조사해 보았습니다.
플랫폼
파리
GlideQuery의 좋은 점
코드가 간단해진다
코드를 단순화하여 가독성을 높입니다.
C#의 LINQ와 비슷합니다.
userquery.js
var gq = new GlideQuery('sys_user')
.where('company.name', '!=', '')
.select('name', 'company$DISPLAY')
.limit(5)
.forEach(function (user) {
gs.info(user.name + '@' + user.company$DISPLAY);
});
/* 実行結果
*** Script: Lucius Bagnoli@ACME Japan
*** Script: Jimmie Barninger@ACME South America
*** Script: Melinda Carleton@ACME UK
*** Script: Jewel Agresta@ACME UK
*** Script: Sean Bonnet@ACME North America
*/
Fail Fast
GlideRecord는 쿼리가 잘못되어도 실행되지만 GlideQuery는 오류가 있으면 거기에서 멈 춥니 다.
gliderecord.js
var gr = new GlideRecord('sys_user');
gr.addQuery('activate', false); //正しくは'active'
gr.query();
while(gr.next()){
gs.info(gr.name);
}
GlideRecord도 오류가 발생하지만,
그대로 잘못된 쿼리를 실행합니다.
GlideQuery의 경우 오류를 반환하고 중지합니다.
잘못된 업데이트나 삭제를 피할 수 있습니다.
glidequery.js
var gq = new GlideQuery('sys_user')
.where('activate', false)
.select('name')
.forEach(function (user) {
gs.info(user.name);
});
사용법
스크립트 포함에 GlideQuery가 있는지 확인합니다.
현재는 Platform의 기능이 아니기 때문에 ITAM을 사용하지 않는 경우는 없다고 생각합니다.
GlideQuery가 없으면 플러그인을 설치합니다.
참고
덤
몇 가지 시도한 샘플
레코드 존재 확인
checkexist.js
var isExist = new GlideQuery('sys_user')
.where('first_name', 'Lucius')
.selectOne()
.isPresent();
gs.info(isExist);
레코드 삽입
insertuser.js
var hoge = new GlideQuery('sys_user')
.insert({
first_name: 'First',
last_name: 'Last',
email: '[email protected]'
})
.get();
gs.info(JSON.stringify(hoge));
레코드 일괄 업데이트
updatemultiple.js
var gq = new GlideQuery('sys_user')
.where('company.name', '!=', '')
.limit(3)
.updateMultiple({ active: false });
Reference
이 문제에 관하여([ServiceNow] GlideQuery를 사용해보기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ngm_777/items/fb64c5b227204e75e252텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)