GlideRecord in ui page

john0312
Kilo Contributor

<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'));

            }

}

1 ACCEPTED SOLUTION

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>







View solution in original post

12 REPLIES 12

venkatiyer1
Giga Guru

Hi John,


Can you change the while part of the code to this one below and try



<j:while test="${jobCR3.next()}">


  <p>${jobCR3.getDisplayValue('approver')}</p>


  </j:while>


Hi venkat,



Thanks for reply. I tried that way also. But still I am getting 1 user only as result which is not correct.


Hi John,



We might have to debug here and add some alert statements. Can you add a alert to get the value when the page is getting rendered?


Also, generally i used ${jobCR3.approver.getDisplayValue()} instead of ${jobCR3.getDisplayValue('approver')}. But before that would like to see if jvar_gr or jobCR3 is holding the value as expected.


<g:evaluate var="jvar_gr" object="true">

var gr = new GlideRecord('sys_user_grmember');


gr.addQuery('group','8e136dbe4fe6560093f3e0024210c786');


gr.query();


while(gr.next()){
var jobCR3= new GlideRecord('sysapproval_approver');
      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.log(jobCR3.getDisplayValue('approver'));


          }

}


jobCR3;
</g:evaluate>

I tried as shown above and Checked log statements. I am getting 2 users in log.