Calendar_duration

verdakosnett
Tera Expert

I wrote this background script but the results don't seem to update calendar_duration field. I find 54 qualified records. Durations are written in logs.

 

Why?

 

var dc = new DurationCalculator(); 
var completedVisitRequests= new GlideRecord('u_visit_request_tasker'); 
completedVisitRequests.addQuery('active', false); 
completedVisitRequests.addQuery('calendar_duration', ''); 
completedVisitRequests.query(); 
gs.info("Returning"+completedVisitRequests.getRowCount()); 
while (completedVisitRequests.next()) 

var dur=dc.calcScheduleDuration(completedVisitRequests.sys_created_on, completedVisitRequests.sys_updated_on); 
completedVisitRequests.calendar_duration=dur; 
completedVisitRequests.update(); 
}

find_real_file.png

15 REPLIES 15

this works for me

 

var gr = new GlideRecord("task");
gr.addEncodedQuery('active=false^calendar_durationISEMPTY');
gr.autoSysFields(false); // so that the records don't have system updates
gr.query();
while(gr.next()) {
var gdt1 = new GlideDateTime(gr.sys_created_on.getDisplayValue());
var gdt2 = new GlideDateTime(gr.closed_at.getDisplayValue());
var dur = gs.calDateDiff(gdt1, gdt2, false);
gr.calendar_duration = dur;
gr.setWorkflow(false);
gr.update();
}

verdakosnett
Tera Expert

var dc = new DurationCalculator();
var completedVisitRequests= new GlideRecord('u_visit_request_tasker');
completedVisitRequests.addQuery('active', false);
completedVisitRequests.addQuery('calendar_duration', '');
completedVisitRequests.query();
gs.info("Returning"+completedVisitRequests.getRowCount());
while (completedVisitRequests.next())
{
var dur=dc.calcScheduleDuration(completedVisitRequests.sys_created_on.getDisplayValue(), completedVisitRequests.sys_updated_on.getDisplayValue());
completedVisitRequests.calendar_duration=dur;
completedVisitRequests.update();
gs.info(dur)
}
*** Script: Returning54
*** Script: 5168
*** Script: 11
*** Script: 1851
*** Script: 173340
*** Script: 235
*** Script: 33
*** Script: 21
*** Script: 6
*** Script: 9
*** Script: 137
*** Script: 126
*** Script: 38
*** Script: 14
*** Script: 18
*** Script: 12
*** Script: 18
*** Script: 7
*** Script: 6
*** Script: 3402
*** Script: 55
*** Script: 20
*** Script: 18
*** Script: 2716
*** Script: 30
*** Script: 4419
*** Script: 26
*** Script: 13
*** Script: 11
*** Script: 15
*** Script: 19
*** Script: 51
*** Script: 247
*** Script: 81345
*** Script: 127
*** Script: 91
*** Script: 14
*** Script: 2120
*** Script: 1748
*** Script: 1591
*** Script: 656
*** Script: 460
*** Script: 296
*** Script: 41
*** Script: 36
*** Script: 31
*** Script: 125
*** Script: 1338
*** Script: 31
*** Script: 49
*** Script: 23
*** Script: 91
*** Script: 20
*** Script: 33
*** Script: 1612


Hi,,Please run this one and check.

var dc = new DurationCalculator();
var completedVisitRequests= new GlideRecord('u_visit_request_tasker');
completedVisitRequests.addQuery('active', false);
completedVisitRequests.addQuery('calendar_duration', '');
completedVisitRequests.query();
gs.info("Returning"+completedVisitRequests.getRowCount());
while (completedVisitRequests.next())
{
var dur=dc.calcScheduleDuration(completedVisitRequests.sys_created_on,completedVisitRequests.sys_updated_on);
completedVisitRequests.calendar_duration.setDateNumericValue(dur*1000);
completedVisitRequests.calendar_duration=completedVisitRequests.calendar_duration.getDisplayValue();

completedVisitRequests.update();
}

 

Thnkas,Naveen

verdakosnett
Tera Expert

Here is how I succeeded updating calendar_duration:

 

find_real_file.png

 

Have you triedthis one.

 

var dc = new DurationCalculator();
var completedVisitRequests= new GlideRecord('u_visit_request_tasker');
completedVisitRequests.addQuery('active', false);
completedVisitRequests.addQuery('calendar_duration', '');
completedVisitRequests.query();
gs.info("Returning"+completedVisitRequests.getRowCount());
while (completedVisitRequests.next())
{
var dur=dc.calcScheduleDuration(completedVisitRequests.sys_created_on,completedVisitRequests.sys_updated_on);
completedVisitRequests.calendar_duration.setDateNumericValue(dur*1000);
completedVisitRequests.calendar_duration=completedVisitRequests.calendar_duration.getDisplayValue();

completedVisitRequests.update();
}