- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-11-2018 11:42 PM

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-12-2018 12:42 AM
Hi chanikya,
There looks to be a few errors in your code. I have redone both the Script Include and the Catalog Client Script below. Note these are just done by hand and have not been tested with a Catalog Item.
Script Include:
var ScheduleUtils = Class.create();
ScheduleUtils.prototype = Object.extendsObject(AbstractAjaxProcessor, {
inUserSchedule: function() {
var date = this.getParameter('sysparm_date');
var startDate = new GlideDateTime(date);
var inSchedule = false;
var employee = this.getParameter('sysparm_emp');
var user = new GlideRecord('sys_user');
if(user.get(employee)) {
var schedule = new GlideSchedule(user.getValue('schedule'));
inSchedule = schedule.isInSchedule(startDate);
}
return inSchedule;
},
type: 'ScheduleUtils'
});
Catalog Client Script:
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
var date = g_form.getValue('date');
var user = g_form.getValue('u_user');
var scheduleUtils = new GlideAjax('global.ScheduleUtils');
scheduleUtils.addParam('sysparm_name', 'inUserSchedule');
scheduleUtils.addParam('sysparm_date', date);
scheduleUtils.addParam('sysparm_emp', user);
scheduleUtils.getXMLAnswer(function(answer) {
if(answer == false) {
g_form.clearValue('u_hours');
} else {
g_form.showErrorBox('date', 'Is in schedule');
g_form.setValue('u_hours', 4);
}
});
}
Hopefully the above will be enough for you to resolve your issue! Can you also double check the names of the variables on your form? the u_ prefix normally exists on user created tables and fields however it is not automatically added on catalog variables.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-12-2018 03:30 AM
it is Working fine in my PDI, come to client instance it is not working always showing FALSE.
this is the only thing i have here.
inUserSchedule: function() {
var date = this.getParameter('sysparm_date');
var startDate = new GlideDateTime(date);
var inSchedule = false;
var employee = this.getParameter('sysparm_emp');
var user = new GlideRecord('sys_user');
if(user.get(employee)) {
var schedule = new GlideSchedule(user.getValue('schedule'));
inSchedule = schedule.isInSchedule(startDate);
}
return inSchedule;
},
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-12-2018 06:20 AM
Thanks ! it is working now.
i have done little modifications, now it working.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-12-2018 12:07 PM
Thanks for letting us know chanikya. Please feel free to also mark my replies as helpful if you found them helpful and my answer as correct to help other community members find this information. Have a great day!