- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎06-23-2016 05:15 PM
Hi Guys,
I am trying to alert users on a Service Catalog item when they select a public holiday or a weekend. The problem is it is very erratic, sometimes it works but sometimes it doesn't.
Here is the code I have on the instance and the I tried with both getXML and getXMLWait to no avail:
Script Include:
var SNCVisitorNetValidation = Class.create();
SNCVisitorNetValidation.prototype = Object.extendsObject(AbstractAjaxProcessor, {
checkInSchedule: function(){
var scheduled_date = this.getParameter('sched_date');
var schedRec = new GlideRecord('cmn_schedule');
schedRec.get('name','8-6 weekdays excluding holidays');
var sched = new GlideSchedule(schedRec.sys_id);
var gdt = new GlideDateTime(scheduled_date);
if (sched.isInSchedule(gdt)) {
gs.log('true ' + gdt);
return true;
}
else
{
gs.log('false ' + gdt);
return false;
}
},
type: 'SNCVisitorNetValidation'
});
Client Script:
var ga = new GlideAjax('SNCVisitorNetValidation');
ga.addParam('sysparm_name','checkInSchedule');
ga.addParam('sched_date', start_date);
//ga.getXML(checkInSchedule);
ga.getXMLWait();
answer = ga.getAnswer();
if(answer == 'true')
{
alert ('working day');
}
else if (answer == false')
{
alert ('holiday');
}
Could you please check and let me know if you can spot anything?
Mussie
P.S. BTW, if I test this using the Background script it works
Solved! Go to Solution.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎06-26-2016 05:48 PM
That brings up a good question... where did start_date come from? Should that be:
ga.addParam('sysparm_sched_date', g_form.getValue('start_date'));
Instead?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎06-26-2016 05:35 PM
Hi Chuck,
Thanks for the reply. Yes, I tried that already and it doesn't work.
var ga = new GlideAjax('SNCVisitorNetValidation');
ga.addParam('sysparm_name','checkInSchedule');
ga.addParam('sched_date', start_date);
ga.getXMLAnswer(checkInSchedule);
function checkInSchedule (response)
{
var answer = response.responseXML.documentElement.getAttribute("answer");
if(answer == 'true')
{
alert('working day');
}
else if (answer == 'false');
{
alert ('holiday');
}
}
aler
Mussie

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎06-26-2016 05:43 PM
If you are using getXMLAnswer(), then the xpath walking is already done for you. You don't need the var answer= line.
Something like this (untested, but fixed a syntax error.)
var ga = new GlideAjax('SNCVisitorNetValidation');
ga.addParam('sysparm_name','checkInSchedule');
ga.addParam('sched_date', start_date);
ga.getXMLAnswer(checkInSchedule);
function checkInSchedule (answer) {
if(answer == 'true') {
alert('working day');
} else {
alert ('holiday');
}
}

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎06-26-2016 05:46 PM
Hi Mussie,
There is error in your client script. Line 3 should be ga.addParam('sysparm_sched_date', start_date); instead of ga.addParam('sched_date', start_date);
Script :
var start_date = g_form.getValue('start_date');
var ga = new GlideAjax('SNCVisitorNetValidation');
ga.addParam('sysparm_name','checkInSchedule');
ga.addParam('sysparm_sched_date', start_date);
ga.getXMLAnswer(checkInSchedule);
function checkInSchedule (answer) {
if(answer == 'true') {
alert('working day');
} else {
alert ('holiday');
}
}
Please test and let me know.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎06-26-2016 05:48 PM
That brings up a good question... where did start_date come from? Should that be:
ga.addParam('sysparm_sched_date', g_form.getValue('start_date'));
Instead?

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎06-26-2016 05:51 PM
Assuming start_date value is passed as whole CS is not pasted above