We've updated the ServiceNow Community Code of Conduct, adding guidelines around AI usage, professionalism, and content violations. Read more

populate appovers list in custom field on RITM

Ash41
Kilo Sage

Hi Team, 

 

I want to populate Approvers list in custom field on RITM. I have wrote below BR on RITM table after- insert/update.

Users are not populating, not sure what's wrong. custom field is glide list type.

 

Condition: current.approval.changesTo('requested')

 

 

(function executeRule(current, previous /*null when async*/) {
	var gr = new GlideRecord('sysapproval_approver');
	gr.addQuery('sysapproval', current.sys_id);
	gr.query();
	var myString='';
	if(gr.hasNext()){
		while(gr.next()){
			myString = myString +gr.approver+',';
			gs.log(current.number+' Inside while loop Approval List ='+myString);
		}
		myString=myString.slice(0, -1);
		gs.log(current.number+' Outside while loop Approval List ='+myString);	
		current.u_approvers=myString;
		gs.log(current.number+' Outside while loop current.u_approvers ='+current.u_approvers);
		current.update();
	}
})(current, previous);

 

 

 

1 ACCEPTED SOLUTION

@Ash41 

 

1) In the BR condition you can add a condition (first tab where we mentioned the condition in builder)

-> u_approvers is empty

2) please make BR to before-> insert/update

3) Remove current.update()

 

current.update() is fine for after insert but creates problem for after update

 

If my answer solved your issue, please mark my answer as  Correct & 👍Helpful based on the Impact.

View solution in original post

10 REPLIES 10

Jaspal Singh
Mega Patron

Try below as a new After Update BR that runs on Approval table when State changes to Approved or Rejected. Along with the BR that you are using by Ankur

(function executeRule(current, previous /*null when async*/) {

	var gr = new GlideRecord('sc_req_item');
	gr.addQuery('sys_id', current.sysapproval);
	gr.query();
		if(gr.next()){
			gr.u_approvers='';
gr.update();
	}
})(current, previous);