After insert business rule not working
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-21-2025 03:51 AM
Hi All,
The requirement is to update watchlist members from a custom table to INC and RITM table so I created a Business Rule after insert that updates the INC/RITM record whenever a new member is added to the custom table.
While the BR works and adds new member to the list only if one member is available on the custom table as a watchlist.
Ex - If Bob is a watchlist mem and if I try to add Adam then it works/updates the INC/RITM
The below scenario does not work:
1. I add a CI to INC/RITM which has no WL member and save the record
2. I add a member to the CI which had no WL member but it does not update the mem to the INC/RITM
BR as follows:
(function executeRule(current, previous /*null when async*/ ) {
var ciService = current.u_cmdb_ci_service;
// Get the user ID from the current record
var userId = current.u_user.toString();
// Update watchlist for INC records
var incGr = new GlideRecord('incident');
incGr.addQuery('business_service', ciService);
incGr.addEncodedQuery('active=true');
incGr.query();
while (incGr.next()) {
var watchlist = incGr.watch_list.split(',');
if (watchlist.indexOf(userId) === -1) {
watchlist.push(userId);
incGr.watch_list = watchlist.join(',');
incGr.update();
}
}
// Update watchlist for RITM records
var ritmGr = new GlideRecord('sc_req_item');
ritmGr.addQuery('business_service', ciService);
ritmGr.addEncodedQuery('active=true');
ritmGr.query();
while (ritmGr.next()) {
var watchlist1 = ritmGr.watch_list.split(',');
if (watchlist1.indexOf(userId) === -1) {
watchlist1.push(userId);
ritmGr.watch_list = watchlist1.join(',');
ritmGr.update();
}
}
})(current, previous);
Need help. TIA.
@Ankur Bawiskar @Dr Atul G- LNG @Ravi Gaurav @Sandeep Rajput
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-21-2025 05:25 AM
try this
(function executeRule(current, previous /*null when async*/) {
var ciService = current.u_cmdb_ci_service;
var userId = current.u_user.toString();
// Create an array to hold incidents and RITMs to update
var recordsToUpdate = [];
// Query for both incidents and RITMs in one go
var gr = new GlideRecord('incident');
gr.addQuery('business_service', ciService);
gr.addEncodedQuery('active=true');
gr.query();
while (gr.next()) {
var watchlist = gr.watch_list ? gr.watch_list.split(',') : [];
if (watchlist.indexOf(userId) == -1) {
watchlist.push(userId);
recordsToUpdate.push({ table: 'incident', sys_id: gr.sys_id, watch_list: watchlist.join(',') });
}
}
// Query for RITMs
var ritmGr = new GlideRecord('sc_req_item');
ritmGr.addQuery('business_service', ciService);
ritmGr.addEncodedQuery('active=true');
ritmGr.query();
while (ritmGr.next()) {
var watchlist1 = ritmGr.watch_list ? ritmGr.watch_list.split(',') : [];
if (watchlist1.indexOf(userId) == -1) {
watchlist1.push(userId);
recordsToUpdate.push({ table: 'sc_req_item', sys_id: ritmGr.sys_id, watch_list: watchlist1.join(',') });
}
}
// Batch update all records
for (var i = 0; i < recordsToUpdate.length; i++) {
var record = new GlideRecord(recordsToUpdate[i].table);
if (record.get(recordsToUpdate[i].sys_id)) {
record.watch_list = recordsToUpdate[i].watch_list;
record.update();
}
}
})(current, previous);
If my response helped please mark it correct and close the thread so that it benefits future readers.
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-23-2025 04:08 AM
Hope you are doing good.
Did my reply answer your question?
If my response helped please mark it correct and close the thread so that it benefits future readers.
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-26-2025 02:52 AM
Hope you are doing good.
Did my reply answer your question?
If my response helped please mark it correct and close the thread so that it benefits future readers.
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader