Parsing error in script include
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-10-2020 12:10 AM
Hi all,
I am actually working on a script include where I am declaring a function inside a function, to glide the schedule table. However, I am receiving an error. Error is 'Parsing error: Unexpected token error', Below is the script I have written,
Script Include:
var Test = Class.create();
Test.prototype = Object.extendsObject(AbstractAjaxProcessor, {
reqDueDateValid:function()
{
var flag = '';
var dueDateTime=this.getParameter('sysparm_date');
var userNam=this.getParameter('sysparm_user');
var urgent = this.getParameter('sysparm_urgent');
if(urgent == 'Yes'){
gs.log("End Date1:"+urgent);
var dc = new DurationCalculator();
dc.setStartDateTime(new GlideDateTime(gs.nowDateTime()));
addSchedule(dc,'8-5 weekdays');
dc.calcDuration(4*3600);
var endDate='';
endDate=dc.getEndDateTime();
return endDate;
gs.log("End Date:"+endDate);
gs.log("End Date3:"+endDate);}
}
function addSchedule(durationCalculator,schedule) {
gs.log("End Date3:"+schedule);
var grSched = new GlideRecord('cmn_schedule');
grSched.addQuery('name', schedule);
grSched.query();
if (grSched.next()) {
return durationCalculator.setSchedule(grSched.getUniqueValue(), "GMT");
}
},
type: 'Test'
});
Please suggest.
- Labels:
-
Scripting and Coding

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-10-2020 12:13 AM
update the below line
dc.setStartDateTime(new GlideDateTime(gs.nowDateTime()));
to
dc.setStartDateTime(new GlideDateTime());
EDIT:
var Test = Class.create();
Test.prototype = Object.extendsObject(AbstractAjaxProcessor, {
reqDueDateValid:function()
{
var flag = '';
var dueDateTime=this.getParameter('sysparm_date');
var userNam=this.getParameter('sysparm_user');
var urgent = this.getParameter('sysparm_urgent');
if(urgent == 'Yes'){
gs.info("End Date1:"+urgent);
var dc = new DurationCalculator();
dc.setStartDateTime(new GlideDateTime());
this.addSchedule(dc,'8-5 weekdays');
dc.calcDuration(4*3600);
var endDate='';
endDate=dc.getEndDateTime();
return endDate;
gs.info("End Date:"+endDate);
gs.info("End Date3:"+endDate);}
},
addSchedule: function (durationCalculator,schedule) {
gs.info("End Date3:"+schedule);
var grSched = new GlideRecord('cmn_schedule');
grSched.addQuery('name', schedule);
grSched.query();
if (grSched.next()) {
return durationCalculator.setSchedule(grSched.getUniqueValue(), "GMT");
}
},
type: 'Test'
});
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-10-2020 12:14 AM
Hiya,
Is this a scoped application or in global? As nowDateTime() is not supported in scoped applications.
Hope that helped
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-10-2020 12:14 AM
Your second function declaration was wrong.
var Test = Class.create();
Test.prototype = Object.extendsObject(AbstractAjaxProcessor, {
reqDueDateValid: function () {
var flag = '';
var dueDateTime = this.getParameter('sysparm_date');
var userNam = this.getParameter('sysparm_user');
var urgent = this.getParameter('sysparm_urgent');
if (urgent == 'Yes') {
gs.log("End Date1:" + urgent);
var dc = new DurationCalculator();
dc.setStartDateTime(new GlideDateTime(gs.nowDateTime()));
addSchedule(dc, '8-5 weekdays');
dc.calcDuration(4 * 3600);
var endDate = '';
endDate = dc.getEndDateTime();
return endDate;
gs.log("End Date:" + endDate);
gs.log("End Date3:" + endDate);
}
},
addSchedule: function(durationCalculator, schedule) {
gs.log("End Date3:" + schedule);
var grSched = new GlideRecord('cmn_schedule');
grSched.addQuery('name', schedule);
grSched.query();
if (grSched.next()) {
return durationCalculator.setSchedule(grSched.getUniqueValue(), "GMT");
}
},
type: 'Test'
});
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-10-2020 12:35 AM
Hi,
few corrections
1) use gs.info() for logging as gs.log() won't work in scoped app
2) function declaration for 2nd function was incorrect
3) also you should call method as this.addSchedule if you want to call method from same script include
4) gs.nowDateTime() is not allowed in scope and hence use new GlideDateTime()
5) comma was missing after 1st function declaration
var Test = Class.create();
Test.prototype = Object.extendsObject(AbstractAjaxProcessor, {
reqDueDateValid:function()
{
var flag = '';
var dueDateTime=this.getParameter('sysparm_date');
var userNam=this.getParameter('sysparm_user');
var urgent = this.getParameter('sysparm_urgent');
if(urgent == 'Yes'){
gs.info("End Date1:"+urgent);
var dc = new DurationCalculator();
dc.setStartDateTime(new GlideDateTime());
this.addSchedule(dc,'8-5 weekdays');
dc.calcDuration(4*3600);
var endDate='';
endDate=dc.getEndDateTime();
return endDate;
gs.info("End Date:"+endDate);
gs.info("End Date3:"+endDate);}
},
addSchedule: function (durationCalculator,schedule) {
gs.info("End Date3:"+schedule);
var grSched = new GlideRecord('cmn_schedule');
grSched.addQuery('name', schedule);
grSched.query();
if (grSched.next()) {
return durationCalculator.setSchedule(grSched.getUniqueValue(), "GMT");
}
},
type: 'Test'
});
Mark ✅ Correct if this solves your issue and also mark 👍 Helpful if you find my response worthy based on the impact.
Thanks
Ankur
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader