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 08:38 AM
Hi @ads
can you please try with below code and see in logs whether your get right data or not.
var dataCenter = current.variables.data_centre;
gs.info("Data Center: " + dataCenter);
if (type == 'Remove access') {
var removeRel = current.variables.please_select_person_to_remove.toString().split(',');
gs.info("Users to remove: " + removeRel);
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();
gs.info("Query for user " + userGR.sys_id + " with ci " + dataCenter + " returned " + relDelete.getRowCount() + " records");
while (relDelete.next()) {
gs.info("Deleting record with sys_id: " + relDelete.sys_id);
relDelete.deleteRecord();
}
}
}
}
Thanks
SP
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎12-11-2023 09:05 AM - edited ‎12-11-2023 09:20 AM
I am getting the below log correctly,
gs.info("Data Center: " + dataCenter);
gs.info("Users to remove: " + removeRel);
I am not getting other logs, that means the script is not coming to the 3rd log
gs.info("Query for user " + userGR.sys_id + " with ci " + dataCenter + " returned " + relDelete.getRowCount() + " records");
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎12-11-2023 09:49 AM - edited ‎12-11-2023 09:50 AM
yes, you need to modify it at that point as per your requirement.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎12-11-2023 09:54 AM
Hi,
The below query is correct, however the log is not coming.
var relDelete = new GlideRecord("cmdb_rel_person");
relDelete.addQuery('ci', dataCenter);
relDelete.addQuery('user', userGR.sys_id);
relDelete.query();
workflow.info("Query for user " + userGR.sys_id + " with ci " + dataCenter + " returned " + relDelete.getRowCount() + " records");