---
sourceDocument: Referência de API do Xanadu
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/pt-BR/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - pt-BR

ft:publication_title :

    - Referência de API do Xanadu

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# Como implementar uma duração relativa

# Como implementar uma duração relativa {#ariaid-title1}

* Versão de lançamento: Xanadu
* 
* Atualizado 1 de ago. de 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 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 {#ariaid-title2}

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.  
{#c_RelDurTblCalc__table_vbs_swt_1q__entry__2}

| 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. |
[Tabela 1. Tabela de inclusão de script DurationCalculator]

{#c_RelDurTblCalc__table_vbs_swt_1q}

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

| 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. |
[Tabela 2. Funções de script de duração relativa]

{#c_RelDurTblCalc__table_ahm_gd5_1q}

