The CreatorCon Call for Content is officially open! Get started here.

How to stop Schedule job to Trigger on Holidays.

Swaroop10
Giga Contributor

How to stop schedule job to trigger on Holidays. I have updated all holidays in Schedules.

 

Thanks & Regards,

S.Swaroop.

1 ACCEPTED SOLUTION

Okay.

I added few logs and made few changes. can you chck and share the output.

var answer = false;
var s = new GlideSchedule("e939ddfcdb2c98501317f27139961981");
var w = new GlideSchedule("55ebbbf15f002000b12e3572f2b47714");
var a = gs.nowDateTime();
var gdt = new GlideDateTime();
gs.log(gdt);
if(gdt.getDayOfWeek() > 1 || gdt.getDayOfWeek() < 5){
  gs.log("Entered here 1");
  if(s.isInSchedule(gdt)&&!w.isInSchedule(gdt)){
    gs.log("Entered here 2");
    answer = true;
  } else {
    gs.log("Entered into else of inSchedule condition");
    answer = false;
  }
} else {
    gs.log("entered into else condition of week");
    answer = false;
}

View solution in original post

24 REPLIES 24

Hello Ankur,

I am getting 8th May. Which is the one i have kept as Holiday in my Schedules.

 

 

Thanks & Regards,

S.Swaroop.

Hi Swaroop,

I don't think there is an issue with isInSchedule

Can you share updated code?

Regards
Ankur

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

Hello Ankur,

Below is the updated code.

var answer = false;
var s = new GlideSchedule("e939ddfcdb2c98501317f27139961981"); - This is for checking Business hours
var w = new GlideSchedule("55ebbbf15f002000b12e3572f2b47714"); - This is for checking Holidays
var a = gs.nowDateTime(); - This i am using to get current Date and time and to validate weather it is coming under Business hours (or) not.
var gdt = new GlideDateTime();

if(gdt.getDayOfWeek() > 1 || gdt.getDayOfWeek() < 5){
if(s.isInSchedule(a)&&!w.isInSchedule(a)){
answer = true;
}
answer = false;
}
answer = false;

Hi,

please use new GlideDateTime() instead of gs.nowDateTime()

var a = new GlideDateTime();

Regards
Ankur

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

Hello Ankur,

Thanks for the help. I used the below script and it worked perfectly.

var answer = false;
var s = new GlideSchedule("e939ddfcdb2c98501317f27139961981");
var w = new GlideSchedule("55ebbbf15f002000b12e3572f2b47714");
var gdt = new GlideDateTime();

if(gdt.getDayOfWeek() > 1 || gdt.getDayOfWeek() < 5){
if(s.isInSchedule(gdt)&&!w.isInSchedule(gdt)){
answer = true;
}
}

 

Thanks & Regards,

S.Swaroop.