Entradas

Cambiar el valor default de una propiedad en una KB GeneXus

Imagen
En GeneXus, las propiedades de los objetos tienen un comportamiento jerárquico: pueden definirse a distintos niveles (KB, Version, Environment, Generator, Folder, Object, etc.), y los valores definidos en niveles superiores se heredan como default por los niveles inferiores. Este modelo facilita la consistencia general del desarrollo, pero plantea un desafío cuando queremos cambiar el valor por defecto de una propiedad en toda la Knowledge Base (KB). Ese cambio puede tener un impacto masivo, afectando a miles de objetos en cascada. Un ejemplo concreto: Commit on Exit Supongamos que tenemos la propiedad Commit on Exit configurada en YES a nivel del Environment . Esto significa que todos los objetos que no tengan un valor explícito heredan ese comportamiento y realizan un commit automático al finalizar la ejecución. Ahora imaginemos que queremos modificar esta configuración para que cada desarrollador maneje manualmente las UTL (Unit of Transaction Logic) , y por tanto necesi...

Convertir de Theme a Design System

Imagen
Durante años, los Themes fueron la forma clásica de definir la estética de una aplicación GeneXus. Colores, fuentes y estilos centralizados, pero rígidos. Hoy, con Design System Objects (DSO) , GeneXus da un paso enorme hacia la consistencia y la evolución visual controlada. Migrar de Theme a Design System no es solo un cambio técnico: es adoptar una mentalidad de diseño unificado . El Design System permite definir tokens reutilizables (colores, tipografías, espaciados) y componentes que se adaptan automáticamente a la plataforma —web, mobile o ambas—, mejorando la experiencia de usuario y facilitando el mantenimiento. En este proceso, lo que vamos a cambiar incluye: Reemplazo de Theme por Design System . Creación de una nueva MasterPage moderna. Adopción del Editor Abstracto para una edición más limpia y visual. Implementación de un diseño responsive para adaptarse a todos los dispositivos. Limpieza de recursos no utilizados (Themes y MasterPages viejas, etc.). Pasaje a valores ...

Cómo integrar GeneXus 18 con Globant Enterprise AI

Imagen
Si trabajás con GeneXus 18 , podés potenciar tus apps con Globant Enterprise AI (GEAI) para sumar inteligencia conversacional, recuperación de conocimiento (RAG) y automatización mediante agentes. En esta guía vas a ver: conceptos clave, arquitectura, paso a paso del lado de GEAI y del lado de GeneXus, y ejemplos de código listos para adaptar. ¿Qué es Globant Enterprise AI? GEAI es una plataforma empresarial para crear y gobernar asistentes y agentes que combinan modelos generativos, herramientas externas y pipelines de recuperación ( RAG ) dentro de un entorno controlado. Actúa como capa de orquestación : desacopla tu aplicación del modelo, gestiona credenciales, costos, métricas, versiones y cumplimiento. Componentes típicos The Lab : diseño, test y despliegue de agentes/asistentes. RAG : conexión a fuentes/documentos para respuestas con evidencia. Tools : integraciones a APIs internas/externas. Gobernanza : métricas, log...

Cómo achicar el disco de Docker Desktop cuando se usa GeneXus Next (WSL2 en Windows)

Contexto:  GeneXus Next usa Docker Desktop sobre WSL2. Con el tiempo, el archivo de disco virtual de Docker (“ext4.vhdx” o “docker_data.vhdx”) crece y  no  se achica solo aunque borres imágenes. Al cambiar de versión (en la fase beta se hace muy a menudo) se crean imágenes y contenedores que luego se dejan de usar, pero a veces no libera el espacio. En mi caso, pude recuperar 28 Gb con la limpieza.  ¿Por qué pasa? Docker Desktop guarda sus datos en una distro WSL2 ( docker-desktop-data ) dentro de un disco virtual dinámico .vhdx que crece cuando necesitás más espacio, pero no reduce tamaño automáticamente al liberar datos. Rutas típicas del VHDX %LOCALAPPDATA%\Docker\wsl\data\ext4.vhdx (clásico) %LOCALAPPDATA%\Docker\wsl\disk\docker_data.vhdx (nombres nuevos) Tip: En Docker Desktop podés ver o cambiar Settings → Resources → Advanced → Disk image location y el tamaño máximo. Paso a paso Recomendación: hacé una copia del .vhdx antes de com...

Usando Globant Enterprise AI para desarrollo de aplicaciones

Imagen
Preparándonos para lo que viene con GeneXus Next , estuve probando Globant Enterprise AI (GEAI) para incorporar Agentes y Asistentes a aplicaciones ya existentes construidas con GeneXus 18 . Resumen rápido: suma un nivel de potencia que puede elevar mucho la productividad en varios frentes. Por otro lado, se notan asperezas de una implementación que todavía evoluciona, lo que hace que la experiencia no sea tan fluida como podría ser. Inconvenientes Problemas de conexión / reconexión / desconexión Dentro de GEAI hay varios componentes con Single Sign-On (SSO). En teoría, al iniciar sesión en uno quedo autenticado en todos; en la práctica, al alternar entre módulos a distintas horas aparecen errores 403 – Forbidden y hay que hacer “magia” para seguir trabajando. Además, no encontré forma de extender la duración de la sesión y cada ~20 minutos debo volver a loguearme. Huele a bugs propios de un producto todavía en transición. Asistentes vs. Agentes La terminología y el modelo...

iText + GeneXus : riesgo legal de su uso sin licencia.

Si generás PDFs con GeneXus, seguro te cruzaste con iText (Java) o iTextSharp (.NET). Lo clave: las versiones modernas de iText ya no son gratuitas para uso empresarial salvo que cumplas AGPL ; de lo contrario, requieren licencia comercial . 1) Línea de tiempo (qué fue gratis y desde cuándo se paga) Gratis (para proyectos cerrados) iText 2.1.7 (Java) : bajo MPL/LGPL . Última “antigua”. iTextpdf iTextSharp 4.1.6 (.NET Framework) : última bajo MPL/LGPL . GitHub NuGet Desde iText 5 (7-Dic-2009) : dual AGPL + comercial . Si no podés/querés cumplir AGPL, tenés que licenciar (aplica también a iText 7/8). kb.itextpdf.com AGPL implica obligaciones de compartir código si hay interacción por red con el programa que incorpora iText; para evitarlo, se usa licencia comercial . kb.itextpdf.com 2) GeneXus hoy: por generador Java Default : PDFBox (Apache 2.0, sin costo). docs.genexus.com Opciones : iText (Legacy) = iText 2.x; iText 8 (AGPL/comercial). La posibilida...

La próxima generación de plataformas de desarrollo empresarial basadas en IA

Imagen
Las plataformas actuales de desarrollo requieren que aprendamos su lenguaje: sintaxis, configuraciones, patrones específicos . Pero… ¿qué pasaría si fuera la plataforma la que aprendiera a hablar el idioma empresarial ? La próxima generación de plataformas de IA para desarrollo no solo generará código; también comprenderá, interpretará y traducirá el conocimiento de negocio en aplicaciones completas y funcionales . Problema actual Cuando nos llega un nuevo requerimiento que dice: “ La cuarta medida determina un régimen simplificado de importación en el que se beneficiará una exoneración total de tributos a la importación para determinados productos. Se crea un régimen especial de importación en el que los comercios minoristas, de ramos generales, ubicados a menos de 60 km de la frontera, podrán importar, libres de todo tributo, productos que componen la canasta básica ” (*) Esto se traduce en semanas de trabajo que incluyen: Análisis legal y regulatorio Inte...

Cómo manejar Slow Changing Dimensions (SCD) en GeneXus — Ejemplo práctico con Ventas y Clientes

Imagen
Este es un problema básico en el modelado de sistemas y bases de datos, pero es el causante de algunos inconvenientes en el momento de hacer reportes.  En muchos casos, se decide modelar el modelo operacional de la forma fácil (SCD Tipo 1) y en la plataforma de BI se mantiene la historia con SCD Tipo 2. ** El problema Tenemos tres entidades: Clientes :  ClienteId ,  ClienteNombre ,  TipoClienteId . Ventas :  VentaId ,  ClienteId ,  Fecha ,  Monto . TipoCliente :  TipoClienteId ,  TipoClienteNombre  (Grande, Mediano, Chico). El sistema debe brindar el reporte de Ventas por Tipo de Cliente, para un rango de fechas TipoCliente, Total Vendido Grande         1000 Mediano         700 Chico             1200 Un dia, un cliente pasa de  Mediano  a  Grande . Si el reporte “Ventas por Tipo de Cliente” junta las ventas con el tipo actual del clie...

Extensiones/Asistentes en GeneXus que me gustaría tener

Imagen
  Se viene una nueva versión de GeneXus, que es la primera en incorporar inteligencia artificial en el IDE.  Esto nos abre la posibilidad de tener nuevos asistentes dentro del ide que nos automaticen tareas que en general son aburridas de hacer.  Algunos ejemplos de tareas que llevan mucho tiempo y podrían automatizarse Analizador de Errores de Compilación  Un programa que lea el output de Genexus con errores y proponga soluciones. Muchas veces Genexus tiene errores que se solucionan mandando a especificar forzado algún objeto. Lo que me interesa principalmente es deducir cuales son los objetos que deben forzarse y que los genere automáticamente.  Generar Scripts de CREATE TABLE Dada una tabla, crear un script para crear dicha tabla.  Es común tener que elegir un conjunto de tablas para hacer alguna prueba. Genexus es muy bueno para generar scripts de creación de toda la base de datos para los diferentes DBMS. Pero no es tan bueno para generar solo algunas ...

Por qué es clave actualizar tu versión de GeneXus (aunque duela un poco)

Imagen
En el mundo del desarrollo con GeneXus, trabajar con una versión antigua puede parecer cómodo, pero a la larga es una trampa silenciosa. Las migraciones o actualizaciones de versión no son solo una cuestión técnica: son una decisión estratégica que impacta en productividad, seguridad, mantenimiento y evolución del software.  ¿Por qué actualizar GeneXus? Seguridad y compatibilidad Cada nueva versión de GeneXus mejora el soporte para tecnologías modernas, navegadores actualizados, motores de base de datos y protocolos de seguridad (como OAuth, HTTPS, JWT). Seguir en versiones antiguas te expone a vulnerabilidades y dependencias obsoletas. Mejoras de performance y productividad Desde nuevas estructuras como SD Panels hasta herramientas como los Design Systems, la evolución de GeneXus no solo permite hacer más, sino hacerlo mejor y más rápido. Ignorarlo es perder ventaja competitiva. Soporte oficial y comunidad activa Las versiones antiguas eventualmente quedan sin soporte...