Parsing error in script include

Sanjeeva Nagend
Tera Contributor

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.

5 REPLIES 5

Harsh Vardhan
Giga Patron

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'
});

 

Plissken
Tera Expert

Hiya,

Is this a scoped application or in global? As nowDateTime() is not supported in scoped applications.

 

Hope that helped

Sebastian R_
Kilo Sage

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'
});

Ankur Bawiskar
Tera Patron
Tera Patron

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

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader