Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anterior Revisión previa | |||
|
ada:sicoferp:financiero:contabilidad:maestros:terceros [2024/12/13 20:32] 192.168.175.19 [Consideraciones] |
ada:sicoferp:financiero:contabilidad:maestros:terceros [2026/05/08 19:55] (actual) brahian.castaneda |
||
|---|---|---|---|
| Línea 72: | Línea 72: | ||
| - Cuando se cargue el archivo se va a visualizar el siguiente mensaje. Dan clic en aceptar. {{ :ada:sicoferp:financiero:contabilidad:maestros:validacion_carga.png?600 |}} | - Cuando se cargue el archivo se va a visualizar el siguiente mensaje. Dan clic en aceptar. {{ :ada:sicoferp:financiero:contabilidad:maestros:validacion_carga.png?600 |}} | ||
| - Por último, se da clic en la opción **Cargar** y el sistema va informar que los terceros fueron creados de manera exitosa. {{ :ada:sicoferp:financiero:contabilidad:maestros:ejecucion_de_carga.png?600 |}} | - Por último, se da clic en la opción **Cargar** y el sistema va informar que los terceros fueron creados de manera exitosa. {{ :ada:sicoferp:financiero:contabilidad:maestros:ejecucion_de_carga.png?600 |}} | ||
| + | ===== Limpieza Automática de Datos en maestro_terceros ===== | ||
| + | 📝 Metadatos del Documento | ||
| + | Componente: Base de Datos (Oracle 11g) | ||
| + | Objeto: Trigger trg_clean_maestro_terceros | ||
| + | Tabla Afectada: maestro_terceros | ||
| + | Autor/Responsable: Miguel Muñoz | ||
| + | Fecha de Implementación: 08 de Mayo de 2026 | ||
| + | |||
| + | === 🎯 1. Objetivo y Contexto del Cambio === | ||
| + | El objetivo de este desarrollo es garantizar la calidad e integridad de los datos almacenados en la tabla maestro_terceros. Frecuentemente, la captura de datos (copiar/pegar desde Excel, correos o entradas directas de usuario) introduce caracteres no visibles como saltos de línea (Enters) o espacios en blanco adicionales. | ||
| + | |||
| + | Estos caracteres ocultos generan comportamientos anómalos en el frontend, descuadres en la generación de reportes y problemas en integraciones con otros módulos (como facturación, inventario o contabilidad). Este trigger intercepta la transacción de base de datos para sanear la información de forma transparente antes de que se persista. | ||
| + | |||
| + | === ⚙️ 2. Especificaciones Técnicas === | ||
| + | |||
| + | Tipo de Trigger: BEFORE INSERT OR UPDATE | ||
| + | |||
| + | Nivel: FOR EACH ROW | ||
| + | |||
| + | Estrategia de Rendimiento: Se optó por el uso anidado de funciones nativas de cadena (TRIM y REPLACE) en lugar de expresiones regulares (REGEXP_REPLACE) para minimizar el consumo de CPU durante operaciones masivas (DML) típicas en maestros de terceros. | ||
| + | |||
| + | Prevención de Errores: Se incluyen validaciones IS NOT NULL previas a la manipulación para evitar procesamiento innecesario. | ||
| + | |||
| + | === 🛠️ 3. Lógica de Limpieza Aplicada === | ||
| + | |||
| + | El script ejecuta las siguientes acciones exclusivamente sobre los campos alfanuméricos (VARCHAR2 y CHAR): | ||
| + | |||
| + | REPLACE(campo, CHR(10), ''): Elimina los saltos de línea (Line Feed). | ||
| + | |||
| + | REPLACE(campo, CHR(13), ''): Elimina los retornos de carro (Carriage Return). | ||
| + | |||
| + | TRIM(campo): Elimina los espacios residuales que puedan quedar al inicio o al final de la cadena de texto, preservando los espacios intermedios (ej. manteniendo intacto "CALLE 10"). | ||
| + | |||
| + | === ⚠️ Nota de Diseño (Exclusiones): === | ||
| + | |||
| + | Se han excluido de forma deliberada todos los campos con tipos de dato NUMBER, DATE y LONG RAW (como NIT, FECHA_CREACION, FIRMA_DIGITAL). Aplicar funciones de texto a estos campos forzaría una conversión implícita por parte de Oracle, arriesgando la generación de excepciones ORA-01722: invalid number o corrupciones en el formato de fecha nativo. | ||
| + | |||
| + | === Desarrollado por: [Miguel Muñoz] Fecha: [08/05/2026] Versión de PB: 12.5 === | ||
| [[ada:sicoferp:financiero:contabilidad:maestros|←Volver atras]] | [[ada:sicoferp:financiero:contabilidad:maestros|←Volver atras]] | ||