Novedades en 4D 21 con respecto a 4D 20 R10

Este documento destaca todas las nuevas funcionalidades introducidas en 4D 21 LTS en comparación con 4D 20 R10. Cada funcionalidad incluye enlaces directos a su entrada de blog para ejemplos prácticos y a la documentación para detalles técnicos completos.

👉 Si se perdió las funcionalidades introducidas en 4D 20 R2 a R9, no se pierda la lista completa de funcionalidades claves añadidas en cada una están enlazadas al final de este post bajo Feature Releases en profundidad.

Este documento está dividido en diez secciones:

Integración de la IA

Además de las funcionalidades de IA introducidas en versiones anteriores de 4D 20 Rx, como 4D AIKit para una comunicación simplificada con modelos de IA basados en la nube o alojados localmente, y la introducción de campos vectoriales nativos, 4D 21 LTS va un paso más allá con nuevas capacidades que hacen la IA más práctica, más integrada y directamente utilizable en aplicaciones profesionales.

CONSULTAS SEMÁNTICAS

Ahora puede integrar la búsqueda semántica directamente en sus consultas ORDA. En lugar de depender de procesos independientes, puede comparar el campo vectorial de un registro con un vector de referencia y devolver al instante los resultados más relevantes, todo ello dentro de la misma gramática ORDA que ya utiliza.

La consulta acepta un simple objeto parámetro con un vector requerido y atributos opcionales como la similitud metric (que por defecto es coseno) y una similitud threshold.

// Step 1: Define the kind of profile you want to match semantically
$searchText:="senior project manager with strong HR background, based in France"

// Step 2: Create an AI client (local baseURL optional)
$client:=cs.AIKit.OpenAI.new()
$client.baseURL:="http://127.0.0.1:1234/v1"

// Step 3: Generate an embedding vector for the search text
$embedResult:=$client.embeddings.create($searchText; "text-embedding-mxbai-embed-large-v1")
$semanticVector:=$embedResult.vector

// Step 4: Build the semantic query object with similarity options
$semanticQuery:={vector: $semanticVector; metric: "cosine"; threshold: 0.4}

// Step 5: Run the query — combine semantic match with traditional filter
$results:=ds.Profiles.query("yearsOfExperience >= 5 & expertise >= :1"; $semanticQuery)

Las condiciones vectoriales se combinan a la perfección con la lógica ORDA clásica, por lo que puede combinar la similitud semántica con los filtros tradicionales en una sola consulta. Ajustando el umbral, los resultados pueden pasar de ser amplios y ruidosos a estrechos y precisos, ofreciéndole resultados significativos y conscientes del contexto sin añadir complejidad. Todo el proceso se mantiene dentro de la gramática ORDA que ya conoce, manteniendo sus consultas limpias, expresivas y fáciles de mantener.

FormatoS de llamada y DE respuesta de las herramientaS de iA

Los formatos de llamada y de respuesta a las herramientas de IA amplían 4D AIKit con la posibilidad de integrar funciones específicas de negocio directamente en las conversaciones impulsadas por la IA. La llamada de herramientas le permite exponer funcionalidades seleccionadas de su aplicación, como «listar las categorías de productos disponibles» u «obtener los productos más vendidos«, como herramientas a las que se puede llamar. Cuando un modelo de IA determina que se necesita una herramienta, 4D AIKit dirige automáticamente la llamada a sus funciones 4D registradas e integra el resultado en la respuesta. Esto evita la necesidad de cargar o volver a entrenar grandes conjuntos de datos, al tiempo que permite a la IA responder a las consultas de los usuarios con datos en vivo y específicos de la aplicación. En la práctica, esto significa que puede integrar un asistente de chat en su aplicación, y cuando un usuario pregunta: «¿Cuáles son los 10 productos más vendidos por categoría?», el modelo puede llamar a sus funciones, recuperar datos reales del negocio y devolver la respuesta en lenguaje natural.

Además, 4D AIKit ahora admite formatos de respuesta estructurados, lo que hace que la integración con los procesos posteriores sea más fiable. Además de texto plano, las respuestas pueden ser solicitadas como objetos JSON estrictos o forzadas a cumplir con un esquema JSON que usted defina. Esto resulta especialmente útil cuando es necesario transformar las entradas no estructuradas de los usuarios en datos predecibles, o cuando el contenido generado por IA debe fluir en flujos de trabajo automatizados sin limpieza manual.

Juntas, las consultas semánticas, las llamadas a herramientas y los formatos de respuesta estructurados hacen que la IA en 4D no sea sólo una capa conversacional, sino un componente del sistema totalmente integrado, capaz de recuperar datos empresariales relevantes, aplicar la lógica de forma segura dentro de su aplicación y ofrecer resultados estructurados que se adaptan perfectamente a sus flujos de trabajo. Y ahora, con AIKit en código abierto, tiene total transparencia y control para adaptarlo, ampliarlo y hacerlo evolucionar según sus propias necesidades empresariales.

Conmutación de redes

El protocolo QUIC, introducido en 4D 20 R2, aportó una comunicación más rápida y resistente, especialmente en entornos de alta latencia o con pérdidas. Con 4D 21 LTS, QUIC es ahora la capa de red recomendada, reemplazando a ServerNet por defecto y marcando un gran paso adelante para despliegues modernos y fiables.

Conmutación de red TRANSPARENTE

Con 4D 21, el cambio entre interfaces de red ya no interrumpe su conexión a 4D Remote. Ya sea pasando de Ethernet a Wi-Fi, cambiando de adaptador o despertando un portátil en una red diferente, el cliente ahora restablece automáticamente su sesión con 4D Server y continúa la ejecución sin pérdida de datos. Esto es posible gracias al protocolo QUIC, que permite reconexiones rápidas y fiables en condiciones de red cambiantes.

Su flujo de trabajo se mantiene sin interrupciones: el contexto de ejecución se conserva, y los procesos continúan justo donde lo dejaron. Del lado del servidor, la dirección IP del cliente se actualiza en tiempo real en el cuadro de diálogo de administración, los registros de diagnóstico y los atributos de sesión, lo que garantiza una total transparencia para los administradores. Esto hace que 4D Remote sea mucho más robusto en entornos móviles donde las condiciones de la red cambian con frecuencia.

ORDA

Con 4D 20 R10, ORDA introdujo Constructor para inicializar entidades y onTouch para rastrear modificaciones, moviendo la lógica de negocio más cerca de los datos. En 4D 21 LTS, esta evolución se completa con un conjunto completo de eventos de ciclo de vida, dando a los desarrolladores un control preciso sobre cada etapa de la vida de una entidad.

Nuevos eventos del ciclo de vida de las entidadES 

Las operaciones en las entidades ofrecen ahora un conjunto completo de eventos de ciclo de vida –validateSave, saving, afterSave, validateDrop, dropping, y afterDrop– que cubren cada etapa de guardar y soltar una entidad a través de tres fases distintas:

  • Antes → Validar y bloquear inmediatamente las operaciones no válidas.

  • Durante → Aplicar las reglas de negocio, la lógica de sincronización o el registro en tiempo real.

  • Después → Ejecutar tareas de seguimiento, integraciones o notificaciones, independientemente del resultado.

En la práctica, esto significa que la entrada puede validarse antes de la persistencia, que la lógica puede ejecutarse mientras se realiza la operación y los resultados pueden gestionarse una vez finalizado el proceso.

Los eventos pueden implementarse tanto a nivel de atributo como de entidad. Los eventos de validación detienen las operaciones inmediatamente en caso de error, mientras que los post-eventos siempre se ejecutan.

Al concentrar la lógica en las clases de datos ORDA, el comportamiento de la entidad se vuelve autónomo y más fácil de mantener. Las reglas de negocio ya no están ocultas en triggers, las aplicaciones permanecen consistentes por diseño, y las integraciones externas pueden conectarse directamente a través de ganchos de eventos nativos. En los proyectos ORDA, los triggers ya no son necesarios: los eventos del ciclo de vida ahora le ofrecen toda la potencia de ORDA de una forma más limpia y fácil de mantener.

4D Qodly Pro

4D Qodly Pro le permite extender su aplicación de negocio con modernas interfaces basadas en navegador, sin escribir una sola línea de HTML o JavaScript. Cree formularios web reactivos usando un editor visual de arrastrar y soltar y conéctelos directamente a su lógica de negocio 4D existente.

A partir de 4D 21 LTS, puede incluso integrar páginas Qodly Pro directamente en sus formularios 4D clásicos utilizando un área Web. Desde la perspectiva del usuario, se siente como una interfaz transparente, sin ventanas separadas, sin licencias adicionales requeridas. La página Qodly Pro integrada comparte la misma sesión y licencia que el cliente 4D Remote, manteniendo la experiencia transparente y sin costo adicional.

Compartir sesiones e interacciones entre LAS aplicaciones cliente/servidor y 4D Qodly Pro

En 4D 21, una sesión 4D Remote y su licencia ahora pueden ser compartidas con una aplicación 4D Qodly Pro desplegada dentro de un área Web de una aplicación Cliente/Servidor. Esto significa que no se consume ninguna licencia adicional, y el mismo contexto de sesión fluye sin problemas entre el formulario de escritorio y la página 4D Qodly Pro.

La autenticación y los privilegios son preservados automáticamente, y los datos de sesión pueden ser pasados para inicializar la página web con el contexto del escritorio, por ejemplo, mostrando detalles de la entidad actualmente seleccionada.

Además de compartir la sesión, las nuevas acciones de 4D Qodly Pro permiten una interacción bidireccional directa entre los formularios 4D y las páginas 4D Qodly Pro. Desde una página 4D Qodly Pro, los desarrolladores pueden llamar a funciones 4D a través del objeto $4d, previamente inicializado con el comando WA SET CONTEXT. A la inversa, un formulario 4D puede actualizar fuentes Qodly directamente, asegurando un estado y lógica sincronizados en ambos entornos.

Juntas, estas mejoras facilitan la combinación de formularios clásicos de 4D con páginas modernas de 4D Qodly Pro en una única aplicación, unificando sesiones, interacciones y contextos y evitando inicios de sesión redundantes, licencias adicionales o complejos trabajos de integración.

Internacionalización integrada (i18n)

4D Qodly Pro ahora ofrece internacionalización integrada (i18n), para que sus aplicaciones puedan adaptarse sin problemas a múltiples idiomas y parámetros regionales.

Los idiomas soportados se definen como locales en la nueva sección Localización, donde las claves y los valores de traducción pueden ser gestionados y vinculados a los componentes. La elección del idioma se realiza a través de UserLanguage QodlySource, que aplica la selección del usuario en tiempo real.

Los retrocesos automáticos cubren los datos de sesión, los valores predeterminados del navegador o una configuración regional primaria, mientras que la compatibilidad nativa de derecha a izquierda (RTL) hace que idiomas como el árabe resulten naturales. Al cambiar de idioma, el contenido se actualiza al instante, creando una experiencia fluida y personalizada.

Esto le permite expandirse a nuevos mercados, reducir la fricción de la integración y reforzar la confianza del usuario, sin rediseñar su interfaz de usuario ni añadir complejidad. Ya se trate de un lanzamiento local o global, su producto estará listo para hablar el idioma de sus usuarios.

Informe de eventos de LA página de Qodly

El nuevo informe de los eventos de la página Qodly en 4D Qodly Pro le ofrece una visión clara y unificada de todos los eventos de su página, ya sea que provengan de acciones estándar, acciones de navegación, funciones de clase o acciones de diálogo. Muestra qué eventos se declaran, dónde se implementan y el orden exacto en que se ejecutan.

Al hacer transparente el flujo de eventos, se acelera la depuración, se descubren al instante los solapamientos o los gestores que faltan y se facilita la optimización. Los equipos pueden colaborar más fácilmente, y usted gana confianza sabiendo exactamente cómo se comporta su página.

Es una forma sencilla de aportar claridad, precisión y eficacia a la gestión de eventos, tanto si está creando una aplicación pequeña como una solución a gran escala.

CONTROLES DE ZOOM DE canvas

El editor de páginas 4D Qodly Pro introduce controles de zoom de canvas para facilitar el trabajo con diseños complejos. Los desarrolladores ahora pueden acercar, alejar o restablecer la vista directamente desde la barra de herramientas, con soporte para atajos de teclado y navegación con la rueda del ratón.

El nivel de zoom actual se muestra en la interfaz, lo que ofrece a los desarrolladores un control preciso sobre la forma de ver y organizar los componentes en el canvas.

Estas mejoras mejoran la navegación, la precisión del diseño y la usabilidad general, alineando el editor de páginas con los estándares de las herramientas modernas de diseño visual.

Configuración automática de Qodly Studio

Al iniciar Qodly Studio por primera vez desde el modo Diseño 4D, ahora se activa un asistente de configuración automática. Toda la configuración necesaria (activación del servidor REST, sesiones escalables, puertos del servidor web) se detecta y se presenta con un mensaje para activarla.

Si se acepta, los servicios se reinician según sea necesario y Qodly Studio se abre en el navegador. Si se rechazan, no se produce ningún cambio. El flujo de trabajo es fluido, rápido y sin intervención para los nuevos usuarios.

El inicio de Qodly Studio ya no requiere preconfiguración manual. Los desarrolladores principiantes son productivos con un solo clic.

Componentes 4D

El uso de componentes ha mejorado drásticamente entre 4D 20 y 21. Con el gestor de dependencias, ahora puede añadir y mantener fácilmente componentes, ya sean públicos o privados. Y a partir de 4D 20 R10, se introdujo un nuevo modelo de edición de componentes, permitiéndole editar y depurar métodos de componentes directamente desde el proyecto local.

HACIA UNA INTEGRACIÓN DE COMPONENTES TRANSPARENTE

El desarrollo de componentes en 4D ha dado un gran paso adelante. Los métodos y las clases de un componente, compartido o no, ahora pueden verse y editarse directamente en el proyecto anfitrión, sin tener que abrir el componente por separado o interrumpir el enfoque durante el desarrollo. Ahora todos los métodos pueden editarse en el momento, y es posible crear componentes completos desde la interfaz de usuario del host, inicializarlos con el espacio de nombres, los archivos y la estructura, y editarlos inmediatamente en modo interpretado.

Más allá del código, la visibilidad se ha ampliado para incluir formularios de sólo lectura, carpetas, constantes, comandos, plug-ins e incluso una papelera específica para cada componente. Las constantes mantienen el vínculo con sus componentes de origen, lo que garantiza la coherencia en toda la aplicación, mientras que los nuevos flujos de creación conectan automáticamente las dependencias y establecen la estructura para los modos gestionados y heredados.

Todo ello agiliza la iteración de componentes, facilita la modularización y hace que los proyectos sean más limpios y transparentes. Se trata de un hito importante en el acercamiento de los componentes al flujo de trabajo del proyecto anfitrión, si bien aún quedan mejoras por introducir en la hoja de ruta.

GESTIÓN OPCIONAL DE LOS COMPONENTES

4D 21 ya no incluye componentes 4D estándar. En su lugar, usted declara su necesidad de ellos a través del diálogo Add Dependency, y 4D los obtiene e instala automáticamente bajo demanda. Desde ahí, puede acceder directamente al catálogo completo de componentes 4D, incluyendo 4D AI Kit, 4D NetKit, 4D View Pro, SVG, y más, todos publicados como código abierto en GitHub. Esto le da la flexibilidad de instalar sólo lo que necesita, mientras que también hace que sea más fácil explorar el interior de los componentes, contribuir con mejoras, y alinear sus proyectos con las necesidades cambiantes.

  • Dependencias específicas: sólo se instalan los componentes necesarios.

  • Alineación de versiones: las dependencias siguen su versión actual de 4D por defecto, asegurando la compatibilidad sin comprobaciones manuales.

Al actualizar a 4D 21, los proyectos existentes pueden descargar automáticamente los componentes requeridos, mientras que las bases de datos binarias continúan accediendo a ellos a través del instalador o del portal de descargas.

4D Netkit

Mientras que 4D NetKit se centró inicialmente en la adición de integraciones nativas de Microsoft 365 y Google, cubriendo servicios como el correo electrónico y calendarios, ha evolucionado constantemente en una caja de herramientas más profunda para la autenticación y la seguridad modernas. En la actualidad, no solo permite el inicio de sesión único a través de Microsoft 365, sino que también ofrece compatibilidad total con OpenID Connect para la integración con una amplia gama de proveedores de identidad.

URL personalizadas para resultados de autenticación

Los atributos authenticationPage y authenticationErrorPage del comando cs.NetKit.OAuth2Provider.new() ahora admiten URL completas además de rutas de archivos estáticas. Los flujos de autenticación ya no están vinculados a archivos HTML locales y pueden redirigir a páginas dinámicas alojadas en cualquier entorno: 4D Qodly Pro, su propio servidor o servicios de terceros.

Las páginas de éxito y error personalizadas mejoran la flexibilidad al tiempo que conservan la infraestructura existente. Las URL pueden actualizarse independientemente de la aplicación, reflejando una nueva experiencia de usuario o marca sin necesidad de reconstrucción. La compatibilidad con URL y rutas de archivos garantiza la compatibilidad con versiones anteriores y permite flujos de inicio de sesión más dinámicos e integrados.

OpenID con gestión de estadoS y DE nonces

Los flujos de autenticación ahora cumplen totalmente con OpenID Connect gracias a la compatibilidad con los parámetros state y nonce.

  • state permite a su aplicación rastrear el contexto a través de redirecciones y validarlo a la vuelta.

  • nonce protege contra los ataques de repetición reforzando la unicidad del token.

Estos parámetros se gestionan automáticamente dentro de NetKit, protegiendo contra la manipulación y la inyección sin necesidad de una implementación adicional.

Ahora los desarrolladores pueden integrarse con los proveedores de identidad modernos (Google, Microsoft, Okta) con la confianza de que el modelo de seguridad se mantiene bajo escrutinio, sin tener que crear capas de validación de tokens personalizadas.

SERVIDOR HTTP

El servidor HTTP en 4D continúa creciendo más allá del simple manejo de peticiones. Con 4D 21, usted obtiene un control centralizado de los encabezados de respuesta HTTP y de las reglas directamente a nivel del framework, cubriendo redireccionamiento, encabezados personalizados, políticas de caché, CORS, y más, eliminando la necesidad de proxies inversos o gestión manual de encabezados.

reglas de respuesta http personalizadas

Los encabezados de respuesta HTTP de 4D son ahora configurables a nivel del servidor. Utilizando un nuevo archivo HTTPRules.json o el parámetro settings.rules durante el arranque, los desarrolladores pueden definir reglas de respuesta que coincidan con un patrón URL. Las reglas soportadas incluyen:

  • removedHeaders: eliminar los encabezados no deseados (por ejemplo, eliminar el encabezado Server para auditorías más estrictas).

  • addedHeaders: inyecta los encabezados de seguridad como Content-Security-Policy, X-Frame-Options o Permissions-Policy.

  • denyAccess: bloquea el acceso a rutas sensibles con un estado 403.

  • redirección: redirige las solicitudes de imágenes, CSS o JavaScript a un CDN.

  • status: define explícitamente el código de estado de la respuesta.

Al manejar los encabezados directamente en 4D, la infraestructura se vuelve más ligera, con mucha menos dependencia de proxies inversos externos o inyección manual de encabezados. La consistencia mejora, y las políticas se aplican a nivel de framework para todas las respuestas web, incluyendo REST.

seguridad

Las versiones posteriores a 4D 20 introdujeron nuevas clases TCP y UDP, reemplazando los comandos de Internet heredados de 4D. Con 4D 21 LTS, esta transición se completa añadiendo encriptación nativa TLS/SSL, haciendo de la comunicación segura de bajo nivel un estándar integrado.

Comunicaciones TCP seguras con soporte TLS/SSL integrado

Las conexiones TCP soportan ahora el cifrado TLS/SSL de forma nativa. Definiendo el atributo TLS en el nuevo parámetro options de 4D.TCPConnection.new(), se crean sesiones cifradas sin necesidad de configuración adicional ni envoltorios.

  • Los puertos estándar y seguros pueden ejecutarse en paralelo.

  • Una vez completado el protocolo de enlace, los mensajes cifrados fluyen sin problemas a través de la conexión.

  • TLS 1.3 es el protocolo por defecto, lo que garantiza una alta seguridad y compatibilidad con los terminales modernos.

Esto significa que los datos confidenciales están protegidos por diseño, el cumplimiento es más fácil de lograr y la mensajería segura ya no es una solución: es el estándar.

Utilice el almacén de certificados Windows en lugar de archivos locales

Las peticiones HTTPS ahora pueden extraer certificados directamente del llavero Windows utilizando el parámetro storeCertificateName en las clases HTTPRequest y HTTPAgent. Esto elimina la necesidad de almacenar y gestionar archivos de certificados localmente.

La protección a nivel de sistema y la gestión centralizada sustituyen a los malabarismos manuales con los archivos. La gestión de certificados es más segura, coherente y fácil de administrar en todos los equipos y máquinas.

Gestión de sesión unificada para REST y 4DACTION

Con 4D 21, ahora tiene una forma integral de inspeccionar todas las sesiones web abiertas, ya sea que se originen de conexiones REST, llamadas SOAP o solicitudes 4DACTION.

  • Todas las sesiones activas se listan en tiempo real, dando a los administradores una visión transparente de la actividad y el uso de recursos.

  • Las sesiones se pueden etiquetar con nombres de usuario a través de Session.setPrivilege(), lo que facilita la identificación de los usuarios conectados, el seguimiento de las acciones y la gestión de licencias.

  • Las sesiones son seguras para los hilos y se optimizan automáticamente, lo que garantiza un uso eficiente de los recursos y un rendimiento fiable incluso con cargas pesadas.

Esto permite una ejecución más fluida de la API a escala, al tiempo que ofrece a los desarrolladores y administradores una supervisión más clara, una auditoría más sólida y una estabilidad mejorada.

Actualizaciones de LA LIBRERÍA PRINCIPAL Y DE LAS dependencias

Con 4D 21 LTS, hemos actualizado Xerces, libldap, ICU, Chromium (CEF), OpenSSL, libZip, LZMA, ZLib, Libuv, BoringSSL y PDFWriter, modernizando toda la pila para reforzar la seguridad, mejorar la estabilidad y garantizar la compatibilidad con las plataformas actuales.

Lenguaje 4D

La diferencia en el lenguaje de programación 4D entre 4D 20 y 4D 21 es enorme, demasiado grande para resumirla en unas pocas líneas. En el transcurso de los Feature Releases, el lenguaje ha ganado sintaxis moderna, tipado más fuerte, mejor manejo de errores y nuevos comandos. Con 4D 21 LTS, más mejoras continúan para hacer la codificación más simple y consistente.

Conversión de cadenaS hexadecimales a número

El comando String ahora le permite convertir cadenas hexadecimales directamente en números. Ya no es necesario escribir utilitarios de análisis ni utilizar cadenas binarias. Basta con pasar la cadena y se obtiene el resultado numérico.

Es una adición sutil que elimina la fricción al trabajar con API externas, formatos de bajo nivel o integraciones que devuelven hexadecimales.

Nuevas funciones de recorte de cadenas

Los nuevos comandos: trim, trimStart y trimEnd, facilitan la eliminación de espacios en blanco o de caracteres específicos de las cadenas. Se comportan como sus equivalentes en JavaScript o Python y funcionan con cualquier conjunto de caracteres.

Ya no es necesaria la lógica de recorte manual. Los datos están más limpios, las entradas de formularios son más fáciles de validar y el código se ajusta a las expectativas de los lenguajes modernos.

Licencias

Las licencias en 4D ahora son más inteligentes y automatizadas. Con 4D 21, las licencias de desarrollador se recuperan y activan automáticamente al iniciar sesión, eliminando los pasos manuales que antes ralentizaban las renovaciones o las configuraciones.

RECUPERACIÓN AUTOMÁTICA DE LAs LICENCIAS DE DESARROLLADOR DE LOS SOCIOS

4D ahora recupera y activa automáticamente sus licencias de desarrollador de socio cada vez que cambia, eliminando la necesidad de volver a introducir manualmente los números de licencia en cada máquina. Al iniciar sesión, 4D comprueba su cuenta del Programa Partner a través de 4D Motor, detecta cualquier licencia Developer o Developer Pro disponible para su plataforma y la registra al instante. Si sólo hay una licencia disponible, la activación se realiza automáticamente; si se encuentran varias, se le pedirá que elija la que desea utilizar.