- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-10-2023 07:45 PM
Hi All,
I have a requirement like, when we create a change request based on the type we need to set date and time on duration filed?
normal change = 4 days
expiated change = 24 hr
standard change = 12 hr
how can we set the date and time dynamically based on the change type.
I'm using before business rule
type: before
condition: state is of normal,expedite,standard
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-10-2023 10:39 PM - edited 10-10-2023 10:40 PM
Hi @pvv1045330
Can you simply try to set like below :
if(current.type=='normal'){
/*Days Hr:mm:ss - As we know 14 days for normal*/
var approvalDuration = "14 00:00:00";
current.u_minimum_lead_time=approvalDuration;
}
else if(current.type=='expedite'){
/* Days Hr:mm:ss - As we know 48 hrs will be converted into days automatically*/
var Duration = "00 48:00:00";
current.u_minimum_lead_time=Duration;
}
else if(current.type=='standard'){
var approval = "00 24:00:00";
current.u_minimum_lead_time=approval;
}
ServiceNow Developer
I know one thing, and that is that I know nothing.
- Socrates
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-10-2023 09:26 PM - edited 10-10-2023 09:34 PM
you should set milliseconds, no need to query as BR is before insert on CHG table itself
Also use setDateNumericValue function to set duration field
update script as this
if(current.type == 'normal'){
var approvalDuration = 4*24*60*60*1000;// 4 days converted to milliseconds
current.u_minimum_lead_time.setDateNumericValue(approvalDuration);
}
else if(current.type == 'expedite'){
var Duration = 1*24*60*60*1000; // 1 day i.e. 24 hour converted to milliseconds
current.u_minimum_lead_time.setDateNumericValue(Duration);
}
else if(current.type == 'standard'){
var approval = 0.5*24*60*60*1000; // 12 hours means 0.5 day and this is converted to milliseconds
current.u_minimum_lead_time.setDateNumericValue(approval);
}
If my response helped please mark it correct and close the thread so that it benefits future readers.
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-10-2023 10:49 PM
Hi @Ankur Bawiskar, Thanks for the response, I'll check and confirm you.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-10-2023 10:39 PM - edited 10-10-2023 10:40 PM
Hi @pvv1045330
Can you simply try to set like below :
if(current.type=='normal'){
/*Days Hr:mm:ss - As we know 14 days for normal*/
var approvalDuration = "14 00:00:00";
current.u_minimum_lead_time=approvalDuration;
}
else if(current.type=='expedite'){
/* Days Hr:mm:ss - As we know 48 hrs will be converted into days automatically*/
var Duration = "00 48:00:00";
current.u_minimum_lead_time=Duration;
}
else if(current.type=='standard'){
var approval = "00 24:00:00";
current.u_minimum_lead_time=approval;
}
ServiceNow Developer
I know one thing, and that is that I know nothing.
- Socrates
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-10-2023 11:53 PM
Hi @Vishal Birajdar, it's working for only normal change
and other 2 type it's populated wrong place date & time, please find the below secern short
Type: Standard
Type: Expedite
Type: Normal
use update before br
condition: type is one of normal,expedite,standard
Script:
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-11-2023 12:00 AM - edited 10-11-2023 12:01 AM
Hi @pvv1045330
You should put space between Days & Hr:mm:ss - format "Days Hr:mm:ss" e.g., "00 48:00:00"
if (current.type == 'normal') {
/*Days Hr:mm:ss - As we know 14 days for normal*/
var approvalDuration = "14 00:00:00";
current.u_minimum_lead_time = approvalDuration;
} else if (current.type == 'expedite') {
/* Days Hr:mm:ss - As we know 48 hrs will be converted into days automatically*/
var Duration = "00 48:00:00"; // Space between 00 & 48:00:00
current.u_minimum_lead_time = Duration;
} else if (current.type == 'standard') {
var approval = "00 24:00:00"; // Space between 00 & 24:00:00
current.u_minimum_lead_time = approval;
}
ServiceNow Developer
I know one thing, and that is that I know nothing.
- Socrates