Rotina de sincronismo de chamados entre ServiceNow e GLPI
- 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) |
||
|---|---|---|
| config | ||
| docs | ||
| src | ||
| .env.example | ||
| .gitignore | ||
| cron.js | ||
| ecosystem.config.js | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
Sistema de Integracao ServiceNow <-> GLPI
Middleware Node.js para integrar chamados entre ServiceNow e GLPI, usando PostgreSQL como banco intermediario e acesso ao banco do GLPI.
Estado atual
- Coleta de tickets SN por watermark.
- Criacao/vinculo de tickets no GLPI.
- Sincronizacao de comentarios e tasks em duas direcoes.
- Preenchimento do campo "Ticket Externo" no SN com o ID GLPI.
- Monitor GLPI para
status=5(resolver SN) estatus=6(encerrar definitivamente no SN). - Flags para desligar sincronizacao legada de status.
Fluxo do ciclo
Executado pelo main():
processErrorControllerprocessTicketsControllerprocessCommentsControllerprocessGlpiClosureController(quandoENABLE_GLPI_CLOSE_CRON=true)processStatusAndClosureControllerapenas quandoENABLE_STATUS_SYNC=true
Documentacao detalhada
- Fluxo tecnico: docs/fluxo.md
- Regras de negocio completas: docs/regrasdenegocio.md
- Casos de uso: docs/casosdeuso.md
- Plano e checklist de rollout: docs/checklist.md
Variaveis de ambiente importantes
Feature flags
ENABLE_STATUS_SYNCtrue: liga fluxo legado de status bidirecionalfalse: desliga fluxo legado de status
ENABLE_GLPI_CLOSE_CRONtrue: liga monitor de fechamento definitivo GLPI=6false: desliga monitor de fechamento definitivo
ServiceNow
SERVICENOW_TABLE_INCIDENT_URLSERVICENOW_TABLE_REQUEST_URLSERVICENOW_TABLE_JOURNAL_URLSERVICENOW_SC_ITEM_OPTION_URLSERVICENOW_DEFAULT_USERSERVICENOW_IGNORE_DEFAULT_USER_JOURNALSERVICENOW_EXTERNAL_TICKET_FIELD(default:u_external_ticket)
GLPI e banco intermediario
GLPI_DB_*SNGLPI_DB_*GLPI_OOS_SOLUTION_TYPE_ID
Desenvolvimento
- Instalar dependencias:
npm install
- Criar env:
copy .env.example .env.development
- Executar:
npm run dev
Producao
- PM2:
pm2 start ecosystem.config.js --env production
Observacoes
- O projeto ainda nao tem suite automatizada robusta.
- O rollout recomendado e por fases com feature flags.
- Nao remover schema legado antes de estabilizar o fluxo novo.