- Mark as New
 - Bookmark
 - Subscribe
 - Mute
 - Subscribe to RSS Feed
 - Permalink
 - Report Inappropriate Content
 
‎01-31-2019 06:58 AM
I have a two fields on my table which are of date/time type; I have start date and end date, inorder to calculate the difference i have created a new field of type duration
Business rule is been for this it returns a value in "days:hours:minutes"seconds"
Instead i just want the field to calculate the value in minutes; can someone please help me with this
Business rule:
(function executeRule(current, previous /*null when async*/) {
if (current.u_incident_start_date.nil() || current.u_incident_end.nil()) {
 current.setValue('u_incident_duration_calculation', '');
 return;
 }
var st = new GlideDateTime();
 
 
 st.setValue(current.getValue("u_incident_start_date"));
 
 var ed = new GlideDateTime();
 ed.setValue(current.getValue("u_incident_end"));
 
 var dur = GlideDateTime.subtract(st, ed);
 current.setValue("u_incident_duration_calculation", dur.getValue());
 
})(current, previous); 
 
 
 
Solved! Go to Solution.
- Labels:
 - 
						
							
		
			Notifications
 - 
						
							
		
			Workflow
 
- Mark as New
 - Bookmark
 - Subscribe
 - Mute
 - Subscribe to RSS Feed
 - Permalink
 - Report Inappropriate Content
 
‎01-31-2019 11:17 AM
That could be the issue. If you donot want decimals , try the updated code
(function executeRule(current, previous /*null when async*/) {
	
	if (current.u_incident_start_date.nil() || current.u_incident_end.nil()) {
		current.setValue('u_incident_duration_calculation', '');
		return;
	}
	
	var st = new GlideDateTime(current.u_incident_start_date);
	var ed = new GlideDateTime(current.u_incident_end);
	
	var sec = gs.dateDiff(st, ed, true);
	
	var minutes = sec/60;
	
	current.u_incident_duration_calculation = parseInt(minutes,10); // Remove decimals 
	
})(current, previous);
					
				
			
			
				
			
			
				
			
			
				
			
			
			
			
			
		- Mark as New
 - Bookmark
 - Subscribe
 - Mute
 - Subscribe to RSS Feed
 - Permalink
 - Report Inappropriate Content
 
‎01-31-2019 07:02 AM
Hi
Please refer the below thread :-
- Mark as New
 - Bookmark
 - Subscribe
 - Mute
 - Subscribe to RSS Feed
 - Permalink
 - Report Inappropriate Content
 
‎01-31-2019 07:31 AM
I tried that already, it dint work with client and server script
- Mark as New
 - Bookmark
 - Subscribe
 - Mute
 - Subscribe to RSS Feed
 - Permalink
 - Report Inappropriate Content
 
‎01-31-2019 07:37 AM
Try this
(function executeRule(current, previous /*null when async*/) {
	
	if (current.u_incident_start_date.nil() || current.u_incident_end.nil()) {
		current.setValue('u_incident_duration_calculation', '');
		return;
	}
	
	var st = new GlideDateTime(current.u_incident_start_date);
	var ed = new GlideDateTime(current.u_incident_end);
	
	var sec = gs.dateDiff(st, ed, true);
	
	var minutes = sec/60;
	
})(current, previous);
					
				
			
			
				
			
			
				
			
			
			
			
			
			
		- Mark as New
 - Bookmark
 - Subscribe
 - Mute
 - Subscribe to RSS Feed
 - Permalink
 - Report Inappropriate Content
 
‎01-31-2019 09:54 AM
Hi Dvp
i tried this script but it dint work, is it because the field "u_incident_duration_calculation" is of integer type?
upon selection of dates it just displays blank nothing worked
