Muestra las diferencias entre dos versiones de la página.
| Próxima revisión | Revisión previa | ||
|
sicoferp:compras:inventarios:reintegros:start [2019/05/10 13:37] angie.delgado creado |
sicoferp:compras:inventarios:reintegros:start [2026/03/20 16:19] (actual) brahian.castaneda |
||
|---|---|---|---|
| Línea 4: | Línea 4: | ||
| ===== A. Reintegros ===== | ===== A. Reintegros ===== | ||
| Cambia el estado de una placa de uso a reintegro, modifica la cartera del funcionario. Si para el cliente aplica cambio de cuentas según estado, por medio de las plantillas (no aplica para consumos controlados) cambia las cuentas contables de cada activo. | Cambia el estado de una placa de uso a reintegro, modifica la cartera del funcionario. Si para el cliente aplica cambio de cuentas según estado, por medio de las plantillas (no aplica para consumos controlados) cambia las cuentas contables de cada activo. | ||
| + | |||
| + | {{:sicoferp:compras:inventarios:reintegros:reintegro1.png?400|}} | ||
| + | |||
| + | |||
| + | {{:sicoferp:compras:inventarios:reintegros:reintegro2.png?400|}} | ||
| + | |||
| + | {{:sicoferp:compras:inventarios:reintegros:reintegro3.png?400|}} | ||
| Si la bodega a la que se reintegra no es la de origen, se traslada. Este tipo de movimiento modifica kardex. | Si la bodega a la que se reintegra no es la de origen, se traslada. Este tipo de movimiento modifica kardex. | ||
| Línea 16: | 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 | ||