- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-16-2025 05:38 PM
I have an integer field on the sys_user table called "u_queue_number".
What I want to do if possible via a flow is to seek out all records where u_queue_number is not blank and find what the current highest value of that field is and also how many records current have that value.
Ideas?
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-16-2025 08:01 PM
I understand that it would likely need to be done via a flow script, but was hoping someone might be able to assist with the how.
Since I posted my question I have managed to make it work, but just not sure it's the best way to do it?
Ultimately, I created a flow variable called "Highest Queue Number" then did a scripted date
var largestQueueNumber = 0;
var userGR = new GlideRecord('sys_user');
userGR.addQuery('u_queue_number', '!=', '');
userGR.query();
while (userGR.next()) {
var currentQueueNumber = parseInt(userGR.u_queue_number, 10);
if (!isNaN(currentQueueNumber) && currentQueueNumber > largestQueueNumber) {
largestQueueNumber = currentQueueNumber;
}
}
return largestQueueNumber;
Result:
So it works, but is it the best way?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-16-2025 08:59 PM
I like the idea of improving the script to limit the database calls, however when I tried this in a flow I got the following error:
Invalid integer value for flow variable='null': {highestQueueNumber=5.0, countOfHighest=0}
The script is running in a set flow variables script
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
Hello @Moedeb,
This might be a bit late, anyway I see a nice script solution.
I see also that without script, a solution would not be possible.
Unless I miss something, this is not true.
A solution without script is actually rather simple, with the following steps:
1. "Set Flow Variable" Highest Queue Number (or whaterever you want) to zero.
2. "Look for Records" with the conditions you wish (e.g. "u_queue_number is not empty")
3. "For Each" loop on 1., in which:
3.1 if u_queue_number > Highest Queue Number then "Set Flow Variable" Highest Queue Number to u_queue_number
At the end of the loop you have the highest value of u_queue_number in the sys_user table.
To get the number of the records in sys_user with the highest value of u_queue_number, you can use another Flow variable as a counter, either in the same "For each" loop, incrementing it if the u_queue_number matches the flow variable Highest Queue Number (reset it to "1" when 3.1 above applies), or with an additional "Look for Records" with condition u_queue_number = Highest Queue Number, after the "For Each" loop above.
I don't discuss performances, but a solution without scripting is (much) better for maintenability.
Hope it helps
Flavio