- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-24-2024 01:32 AM
Hi,
Assigned to field is list collector data type. when active value changes into false into sys_user table, the value should deactivate into assigned_to field also(cmdb_Ci table). I have tried the below script but it removed all assigned_to field value. pls let me know the changes in the script. Thanks.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-24-2024 01:57 AM
A list field contains the comma separated sys_id's of the users and you are setting the entire field to 'empty', so that's just doing exactly what you explain it does.
Try something like this:
(function executeRule(current, previous /*null when async*/) {
var userSysId = current.sys_id.toString();
var cmdbCiGr = new GlideRecord('cmdb_ci');
cmdbCiGr.addQuery('assigned_to', 'CONTAINS', userSysId);
cmdbCiGr.query();
while (cmdbCiGr.next()) {
var assignedTo = cmdbCiGr.getValue('assigned_to');
var assignedToArray = assignedTo.split(',');
// Remove the inactive user's sys_id from the assigned_to list
var index = assignedToArray.indexOf(userSysId);
if (index > -1) {
assignedToArray.splice(index, 1);
cmdbCiGr.setValue('assigned_to', assignedToArray.join(','));
cmdbCiGr.update();
}
}
})(current, previous);
Please mark any helpful or correct solutions as such. That helps others find their solutions.
Mark
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-26-2024 12:26 AM
Thanks, its resolved by declaring in the beginning and end of the script.