Update to record via list view is not triggering business rule

Brad Warman
Giga Sage

Hi. I've got a business rule that updates a field on demand records whenever an index field is updated/recalculated. This works fine when updating the index field manually within a record, or within a list view on the demand table, but when I 're-rank' demands using a 'Rank' UI Action, the business rule is not triggered.

 

BradWarman_0-1750660751561.png

 

The 'Rank' UI Action pops up a dialog window with the list of demands which can be dragged and dropped into a new order of priority. This order is maintained by the index field which is automatically updated/recalculated whenever a demand is dragged into a new position. Does anyone know how to get a business rule to trigger from this condition? I have disabled all conditions within the business rule for testing purposes, and it still works fine when updating records manually, but it still doesn't update when ranking demands in this dialog window.

 

BradWarman_1-1750661079798.png

 

4 REPLIES 4

Ankur Bawiskar
Tera Patron
Tera Patron

@Brad Warman 

if you are updating the record and business rule is configured with correct condition then it should work from pop up page as well where you are updating the record.

If my response helped please mark it correct and close the thread so that it benefits future readers.

Regards,
Ankur
✨ Certified Technical Architect  ||  ✨ 9x ServiceNow MVP  ||  ✨ ServiceNow Community Leader

Thanks @Ankur Bawiskar, I thought that was the case. I suspected the conditions were incorrect so removed them all for testing purposes, but the issue still exists - the business rule is triggered correctly when updating the index field manually, but refuses to trigger when ranking demands using the pop up page.

@Brad Warman 

how is that business rule configured?

how is the popup rendered?

how is the update happening on that popup?

If my response helped please mark it correct and close the thread so that it benefits future readers.

Regards,
Ankur
✨ Certified Technical Architect  ||  ✨ 9x ServiceNow MVP  ||  ✨ ServiceNow Community Leader

Hi Ankur. Here's the config on the business rule

 

BradWarman_0-1750717213114.png

 

BradWarman_1-1750717232917.png

 

It just calls a script include which updates a field called u_demand_ranking with the number the demand sits in the order based on the portfolio index field. The business requirement is to have demands that are within a specific portfolio/domain be ranked so that the business can easily identify which demands are ranked #1, #2, #3 etc for each portfolio/domain. Here's an example of how it looks when the portfolio index field of a demand is manually updated - The business rule runs which calls the script include that changes the portfolio ranking value based on where the demand sits when ordered by portfolio index.

BradWarman_4-1750717886600.png

 

 

The problem arises when I attempt to rank the demands using the 'Rank' UI action on the demands related list on the pm_portfolio table. Clicking the Rank UI action opens a dialog window which allows the demands to be clicked and dragged to reorder the ranking. Here's the code which is run from clicking the UI action which pops up the dialog window.

 

function openSortingDialog_bf134fbf971656500d08bb56f053af81() {
		var contextId = g_list.getSubmitValue('sysparm_collectionID');
		contextId = 'pm_portfolio,sys_id,' + contextId;
		ListSortWindow.getInstance().openSortWindowWithParams('Rank', contextId, 'portfolio', 'pm_portfolio', 'dmn_demand', 'portfolio_index', 'visible_columns=,extra_conditions=', g_list);
}

I didn't create this UI action and unfortunately can't find a UI page/macro/script etc that is controlling the dialog window so can't comment on how this part works. There doesn't seem to be any doco from ServiceNow on ListSortWindow or g_list.getSubmitValue, although there is some information on g_list itself.

 

When a demand is reranked using this method, the portfolio index is automatically updated. My expectation is that the business rule would then detect a change and run, changing the value of the portfolio ranking field if necessary like it does when I manually change the portfolio index field, but the business rule doesn't run at all.

 

BradWarman_5-1750718252501.png

 

The outcome of this is the demands will display the correct order when sorting by portfolio index, but the portfolio ranking field hasn't been updated so isn't reflecting the change.

 

BradWarman_6-1750718638197.png