Herramientas de usuario

Herramientas del sitio


sicoferp:compras:inventarios:reintegros:start

Reintegros a bodega/ traslado entre funcionarios

Realiza dos tipos de movimientos, no modifica kardex y especifica las transacciones por usuario y bodega de los activos.

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.

Si la bodega a la que se reintegra no es la de origen, se traslada. Este tipo de movimiento modifica kardex.

B. Traspasos entre funcionarios

Modifica la cartera de los funcionarios, no modifica kardex.


Resumen movimientos

A. RE, ST, ET

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