Calculate Days open based on sys_created

deepanshanand
Kilo Expert

HI Experts i am trying to write code to calculate no of days a ticket has been opened based on only sys_created_on .
Below is the code that i tweaked little bit but its not working

below is script include:

var CalculateDuration = Class.create();

CalculateDuration.prototype = {

      calculate_duration : function(start) {

              var duration.seconds = {};

duration.days = parseInt(duration.seconds * 100 / 86400,10)/100;

              return duration;

      }

};

Buisness rule where i am calling

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

        var start = current.sys_created_on.getDisplayValue();

      var td = new CalculateDuration();

    var duration = td.calculate_duration(start);

      current.u_days_open = duration.days;

})(current, previous);

Any leads where i am going wrong

1 ACCEPTED SOLUTION

Strange Occurence - below code is changing only 5 records , rest are not updated .


this field is a duration type field


hope that is not going wrong


find_real_file.png


View solution in original post

19 REPLIES 19

lakshminarayan4
ServiceNow Employee
ServiceNow Employee

Hi ,


You can use the below script to get directly




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



          var start = current.sys_created_on.getDisplayValue();


          var str = gs.dateDiff(current.sys_created_on.getDisplayValue(), gs.nowDateTime(), false);


          var duration = new GlideDuration(str.split(' ')[0] + " 00:00:00")


          current.u_days_open = duration;



  })(current, previous);



Thanks


Not working
i am using before insert update br


u_due_date is a duration type field


Still same
not able to see open days data in the list of records.
please see screenshot





Daysopen.PNG


divya mishra
Tera Guru

Hey Deep;



whats the output you are getting from BR ?



Regards,


Divya