Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

Trying to Calculate Days remaining

jasonjones
Giga Contributor

All,

I'm trying to create a client script or business rule that calculates the difference of a Warranty Expiration Date and the current date to determine a "Number of Days remaining" on the warranty.

find_real_file.png

I found this script in community to modify, but I'm still missing something.

function onChange(control, oldValue, newValue, isLoading) {
    var strt = g_form.getValue(warranty_expiration);  //set this as current warranty date
    var end = new Date(now.getFullYear(), now.getMonth(), no.getDate());  //This retrieves the current date
    var ajax = new GlideAjax('AjaxDurCalc');
    ajax.addParam('sysparm_name','durCalc');
    ajax.addParam('sysparm_strt',strt);
    ajax.addParam('sysparm_end',end);
    ajax.getXMLWait();
    var answer = ajax.getAnswer();
    g_form.setValue('u_days_of_remaining_warranty', answer);
}

Below is an error that is received.

find_real_file.png

Any help is appreciated.

Jason

41 REPLIES 41

Still nothing.

Prateek kumar
Mega Sage

Hey jason

Here you go, Before BR

(function executeRule(current, previous /*null when async*/) {

var start = new GlideDateTime();
var end = new GlideDateTime();
end.setValue(current.warranty_expiration);
// Duration in days
var dur = GlideDateTime.subtract(start, end);

current.u_days_remaining_on_warranty = dur.getDayPart();

})(current, previous);


Please mark my response as correct and helpful if it helped solved your question.
-Thanks

I quickly copied and pasted this and no results either.

find_real_file.png

I thought you are using String field?


Please mark my response as correct and helpful if it helped solved your question.
-Thanks

jasonjones
Giga Contributor

Mike indicated that I need to use Duration field instead of String.