Описание
При использовании скрипта в блоке User-approval, отлаженного через sys_script, не создаются согласования. Формирование anwer в скрипте блока выполняется с использованием метода concat()
Обходное решение
Использовать временную переменную temp для использования concat(). После сборки всех согласующий выполнять присвоение из переменной temp в answer.
Переменная temp должна быть объявлена через let!
Код, который не работает:
function getOwner(serviceId) {
const service = new SimpleRecord('sys_cmdb_ci_service');
service.get(serviceId);
return service.getValue('owned_by');
}
const services = [
"163993199017505738",
"163993198213436423",
"163993197715813189"
];
services.forEach(service => {
answer =
answer.concat(
getOwner(service)
);
});
if (current.getValue('service') && current.service.getValue('owned_by')) {
answer.push(
current.
service.
getValue('owned_by'));
}
return answer;
Код, который будет работать:
function getOwner(serviceId) {
const service = new SimpleRecord('sys_cmdb_ci_service');
service.get(serviceId);
return service.getValue('owned_by');
}
const services = [
"163993199017505738",
"163993198213436423",
"163993197715813189"
];
// const temp = []; unacceptable !!!
let temp = [];
services.forEach(service => {
temp =
temp.concat(
getOwner(service)
);
});
if (current.getValue('service') &&
current.service.getValue('owned_by')) {
temp.push(
current.
service.
getValue('owned_by'));
}
answer = temp;
return answer;