We've updated the ServiceNow Community Code of Conduct, adding guidelines around AI usage, professionalism, and content violations. Read more

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
Giga 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.