Rotina de sincronismo de chamados entre ServiceNow e GLPI
Go to file
Rafael Lopes 0cc27df2cf FEAT: Implementa sincronização bidirecional de status e ciclo de vida de tickets
- **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."
2025-10-23 17:30:03 -03:00
config FEAT: Adiciona nova URL de requisição no .env, corrige e implementa funções para sincronização de comentários no ServiceNow. 2025-10-02 10:16:56 -03:00
src FEAT: Implementa sincronização bidirecional de status e ciclo de vida de tickets 2025-10-23 17:30:03 -03:00
.env FEAT: Adiciona nova URL de requisição no .env, corrige e implementa funções para sincronização de comentários no ServiceNow. 2025-10-02 10:16:56 -03:00
.gitignore FEAT: Entidades mapeadas a partir do CSV localizado na pasta tecnica 2025-09-17 20:56:32 -03:00
package-lock.json WIP: Model do GLPI em construção 2025-09-11 20:57:43 -03:00
package.json WIP: Model do GLPI em construção 2025-09-11 20:57:43 -03:00
README.md Initial commit - SNGLPI 2025-08-30 22:04:35 +00:00
servicenow_comments_ticket_626.json REFACTOR: Realizando teste para função de busca de todos os comentários atravé da criação de um arquivo JSON. 2025-10-07 10:39:01 -03:00

servicenow-glpi-sync/README.md

ServiceNow and GLPI Sync

This project is designed to facilitate the integration between ServiceNow and GLPI, allowing for the synchronization of tickets between the two platforms. It utilizes Node.js and follows the MVC architecture pattern.

Table of Contents

Prerequisites

  • Node.js (version 14 or higher)
  • npm (Node Package Manager)
  • PostgreSQL or MySQL database
  • Access to ServiceNow and GLPI APIs

Installation

  1. Clone the repository:

    git clone https://github.com/yourusername/servicenow-glpi-sync.git
    cd servicenow-glpi-sync
    
  2. Install the dependencies:

    npm install
    
  3. Copy the .env.example file to .env and fill in the required environment variables:

    cp .env.example .env
    

Configuration

  • Update the .env file with your ServiceNow and GLPI API credentials, database connection details, and any other necessary configurations.

Running the Application

To start the application, run:

node server.js

The application will listen on the port specified in the .env file.

Endpoints

  • POST /tickets/sync - Synchronize tickets from ServiceNow to GLPI.
  • GET /tickets/:id - Retrieve details of a specific ticket.
  • POST /tickets - Create a new ticket in GLPI based on ServiceNow data.
  • PUT /tickets/:id - Update an existing ticket in GLPI.

Logging

The application uses Winston for logging. Logs are stored in the logs directory:

  • app.log - Logs application events.
  • error.log - Logs errors that occur during execution.

Contributing

Contributions are welcome! Please open an issue or submit a pull request for any improvements or bug fixes.

License

This project is licensed under the MIT License. See the LICENSE file for details.