- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-17-2020 05:55 AM
Hi,
I want to know how to call a script include from a catalog client script.
However, now the script include is undefined and the log client script returns null.
What is wrong?
Script include below:
var getNumber = Class.create();
getNumber.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {
getCase: function() {
var hr_caseID = this.getParameter('sysparm_var'); // sys_id
}
var gr_hrcase = new GlideRecord('sn_hr_core_case');
gr_hrcase.addQuery('sys_id', hr_caseID);
gr_hrcase.query();
if (gr_hrcase.next()) {
gs.info(gr_hrcase.variables.ob_demand_date);
var array = {};
array.ob_demand_date = gr_hrcase.ob_demand_date.toString();
array.last_demand_date = gr_hrcase.last_demand_date.toString();
array.reason = gr_hrcase.reason.toString();
var answer = JSON.stringify(array);
return answer;
}
},
type: 'getNumber'
});
Catalog client script below;
function onLoad() {
var parentCase = getParameterValue('sysparm_parentCase');
var detailsAjax = new GlideAjax('sn_hr_le.getNumber');
detailsAjax.addParam('sysparm_name', 'getCase');
detailsAjax.addParam('sysparm_var', parentCase);
detailsAjax.getXML(callbackGetSubjectPersonDetails);
}
function callbackGetSubjectPersonDetails(response) {
var answer = response.responseXML.documentElement.getAttribute("answer");
var res = JSON.parse(answer);
if (answer != '') {
console.log(answer +'YES');
g_form.setValue('last_demand_date', res.last_demand_date);
} else {
console.log(answer+'NO');
}
}
function getParameterValue(name) {
name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
var regexS = "[\\?&]" + name + "=([^&#]*)";
var regex = new RegExp(regexS);
try {
var results = regex.exec(parent.angular.element('[sn-atf-area="SC Catalog Item"]').scope().options.url);
if (results == null) {
return "";
} else {
return unescape(results[1]);
}
} catch (e) {}
}
Thanks in advance.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-17-2020 07:02 AM
Hi Mi,
Then it should work:
Update the script as:
As this should work just added last_demand_date as the variables as well:
var getNumber = Class.create();
getNumber.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {
getCase: function() {
var hr_caseID = this.getParameter('sysparm_var'); // sys_id
gs.info('@inside script include' + hr_caseID);
var gr_hrcase = new GlideRecord('sn_hr_le_case');
gr_hrcase.addQuery('sys_id', hr_caseID);
gr_hrcase.query();
gs.info('@row count ' + gr_hrcase.getRowCount());
if (gr_hrcase.next()) {
gs.info('@inside loop');
gs.info('@DATE is ' + gr_hrcase.variables.ob_demand_date1);
var array = {};
array.ob_demand_date = gr_hrcase.variables.ob_demand_date1.toString();
array.last_demand_date = gr_hrcase.variables.last_demand_date1.toString();
array.reason = gr_hrcase.reason.toString();
var answer = JSON.stringify(array);
return answer;
}
},
type: 'getNumber'
});
Mark helpful and correct if it helps.
Thanks,
CB
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-17-2020 07:03 AM
Hi,
OH!
It worked!
Special Thanks!!
Regards,

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-17-2020 06:28 AM
Hello,
In client script, have you check what value you get in parentCase variable?
function onLoad() {
var parentCase = getParameterValue('sysparm_parentCase');
alert("parentCase :"+parentCase); //check parentCase have any value
var detailsAjax = new GlideAjax('sn_hr_le.getNumber');
detailsAjax.addParam('sysparm_name', 'getCase');
detailsAjax.addParam('sysparm_var', parentCase);
detailsAjax.getXML(callbackGetSubjectPersonDetails);
}
Regards,
Harshal
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-17-2020 06:33 AM
Hi,
Thanks for your comment.
Yes, it has been acquired.
Regards,

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-17-2020 06:56 AM
Below script should work as long as you have variable called ob_demand_date and has value on parent case.
var getNumber = Class.create();
getNumber.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {
getCase: function() {
var hr_caseID = this.getParameter('sysparm_var'); // sys_id
gs.info('@inside script include');
var gr_hrcase = new GlideRecord('sn_hr_core_case');
gr_hrcase.addQuery('sys_id', hr_caseID);
gr_hrcase.query();
if (gr_hrcase.next()) {
gs.info('DATE '+ gr_hrcase.variables.ob_demand_date);
var array = {};
array.ob_demand_date = gr_hrcase.ob_demand_date.toString();
array.last_demand_date = gr_hrcase.last_demand_date.toString();
array.reason = gr_hrcase.reason.toString();
var answer = JSON.stringify(array);
return answer;
}
},
type: 'getNumber'
});
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-17-2020 07:04 AM
Hi,
Thank you for your comment.
It worked it
Regards,