- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-24-2023 09:26 PM
@Gunjan Kiratkar
Good morning All,
i want to check that state of the approval are approved not against change number CHG0000087 if all are not approved the send notification.
Please let me know How will I check? Please help.
i used hasnext() in while loop to check the record but background script went in infinite loop.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-24-2023 09:54 PM
You can do something like below:-
var gr = new GlideRecord('sysapproval_approver');
gr.addEncodedQuery('sysapproval=e2cdf552db252200a6a2b31be0b8f57f^state!=not_required^ORstate=NULL'); //Copy encoded query from list view
gr.query()
var allCount=gr.getRowCount();
var approvedCount=0;
while(gr.next() && gr.state=='approved'){
approvedCount++;
}
if(approvedCount==allCount){
gs.eventQueue("EventName");
}
Please Mark My Response as Correct/Helpful based on Impact
Regards,
Gunjan Kiratkar
2X ServiceNow MVP
Community Rising Star 2022
Youtube : ServiceNow Guy

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-24-2023 09:37 PM
Hello Anil,
Please find below code
var gr = new GlideRecord('sysapproval_approver');
gr.addEncodedQuery('sysapproval=7370d8391b90a11093bf8480cd4bcbaa^state!=approved'); // sys_id of change
gr.query()
gs.info("Print number:"+gr.getRowCount());
if(gr.next()){
gs.info("print state:"+gr.state); // if all are not approved then it will enter in if loop and you can erite logic here
}
Kindly mark correct and helpful if applicable
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-24-2023 09:42 PM
Hi @anilkumarsharma ,
Update your script as shown below and add variable flags if needed:
var aggChange = new GlideAggregate('sysapproval_approver');
aggChange.addEncodedQuery('sysapproval.number=CHG0000087');
aggChange.addAggregate('COUNT','state');
aggChange.query();
while(aggChange.next()){
// add a message with the count
var msg = "Change request has a total of " + aggChange.getAggregate('COUNT','state') + " approval state "+aggChange.getDisplayValue('state') ;
gs.addInfoMessage(msg);
}
Regards, Shekhar
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-24-2023 09:49 PM - edited 01-24-2023 09:50 PM
Hello,
You can change the code like below.
var gr = new GlideRecord('sysapproval_approver');
gr.addEncodedQuery('sysapproval.number=CHG0000087');
gr.query();
gs.info("Print number:"+gr.getRowCount());
while(gr.next()){
gs.info("print state:"+gr.state);
}
if(gr.state=='approved')
{
gs.print("change approved");
}
Please mark my answer as helpful/correct if it helps you.
Regards,
Namrata
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-24-2023 09:54 PM
You can do something like below:-
var gr = new GlideRecord('sysapproval_approver');
gr.addEncodedQuery('sysapproval=e2cdf552db252200a6a2b31be0b8f57f^state!=not_required^ORstate=NULL'); //Copy encoded query from list view
gr.query()
var allCount=gr.getRowCount();
var approvedCount=0;
while(gr.next() && gr.state=='approved'){
approvedCount++;
}
if(approvedCount==allCount){
gs.eventQueue("EventName");
}