Saltar al contenido principal

Algoritmos

Los algoritmos son operaciones de logica de negocio que se compilan a consultas SQL optimizadas y se ejecutan directamente en PostgreSQL. Se utilizan para calcular valores automaticamente en campos, columnas de informes y documentos dinamicos.

Tipos de algoritmo

TipoDescripcionEjemplo
LinealOpera sobre los datos de la misma filacantidad * precio_unitario para obtener el total de una linea
CruzadoAgrega datos de registros relacionadosSumar todas las lineas de una factura para obtener la base imponible
BusquedaEncuentra datos en otras seccionesObtener el precio de un producto desde el catalogo al seleccionarlo
DatosAccede a datos del contexto actualInsertar el usuario actual, la fecha de hoy o la empresa activa
IndependienteNo depende de una fila especificaCalcular totales globales o estadisticas generales

Donde se usan

Los algoritmos se pueden aplicar en tres contextos:

  • Campos auto-calculados: el valor del campo se calcula automaticamente cada vez que se guarda el registro. El campo se marca como bloqueado (solo lectura).
  • Columnas de informes: columnas calculadas que no existen como campo en la seccion, pero se calculan al ejecutar el informe.
  • Documentos dinamicos: datos calculados que se insertan en plantillas HTML, PDF o JSON.

Creacion desde Desktop

Para crear un algoritmo en Dinaup Desktop:

  1. Abre la seccion donde quieres aplicar el calculo.
  2. Selecciona el campo destino y activa la opcion Auto-calculado.
  3. Abre el editor de algoritmos y selecciona el tipo (Lineal, Cruzado, Busqueda, Datos o Independiente).
  4. Configura los campos de origen y la operacion a realizar.
  5. Guarda. El algoritmo se compila a SQL y se ejecuta en cada escritura.

Ejecucion y rendimiento

Los algoritmos se compilan a SQL nativo y se ejecutan directamente en PostgreSQL. Esto garantiza:

  • Rendimiento: no hay procesamiento en memoria de la aplicacion, todo ocurre en la base de datos.
  • Consistencia: los calculos usan siempre los datos mas actualizados del momento de la escritura.
  • Escalabilidad: funcionan correctamente con millones de registros sin degradacion.
info

Los algoritmos se recalculan automaticamente al guardar el registro. Si un campo depende de otro campo auto-calculado, Dinaup resuelve las dependencias en el orden correcto.

Ejemplo: Total de linea de factura

Un algoritmo Lineal tipico calcula el total de una linea multiplicando cantidad por precio:

Campo destino: Total Linea
Tipo: Lineal
Operacion: Multiplicar
Campo A: Cantidad
Campo B: Precio Unitario

Un algoritmo Cruzado en la factura suma todos los totales de sus lineas:

Campo destino: Base Imponible
Tipo: Cruzado
Operacion: Sumar
Seccion origen: Lineas de Factura
Campo a sumar: Total Linea
Relacion: Factura (campo relacion de la linea hacia la factura)
info

La referencia tecnica completa de todas las secciones y campos esta disponible en doc-flex.dinaup.com.