Caladddays function is not calculating for next year and retrogressing back to same year

Certified Associate Developer

Hi All,

I have a scenario where if an expected SLA date&time falls on a non-working day, I need to get next working day value.

For example, I have my initial submitted date as 12/27/2023 2:01 PM PST and expected SLA date time based on some biz logic should be 1/2/2024 7:01 AM PST. I have used the below logic but somehow instead of getting the SLA date result for next year as 1/2/2024 7:01 AM PST, I am getting the SLA date result in the same year as 1/2/2023 7:01 AM PST.
Please note correct process calendars are used and Dec 30 2023,  Dec 31 2023 and Jan 1 2024 are all set as non-working day.

Please help/advise on how I can update to get the correct value:

local!finalSLADateTime:
if(
calisworkday(1/1/2024 7:01 AM PST, local! Calendar),
1/1/2024 7:01 AM PST,
1/1/2024 7:01 AM PST + (dayofyear(caladddays(1/1/2024 7:01 AM PST, 0, local! Calendar)) - dayofyear(1/1/2024 7:01 AM PST))
),

  Discussion posts and replies are publicly visible

Parents Reply
  • 0
    Certified Associate Developer
    in reply to Anna P

    Hi Anna, I need the output as datetime but using workday function suggested by you gives just the time. How can I get the date&time value? Also, in the code which you pasted I want to use the local!sla (days) as dynamic value and should not be 2 all the time. For example, I want the value of it depending on the US Holiday datetime and can be 1, 2 ... 

    workday(
    todatetime("01/01/2024 7:01 AM"),
    (
    dayofyear(
    caladddays(todatetime("01/01/2024 7:01 AM"), 0, "Default Calendar")
    ) - dayofyear(todatetime("01/01/2024 7:01 AM"))
    ),
    datetime(2024,01,01)
    )

    I need the output to be 1/2/2024 7:01 AM instead I just get 1/2/2024.

Children