Если вам необходимо найти дубликаты в списке для удаления можете использовать скрипт:
const table = 'sys_cmdb_ci';
const condition = '()';
const groupBy = 'name';
const groups = getGroups(table, condition, groupBy);
if (!groups) {
return;
}
const duplicateGroups = groups.filter(group => group.count > 1);
duplicateGroups.forEach(group => {
const groupRec = new SimpleRecord(table);
groupRec.addEncodedQuery(group.condition);
groupRec.orderBy('sys_id');
groupRec.query();
groupRec.next(); // пропускаем запись, созданную первой
while (groupRec.next()) {
// print(`${groupRec.sys_id}\n`);
// groupRec.deleteRecord(); // удаляем дубликат
}
})
function getGroups(table, condition, groupBy) {
let instanceUrl = ss.getProperty('simple.instance.uri');
instanceUrl = !instanceUrl.includes('https://') ? `https://${instanceUrl}` : instanceUrl;
instanceUrl = instanceUrl.endsWith('/') ? instanceUrl.slice(0, -1) : instanceUrl;
const groupsRequest = sws.restRequestV1();
groupsRequest.setRequestUrl(`${instanceUrl}/v1/list-group-filter/${table}`);
groupsRequest.setRequestHeader('Content-type', 'application/json');
groupsRequest.setRequestHeader('Authorization', `Bearer ${new SimpleUser().getAccessToken()}`);
groupsRequest.setQueryParameter('condition', `${condition}^GROUPBYCOUNTDESC${groupBy}`);
groupsRequest.setQueryParameter('per_page', 9999);
const response = groupsRequest.execute();
const { groups } = JSON.parse(response.getBody())?.data;
return groups;
}