Find your people. Pick a challenge. Ship something real. The CreatorCon Hackathon is coming to the Community Pavilion for one epic night. Every skill level, every role welcome. Join us on May 5th and learn more here.

Catalog client script to populate reference variable not working in Service Portal

Maria DeLaCruz
Tera Guru

Hello,

I've created the following onLoad catalog client script to auto-populate a reference variable, and it works great on the Desktop UI, but not the Service Portal UI.  Is there something in this script that is not supported in the Service Portal?  I do have "All" selected for the UI type.

 

function onLoad() {
//Type appropriate comment here, and begin script below
var proj = [];
var gr = new GlideRecord('u_project_name');
gr.addQuery('u_used', false);
gr.query();
while(gr.next())
{
proj.push(gr.u_number.toString());
}

proj.sort(function(a, b){return a-b});
//gs.print(proj[0]);

var confidential = new GlideRecord('u_project_name');
confidential.addQuery('u_number', proj[0]);
confidential.query();

if(confidential.next())
g_form.setValue('project_name', confidential.sys_id);
}

 

Any assistance would be greatly appreciated!


Thanks,
Maria

1 ACCEPTED SOLUTION

Mike Patel
Tera Sage

Doing Glirerecord query is not recommended in client script. Use GlideAJAX instead and script include

View solution in original post

7 REPLIES 7

Can you also share ConfidentialProject script includes

Yes.  Here's the script include:

Name:  ConfidentialProject
Client callable: true


var ConfidentialProject = Class.create();
ConfidentialProject.prototype = Object.extendsObject(AbstractAjaxProcessor, {

getProjectName: function() {

var confProject = "";
var proj = [];
var gr = new GlideRecord('u_project_name');
gr.addQuery('u_used', false);
gr.query();
while (gr.next()) {
proj.push(gr.u_number.toString());
}

proj.sort(function(a, b){
return a-b;
});


var conf = new GlideRecord('u_project_name');
conf.addQuery('u_number', proj[0]);
conf.query();
if(conf.next()){
confProject = conf.sys_id;
}

return confProject;

},

});

sachin_namjoshi
Mega Patron

Modify your code like below,

function onLoad() {
//Type appropriate comment here, and begin script below
var proj = [];
var gr = new GlideRecord('u_project_name');
gr.addQuery('u_used', false);
gr.query();
while(gr.next())
{
proj.push(gr.u_number.toString());
}

proj.sort(function(a, b){return a-b});
//gs.print(proj[0]);

var confidential = new GlideRecord('u_project_name');
confidential.addQuery('u_number', proj[0].toString());
confidential.query();

if(confidential.next())
g_form.setValue('project_name', confidential.sys_id);
}

Alsom Instead of gliderecord, it's recommended use glideajax in your client script.

 

Regards,

Sachin