Calendar_duration
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-27-2018 01:14 PM
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();
}
- Labels:
-
Scripting and Coding

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-27-2018 02:55 PM
Modified the above query,
not using the scriptinclude here insted using gs.dateDiff
//var dc = new DurationCalculator();
var gr= new GlideRecord('incident');
gr.addQuery('number','INC0010019');
//gr.addQuery('active', false);
//gr.addQuery('calendar_duration','');
gr.query();
gs.info("Returning"+gr.getRowCount());
while (gr.next())
{
//GlideDateTime.subtract(gdt1, gdt2);
gs.print(gr.sys_created_on);
gs.print(gr.sys_updated_on)
var dur=gs.dateDiff(gr.sys_created_on,gr.sys_updated_on);
gs.print(dur);
gs.print(gr.u_time);//before update
gr.u_time = dur; ----------->u_time type duration
gr.update();
gs.print(gr.u_time.getDisplayValue());//after Update
}
Hope this Helps you.
Thanks,Naveen

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-27-2018 01:51 PM
Sinec you are on custom table "u_visit_request_tasker" all your field will be like u_calendar_duration and u_active

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-27-2018 01:56 PM
try changing below
var dur=dc.calcScheduleDuration(completedVisitRequests.sys_created_on.getGlideObject(), completedVisitRequests.sys_updated_on.getGlideObject());
completedVisitRequests.calendar_duration=dur;
completedVisitRequests.update();
or
var dur=dc.calcScheduleDuration(completedVisitRequests.sys_created_on.getDisplayValue(), completedVisitRequests.sys_updated_on.getDisplayValue());
completedVisitRequests.calendar_duration=dur;
completedVisitRequests.update();
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-28-2018 06:54 AM
Mike,
Thanks for the update but adding getDisplayValue() did not change the value of variable dur. But calendar_duration still did not get updated...

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-28-2018 07:14 AM
Did you tried below
var dur=dc.calcScheduleDuration(completedVisitRequests.sys_created_on.getGlideObject(), completedVisitRequests.sys_updated_on.getGlideObject());
completedVisitRequests.calendar_duration=dur;
completedVisitRequests.update();