How to fetch parameters passed through url from one UI page to another UI page and use that parameter to query in second UI page?

jenny32
Tera Guru


HI All,

I am facing problem in accessing the parameters passed through url.In my first UI page i am passing a "meetingId" value through url and fetching that parameter in my second UI page and use this value to query in second UI page.

I used the below code:

In my first page:

<a href="add.do?sysparm_meetingId=$[meeting.u_meeting_id]">Link</a>

In second UI page:

<j:set var="jvar_meeting_id" value="${sysparm_id}" />

<g2:evaluate var="jvar_act" object="true" jelly="true">

      var act = new GlideRecord('u_actionitem');

      act.addQuery('u_meeting_id','=', jelly.jvar_meeting_id);

      act.query();        

</g2:evaluate>

Code doesn't work.

Any help will be highly appreciated.

Thanks.

Jennifer

1 ACCEPTED SOLUTION

tltoulson
Kilo Sage

Hi Jennifer,



I think you've nearly got it.   One thing stands out to me, on your second UI Page, that first line should change to:



<j:set var="var_meeting_id" value="${sysparm_meetingId}" />



Notice that the value inside the dollar sign - curly braces is the same as the parameter value passed in the first UI Page.   This is a convention used by ServiceNow and is documented here: http://wiki.servicenow.com/index.php?title=UI_Pages#Invoking_a_Page



Personally, I prefer to to declare this more explicitly using RP.   Personally, I find the parameter convention makes the script harder to understand.   Here is the more explicit approach that I like for the second page:



<g2:evaluate var="jvar_act" object="true">


      var meetingId = RP.getParameterValue('sysparm_meetingId');


      var act = new GlideRecord('u_actionitem');


      act.addQuery('u_meeting_id','=', meetingId);


      act.query();    


</g2:evaluate>



I hope this has helped!



Edit:   Heres the docs on RP Extensions to Jelly Syntax - ServiceNow Wiki


View solution in original post

7 REPLIES 7

tltoulson
Kilo Sage

Hi Jennifer,



I think you've nearly got it.   One thing stands out to me, on your second UI Page, that first line should change to:



<j:set var="var_meeting_id" value="${sysparm_meetingId}" />



Notice that the value inside the dollar sign - curly braces is the same as the parameter value passed in the first UI Page.   This is a convention used by ServiceNow and is documented here: http://wiki.servicenow.com/index.php?title=UI_Pages#Invoking_a_Page



Personally, I prefer to to declare this more explicitly using RP.   Personally, I find the parameter convention makes the script harder to understand.   Here is the more explicit approach that I like for the second page:



<g2:evaluate var="jvar_act" object="true">


      var meetingId = RP.getParameterValue('sysparm_meetingId');


      var act = new GlideRecord('u_actionitem');


      act.addQuery('u_meeting_id','=', meetingId);


      act.query();    


</g2:evaluate>



I hope this has helped!



Edit:   Heres the docs on RP Extensions to Jelly Syntax - ServiceNow Wiki


Hi Travis,



Thanks a lot . It worked.


Hi Travis,



I have another query, Please help me with it too.



I have 2 UI pages.In first UI page, i list all the records of a table along with a link and i am passing parameter through the link. When i click on the link,it takes me to second UI page, where i retrieve the parameter from url as u suggested before.Again am redirecting this parameter to a table, where the value of this parameter should get populated to a field in that table.



I have written the below code:


In first UI page:


<a href="action.do?sysparm_meetingId=$[meeting.u_meeting_id]">Link</a>



In second UI page:


<g2:evaluate var="jvar_act" object="true">


      var meetingId = RP.getParameterValue('sysparm_meetingId');


</g2:evaluate>


<td><a href="meetings.do?sysparm_meeting_id=meetingId"><button>Add</button></a></td>



When i click on the "Add" button i want value of "meetingId" to get populated to "Meeting ID" field in Meetings table.


I have written client script for this.


function onLoad() {


    //Type appropriate comment here, and begin script below


    //Populate the variables with the parameters passed in the URL


    //Use the 'getParmVal' function below to get the parameter values from the URL



alert('You are in Meeting form');


var meetId = getParmVal('sysparm_meeting_id');


g_form.setValue('u_meeting_id',meetId);


}



Here when i click on "Add" button, form is loaded and i am getting alert message but value is not populating.


Can you let me know where i am wrong??



Thanks.


Jennifer


Hi. I did some modification and it worked!!



Thanks.


Jennifer