问题描述
.
var movetoReady = [];
var topLinesRecords = new GlideRecord('x_snc_ms_dynamics_d365_queue');
topLinesRecords.addEncodedQuery('root_element_sys_id=03133e1a1bfe6410f8ca0e16624bcba7');
topLinesRecords.orderByDesc('sys_created_on');
topLinesRecords.query();
while(topLinesRecords.next()){
gs.info(' first record : ' + topLinesRecords.number);
if(movetoReady.indexOf(topLinesRecords.getValue('object_sys_id')) == -1){
movetoReady.push(topLinesRecords.getValue('object_sys_id'));
}
gs.info('array. : ' + movetoReady);
updateRecordtoFail(topLinesRecords);
}
解决方法
您可以使用 array.includes
if (!moveToReady.includes(topLinesRecords.getValue('object_sys_id'))){
moveToReady.push(topLinesRecords.getValue('object_sys_id'));
}
,
因此,在 ServiceNow 上获取唯一值的一些技巧: -GlideRecord 有一个“getUniqueValue”方法 (网址:https://docs.servicenow.com/bundle/paris-platform-administration/page/administer/table-administration/concept/c_UniqueRecordIdentifier.html)
-您可以搜索包含 OOB 方法/函数的脚本以仅获取唯一值。搜索“实用程序”。
希望这些信息有帮助!
,您可以使用 ES6 中的 Set 结构来使您的代码更快、更易读:
// Create Set
this.items = new Set();
add(item) {
this.items.add(item);
// Set to array
console.log([...this.items]);
}