Jelly Script IF the n condition ELSE then While loop

lomouhamadou
Kilo Guru

Hi all,

I have this jelly script below where we queried a table and displays all records. It is working so and fine.

I want to add the option to display "No record found" in case the query is empty.

I tried to add an if but does not work.

Can anyone help me with this script by adding the lines that will check if the query is empty and set a message to be displayed.

This is a ui page.I have a icon on HR case which onclick called the UI macro which will render the result on an Iframe.

//Script below

<?xml version="1.0" encoding="utf-8" ?>

<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">

      <g:evaluate var="jvar_opened_for" expression="RP.getWindowProperties().get('opened_for')" />

      <g:evaluate var="jvar_employee_language" expression="

                                                                              var sys_user = new GlideRecord('sys_user');

                                                                              sys_user.get(RP.getWindowProperties().get('opened_for'));

                                                                              sys_user.u_employee_language;

                                                                              " />

     

      <div id="internal_messages_list">

                <ol>

              <g2:evaluate var="jvar_item" expression="

                                                      gr = new GlideRecord('u_internal_message');

                                                      gr.addQuery('u_user',RP.getWindowProperties().get('opened_for'));

                                                      gr.addQuery('u_start_date', '&lt;=', gs.daysAgo(0));

                                                      /*gr.addQuery('u_expiration_date', '&gt;=', gs.daysAgo(0));*/

                                                      gr.query();

                                                      " />      

                      <j2:while test="$[gr.next()]">

                                                      <li><p><g2:no_escape>$[NS:gr.u_message]</g2:no_escape></p></li>

              </j2:while>              

     

              </ol>

      </div>

     

     

</j:jelly>  

1 ACCEPTED SOLUTION

Brad Tilton
ServiceNow Employee
ServiceNow Employee

On the line before your while loop you could do this:



<j2:if test="$[!gr.hasNext()]">


      No records


</j2:if>


View solution in original post

6 REPLIES 6

Brad Tilton
ServiceNow Employee
ServiceNow Employee

On the line before your while loop you could do this:



<j2:if test="$[!gr.hasNext()]">


      No records


</j2:if>


Thanks



Finally here is my full script working




<?xml version="1.0" encoding="utf-8" ?>


<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">


      <g:evaluate var="jvar_opened_for" expression="RP.getWindowProperties().get('opened_for')" />


      <g:evaluate var="jvar_employee_language" expression="


                                                                              var sys_user = new GlideRecord('sys_user');


                                                                              sys_user.get(RP.getWindowProperties().get('opened_for'));


                                                                              sys_user.u_employee_language;


                                                                              " />


     


      <div id="messages_list">


             


                <ol>


              <g2:evaluate var="jvar_item" expression="


                                                      gr = new GlideRecord('u_personalized_message');


                                              gr.addQuery('u_user',RP.getWindowProperties().get('opened_for'));


                                                      gr.addQuery('u_start_date', '&lt;=', gs.daysAgo(0));


                                                      gr.addQuery('u_end_date', '&gt;=', gs.daysAgo(0));


                                                      gr.query();


                                                      " />


                                              <j2:if test="$[!gr.hasNext()]">




                      ${gs.getMessage('No_message_found')}


</j2:if>


                     


              <j2:while test="$[gr.next()]">


                      <j:if test="${jvar_employee_language == 'EN' || jvar_employee_language == ''}">


                              <li><p><g2:no_escape>$[NS:gr.u_message_en]</g2:no_escape></p></li>


                      </j:if>


                      <j:if test="${jvar_employee_language == 'FR'}">


                              <li><p><g2:no_escape>$[NS:gr.u_message_fr]</g2:no_escape></p></li>


                      </j:if>


                      <j:if test="${jvar_employee_language == 'NL'}">


                              <li><p><g2:no_escape>$[NS:gr.u_message_nl]</g2:no_escape></p></li>


                      </j:if>


              </j2:while>


              </ol>


      </div>


     


     


</j:jelly>