Days calculation in between two fields available on a form

Bijay Kumar Sha
Giga Guru

Hi,

I've a form where there are 2 fields as below:

1. Created (sys_created_on)

2. Closed (closed_at)

Both these fields contain date value.

I wanted the Age difference between these 2 fields and update it on another field called Ageing (u_ageing).

 

I've written a fix script as below to update the Aging field for few records:

var ag = new GlideRecord('sn_vul_vulnerable_item');
ag.addEncodedQuery('risk_rating=1^ORrisk_rating=2^state=3');
ag.query();
while (ag.next()) {

var created = new GlideDateTime(ag.sys_created_on);
var VIC = created.getDate(); //get only date from created date time

var closed = new GlideDateTime(ag.closed_at);
var closedate = closed.getDate(); //get only date from close date time

var dur = new GlideDateTime.subtract(closedate, VIC);
var duration = dur.getDisplayValue();

ag.setValue('u_ageing', duration);
ag.update();

}

 

However, in the aging field, the days are getting calculated as (Today's date - created date)... However, I'm looking for (Close date - Created date).

 

Where I'm doing wrong? 

1 REPLY 1

Elijah Aromola
Mega Sage

This script should work: 

var ag = new GlideRecord('sn_vul_vulnerable_item');
ag.addEncodedQuery('risk_rating=1^ORrisk_rating=2^state=3');
ag.query();
while (ag.next()) {

    var created = new GlideDuration();
    created.setValue(ag.sys_created_on);

    var closed = new GlideDuration();
    closed.setValue(ag.closed_at);

    var dur = closed.subtract(created);
    var duration = dur.getDisplayValue();

    ag.setValue('u_ageing', duration);
    ag.update();

}