- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-08-2016 10:23 AM
<g:evaluate var="jvar_gr" object="true">
var gr = new GlideRecord('sys_user_grmember');
gr.addQuery('group','8e136dbe4fe6560093f3e0024210c786'); // To get users from this group
gr.query();
while(gr.next()){
var jobCR3= new GlideRecord('sysapproval');
jobCR3.addQuery('document_id','361c4b074f2e560093f3e0024210c7ea');
jobCR3.addQuery('approver',gr.user); // To select the approval user who are from above group.
jobCR3.addQuery('state','approved');
jobCR3.orderBy('sys_created_on');
jobCR3.query();
}
jobCR3;
</g:evaluate>
<j:while test="${jvar_gr.next()}">
<p>${jobCR3.getDisplayValue('approver')}</p>
</j:while>
I am getting result as 1 user. But I should get 2 users. When I run same script in background script I am getting result as 2 users (which is correct).
Script ran in background script:
var gr = new GlideRecord('sys_user_grmember');
gr.addQuery('group','8e136dbe4fe6560093f3e0024210c786');
gr.query();
while(gr.next()){
var jobCR3= new GlideRecord('sysapproval');
jobCR3.addQuery('document_id','361c4b074f2e560093f3e0024210c7ea');
jobCR3.addQuery('approver',gr.user);
jobCR3.addQuery('state','approved');
jobCR3.orderBy('sys_created_on');
jobCR3.query();
while(jobCR3.next()){
gs.print(jobCR3.getDisplayValue('approver'));
}
}
Solved! Go to Solution.
- Labels:
-
Scripting and Coding

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-08-2016 11:14 AM
Actually, you'll probably want this:
<g:evaluate object="true">
var gr = new GlideRecord('sys_user_grmember');
gr.addQuery('group', '8e136dbe4fe6560093f3e0024210c786'); // To get users from this group
gr.query();
</g:evaluate>
<j:while test="${gr.next()}">
<g:evaluate object="true">
var jobCR3 = new GlideRecord('sysapproval');
jobCR3.addQuery('document_id', '361c4b074f2e560093f3e0024210c7ea');
jobCR3.addQuery('approver', gr.user); // To select the approval user who are from above group.
jobCR3.addQuery('state', 'approved');
jobCR3.orderBy('sys_created_on');
jobCR3.query();
</g:evaluate>
<j:while test="${jobCR3.next()}">
<p>${jobCR3.approver.getDisplayValue()}</p>
</j:while>
</j:while>

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-08-2016 10:55 AM
There's a reason why your background script is fine and your other one isn't.
Background you're keeping a while() loop within a parent while() loop, which is why it's working.
The one that's not working (jelly one), you're not doing that, hence the original object just keeps getting overwritten. You'll only ever end up with 1 result every time.
See if this works:
<g:evaluate object="true">
var jobCR3;
var gr = new GlideRecord('sys_user_grmember');
gr.addQuery('group','8e136dbe4fe6560093f3e0024210c786'); // To get users from this group
gr.query();
if (gr.next())
{
jobCR3 = new GlideRecord('sysapproval');
jobCR3.addQuery('document_id','361c4b074f2e560093f3e0024210c7ea');
jobCR3.addQuery('approver',gr.user); // To select the approval user who are from above group.
jobCR3.addQuery('state','approved');
jobCR3.orderBy('sys_created_on');
jobCR3.query();
}
</g:evaluate>
<j:while test="${jobCR3.next()}">
<p>${jobCR3.approver.getDisplayValue()}</p>
</j:while>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-08-2016 10:59 AM
Hi David,
I tried using while() loop in jelly one also as i used in background script. But still I am getting 1 user record as result.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-08-2016 11:12 AM
This also will work:
<g:evaluate object="true">
var gr = new GlideRecord('sys_user_grmember');
gr.addQuery('group','8e136dbe4fe6560093f3e0024210c786'); // To get users from this group
gr.query();
</g:evaluate>
<j:if test="${gr.next()}">
<g:evaluate object="true">
var jobCR3;
jobCR3 = new GlideRecord('sysapproval');
jobCR3.addQuery('document_id','361c4b074f2e560093f3e0024210c7ea');
jobCR3.addQuery('approver',gr.user); // To select the approval user who are from above group.
jobCR3.addQuery('state','approved');
jobCR3.orderBy('sys_created_on');
jobCR3.query();
</g:evaluate>
<j:while test="${jobCR3.next()}">
<p>${jobCR3.approver.getDisplayValue()}</p>
</j:while>
</j:if>

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-08-2016 11:14 AM
Actually, you'll probably want this:
<g:evaluate object="true">
var gr = new GlideRecord('sys_user_grmember');
gr.addQuery('group', '8e136dbe4fe6560093f3e0024210c786'); // To get users from this group
gr.query();
</g:evaluate>
<j:while test="${gr.next()}">
<g:evaluate object="true">
var jobCR3 = new GlideRecord('sysapproval');
jobCR3.addQuery('document_id', '361c4b074f2e560093f3e0024210c7ea');
jobCR3.addQuery('approver', gr.user); // To select the approval user who are from above group.
jobCR3.addQuery('state', 'approved');
jobCR3.orderBy('sys_created_on');
jobCR3.query();
</g:evaluate>
<j:while test="${jobCR3.next()}">
<p>${jobCR3.approver.getDisplayValue()}</p>
</j:while>
</j:while>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-08-2016 11:18 AM
It worked. Thanks David.