- **Sincronização Inteligente:** O sistema agora detecta mudanças de estado em qualquer uma das plataformas e propaga a atualização para a outra, respeitando a 'fonte da verdade' (`source_last`). - **Regra 'Fora do Escopo':** Implementada a regra de negócio para tickets marcados como 'Fora do Escopo' no GLPI (solutiontypes_id = 27). Esses tickets agora são ignorados na sincronização, têm seu status finalizado no GLPI e uma nota informativa é adicionada no ServiceNow. - **Watermark (Marca d'água):** A coleta de novos tickets do ServiceNow foi otimizada com um sistema de marca d'água, buscando apenas registros atualizados desde a última execução bem-sucedida, o que melhora significativamente a performance. - **Resiliência:** Adicionado um `processErrorController` que reseta tickets com status de erro, permitindo que sejam reprocessados automaticamente no próximo ciclo. Testes de fluxo foram realizados com sucesso, validando a criação, resolução (SN <-> GLPI) e a regra 'Fora do Escopo'. Pendências para a próxima fase: 1. Validar melhor o fluxo de reabertura de chamados em ambas as direções. 2. Garantir que a `work_note` enviada para o ServiceNow na regra 'Fora do Escopo' seja devidamente sanitizada."
20 lines
557 B
JavaScript
20 lines
557 B
JavaScript
// src/controllers/glpiController.js
|
|
const { syncTicketsToGlpi } = require('../services/glpiTicketService');
|
|
const { processSyncController } = require('./processSyncController');
|
|
|
|
|
|
const processTicketsController = async () => {
|
|
|
|
// 1. Busca Incidentes e Requisições do Service Now e salva no banco intermediário
|
|
// Esta etapa prepara os dados para a sincronização com o GLPI.
|
|
await processSyncController();
|
|
|
|
//Sincroniza os tickets com o GLPI
|
|
await syncTicketsToGlpi();
|
|
|
|
}
|
|
|
|
module.exports = {
|
|
processTicketsController
|
|
}
|