How to delete multiple User Relationships record in workflow runscript ?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎12-11-2023 07:31 AM - edited ‎12-11-2023 08:23 AM
Hi All,
I want to delete multiple record in the User Relationship table by getting the ci from the variable in the cat item and users from a list collector type variable. I used the below run script, Its not deleting the multiple record. Can anyone help me on this ?
var dataCenter = current.variables.data_centre;

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎12-11-2023 07:57 AM
Hi @ads
Instead of relDelete.deleteRecord() try relDelete.deleteMultiple()
If my response helps to solve your issue. Kindly mark it as helpful & correct.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎12-11-2023 08:16 AM
Hi, I have tried with both , its not working.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎12-11-2023 08:22 AM
Hi @ads
Please find the below code and let me know whether it useful or not.
var dataCenter = current.variables.data_centre;
if (type == 'Remove access') {
var removeRel = current.variables.please_select_person_to_remove.toString().split(',');
for (var i = 0; i < removeRel.length; i++) {
var userGR = new GlideRecord('sys_user');
if (userGR.get(removeRel[i])) { // Use get() to directly retrieve the record
var relDelete = new GlideRecord("cmdb_rel_person");
relDelete.addQuery('ci', dataCenter);
relDelete.addQuery('user', userGR.sys_id);
relDelete.query();
while (relDelete.next()) {
relDelete.deleteRecord();
}
}
}
}
Thanks
SP
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎12-11-2023 08:26 AM
Hi, Tried with the above code, Its not working.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎12-11-2023 08:29 AM
var dataCenter = current.variables.data_centre;
if (type == 'Remove access') {
var removeRel = current.variables.please_select_person_to_remove.toString().split(',');
for (var i = 0; i < removeRel.length; i++) {
var userGR = new GlideRecord('sys_user');
if (userGR.get(removeRel[i])) {
var relDelete = new GlideRecord("cmdb_rel_person");
relDelete.addQuery('ci', dataCenter);
relDelete.addQuery('user', userGR.sys_id);
relDelete.query();
while (relDelete.next()) {
relDelete.deleteRecord();
}
} else {
gs.info("User not found with sys_id: " + removeRel[i]);
}
}
}
Try with above code.