Casos especiais em cronogramas de trabalho

  • Versão de lançamento: Zurich
  • Atualizado 31 de jul. de 2025
  • 2 min. de leitura
  • Alguns casos especiais exigem cuidado na programação de trabalhos.

    Cronogramas de fim do mês

    Como os meses têm durações diferentes, tome cuidado ao programar trabalhos para o final do mês.

    • Não é recomendável programar um evento para o dia 29 ou 30, porque o trabalho agendado é executado em meses (como fevereiro), que são mais curtos do que essas datas.
    • Se um evento estiver programado para o dia 31, ele será executado no último dia do mês, mesmo que o mês seja mais curto.

    Por exemplo, algo programado para ser executado no dia 31 do mês é executado em 28 de fevereiro ou 29 de fevereiro em um ano bissexto.

    Cronogramas de dias da semana

    Para scripts agendados, use o script a seguir para executar somente nos dias da semana:

    Aviso:
    Scripts condicionais para e-mails de relatório agendados são executados na área restrita. Portanto, definições de função não são permitidas. Algumas chamadas de API e palavras-chave também não são permitidas.
    
    var isWeekday;
    var today = new Date();
    var dayOfWeek = today.getDay(); // Get day of the week(0 = Sunday, 1 = Monday, ... , 6 = Saturday)
    switch (dayOfWeek) {
    case 0: // Sunday
    case 6: // Saturday
    isWeekday = false;
    break;
    default:
    isWeekday = true;
    }
    answer=isWeekday;

    Se o script condicional em um Relatório programado for mais complexo e você precisar usar nossas classes Glide, use as seguintes etapas como solução alternativa:

    1. Crie um trabalho agendado e conclua toda a lógica condicional do relatório programado dentro do trabalho agendado.
    2. Se toda a lógica condicional for atendida, você poderá acionar o Relatório programado com o script a seguir dentro do Trabalho agendado.
      var schRpGr = new GlideRecord("sysauto_report");
      schRpGr.get("<sys_id of the scheduled report>");
      gs.executeNow(schRpGr);

    Trabalhos agendados de scripts

    Para executar um trabalho agendado acionado por um evento, use o seguinte script:

    //Execute a scheduled script job
    var rec = new GlideRecord('sysauto_script');
    rec.get('name', 'YOUR_JOB_NAME_HERE');
    SncTriggerSynchronizer.executeNow(rec);
    Você pode executar o script usando uma das várias tabelas:
    • Scheduled_import_set (Conjuntos de importação programada)
    • Sysauto_script (Execução de script programada)
    • Sysauto_template (Geração de modelo programada)
    • Sysauto_report (Relatório programado)
    Nota:
    SNcTriggerSynchronizer o não fornece métodos para executar trabalhos agendados no futuro.

    Executar scripts agendados e trabalhos importados de outra instância

    Execução de script programada e trabalhos agendados são categorizados como registros de dados no ServiceNow AI Platform, o que significa que eles foram excluídos dos conjuntos de atualizações. Para determinar se uma tabela está incluída, navegue até Tudo > Definição do Sistema > Dicionário e exibir o. Atributo valor da tabela em questão. Somente tabelas com o atributo update_sync

    Opcionalmente, você pode exportar e importar registros de dados via XML. No entanto, para evitar mudanças de dados inesperadas, os registros de Item de programação [sys_trigger] não são criados para registros de dados importados de um arquivo XML, como um conjunto de atualizações. Para executar trabalhos agendados ou scripts importados de outra instância, atualize o registro de trabalho ou script correspondente na instância de destino.