- feito ajuste do fluxo GLPI->SN para tratar status 5 (resolve no SN) e status 6 (aviso definitivo e retirada de monitoramento) - feito ajuste de reabertura SN->GLPI quando ticket estiver solved no GLPI - feito ajuste de data/hora de comments/worknotes para evitar inversão de data - feito ajuste de vínculo Ticket Externo no SN com validação de persistência e retry idempotente - feito ajuste de filtro de journals para ignorar SOTHIS.CAOA e admin.caoa por configuração - feito inclusão de monitor dedicado de encerramento definitivo (processGlpiClosureController) - feito atualização de flags de controle (ENABLE_STATUS_SYNC, ENABLE_GLPI_CLOSE_CRON, ENABLE_GLPI_WEBHOOK) - feito atualização da documentação (README, docs/regrasdenegocio.md, docs/fluxo.md, docs/casosdeuso.md, docs/checklist.md)
57 lines
1.8 KiB
Markdown
57 lines
1.8 KiB
Markdown
# Fluxo Operacional
|
|
|
|
## 1. Fluxo do ciclo (`main`)
|
|
|
|
1. `processErrorController`
|
|
2. `processTicketsController`
|
|
3. `processCommentsController`
|
|
4. `processGlpiClosureController` (se `ENABLE_GLPI_CLOSE_CRON=true`)
|
|
5. `processStatusAndClosureController` apenas se `ENABLE_STATUS_SYNC=true`
|
|
|
|
## 2. Fluxo SN -> GLPI
|
|
|
|
1. Coleta incidentes/requisicoes no SN por watermark.
|
|
2. UPSERT em `tickets_sn`.
|
|
3. Cria/atualiza `ticket_sync` com estados iniciais.
|
|
4. Cria ticket no GLPI quando `pending_check`.
|
|
5. Grava `glpi_ticket_id` em `ticket_sync`.
|
|
6. Atualiza campo "Ticket Externo" no SN com ID GLPI.
|
|
7. Se falhar atualizar "Ticket Externo", agenda retry em `ticket_updates`.
|
|
|
|
## 3. Fluxo de comentarios/tasks
|
|
|
|
### 3.1 SN -> GLPI
|
|
|
|
1. Busca `comments` e `work_notes` no SN.
|
|
2. Persiste em `ticket_updates` (idempotente por `source_id`).
|
|
3. Envia:
|
|
- `comment` -> followup GLPI
|
|
- `task` -> task GLPI
|
|
|
|
### 3.2 GLPI -> SN
|
|
|
|
1. Busca followups GLPI.
|
|
2. Sanitiza conteudo HTML/imagens.
|
|
3. Envia comentario para SN evitando duplicidade.
|
|
4. Atualiza `destiny_id` para rastrear espelhamento.
|
|
|
|
## 4. Resolucao e fechamento GLPI -> SN (monitor cron)
|
|
|
|
1. Monitor consulta tickets ativos no `ticket_sync`.
|
|
2. Busca status real no GLPI.
|
|
3. Se status GLPI = `5`:
|
|
- busca nota de solucao
|
|
- se SN estiver em espera, move para em atendimento
|
|
- resolve SN
|
|
- marca `ticket_sync` como `solved/solved`
|
|
4. Se status GLPI = `6`:
|
|
- adiciona comentario no SN:
|
|
- "Chamado encerrado definitivamente. Reabertura deste chamado nao sera atendida. Caso necessario, abra um novo chamado."
|
|
- nao altera status do chamado no SN
|
|
- marca `ticket_sync` como `closed/closed` para retirar do monitoramento
|
|
|
|
## 5. Reabertura
|
|
|
|
1. Reabertura automatica permitida apenas para tickets em GLPI `5`.
|
|
2. Se GLPI `6`, reabertura automatica bloqueada.
|