Project

General

Profile

Actions

Tareas #85

open

Incidente instalaciones_terceros.py

Added by Demo MiGestion365 Admin 15 days ago. Updated 15 days ago.

Status:
Resuelta
Priority:
Normal
Assignee:
-
Start date:
07/15/2026
Due date:
07/15/2026 (15 days late)
% Done:

100%

Estimated time:

Description

El proceso fallaba al ejecutar el INSERT desde ServiceNow con el error:

duplicate key value violates unique constraint "uq_instalaciones_terceros"
Key (tarea_id, origen)=(WOT0092428, SN_MTTOCORRECTIVO) already exists.

Actions #1

Updated by Demo MiGestion365 Admin 15 days ago

  • Status changed from Nueva to En curso

Inicialmente revisamos si la duplicación provenía de:

sn.metricexistía dos veces en Producción:

sn.task
cm.ci_sfat_mfat_bfat
cm.municipio

Todas esas hipótesis fueron descartadas.
Luego verificamos el resultado del SELECT que alimenta SQL_INSERT_SN y encontramos que la tarea:WOT0092428 aparecía dos veces.

Al revisar sn.instance encontramos que la instancia de evaluación:AINST0065329 existía dos veces en Producción:
AINST0065329 | Listo para evaluar | percent_answered = 0 | taken_on = NULL
AINST0065329 | Finalizado | percent_answered = 88.24 | taken_on informado

Mientras que en DEV sólo existía la segunda fila (la finalizada).

Actions #2

Updated by Demo MiGestion365 Admin 15 days ago

Por qué fallaba
El JOIN:
JOIN sn.instance i
ON i.number = m.instance
encontraba dos registros para AINST0065329, por lo que generaba dos filas para:
WOT0092428
Al intentar insertarlas en:
aux.instalaciones_terceros
ambas tenían la misma clave lógica:
(WOT0092428, SN_MTTOCORRECTIVO)

La primera se insertaba y la segunda provocaba la violación de la restricción única.
Verificaciones adicionales
También analizamos:

WOT con múltiples instancias de evaluación.
Instancias (AINST) repetidas en sn.instance.

Encontramos muchos casos, pero al ejecutar la consulta que reproduce exactamente el SELECT del proceso, la única tarea que generaba múltiples filas para la clave lógica era WOT0092428.
Por eso concluimos que se trataba de un caso puntual y no de un problema general del proceso.

Actions #3

Updated by Demo MiGestion365 Admin 15 days ago

  • Status changed from En curso to Resuelta
  • % Done changed from 0 to 100

Resolución
Se eliminó de sn.instance la fila residual:
AINST0065329
percent_answered = 0
taken_on = NULL
state = 'Listo para evaluar'
Luego de la eliminación, el script volvió a ejecutarse correctamente.

**Conclusión final
** La causa del incidente fue la existencia en Producción de dos registros para la misma instancia de evaluación (AINST0065329), uno inicial y otro final. Esa situación hizo que el SELECT del proceso devolviera dos filas idénticas para la clave (WOT0092428, SN_MTTOCORRECTIVO), provocando la violación de la restricción única durante el INSERT. No se detectaron otros casos equivalentes.

Actions #4

Updated by Demo MiGestion365 Admin 15 days ago

  • Due date set to 07/15/2026
Actions

Also available in: Atom PDF