Atenção!: Caso o processo não tenha rodado o timer no mês corrente então o mês definido para este timer rodar a primeira vez será o mês corrente;Aguardar por um número X de horas: nesse caso, a instância do processo ficará congelada pelo número de horas a ser determinado;Aguardar por um número X de dias: : nesse caso, a instância do processo ficará congelada pelo número de dias a ser determinado;Tipo de data: representa o tempo que o relógio ficará esperando.- Se você selecionou a primeira opção no campo "tipo" acima, esse tempo deverá ser uma data fixa no formato dd/MM/aaaa OU dd/MM/aaaa hh:mi:ss;
- Se você selecionou uma das duas últimas opções no campo "tipo" acima, esse tempo deverá ser um valor inteiro fixo;
Existem duas maneiras de definir o tipo de data, conforme vemos:
| - Data fixa: nesse caso você determina manualmente uma data (no formato dd/mm/aaaa) ou número fixo (representando dias ou horas);
- Data dinâmica: nesse caso você escolhe qual campo do formulário irá possuir uma data (no formato dd/mm/aaaa) ou número inteiro (representando dias ou horas);
Horário de Expiração
Quando você configura um timer com "Tipo de relógio" igual a "Aguardar até uma data X" e "Tipo de data" igual a "Fixa", ao configurar uma data (por exemplo, 31/12/2015), o Timer irá expirar dia 31/12/2015 as 23:59:59.
Quando você configura um timer com "Tipo de relógio" igual a "Aguardar até uma data X" e "Tipo de data" igual a "Dinâmica", o Timer irá expirar na data definida em um campo do formulário.
Caso nesse campo do formulário tenha sido digitado somente uma data, sem horário (por exemplo, 31/12/2015), o Timer irá expirar as 00:00hs desse dia.
Caso nesse campo do formulário tenha sido digitado uma data e um horário, (por exemplo, 31/12/2015 21:30), o Timer irá expirar exatamente na data e horários digitados.
Forçar para as 23:59
Um cenário comum é quando você deseja que o Timer expire em uma data preenchida em um campo do formulário, porém necessita que expire as 23:59 desse dia (e não as 00:00hs como é o padrão), e, ao mesmo tempo, não quer que o usuário tenha que digitar o horário no processo.
Nesse caso as seguintes abordagens são possíveis:
1. Utilizando uma Tarefa Orquestra, você pode modificar o valor do campo do formulário que armazena a data para incluir o horário desejado.
Nesse caso, antes do Timer, você deve incluir uma atividade do tipo "Tarefa Orquestra". Ela deve estar configurada para "Modificar Valor de Campo do Formulário". Selecione o campo do formulário que armazena a data. Na definição de seu novo valor, utilize uma concatenção entre o Token que representa o valor do próprio campo data mais o horário desejado.
Com isso, apesar de o usuário ter digitado, por exemplo, 31/12/2015, o Orquestra irá armazenar 31/12/2005 23:59:59, e o Timer respeitará esse novo horário.
2. Através de customizações / programações Javascript, você pode incluir funções customizadas que preencham automaticamente o horário desejado no campo do formulário após a data ter sido preenchida pelo usuário.
3. Utilizando uma abordagem de programação de banco de dados, é possível utilizar o evento "Pós-criação da tarefa" na configuração do Timer para, após ele ter sido criado (com horário vencendo as 00:00hs) seu horário seja modificado para as 23:59hs. Veja exemplo nesse link.
O Funcionamento do Timer
Quando uma instância de um processo atinge um timer, como vimos, o processo fica "congelado".
Na verdade, nesse momento é criada uma tarefa para um usuário fixo da ferramenta, chamado "Serviço Orquestra". Este serviço monitora as tarefas desse usuário e finaliza todas as tarefas que recém tornaram-se atrasadas. Caso uma tarefa de timer seja criada com uma data retroativa a tarefa será finalizada assim que o Serviço de Timer rodar.
Importante! O login "Serviço Orquestra" ou outro login parametrizado para este fim deve ser apenas para recebimento de tarefas de timer. Não utilizar este login para qualquer outro tipo de uso. |
Importante! O serviço de Timer somente finalizará as atividades que estiverem pendentes para o login "Serviço Orquestra". Em simulação, as atividades não estão pendentes para esse usuário, estão pendentes para o usuário que está simulando. Por isso, não serão finalizadas. |
Se você tiver permissões para tal, poderá inclusive acessar a conta desse usuário e verificar a sua caixa de entrada de tarefas, repleta de atividades de processos que estão congelados. Essas atividades são muito similares a atividades humanas normais. Você, se quiser e se tiver autorização, pode inclusive finalizar uma atividade de timer, dando seqüência em um processo.
Caso o processo permaneça congelado, no momento em que a atividade expirar, o sistema a finalizará automaticamente e dará seqüência ao processo.
Esse funcionamento é interessante pois permite a um administrador intervir em processo congelados, dando seqüência em sua execução quando isso se fizer necessário.
Timer Embedded (Relógio Vinculado)
Um Relógio Vinculado é um tipo de relógio associado a uma tarefa humana. Esse tipo de relógio tem efeito direto na tarefa a qual está associado.
O Timer "Embedded" como vimos acima vinculado à tarefa B tem as seguintes características:
- É ativado e começa a contar o tempo assim que a tarefa a que está vinculado é ativada;
- Quando o prazo do Timer expira:
- Caso ele seja do tipo "Interruptivo", a atividade B é cancelada e o processo prossegue para D
- Caso ele seja do tipo "Não-Interruptivo", a atividade B é permanece ativa e o processo prossegue para D, em paralelo
- Se a tarefa B é finalizada antes do prazo do Timer o Relógio é cancelado automaticamente e o processo continua pela ligação normal da tarefa.
Para criar um "Timer Embedded", é só arrastar o elemento de timer para "dentro" de uma atividade humana de aprovação ou instrução. O tamanho dele irá diminuir e seu título será escondido.
Timer e simulação
Ao realizar uma simulação/teste de um processo, o elemento timer será representado por uma tarefa pendente na caixa de entrada do usuário que está executando a simulação. O usuário não precisará aguardar pelo fim do prazo do timer, podendo finalizar a atividade do timer manualmente.
Importante destacar que em simulação/teste, a atividade do timer NÃO irá finalizar automaticamente, devendo ser finalizada manualmente.