Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

Jelly Scripting

Akhil Kumar1
Mega Sage

Hi All ,

I am trying to do some code in CMS pages using Jelly Script , i have created a script and run in background script and it's working fine

but i am not getting how to write the same code in Jelly Script , please find the below script which i have wrote in background script

---------------------

var user_obj=new GlideRecord("sys_user");

user_obj.addQuery('sys_id',gs.getUserID());

user_obj.query();

if(user_obj.next())

{

gs.print("hello::"+user_obj.email);

var ivi_user_details = new GlideRecord('x_eyfso_it_capabil_itca_user');

ivi_user_details.addQuery('respondent_email_id',user_obj.email);

ivi_user_details.query();

if(ivi_user_details.next())

{

gs.print("hello::"+ivi_user_details.respondent_name);

}

}

________________________________________________________

Kindly help and also please give some inputs to learn more about Jelly Scripting

1 ACCEPTED SOLUTION

I took a bit of your script and this is how you can make it. Hopefully I'm good enough to explain so you understand how to use it.



<?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_gr" object="true">


        var gr = new GlideRecord("sys_user");


  gr.addQuery('sys_id',gs.getUserID());


    gr.query();


    gr;


</g:evaluate>



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


dear   ${jvar_gr.getValue('email')}


</j:while>    


</j:jelly>



I learned my first jelly things while looking at the TechNows jelly episodes. You can find the first one here: TechNow Episode 1 | ServiceNow Jelly Scripting Part 1 of 3 - YouTube




If you want to use jelly variables you need 2 things.



1. Put jelly="true" in the evaluate like this:



<g:evaluate jelly="true">



2. when you refer to a jelly variable in the evaluate you need to put jelly. before the variable name like this:



var users_email = jelly.jvar_this_is_the_jelly_variablename



if you got any other questions, feel free to ask



//Göran


View solution in original post

14 REPLIES 14

Ashish Kumar Ag
Kilo Guru

You have to use jelly tags. Go through Jelly Tags - ServiceNow Wiki


Ashish Kumar Ag
Kilo Guru

Hi Ashish Agrawal




Thanks for your reply , i tried the script using <g:evaluate> tags , but i want to write the code as above which i have tried in background script


i am not getting here how to use glide record two times , kindly help



----------------------------------------------------------------------------------


<g:evaluate>


  var user_obj=new GlideRecord("sys_user");


  user_obj.addQuery('sys_id',gs.getUserID());


  user_obj.query();


  </g:evaluate>



  <j:if test="${user_obj.next()}">


  Dear ${user_obj.email}


</j:if>



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


  var ivi_user_details = new GlideRecord('x_eyfso_it_capabil_itca_user');


  ivi_user_details.addQuery('respondent_email_id', ${user_obj.email}); // how to get here the value i want here email id from sys_user table//


  ivi_user_details.query();


  </g:evaluate>


I took a bit of your script and this is how you can make it. Hopefully I'm good enough to explain so you understand how to use it.



<?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_gr" object="true">


        var gr = new GlideRecord("sys_user");


  gr.addQuery('sys_id',gs.getUserID());


    gr.query();


    gr;


</g:evaluate>



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


dear   ${jvar_gr.getValue('email')}


</j:while>    


</j:jelly>



I learned my first jelly things while looking at the TechNows jelly episodes. You can find the first one here: TechNow Episode 1 | ServiceNow Jelly Scripting Part 1 of 3 - YouTube




If you want to use jelly variables you need 2 things.



1. Put jelly="true" in the evaluate like this:



<g:evaluate jelly="true">



2. when you refer to a jelly variable in the evaluate you need to put jelly. before the variable name like this:



var users_email = jelly.jvar_this_is_the_jelly_variablename



if you got any other questions, feel free to ask



//Göran