Como adicionar regras de negócios personalizadas ao Acordo de nível de serviço (ANS)

  • Versão de lançamento: Washingtondc
  • Atualizado 1 de fev. de 2024
  • 1 min. de leitura
  • Você pode adicionar regras de negócios personalizadas aos seus SLAs.

    Antes de Iniciar

    Função necessária: administrador

    Procedimento

    Selecione um dos seguintes métodos para adicionar regras de negócios personalizadas.
    OpçãoDescrição
    Usar setWorkflow(false) Antes de atualizar sua tarefa, adicione uma chamada para setWorkflow(false) no objeto GlideRecord para a tarefa dentro da regra de negócios que está atualizando a tarefa. Isso evita que as regras de negócios sejam processadas.
    Nota:
    O setWorkflow(false) desabilita o processamento de todos os mecanismos e a atualização não aparece no histórico de auditoria da tarefa.
    Por exemplo, um script que copia a hora da violação para um campo personalizado na tarefa.
    (function(){ 
                if (current.planned_end_time.changes()) { 
                   var taskGr = current.task.getRefRecord(); 
                   taskGr.u_sla_breach_time = current.planned_end_time; 
                   taskGr.setWorkflow(false); 
                   taskGr.update(); 
                } )
              ();
    Crie um sys_trigger (trabalho programado) para atualizar a tarefa Em sua regra de negócios personalizada, use o campo Script para gerar um trabalho programado para atualizar a tarefa. Para garantir que o trabalho programado seja enfileirado para processamento imediato, ele deve ser do tipo Executar uma vez e ter a próxima ação Agora.
    Nota:
    O script include ScheduleOnce inclui funções para especificar o registro de destino e quando executar o trabalho programado. Isso permite que você especifique o script a ser executado e chame outra função para criar o registro apropriado na tabela sys_trigger.
    Por exemplo, um script para criar um trabalho agendado que copia a hora da violação para um campo personalizado na tarefa.
    (function(){
                if (current.planned_end_time.changes()) { 
                   var scheduleJob = new ScheduleOnce(); 
                   scheduleJob.setDocument(t.task.getRefRecord()); 
                   scheduleJob.script = 
                       "current.u_sla_breach_time.setValue('" + 
                       current.getValue('planned_end_time') + 
                       "');current.update();"; 
                   scheduleJob.schedule(); 
                } 
              )();