Herramientas de usuario

Herramientas del sitio


ada:sicoferp:financiero:tesoreria:interface:cargasdearchivos

Interface - Cargas de Archivos

Esta opción permite la generación masiva de documentos financieros por medio de la funcionalidad interna Supertabla 1). El proceso de carga de archivos utiliza la supertabla de forma implícita2) es decir el usuario previamente configura archivos planos de acuerdo a configuraciones de conceptos y los carga en esta opción.

Nota

Este proceso se ejecuta de forma atómica es decir si ocurre un error en el procesamiento de la carga (por lo general por problemas en las configuraciones o saldos en los procesos) el proceso de generación masiva de documentos (Carga) se cancela.

A Continuación se describe la funcionalidad por medio de pestañas.

Pestaña Lista

En esta pestaña se pueden visualizar los procesos de cargas previamente realizados en el sistema. Se pueden filtrar, ordenar y buscar procesos previos.

Pestaña Encabezado: Configuración de la Carga

En esta pestaña se configura el proceso de carga masiva y se carga el archivo plano.

Boton Tests y Estado Borrador

Tanto el boton test como el estado borrador, no lo usa el cliente, nada más está allí para fines de pruebas con acompañamiento, el cliente solamente usa estado Aprobado. Cuando estos se encuentren activos son porque se activaron por base de datos, pero en todos los clientes se deben encontrar inactivos.

Los siguientes UPDATE son para inhabilitar tanto el boton test como el estado si se llegan a encontrar habilitados.

UPDATE sicof.m_constantes SET APLICA = 'N' WHERE UPPER(TRIM(DESCRIPCION)) ='MOSTRAR_BOTON_SFCOMERCIAL_DOCUMENTO';

UPDATE sicof.m_constantes SET APLICA = 'N' where UPPER(TRIM(DESCRIPCION)) = 'MOSTRAR_BOTON_SFCOMERCIAL_TEST' ;

Pestaña Analizador

En esta pestaña se encuentra la funcionalidad de analizador previo de cargar. Para más información consulte: Analizador

Notas del Proceso

  • Si la carga presenta errores en la subida del archivo, se debe empezar.
  • Si la carga presenta número de contrato se toma la fecha de la columna fecha_pago como fecha del contrato.

Ajuste de Validación de Saldo PAC

1. Información General

Objeto: w_carga_datos_comercial_avance.srw Función: of_validador_carga() Módulo: Tesorería / Interfaz Comercial Versión de PB: 12.5 Fecha: Octubre 2023

2. Descripción del Problema

En el proceso de carga de avances comerciales, el sistema realiza una validación presupuestal contra el PAC (Plan Anual de Caja) cuando el parámetro PRESUP01.PARAMETROS_SISTEMA.maneja_pac está activo ('S').

Se detectó que la variable ld_pac_disponible siempre retornaba 0, lo que provocaba bloqueos erróneos en la carga, incluso cuando existía disponibilidad presupuestal en el rubro correspondiente.

Causa Raíz La consulta SQL embebida original intentaba obtener el rubro desde la tabla SFCOMERCIAL.DET_CONCEPTOS_RUBROS filtrando por la columna RUBRO_INGRESOS. Sin embargo, los procesos de avance y egresos manejan rubros de gasto definidos en la maestra de conceptos comerciales (MAE_CONCEPTOS_COMERCIAL). Al no encontrar coincidencia en la tabla de ingresos, el SELECT no devolvía registros o el NVL resultaba en 0.

3. Solución Técnica

Se modificó el SQL embebido dentro de la función of_validador_carga() para:

Agregación: Utilizar SUM(DP.SALDO_DISPONIBLE) para consolidar el saldo en caso de existir múltiples registros para un mismo rubro en el mes/año. Fuente de Datos correcta: Cambiar la subconsulta para que busque el rubro asociado al concepto comercial en MAE_CONCEPTOS_COMERCIAL.CODIGO_RUBRO, que es la fuente verídica para procesos de egresos/avances. Cláusula de búsqueda: Se reemplazó el EXISTS por un IN sobre la maestra de conceptos para mayor claridad y precisión en la relación concepto-rubro.

Código Modificado (Snippet):

Solicitud: Validación general del PAC para procesos de afectación e integración

if ls_maneja_pac = 'S' then

iuo_validador.of_add_console('Validando saldos de PAC...', 1)
for li_row = 1 to li_count
	ls_codigo_concepto = idw_detalle.getitemstring(li_row, 'codigo_concepto') 
	ld_valor = idw_detalle.getitemdecimal(li_row, 'valor')
	ldt_fecha	 = date(idw_detalle.getitemDatetime(li_row, 'fecha_pago'))
	If isnull(ldt_fecha) then ldt_fecha = ldt_fecha_hoy
	li_ano = year(ldt_fecha)
	li_mes = month(ldt_fecha)	
	
    setNull(ld_pac_disponible)
	guo_app.of_sql_embedded_context( ts_transaccion)
	SELECT NVL(SUM(DP.SALDO_DISPONIBLE), 0)
	  INTO :ld_pac_disponible
	  FROM PRESUP01.PLAN_ANUAL_DE_CAJA DP
	 WHERE DP.ANO = :li_ano AND DP.MES = :li_mes
	    AND DP.PAC_RUBRO IN (SELECT MCC.CODIGO_RUBRO FROM MAE_CONCEPTOS_COMERCIAL MCC 
					        WHERE MCC.CODIGO_CONCEPTO = :ls_codigo_concepto)
	USING ts_transaccion;
	
	
	if Not IsNull(ld_pac_disponible)  AND  ld_valor > ld_pac_disponible then
		ls_msg = 'El valor (' + String(ld_valor, '$#,##0.00') + ') del concepto ' + ls_codigo_concepto + &
		         ' excede el saldo PAC disponible (' + String(ld_pac_disponible, '$#,##0.00') + ') para el mes ' + String(li_mes) + '.'
		iuo_validador.of_add_console(ls_msg, 3)
		lb_valid = false
	end if
next
if lb_valid then iuo_validador.of_add_console('---> OK Validando saldos de PAC', 1)

end if

Desarrollado por: [Miguel Muñoz] Fecha: [28/04/2026] Versión de PB: 12.5

1)
Proceso interno de procesamientos de configuraciones para la generación de registros financieros
2)
Carga por medió de archivos planos
ada/sicoferp/financiero/tesoreria/interface/cargasdearchivos.txt · Última modificación: 2026/04/30 15:23 por brahian.castaneda