Requirement: How to pass Variables to catalog item in service portal via URL and share the URL to end Users when user clicks on the URL it should land them in a catalog item with prepopulated fields can any one help me with this requirement please.

krishh2
Tera Expert

I was designing the virtual agent topic with some components once the user provides the inputs we need to present the catalog item with prepopulated fields 

1 ACCEPTED SOLUTION

krishh2
Tera Expert

Hi All,

Thanks a lot for the support 

This below code is working :

function onLoad() {

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

      var user = getParameterValue('sysparm_user'); 

      if (user) {

              g_form.setValue('user_variable', user);

      }

}

 

function getParameterValue(name) {

      name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");

      var regexS = "[\\?&]" + name + "=([^&#]*)";

      var regex = new RegExp(regexS);

      var results = regex.exec(top.location);

      if (results == null) {

              return "";

      } else {

              return unescape(results[1]);

      }

}

***********************to fetch multiple values***************************

function onLoad() {

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

var user = getParameterValue('sysparm_company');
var user1 = getParameterValue('sysparm_email');


if (user) {

g_form.setValue('company', user);

}
if (user1) {

g_form.setValue('email', user1);

}

}

function getParameterValue(name) {

name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");

var regexS = "[\\?&]" + name + "=([^&#]*)";

var regex = new RegExp(regexS);

var results = regex.exec(top.location);

if (results == null) {

return "";

} else {

return unescape(results[1]);

}

}

View solution in original post

10 REPLIES 10

krishh2
Tera Expert

i wrote the below onload  client script 

 

function onLoad() {
//Type appropriate comment here, and begin script below
//Use the 'getParameterValue' function below to get the parameter values from the URL

var user = getParameterValue('sysparm_company');

 

g_form.setValue('company', user);

 

}

function getParameterValue(company) {

var url = document.URL.parseQuery();

if (url[company]) {

return decodeURI(url[company]);

} else {

return;

}


}

 

o/p

 

find_real_file.png

 

 

Hi,

update onLoad script as this

function onLoad() {
	//Type appropriate comment here, and begin script below
	//Use the 'getParameterValue' function below to get the parameter values from the URL

	var url = top.location.href;
	var comp = new URLSearchParams(url).get("sysparm_company");
	var user = getParameterValue('sysparm_company');
	g_form.setValue('company', comp);

}

OR

function onLoad() {
	//Type appropriate comment here, and begin script below
	//Use the 'getParameterValue' function below to get the parameter values from the URL

	var glideURL = new GlideURL();
	glideURL.setFromCurrent();
	var comp = glideURL.getParam("sysparm_company");
	g_form.setValue('company', comp);

}

Regards
Ankur

Regards,
Ankur
✨ Certified Technical Architect  ||  ✨ 9x ServiceNow MVP  ||  ✨ ServiceNow Community Leader

Hi Ankur,

Thanks a lot for the support and your contribution is highly appreciated sir.

 

When i try to execute your script I'm getting JavaScript console error in the browser 

 

@krishh 

Either of the script should have worked fine

which one you tried?

Regards,
Ankur
✨ Certified Technical Architect  ||  ✨ 9x ServiceNow MVP  ||  ✨ ServiceNow Community Leader

krishh2
Tera Expert

following the brad article :

REF:https://community.servicenow.com/community?id=community_blog&sys_id=ec3eea6ddbd0dbc01dcaf3231f9619d6