Herramientas de usuario

Herramientas del sitio


sicoferp:compras:inventarios:reintegros:start

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
sicoferp:compras:inventarios:reintegros:start [2022/09/07 21:16]
jaime.ardila
sicoferp:compras:inventarios:reintegros:start [2026/03/20 16:19] (actual)
brahian.castaneda
Línea 23: Línea 23:
 ==== B.  RT, TC ==== ==== B.  RT, TC ====
  
 +====== Duplicidad de Documentos ======
 +1. Descripción del Problema
 +Se identificó una inconsistencia crítica en el proceso de Reintegros de Bodega (w_reintegros_bodega). El sistema presentaba los siguientes síntomas:
  
 +Duplicidad de Consecutivos:​ Registros en la tabla MAE_REINTEGRO con diferentes IDs internos (CODIGO_REINTEGRO) pero compartiendo el mismo NUMERO_DOCUMENTO (consecutivo de cara al usuario).
  
 +Inconsistencia en Auditoría: Dificultad para rastrear movimientos reales frente a intentos de grabación fallidos.
  
 +2. Análisis de Causa Raíz (RCA)
 +Tras la auditoría del objeto w_reintegros_bodega.srw en el evento ue_grabar, se detectó una vulnerabilidad en la lógica de control transaccional:​
  
 +Fallo en el manejo de estado (ib_commit)
 +La variable de instancia ib_commit controla si el sistema debe generar un nuevo número de documento o reutilizar uno existente durante el procesamiento por lotes.
 +
 +Escenario de Error: Si el proceso de grabación fallaba y ejecutaba un Rollback, la variable ib_commit permanecía en True.
 +
 +Efecto Cascada: Al reintentar la grabación sin cerrar la ventana, el sistema omitía la solicitud de un nuevo consecutivo (asumiendo que ya tenía uno válido del intento anterior), asignando un número ya existente a un nuevo encabezado.
 +
 +3. Solución Técnica Implementada
 +Lógica de Corrección (PowerBuilder)
 +Se modificó el flujo del evento para garantizar la idempotencia del proceso de grabación. Se fuerza el reinicio de la bandera de control al inicio de cada intento de persistencia.
 +
 +Objeto: compras\w_reintegros_bodega.srw
 +
 +Evento: ue_grabar
 +
 +Fragmento de Código Corregido:
 +Fragmento de código
 +==== CORRECCIÓN:​ Inicialización de bandera de control ====
 +// Se debe reiniciar ib_commit al iniciar el proceso para evitar la reutilización ​
 +// de números de documento tras un Rollback previo.
 +ib_commit = False
sicoferp/compras/inventarios/reintegros/start.txt · Última modificación: 2026/03/20 16:19 por brahian.castaneda