Como implementar uma duração relativa

  • Versão de lançamento: Yokohama
  • Atualizado 30 de jan. de 2025
  • 2 min. de leitura
  • Você pode implementar uma duração relativa criando a tabela cmn_relative_duration e a inclusão de script DurationCalculator.

    Antes de Iniciar

    Função necessária: administrador

    Procedimento

    1. Crie a tabela cmn_relative_duration.
    2. Crie a inclusão de script DurationCalculator.
    3. Crie uma entrada de duração relativa de amostra (por exemplo, "Próximo dia útil às 16h").
    4. Adicione os campos necessários às tabelas de ANS para oferecer suporte a durações relativas.
    5. Modifique o cálculo de duração para SLAs.
    6. Modifique o cálculo do temporizador de porcentagem de ANS para SLAs (deve usar work_seconds).
    7. Adicione campos de programação ao fluxo de trabalho: programação e fuso horário (selecionados com base no campo da tabela de fluxo de trabalho).
    8. Adicione campos de suporte de duração à atividade Tarefa de fluxo de trabalho.
    9. Implemente o script de cálculo de duração para a atividade da tarefa.

    A tabela de duração relativa e os métodos DurationCalculator

    A tabela cmn_relative_duration oferece suporte à definição de uma data de vencimento como uma duração de tempo ou uma duração relativa.

    Esta tabela consiste em dois campos: "nome" e "script". O campo "script" contém o script de cálculo da duração relativa. Este script inclui a variável "calculadora", que é usada para calcular a data de vencimento.

    A inclusão de script DurationCalculator pode ser usada para executar os cálculos de duração. A seguir estão os métodos que estão disponíveis nesta inclusão de script.

    Tabela 1. Tabela de inclusão de script DurationCalculator
    Método Descrição
    setSchedule(cadeia de caracteres schedID, [cadeia de caracteres fuso horário]) Define a programação e o fuso horário a serem usados para calcular a data de vencimento.
    setStartDateTime (início de GlideDateTime) Define a hora de início dos cálculos de duração. Se "início" estiver em branco, usará data/hora atual.
    calcDuration (int segundos) Calcula a data e a hora de término. Após a conclusão, as propriedades this.endDateTime e this.seconds serão definidas para indicar os resultados do cálculo.
    calcRelativeDuration(cadeia de caracteres IDRelativeDuration) Calcula a duração usando o script de duração relativa especificado. Após a conclusão, as propriedades this.endDateTime e this.seconds serão definidas para indicar os resultados do cálculo.
    getEndDateTime () Obtém a propriedade this.endDateTime que foi definida por calcDuration/calculRelativeDuration indicando a data e hora de término da duração.
    getSeconds() Obtém a propriedade this.seconds que foi definida por calcDuration/calculRelativeDuration indicando o número total de segundos de trabalho a ser realizado para a duração.
    Nota:
    Este é o tempo total de trabalho, não o tempo total entre as horas de início e de término e pode ser usado para determinar porcentagens do tempo de trabalho
    getTotalSeconds () Obtém a propriedade this.totalSeconds que foi definida por calcDuration/calculRelativeDuration indicando o número total de segundos entre as horas de início e de término da duração.

    As seguintes funções são usadas em scripts de duração relativa:

    Tabela 2. Funções de script de duração relativa
    Função Descrição
    booliano isAfter(GlideDateTime dt, tempo da cadeia de caracteres) A "hora" do dia após a hora do dia é especificada por "dt"? dt, se estiver em branco, usará data/hora atual. a hora está em "hh:mm:ss" no formato de 24 horas.
    calcRelativeDueDate(GlideDateTime start, int days, String endTime) Calcula a data de vencimento começando em "início" e adicionando "dias" usando a programação e o fuso horário. Quando encontrarmos o dia em que o trabalho vence, defina a hora como "endTime" desse dia. Após a conclusão, as propriedades this.endDateTime e this.seconds serão definidas para indicar os resultados do cálculo. Se endTime estiver em branco, use o fim do dia útil final.