# Regra para monitorar/observar documentos

## Visão geral

Essa regra faz parte das que rodam em background, conforme comentamos nessa [página](/zeevdocs/criar-bibliotecas/o-que-sao-regras-de-negocio.md), ou seja, sua configuração não reflete a interface de algum módulo, por isso é chamada "regra do tipo **Serviço"**.

Ela é responsável por monitorar documentos, conforme critérios pré-estabelecidos, podendo realizar ações automatizadas, como:&#x20;

* Excluir o documento;
* Notificar uma pessoa;
* Associar (bloquear) o documento para uma pessoa;
* Movimentar o documento de Etapa, Situação e Pendência;
* Acionar uma API.&#x20;

## Como configurar a regra de Observação

O serviço possui diversas configurações que podem ser realizadas. Isso não significa que você deve utilizar todas as funcionalidades disponíveis.

Agora vamos te explicar o objetivo e comportamento de suas principais funcionalidades.

### Aba Geral

Na aba Geral é possível configurar:

* Recorrência de verificação (em horas) / (máximo 24 horas);
* Definir quantidade de documentos por ciclo a serem verificados;
* Habilitar a exclusão lógica do documento;&#x20;
* Priorizar por ordem de data de inclusão do documento (ascendente ou descendente).&#x20;

![Configurações da Aba Geral](/files/VJUI7gXkKeUPUNa2wgye)

### Aba Critérios

Na aba Critérios é possível configurar os critérios da regra para realizar alguma ação. &#x20;

#### Critério via campo do tipo Data

A ação será executada a partir do vencimento de um documento. E para calcular esse vencimento, é necessário definir a data de origem, ou seja, a partir de quando o prazo será contabilizado.

É possível definir a data de origem através dos campos:

* Data de inserção do documento (nativo do Zeev docs);
* Data de atualização do documento (nativo do Zeev docs);
* Campo de data customizado (criado pelo usuário na criação da biblioteca).

<figure><img src="/files/fA4lELqZvRJbIZYmjE2h" alt=""><figcaption></figcaption></figure>

#### Como definir os prazos de vencimento dos documentos

1. **Dias fixos**: todos os documentos vencerão ao final dos dias configurados nesse campo, a contar a partir da data preenchida no campo selecionado anteriormente (Data de emissão);
2. **Temporalidade por tipo**: o vencimento dos documentos será dinâmico, conforme a [temporalidade do tipo selecionado](/zeevdocs/criar-bibliotecas/como-criar-grupos-e-tipos-de-documento.md#temporalidade-dos-documentos).&#x20;
   * Exemplo: se você tipificou um documento como "RG" e configurou sua temporalidade para 3650 dias (10 anos), o RG vencerá ao final desse período. Se importou outro tipo de documento, com outra temporalidade, ele vencerá ao final de sua temporalidade, e assim por diante.

#### Entendendo os operadores

Os operadores são utilizados para calcular o vencimento do documento, como no exemplo abaixo:

O resultado da seguinte soma: Data de emissão + a quantidade de dias, definido na regra, é menor ou igual à data de hoje? Se o resultado for negativo, então nenhuma ação é realizada. Se for positivo, quer dizer que o documento já venceu e a ação pode ser realizada.&#x20;

Para facilitar a compreensão, vamos a um exemplo prático:

1. Importei no Zeev docs um documento com a seguinte data de emissão do contrato: <mark style="background-color:blue;">30/09/2023</mark>;
2. Defini que o prazo fixo para vencimento do contrato é de <mark style="background-color:purple;">180 dias</mark>;
3. Nos critérios da regra utilizei o operador menor ou igual: <mark style="background-color:orange;"><=</mark>
4. Para simularmos, considere que atualmente estou no dia <mark style="background-color:yellow;">30/10/2023</mark>

A regra de monitoramento realizará o seguinte cálculo:

* <mark style="background-color:blue;">30/09/2023</mark> + <mark style="background-color:purple;">180 dias</mark> = <mark style="background-color:green;">30/03/</mark><mark style="background-color:green;">**2024**</mark>

Na sequência, realizará a seguinte validação:

* <mark style="background-color:green;">30/03/</mark><mark style="background-color:green;">**2024**</mark> é <mark style="background-color:orange;"><=</mark> (menor ou igual) à data de hoje (<mark style="background-color:yellow;">30/10/2023</mark>)?

A resposta é "<mark style="color:red;">NÃO</mark>", pois a data de vencimento é maior. Logo, nenhuma ação será executada.

Quando chegar no dia <mark style="background-color:green;">30/03/</mark><mark style="background-color:green;">**2024**</mark> ele fará a mesma validação e a resposta será "<mark style="color:green;">SIM</mark>", pois esse dia será igual à data de vencimento do documento (<mark style="background-color:green;">30/03/</mark><mark style="background-color:green;">**2024**</mark>). Entao a ação será executada.

{% hint style="info" %}
**Dicas**:&#x20;

* No exemplo acima utilizamos dias fixos, porém, o mesmo cálculo é realizado quando usamos a temporalidade por tipo;
* Devido a maneira como a lógica foi desenvolvida deve ser usado somente os operadores: menor (<) e menor ou igual (<=).
  {% endhint %}

A tabela abaixo contém outro exemplo de maneira ilustrativa para validar o comportamento.

<figure><img src="/files/bi2EZLZq2VpL59GVblaB" alt=""><figcaption></figcaption></figure>

### Aba Notificações

Na aba Notificações, caso os critérios sejam atendidos, é possível configurar para:

* Notificar usuários por e-mail;
* *Ad hoc* por usuário (bloquear o documento um usuário específico);
* Configurar requisições de métodos e retornos para *webservices*:

![Configurações da Aba Notificações](/files/teG8tZBCQIJtiH8eBF1l)

{% hint style="info" %}
**Dica**: para que a notificação por e-mail funcione corretamente, é necessário que os parâmetros SMTP do serviço de observação estejam configurados. Contate os canais de apoio da Zeev para validar essa configuração.
{% endhint %}

### Como determinar etapas de processamento

Para essa regra de negócio funcionar, é obrigatório configurar as etapas, situações e pendências do Processamento, Sucesso e Exceção.&#x20;

Isso significa que a regra observará somente os documentos que estejam na etapa, situação e pendência configurada na coluna "**Processar**" e os enviará para a etapa, situação e pendência da coluna "**Sucesso**". Caso haja algum erro na execução da operação, enviará para as etapas da coluna "**Exceção**".

![Configurações das etapas de processamento](/files/DINWf1Fet3JaHvFE7LJS)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://kb.stoque.com.br/zeevdocs/criar-bibliotecas/o-que-sao-regras-de-negocio/regra-para-monitorar-observar-documentos.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
