- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-29-2022 03:17 AM
The date field should not allow users to fill less than 24 hrs from the current date and it should follow a defined schedule
For example Schedule: Mon-Fri (8:00-19:00)Business hours
it should throw an error if the date is less than 24 hrs or out of business hours.
Looking for help.
Thanks in advance
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-30-2022 08:54 PM
Hi,
is script include client callable?
is the function being called properly?
share logs for this
var ajaxDateDiff = Class.create();
ajaxDateDiff.prototype = Object.extendsObject(AbstractAjaxProcessor, {
check5Days: function () {
var answer;
var valid = new GlideDateTime();
valid.setDisplayValue(this.getParameter('sysparm_date'));
gs.info('User value->' + valid);
var schedule = new GlideSchedule('377f5e51db2e851040d8176a489619cc');
var inSchedule = schedule.isInSchedule(valid);
gs.info("Is in schedule->" + inSchedule);
if (!inSchedule)
{
answer = 'false';
}
else
{
answer = 'true';
}
return answer;
},
});
Regards
Ankur
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-30-2022 05:46 AM
Hi Ankur,
I have tried this code but the code is not moving forward from this below lineyou please suggest.
---->>>>>var inSchedule = schedule.isInSchedule(valid);
gs.log('out of hours3'+inSchedule);
var outofbussHours = Class.create();
outofbussHours.prototype = Object.extendsObject(AbstractAjaxProcessor, {
checkDays: function() {
var answer = "";
var valid = this.getParameter('sysparm_date');
valid.setDisplayValue(this.getParameter('sysparm_date'));
gs.log('out of hours1'+valid);
var schedule = new GlideSchedule();
schedule.get("377f5e51db2e851040d8176a489619cc");
gs.log('out of hours2'+schedule);
//var schedule = new GlideSchedule('377f5e51db2e851040d8176a489619cc');
>>>>>var inSchedule = schedule.isInSchedule(valid);
gs.log('out of hours3'+inSchedule);
if (!inSchedule)
{
answer = true;
} else {
answer = false;
}
return answer;
},
});
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-30-2022 06:49 AM
Hi,
did you check what came in logs?
use gs.info()
var ajaxDateDiff = Class.create();
ajaxDateDiff.prototype = Object.extendsObject(AbstractAjaxProcessor, {
check5Days: function () {
var answer;
var valid = new GlideDateTime();
valid.setDisplayValue(this.getParameter('sysparm_date'));
var schedule = new GlideSchedule('377f5e51db2e851040d8176a489619cc');
var inSchedule = schedule.isInSchedule(valid);
gs.info("Is in schedule->" + inSchedule);
if (!inSchedule)
{
answer = 'false';
}
else
{
answer = 'true';
}
return answer;
},
});
what came in alert in Ajax?
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
if(oldValue != newValue){
// Call the script include to do the date check
var ga = new GlideAjax('ajaxDateDiff');
ga.addParam('sysparm_name', 'check5Days');
ga.addParam('sysparm_date', newValue);
ga.getXML(ValidateDateResponse);
}
}
function ValidateDateResponse(response) {
var answer = response.responseXML.documentElement.getAttribute("answer");
alert(answer);
if (answer == "false") {
g_form.addErrorMsg('termineingabe', "The date/time you entered is an invalid format, the current date or after the current date", 'error');
g_form.setValue('termineingabe', "");
}
}
Regards
Ankur
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-30-2022 08:47 AM
Hi Ankur,
No logs were found for line in ajax.
----> gs.info("Is in schedule->" + inSchedule);
In On change client script
alert(answer) is returning null in pop up
means answer is not passing correctly from the ajax.
function ValidateDateResponse(response) {
var answer = response.responseXML.documentElement.getAttribute("answer");
----->> alert(answer);
if (answer == "false") {
g_form.addErrorMsg('termineingabe', "The date/time you entered is an invalid format, the current date or after the current date", 'error');
g_form.setValue('termineingabe', "");
}
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-30-2022 08:54 PM
Hi,
is script include client callable?
is the function being called properly?
share logs for this
var ajaxDateDiff = Class.create();
ajaxDateDiff.prototype = Object.extendsObject(AbstractAjaxProcessor, {
check5Days: function () {
var answer;
var valid = new GlideDateTime();
valid.setDisplayValue(this.getParameter('sysparm_date'));
gs.info('User value->' + valid);
var schedule = new GlideSchedule('377f5e51db2e851040d8176a489619cc');
var inSchedule = schedule.isInSchedule(valid);
gs.info("Is in schedule->" + inSchedule);
if (!inSchedule)
{
answer = 'false';
}
else
{
answer = 'true';
}
return answer;
},
});
Regards
Ankur
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-30-2022 09:39 PM
Hi Ankur,
please find the screenshots of logs
gs.log('user value->' + valid);
valid is returning the date selected by user on field.
yes, script include is client callable and function is called properly.
Code:
var outofbussHours = Class.create();
outofbussHours.prototype = Object.extendsObject(AbstractAjaxProcessor, {
checkDays: function() {
var answer = "";
var valid = this.getParameter('sysparm_date');
valid.setDisplayValue(this.getParameter('sysparm_date'));
gs.log('user value->' + valid);
var schedule = new GlideSchedule('377f5e51db2e851040d8176a489619cc');
//schedule.get("377f5e51db2e851040d8176a489619cc");
gs.log('schedule selected->' + schedule);
//var schedule = new GlideSchedule('377f5e51db2e851040d8176a489619cc');
var inSchedule = schedule.isInSchedule(valid);
--> gs.log('Is in schedule->' + inSchedule); //No logs were found
if (!inSchedule) {
answer = false;
} else {
answer = true;
}
return answer;
},
});