Skip to content

Variables de Autobase

Las variables son la forma principal de compartir y persistir información dentro de una aplicación Autobase. Todas las variables de Autobase son globales, lo que significa que cualquier script Lua de la aplicación puede leerlas y modificarlas, sin importar en qué página o componente se encuentren.

Creación y uso de variables

  • Las variables se crean y actualizan desde scripts Lua, en eventos de cualquier componente (clicks, cambios de valor, respuestas de APIs, etc.) o de página.
  • No existe un “ámbito local” de variables de Autobase: una vez que una variable se define (por ejemplo, ClienteId, TotalFactura), queda disponible para el resto de los scripts Lua de la aplicación.

Tipos de datos de las variables

Los tipos de datos disponibles para las variables son los mismos que se describen en el resto de la documentación de tipos:

  • INT
  • STRING
  • BOOLEAN
  • DECIMAL
  • DATE
  • DATE_TIME
  • TIME
  • RESULTSET

Dentro de scripts Lua, el INT mapea directamente al tipo number de lua, pero se debe tener precaución de realizar operaciones que puedan generar decimales, por la propia naturaleza del tipo de dato de punto flotante.

Tipo DECIMAL en Lua

En Lua, el tipo numérico nativo es de punto flotante, lo que no es adecuado para cálculos de punto fijo como montos de dinero (por ejemplo, por problemas de precisión al sumar o restar muchos valores).

Por eso, las variables de tipo DECIMAL se manejan en Lua mediante un objeto especial Decimal:

  • Permite representar montos con precisión fija (por ejemplo, 2 decimales para moneda).
  • Evita errores de redondeo típicos de los float.
  • Proporciona operaciones aritméticas adecuadas para dinero y otros valores que requieran precisión exacta.

Fechas y horas: DATE, DATE_TIME y TIME

Para representar fechas y horarios, Autobase no utiliza números o cadenas “crudas”, sino objetos especializados:

  • DATE se representa como un objeto especial Date.
  • DATE_TIME se representa como un objeto especial DateTime.
  • TIME se representa como un objeto especial Time.

Estos objetos proporcionan una forma segura y consistente de:

  • Manejar zonas horarias (según lo definido en la plataforma).
  • Formatear y mostrar valores (por ejemplo, para la UI).
  • Realizar comparaciones y cálculos de fechas/horas sin tener que manipular manualmente strings o timestamps.

Variables de tipo RESULTSET

Además de los tipos básicos, Autobase soporta variables de tipo RESULTSET, que representan conjuntos de filas obtenidos de una consulta a base de datos.

  • Estas variables se generan normalmente a través de la función sql() en Lua.
  • Un RESULTSET suele utilizarse para:
    • Poblar tablas y listas en la interfaz.
    • Recorrer filas en scripts Lua para aplicar lógica sobre cada registro.
  • Al ser también variables globales, el mismo RESULTSET puede ser reutilizado en distintos componentes o scripts, mientras la variable se mantenga definida.