GlideSchedule - com escopo

A API GlideSchedule com escopo fornece métodos para executar operações em objetos GlideSchedule, como adicionar novos segmentos de programação a uma programação, determinar se uma data/hora está dentro da programação ou definir o fuso horário da programação.

GlideSchedule com escopo - add(GlideDateTime startDate, GlideDuration offSet)

Adiciona um novo segmento de programação à programação atual.

Tabela 1. Parâmetros
Nome Tipo Descrição
startDate GlideDateTime A data de início do novo segmento de programação.
offSet GlideDuration A compensação de tempo do novo segmento de programação.
Tabela 2. Retorna
Tipo Descrição
GlideDateTime A programação atualizada com o novo segmento de programação.
var startDate = new GlideDateTime('2014-01-02');
var days = 2;
var dur = new GlideDuration(60 * 60 * 24 * 1000 * days);
var schedule = new GlideSchedule();
var end = schedule.add(startDate, dur);
gs.info(end);
Saída:
2014-01-04 00:00:00

GlideSchedule com escopo - duração(GlideDateTime startDate, GlideDateTime endDate)

Determina o tempo decorrido na programação entre dois valores de data e hora usando o fuso horário da programação ou, se não for especificado, o fuso horário da sessão.

Tabela 3. Parâmetros
Nome Tipo Descrição
startDate GlideDateTime A data/hora inicial.
endDate GlideDateTime A data/hora final.
Tabela 4. Retorna
Tipo Descrição
GlideDuration A diferença entre a data e hora inicial e final.
var startDate = new GlideDateTime('2014-10-16 02:00:00');
var endDate = new GlideDateTime('2014-10-18 04:00:00');
var schedule = new GlideSchedule();
 
schedule.load('090eecae0a0a0b260077e1dfa71da828'); // loads "8-5 weekdays excluding holidays" schedule
var duration = schedule.duration(startDate, endDate);
gs.info(duration.getDurationValue()); // gets the elapsed time in schedule

GlideSchedule com escopo – getName()

Recupera o nome da programação.

Tabela 5. Parâmetros
Nome Tipo Descrição
Nenhum
Tabela 6. Retorna
Tipo Descrição
Cadeia de caracteres O nome da programação atual.
sys_id ='04e664654a36232701a2247dcd8fc4cf'; // sys_id for "Application" schedule record
var sched = new GlideSchedule(sys_id);
gs.info(sched.getName());

GlideSchedule com escopo — GlideSchedule()

Instancia um objeto GlideSchedule vazio.

Tabela 7. Parâmetros
Nome Tipo Descrição
Nenhum

GlideSchedule com escopo - GlideSchedule(cadeia de caracteres sysID, cadeia de caracteres fuso horário)

Instancia um objeto GlideSchedule e carrega as informações de programação. Se um fuso horário não for especificado, o fuso horário da sessão atual será usado.

Tabela 8. Parâmetros
Nome Tipo Descrição
sysID Cadeia de caracteres O ID do sistema para a programação.
fuso horário Cadeia de caracteres Opcional. O fuso horário a ser usado.

Padrão: o fuso horário da sessão atual.

Os fusos horários podem ser fornecidos nos seguintes formatos.
  • País/Cidade. Por exemplo, América/Los_Angeles.
  • País/fuso horário. Por exemplo, EUA/Pacífico.
  • Abreviação do fuso horário. Por exemplo, PST.
Para obter uma lista completa de fusos horários válidos, consulte o campo Fuso horário na tabela Usuário [sys_user]. Para obter mais informações sobre fusos horários, consulte Time zones.
var schedule = new GlideSchedule('090eecae0a0a0b260077e1dfa71da828', 'US/Pacific');

GlideSchedule com escopo - isInSchedule(GlideDateTime time)

Determina se a data e hora especificadas estão dentro da programação atual.

Tabela 9. Parâmetros
Nome Tipo Descrição
hora GlideDateTime Valor de data e hora a ser verificado.
Tabela 10. Retorna
Tipo Descrição
Booliano Sinalizador que indica se a data e hora especificadas estão dentro da programação.
Valores válidos:
  • verdadeiro: a data e a hora estão dentro da programação.
  • falso: a data e a hora estão fora da programação.
var glide = new GlideRecord('cmn_schedule');
glide.addQuery('type', 'blackout');
glide.query();
if (glide.next()) {
   var sched = new GlideSchedule(glide.sys_id);
   var date = new GlideDateTime();
   date.setDisplayValue("2007-09-18 12:00:00");
   if (sched.isInSchedule(date)) 
      gs.info("Is in the schedule");
   else
      gs.info("Is NOT in the schedule");
}

GlideSchedule com escopo - isValid()

Determina se a programação atual é válida. Uma programação é válida se tiver pelo menos um período de programação.

Tabela 11. Retorna
Tipo Descrição
Booliano Verdadeiro se a programação for válida.
var glide = new GlideRecord('cmn_schedule');
glide.addQuery('type', 'blackout');
glide.query();
if (glide.next()) {
   var sched = new GlideSchedule(glide.sys_id);
   var date = new GlideDateTime();
   date.setDisplayValue("2007-09-18 12:00:00");
   if (sched.isValid()) 
      gs.info("Is valid");
 
   else
      gs.info("Is not valid");
}

GlideSchedule com escopo - load(cadeia de caracteres sysID, cadeia de caracteres fuso horário, cadeia de caracteres excludeSpanID)

Carrega uma programação com as informações da programação.

Tabela 12. Parâmetros
Nome Tipo Descrição
sysID Cadeia de caracteres O ID do sistema da programação.
fuso horário Cadeia de caracteres (Opcional) O fuso horário. Se um fuso horário não for especificado ou for nulo, o fuso horário da sessão atual será usado para a programação.
excludeSpanID Cadeia de caracteres Qualquer período a ser excluído.
Tabela 13. Retorna
Tipo Descrição
vazio
var x = new GlideSchedule();
x.load('08fcd0830a0a0b2600079f56b1adb9ae');

GlideSchedule com escopo - setTimeZone(cadeia de caracteres "timeZone")

Define o fuso horário da programação atual.

Tabela 14. Parâmetros
Nome Tipo Descrição
fuso horário Cadeia de caracteres O fuso horário a ser usado.
Os fusos horários podem ser fornecidos nos seguintes formatos.
  • País/Cidade. Por exemplo, América/Los_Angeles.
  • País/fuso horário. Por exemplo, EUA/Pacífico.
  • Abreviação do fuso horário. Por exemplo, PST.
Para obter uma lista completa de fusos horários válidos, consulte o campo Fuso horário na tabela Usuário [sys_user]. Para obter mais informações sobre fusos horários, consulte Time zones.
Tabela 15. Retorna
Tipo Descrição
vazio

Este exemplo define o fuso horário da programação como EUA/Pacífico.

var schedule = new GlideSchedule();
schedule.setTimeZone('US/Pacific');

GlideSchedule com escopo -whenNext(GlideDateTime time, String timeZone)

Determina quanto tempo (em milissegundos) falta até a hora de início do próximo item de programação.

Esta função deve ser chamada quando o objeto GlideSchedule (tabela cmn_schedule) não estiver na janela de programação. A chamadawhenNext() retorna a duração (em ms) até que o objeto GlideSchedule esteja dentro da programação. Esta função não retorna um valor significativo se for chamada quando o objeto GlideSchedule estiver dentro da programação.

Tabela 16. Parâmetros
Nome Tipo Descrição
hora GlideDateTime Tempo a ser avaliado
fuso horário Cadeia de caracteres Fuso horário
Tabela 17. Retorna
Tipo Descrição
Número Número de milissegundos até a hora de início do próximo item de programação. Retorna -1 se nunca.
var startDate = new GlideDateTime('2014-10-25 08:00:00');
var glideSchedule = new GlideSchedule('08fcd0830a0a0b2600079f56b1adb9ae', 'UTC');
gs.info(glideSchedule.whenNext(startDate));

Saída:

172800000

testScript(); 
function testScript() { 
var now = new GlideDateTime(); //current date and time
var sched = new GlideSchedule("<sys_id>"); // Use a cmn_schedule sys_id 
if (sched.isInSchedule(now)){ 
gs.info('We are in an active schedule window so whenNext() is not helpful'); 
} else{  
gs.info('Not currently in schedule so call whenNext()'); 
var msUntilNext = sched.whenNext(new GlideDateTime(), 'US/Pacific'); 
gs.info('Next schedule starts in '+msUntilNext+' milliseconds'); 
} 
}
\\ Output [schedule inactive)]:
\\ *** Script: Not currently in schedule so call whenNext() 
\\ *** Script: Next schedule starts in -1 milliseconds

Saída:

[Programado para o futuro] *** Script: não está na programação atualmente *** Script: a próxima programação começa em 332894000 milissegundos