01. DATOS GENERALES
Línea de producto: | Microsiga Protheus. | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Segmento: | Servicios - Mercado Internacional. | ||||||||||||||||
Módulo: | SIGACOM - Compras. | ||||||||||||||||
Función: |
| ||||||||||||||||
Ticket: | 7226003 | ||||||||||||||||
Issue: | DMINA-7691 | ||||||||||||||||
Versión: | 12.1.17 | 12.1.23 | 12.1.25 | 12.1.27 |
02. SITUACIÓN/REQUISITO
Bajo performance en inclusión de factura de entrada al seleccionar una remisión con 590 Ítems. Con esta cantidad de partidas el sistema tardó 2.5 horas en cargar todos los ítems.
03. SOLUCIÓN
Existe ejecución de funciones de cálculos fiscales de manera redundante, el tiempo de proceso es exponencial en relación a la cantidad de
ítems.
Modificaciones realizadas:
- IMPXFIS, MATXFIS: Se condiciona la ejecución de DbSetOrder() y dbSeek(). Se agrega uso de GetArea() y RestArea().
- M100LIVR: Uso de arreglos estáticos para no asignar mismos valores repetidamente (n veces por ítem).
- LOCXNF: Ejecución de MaColsToFis() hasta después del último ítem.
- Acceder a la rutina de remisiones; ; SIGACOM | Actualizaciones | Movimientos | Remisión.
- Registrar una remisión con 500 - 600 ítems. En la réplica y solución del inciente se utilizó una remisión con 590 productos.
- Acceder a la rutina Factura de Entrada; SIGACOM | Actualizaciones | Movimientos | Factura de Entrada.
- Incluir una nueva factura, registrar los datos del proveedor y serie/número de documento.
- Hacer clic en el botón Otras Acciones – Remisión, a continuación. En la ventana de opciones, hacer clic en Remisión.
- Seleccionar la remisión capturada previamente. Hacer clic en el botón Grabar, a partir de este momento inicie registro del tiempo de proceso.
- Al visualizar los ítems de la remisión ya en el Browse de la factura, detenga el registro de tiempo.
- La reducción de tiempo de procesamiento para visualizar los ítems debe bajar sustancialmente.
Ejemplo con remisión de 590 ítems (12m 18s):
04. INFORMACIÓN ADICIONAL
El tiempo mostrado en el ejemplo puede variar según las condiciones del ambiente donde se ejecute la prueba/validación y por el tamaño de la base de datos.