Help replacing GlideAggragate to Flow Designer
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-19-2025 08:03 AM
Hi guys,
Can someone please help me transform this GlideAggregate code to use with as Flow desginer flow?
var pendingRes = new GlideAggregate('sn_plng_att_core_resource_assignment');
pendingRes.addQuery('resource_status', 'pending');
pendingRes.addQuery('group_resource.manager', '!=', '');
pendingRes.groupBy('group_resource.manager');
pendingRes.addAggregate('COUNT');
pendingRes.query();
while (pendingRes.next()) {
var msg = pendingRes.getValue('group_resource.manager.name') + " has " + pendingRes.getAggregate('COUNT') + " pending approvals.";
gs.info(msg);
}
Thanks!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-19-2025 08:07 AM - edited 02-19-2025 08:07 AM
Hello,
for using GlideAggregate in Flow Designer you should create custom flow action.
Check this video created by Robert Fedoruk: Build a custom Flow Action to do Aggregation in ServiceNow Flow Designer
Official ServiceNow documentation: Building actions
If my answer helped you, please mark it as correct and helpful, thank you 👍
Martin
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-19-2025 08:12 AM
@AnaBeatrizA This is how I would construct it:
Flow Structure in Flow Designer:
- Trigger: Manual or Scheduled Trigger(Provide table name)
- Lookup Records: Fetch pending resource assignments and all other conditions
- Script Action: Count occurrences per manager(Little bit coding part is required) Configure input/output steps
- Loop: Iterate over the dictionary and generate messages
- Log Message / Notification: Send alerts to managers (if required)
Mark my response as helpful if it resolves your doubt.
Thank you,
Mahesh.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-19-2025 09:22 AM
I think you can write script action:
(function execute(inputs, outputs) {
var pendingRes = new GlideAggregate('sn_plng_att_core_resource_assignment');
pendingRes.addQuery('resource_status', 'pending');
pendingRes.addQuery('group_resource.manager', '!=', '');
pendingRes.groupBy('group_resource.manager');
pendingRes.addAggregate('COUNT');
pendingRes.query();
var messages = [];
while (pendingRes.next()) {
var managerName = pendingRes.getValue('group_resource.manager.name');
var count = pendingRes.getAggregate('COUNT');
var msg = managerName + " has " + count + " pending approvals.";
messages.push(msg);
}
outputs.result = messages.join("\n"); // Pass results to Flow Designer
})(inputs, outputs);
Please mark correct/helpful if this helps you
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-19-2025 10:06 AM
Thank you Sunil, that was really helpful but I need to send it individually. For each manager. The result you're showing has only one message. How could I separate like: send a email to manager x that has 12 pending approvals, send another email to manager y that has 16 pending approvals?