Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-12-2023 06:31 PM
Hi Ankur,
Below is script , I got it working but it is inefficient cause of all the validation done on client side, need to understand if can be enhanced.
client callable = true,
On Click = markQuar()
Condition =current.install_status == '1' && current.assigned_to != ''
function markQuar() {
var toQuar = [];
var invalidRecs = [];
var numSel = 0;
var tblName = g_list.getTableName();
var selSysIds = g_list.getChecked();
var sysIDs = selSysIds.split(',');
var lth = sysIDs.length;
for (var i = 0; i < lth; i++) {
//alert(sysIDs[i]);
var a = new GlideRecord('alm_hardware');
a.addQuery('sys_id', sysIDs[i]);
a.query();
if (a.next()) {
if ((a.install_status == '1') && (a.assigned_to != '')) {
toQuar.push(a.sys_id);
//alert('Yes ' + a.display_name);
} else {
invalidRecs.push(a.display_name);
}
}
}
var message = '';
if (invalidRecs.length > '0') {
message = 'please confirm quarantine to be marked for ' + toQuar.length + ' assets.\n ' + 'Cannot quarantine ' + invalidRecs.length + ' asset, please check if status in use & assigned to :'; //+ invalidRecs.toString();
for (var j = 0; j < invalidRecs.length; j++) {
message += '\n' + invalidRecs[j].toString();
}
} else {
message = 'please confirm quarantine to be marked for ' + toQuar.length;
}
var usrResponse = confirm(message);
if (usrResponse == true) {
var ga = new GlideAjax('TriggQuar');
ga.addParam('sysparm_name', 'createQuarTask');
ga.addParam('sysparm_entry_ids', toQuar.toString());
ga.getXML(getDupTasks);
// }
function getDupTasks(response) {
var answer = response.responseXML.documentElement.getAttribute("answer");
if (answer) {
alert('Qurantinemarke for ' + toQuar.length + 'Assets');
}
}
} else {
return false;
}
}