We're reclaiming inactive PDIs to keep them available for active builders. Learn what's changing, who's affected, and how to protect your work. Read More

Calculate the total duration hours.

sivananda80
Tera Expert

Hi all,

 

I am try to calculate the total hours of duration in background. I wrote script in background script. It getting all duration values from different records. But I need sum of the total duration and convert in to Mints or seconds.

Can you please help me on that.

 

I am using below script, and for reference I have attached screenshot

//var dur = [];
//var sum_dur;
var outages = new GlideRecord('cmdb_ci_outage');
//outages.addEncodedQuery('sys_created_onONLast 12 months@javascript:gs.beginningOfLast12Months()@javascript:gs.endOfLast12Months()^cmdb_ci=' + current.dimension.configuration_item);
outages.addEncodedQuery('cmdb_ci=c44f4c5447cc5114a6954d68436d433a');
outages.query();
while(outages.next()){
    //dur = dur.push(outages.getValue('duration'));
   var dur = outages.getDisplayValue('duration');      
sum_dur = dur;
gs.info(dur);
}
Siva82_0-1692249462972.png

 

Thank you,

Siva

1 ACCEPTED SOLUTION

Hello @sivananda80 ,

My bad can you try with this script please?

 

var dur=0;
var gr = new GlideRecord('cmdb_ci_outage');
gr.query();
while(gr.next())
{
dur=dur+gr.duration.dateNumericValue()/(60*60*1000);
 

}
gs.info(dur);



 

 

Please add your queries accordingly and run the script

 

This gave the result in total hours as i converted it to hours 

 

Hope this helps 

Mark my answer correct if this helps you 

Thnkas

View solution in original post

5 REPLIES 5

Mohith Devatte
Tera Sage

Hello @sivananda80 ,

var dur ='';
var gr = new GlideRecord('cmdb_ci_outage');
gr.query();
while(gr.next())
{

dur =new GlideDuration(gr.getDisplayValue('duration'));
 dur.add(dur);
}

gs.info(dur.getDisplayValue());


 

This worked for me in the background script which gave the total sum of duration values.

 

Note: Add your encoded query and try once.

 

Hope this helps 

 Mark my answer correct if this helps you 

Thanks

Hi Mohith,

Thank you for response,

I using this code its getting wrong hours,

It showing 19586 Days 6 Hours 39 Minutes,but actual hours 2 hours 1 min only,

thank you

Hello @sivananda80 ,

My bad can you try with this script please?

 

var dur=0;
var gr = new GlideRecord('cmdb_ci_outage');
gr.query();
while(gr.next())
{
dur=dur+gr.duration.dateNumericValue()/(60*60*1000);
 

}
gs.info(dur);



 

 

Please add your queries accordingly and run the script

 

This gave the result in total hours as i converted it to hours 

 

Hope this helps 

Mark my answer correct if this helps you 

Thnkas

@sivananda80 Did the script solve the issue ?