- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-08-2023 02:12 AM
Hello,
I am currently using the following script (BR) to calculate the difference between the end date and the start date.
The field where I want to display this difference is in the Duration field on the change request form.
The backend name of the field where I'm calculating the difference is "calendar_duration," and its type is "Duration."
//Background script
var change = new GlideRecord('change_request');
change.addQuery('sys_id','c83c5e5347c12200e0ef563dbb9a7190');
change.query();
if(change.next())
{
var startdate = new GlideDateTime(change.start_date);
var enddate = new GlideDateTime(change.end_date);
var dur_seconds = gs.dateDiff(startdate, enddate, true);
gs.info(dur_seconds);
gs.info('Total difference in hrs ' + dur_seconds/3600);
}
//ANS of background script
*** Script: 91800
*** Script: Total difference in hrs 25.5
//Business rule
(function executeRule(current, previous /*null when async*/ ) {
var startdate = new GlideDateTime(current.start_date);
var enddate = new GlideDateTime(current.end_date);
var dur_seconds = gs.dateDiff(startdate, enddate, true);
var duration = dur_seconds / 3600;
//current.calendar_duration = duration;
//current.cab_recommendation = duration + ' hrs';
})(current, previous);
Please note that my script is functioning correctly; I have tested it in a background script. I just need assistance with populating the duration field in the correct format.
Any assistance in resolving this issue would be greatly appreciated.
Thanks and Regards
Kartik Magadum
Solved! Go to Solution.
- 1,143 Views
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-08-2023 02:34 AM - edited 09-08-2023 02:36 AM
Hello
I have arrived at a solution by using the following code:
var startDate = current.start_date.getGlideObject();
var endDate = current.end_date.getGlideObject();
current.calendar_duration = gs.dateDiff(startDate.getDisplayValueInternal(), endDate.getDisplayValueInternal(), false);
Thanks and Regards
Kartik Magadum
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-25-2024 09:40 AM
Hi All,
This may be a bit late but I did find a way to do this via calculated fields.
This script is similar and created on the dictionary override for change request table.
gs.dateDiff(current.work_start,current.work_end,false);
I have created a short video to demonstrate it working. Hope it helps.
https://youtu.be/nrNnV1-y97U?feature=shared
Kind Regards,
Wind