- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-21-2016 01:57 PM
Hi All,
Hopefully I am missing something very obvious, or I am misusing the addDaysLocalTime() function, but I have been spinning my wheels on this for hours, and I can't seem to get it to work.
On a change request, I have a business rule set to run when the change hits a particular state. Check, working fine.
I have a script set to run when the state is hit, basically, I want to get the start date, find out if it's a weekday, and if it's not, subtract one day from the start date field and populate another field with that value, otherwise populate it with the start date (the date part only). I can evaluate the day of the week no problem, everything returns fine here. Where I am having the problem is when I try to take day away from the start date and return that value. I am constantly getting "undefined" (I changed the field to a text field so I could see the results):
function onBefore(current, previous) {
var sDt = new GlideDateTime(current.start_date);
var dayOfWeek = sDt.getDayOfWeekLocalTime();
var datePart = sDt.getLocalDate().getByFormat('MM-dd-yyyy');
var timePart = sDt.getLocalTime().getByFormat('hh:mm:ss');
var one = sDt.addDaysLocalTime(-1);
var oneDay = one.getLocalDate().getByFormat('MM-dd-yyyy');
if (dayOfWeek >=1 && dayOfWeek <=5){
current.eow = datePart + ' 08:30:00 AM' ;
}
else {
current.eow = oneDay + ' 08:30:00 AM';
}
}
My results are:
for current.eow = datePart + ' 08:30:00 AM' ; I get 01-21-2016 08:30:00 AM (perfect for a change that starts on 01/21/2016)
for current.eow = oneDay + ' 08:30:00 AM'; I get "undefined 08:30:00 AM"
(**Note, EOW is a string field for now)
I've got to be doing something wrong here, please tell me I am....
Thanks for any help you may be able to offer.
Jim
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-21-2016 02:23 PM
Hi Jim,
I don't think you can declare 'one' in the same operation you are incrementing 'sDt'.
Have you tried just declaring both at the beginning, then increment 'one' by itself:
var sDt = new GlideDateTime(current.start_date);
var one = new GlideDateTime(current.start_date);
one.addDaysLocalTime(-1);
Then the other operations after that, it might work for you.
*Just tried a quick script to play with the date manipulations above, that at least seemed to work on my end. 🙂
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-21-2016 02:23 PM
Hi Jim,
I don't think you can declare 'one' in the same operation you are incrementing 'sDt'.
Have you tried just declaring both at the beginning, then increment 'one' by itself:
var sDt = new GlideDateTime(current.start_date);
var one = new GlideDateTime(current.start_date);
one.addDaysLocalTime(-1);
Then the other operations after that, it might work for you.
*Just tried a quick script to play with the date manipulations above, that at least seemed to work on my end. 🙂
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-21-2016 03:15 PM
Success! thank you so much, I don't have anyone to bounce this stuff off of, this is why I love the community so much.
I really appreciate the help!