Como implementar uma duração relativa
Você pode implementar uma duração relativa criando a tabela cmn_relative_duration e a inclusão de script DurationCalculator.
Antes de Iniciar
Procedimento
- Crie a tabela cmn_relative_duration.
- Crie a inclusão de script DurationCalculator.
- Crie uma entrada de duração relativa de amostra (por exemplo, "Próximo dia útil às 16h").
- Adicione os campos necessários às tabelas de ANS para oferecer suporte a durações relativas.
- Modifique o cálculo de duração para SLAs.
- Modifique o cálculo do temporizador de porcentagem de ANS para SLAs (deve usar work_seconds).
- 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).
- Adicione campos de suporte de duração à atividade Tarefa de fluxo de trabalho.
- 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.
| 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:
| 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. |