The CreatorCon Call for Content is officially open! Get started here.

How to get current catalog item sys id in script include which should be run on service portal?

manishaidhate
Mega Expert

We have to get sys id of catlog item (current).

As per below code we have used getParameter() function, which is running fine on service now view, but not running for Service portal.

Any one knows alternative to get current sys id of catalog item in script include ?

Script include

var ApplicationModule = Class.create();

ApplicationModule.prototype = Object.extendsObject(AbstractAjaxProcessor, {

getCatItemAppMod: function () {

var cat_sys_id = this.getParameter('sysparm_cat_sys_id');

var gr = new GlideRecord('sc_cat_item');

//gr.addQuery('sys_id','b69a135f13967e00be19bda12244b0e7');

    gr.addQuery('sys_id',cat_sys_id);

gr.query();

if (gr.next()) {

return "u_application=" + gr.u_application_name + "^u_module=" + gr.u_default_module;

}

return 'Yes to check';

},

1 ACCEPTED SOLUTION

manishaidhate
Mega Expert

I got solution,



I have fetched sys id by below code , and passed that to script include ,



var Sysid = g_form.getUniqueValue();



Its running fine



Script Include


var ApplicationModule = Class.create();


ApplicationModule.prototype = Object.extendsObject(AbstractAjaxProcessor, {



getCatItemAppMod: function () {


var cat_sys_id = this.getParameter('sysparm_cat_sys_id');


var gr = new GlideRecord('sc_cat_item');


//gr.addQuery('sys_id','b69a135f13967e00be19bda12244b0e7');


    gr.addQuery('sys_id',cat_sys_id);


gr.query();


if (gr.next()) {


return "u_application=" + gr.u_application_name + "^u_module=" + gr.u_default_module;



}


return ' ';


},


..........



Client script



function onLoad() {


//Apply a default filter to the list collector variable



var ga = new GlideAjax('ApplicationModule');


var Sysid = g_form.getUniqueValue();


ga.addParam('sysparm_name','getCatItemAppMod');


ga.addParam('sysparm_cat_sys_id',Sysid);


ga.getXML(setCollectorFilter);



function setCollectorFilter(response){


var catItemAppMod = response.responseXML.documentElement.getAttribute("answer");


var collectorName = 'rc_roles';


var filterString =catItemAppMod;


var myListCollector = g_list.get(collectorName);


              myListCollector.reset();


              myListCollector.setQuery(filterString);


} }


View solution in original post

7 REPLIES 7

gdd
Giga Expert

g_form.getUniqueValue()



this should give   you sys_id


Rushit Patel2
Tera Guru

Hi,



you need to get sysid from portal service script..and pass that as a parameter to your script include function



in widget server script..do like below



var itemSysId = $sp.getParameter('sys_id');



var ScriptInclude = new ApplicationModule().getCatItemAppMod(itemSysId);



then update script include function like below



getCatItemAppMod: function (itemId) {



var cat_sys_id = itemId;  





(please mark helpful/like/correct if it helps)


Hi Rushit,



I am using same script include for service now form   and service portal form , You mean I need to create separte script include for Service portal??


Okay I Just got it I have to add below code in widget service script, But I have added this two line in "SC Catalog Item " widget sever script. Getting error as not defined variable.



var itemSysId = $sp.getParameter('sys_id');


var ScriptInclude = new ApplicationModule().getCatItemAppMod(itemSysId);