Notas del lanzamiento
4D 20 R10
Lea las Novedades en 4D 20 R10, la entrada del blog que muestra todas las nuevas funcionalidades y mejoras en 4D 20 R10.
Lo más destacado
- Gestión de eventos ORDA en datos.
- Nueva opción connectionTimeouten el parámetrooptionsde la función4D.TCPConnection.new().
- Nueva clase 4D.Vectorpara procesar y comparar vectores, normalmente calculados por IAs.
- Nuevas opciones para generar UUIDs en versión 7 para el comando 4D automatic fields y Generate UUID.
- Nuevas clases UDPSocketyUDPEventpara enviar datos utilizando sockets UDP. Soporte de registro detallado para eventos UDP en el archivo de registro4DTCPUDPLog.txt(renombrado de4DTCPLog.txt).
- Nuevas funciones .promote()y.demote()en la clase Session para añadir/eliminar privilegios dinámicamente en un proceso web.
- Selección automática de licencias a integrar en el cuadro de diálogo del Generador de aplicaciones, modificación del comando Create deployment license, nueva llave xml BuildApplicationAutomaticLicenseIntegration.
- Seguridad mejorada para copiar/pegar fórmulas en 4D Write Pro y áreas de texto con estilo: las fórmulas copiadas desde fuera de la aplicación 4D actual se pegan ahora siempre sólo como valores.
- Componente 4D AIKit: nueva clase OpenAIEmbeddingsAPI para crear embeddings utilizando la API OpenAI.
- Ahora puede asociar una clase a un campo objeto en el editor de estructura.
- Gestión automática de dependencias recursivas.
- Lenguaje 4D:
- Por coherencia, los comandos Create entity selectionyUSE ENTITY SELECTIONhan sido movidos del tema "4D Environment" al "Selection".
- Nuevos comandos OBJECT SET DATA SOURCE FORMULAyOBJECT Get data source formulapara asignar y leer los objetosFormulacomo fuentes de datos para los objetos de formulario.
- LISTBOX SET PROPERTYy- LISTBOX Get propertysoportan tres nuevas constantes:- lk current item,- lk current item positiony- lk selected items expression.
 
- Por coherencia, los comandos 
- Lista de bugs corregidos: lista de todos los bugs que se han corregido en 4D 20 R10.
Cambios de comportamiento
- En Windows, las fuentes de impresora actuales destinadas únicamente a la impresión (es decir, no se pueden utilizar en pantalla) ya no son cargadas al inicio por 4D.
- Se ha eliminado la biblioteca MeCab. Este cambio sólo afecta al tratamiento del texto en japonés.
- Cuando una variable o parámetro objeto se declara con un tipo "cs" class, asignarlo con una instancia de objeto de una clase diferente genera ahora un error de sintaxis.
- El comando Timedevuelve ahora una expresión de tiempo negativa cuando el parámetro timeValue es negativo. Por ejemplo,Time("-01:02:03")devolverá -01:02:03. En versiones anteriores, se ignoraba el signo negativo.
4D 20 R9
Lea Novedades en 4D 20 R9, la entrada del blog que muestra todas las nuevas funcionalidades y mejoras en 4D 20 R9.
Lo más destacado
- La biblioteca MeCab está obsoleta y se eliminará en la próxima versión.
- Soporte de token de sesión manejado con las nuevas funciones Session.createOTP()ySession.restore().
- El asistente de etiqueta ahora utiliza el editor de Fórmula para añadir o editar fórmulas en el área de diseño de etiquetas.
- Nueva clase TCPListenerpara crear conexiones del servidor TCP; nuevas propiedades en las clases relacionadas:address,listeneryporten la claseTCPConnection,addressyporten la claseTCPEvent.
- Comandos y constantes obsoletos ahora generan advertencias específicas en el Live checker y el compilador. Puede saber si un comando está obsoleto utilizando el comando Command name.
- Nuevos comandos WA SET CONTEXT y WA Get context para controlar los contenidos $4d en áreas web.
- Nuevo parámetro de base de datos RDP optimizationpara optimizar por ejemplo el portapapeles compartidos cuando se usa el protocolo de escritorio remoto con 4D.
- Los componentes interpretados pueden ahora editarse desde el proyecto local.
- Licencias ahora se actualizan automáticamente al iniciar.
- Nuevo componente AIKit 4D que permite la interacción con las API IA de terceros.
- Los siguientes retrollamadas del comando VP ahora esperan que todas las funciones personalizadas de 4D completen sus cálculos: VP IMPORT DOCUMENT, VP IMPORT FORM BLOB, VP IMPORT FROM OBJECT, y VP FLUSH COMMANDS.
- Nuevas funcionalidades 4D Netkit para administrar los calendarios Google y Microsoft 365; capacidad para usar el servidor web local para autenticación OAuth 2.0.
- Interfaz 4D Write Pro: Nueva IA integrada para interactuar con chatGTP desde sus documentos 4D Write Pro.
- Lista de bugs corregidos: lista de todos los bugs que se han corregido en 4D 20 R9.
4D 20 R8
Lea Novedades en 4D 20 R8, la entrada del blog que muestra todas las nuevas funcionalidades y mejoras en 4D 20 R8.
Lo más destacado
- Implemente sus propios HTTP request handlers utilizando la nueva clase 4D.IncomingMessage.
- Las expresiones utilizadas en propiedades de objetos de formulario ahora se benefician de la comprobación de sintaxis en la Lista de propiedades y en el Compilador.
- Puede asociar una clase a un formulario para habilitar la anticipación del tipo de código y la instanciación automática de los datos del formulario cuando utilice el comando Form.
- Soporte de sesiones autónomas para simplificar la codificación local de aplicaciones cliente/servidor.
- Depurador 4D: nuevo diseño y autoguardado, funciones de modo de visualización.
- Nueva arquitectura de componentes construidos para un mejor cumplimiento de las pautas de notarización de Apple.
- Ahora puede crear fácilmente aplicaciones de evaluación en el cuadro de diálogo de Build App.
- Dependencias: use el administrador de Dependencias para buscar nuevas versiones y actualizar componentes GitHub.
- Nuevas clases TCPConnectionyTCPEventpara gestionar conexiones cliente TCP, manejar eventos y mejorar el control sobre la transmisión de datos. Añadido4DTCPLog.txtpara un registro detallado de eventos TCP.
- Nuevas opciones en VP EXPORT DOCUMENT y VP IMPORT DOCUMENT para controlar estilos, fórmulas, integridad de datos y protección por contraseña.
- 4D Write Pro:
- Los siguientes comandos permiten ahora parámetros como objetos o colecciones: WP SET ATTRIBUTES, WP Get attributes, WP RESET ATTRIBUTES, WP Table append row, WP Import document, WP EXPORT DOCUMENT, WP Add picture, y WP Insert picture.
- WP Insert formula, WP Insert document body, y WP Insert break, son ahora funciones que devuelven rangos.
- Nuevas expresiones relacionadas con los atributos del documento: This.sectionIndex, This.sectionName y This.pageIndex.
 
- Lenguaje 4D:
- Comandos modificados: FORM EDIT
- Las funciones .sign()y.verify()de la clase 4D.CryptoKey soportan Blob en el parámetro message.
 
- Comandos modificados: 
- Lista de bugs corregidos: lista de todos los bugs que se han corregido en 4D 20 R8.
Cambios de comportamiento
- Después de una modificación del archivo de registro usando SELECT LOG FILEo la Configuración de copia de seguridad, el comandoNew log fileahora valida el cambio, sin esperar una copia de seguridad. Ya no se produce el error -4447 (copia de seguridad necesaria).
- Debido a su nueva arquitectura, los componentes creados con 4D 20 R8 y superiores no pueden ser instalados en versiones anteriores 4D.
4D 20 R7
Lea Novedades en 4D 20 R7, la entrada del blog que muestra todas las nuevas funcionalidades y mejoras en 4D 20 R7.
Lo más destacado
- Las columnas de los list box y de los encabezados de tipo hora ahora soportan la opción "blankIfNull".
- Nuevas propiedades en .getBoxInfo()y.getBoxList().
- Ahora puede añadir y eliminar componentes utilizando la interfaz del gestor de componentes.
- Nuevo modo de tipado directo en el que declara todas las variables y parámetros en su código usando las palabras clave vary#DECLARE/Function(sólo modo soportado en nuevos proyectos). La función de verificación de sintaxis se ha mejorado en consecuencia.
- Soporte de singletones de sesión y nueva propiedad de clase .isSessionSingleton.
- Nueva palabra clave función onHttpGetpara definir funciones singleton u ORDA que pueden ser llamadas a través de peticiones HTTP REST GET.
- Nueva clase 4D.OutgoingMessagepara que el servidor REST devuelva cualquier contenido web.
- Qodly Studio: ahora puede adjuntar el depurador Qodly a 4D Server.
- Nuevas llaves Build Application para que las aplicaciones 4D remotas validen las signatures y/o los dominios.
- Posibilidad de crear aplicaciones autónomas sin licencias integradas.
- Lenguaje 4D:
- Nuevos comandos: Process info, Session info, SET WINDOW DOCUMENT ICON
- Comandos modificados: Process activity, Process number
- Comandos obsoletos (reemplazo): GET LAST ERROR STACK(Last errors),GET SERIAL INFORMATION(License info),PROCESS PROPERTIES(Process info),SET SCREEN DEPTH,C_XXXcommands (var y #DECLARE/declaraciones Function). Los comandos obsoletos llevan el prefijo "*O*".
 
- 4D Write Pro:
- Nuevo comando: WP DELETE SECTION
- Comandos modificados: WP DELETE SUBSECTION y WP RESET ATTRIBUTES
 
- Lista de bugs corregidos: lista de todos los bugs que se han corregido en 4D 20 R7.
Cambios de comportamiento
- La documentación del Lenguaje 4D y del Lenguaje 4D Write Pro ya está disponible en developer.4d.com. Descubra todas las novedades y cambios relativos a estas documentaciones en esta nota de la versión.
- El comando File(así como4D.File.new()) es más estricto a la hora de comprobar la sintaxis de path suministrada como parámetro.
- La acción de permission ha sido eliminada de las acciones disponibles. El acceso a las urls /rest/$catalogya no está controlado. Session describe privileges are now ignored.
4D 20 R6
Lea Novedades en 4D 20 R6, la entrada del blog que muestra todas las nuevas funcionalidades y mejoras en 4D 20 R6.
Lo más destacado
- Soporte de operadores de comparación en las referencias de objeto y las referencias de colección. collection.query()ahora soporta las referencias de objeto y de colección como valores de consulta.
- Cuando un componente tiene un espacio de nombres declarado, sus clases ahora se comparten automáticamente entre todos los componentes cargados en el proyecto del host porcs.
- Gestión de componentes: soporte de componentes almacenados en GitHub.
- Nueva función entitySelection.clean()y API REST$cleanpara obtener una nueva entity selection basada en la entity selection original pero sin sus entidades eliminadas.
- Nueva función session.getPrivileges()y API REST$info/privilegespara inspeccionar los privilegios de sesión más fácilmente durante la depuración.
- Nuevo archivo 4DCEFParameters.json para personalizar las áreas web anidadas de 4D.
- Nueva clase HTTPAgent y nueva propiedad agentpara la clase HTTPRequest.
- Nuevas funciones enableState()ydisableState()para controlar los estados de las páginas Qodly desde el servidor.
- Nueva `API$singleton para llamar las funciones singleton expuestas desde REST y nuevos privilegios asociados.
- Un nuevo botón de parámetros le ayuda a actualizar su proyecto para utilizar el modo REST "conexión forzada" (el método base On REST Authenticationes ahora obsoleto).
- Una nueva pestaña de parámetros permite definir la generación de advertencias de forma global.
- Varios comandos, principalmente del tema "entorno 4D", son ahora hilo seguro, así como algunos selectores de los comandos SET DATABASE PARAMETER/Get database parameter.
- Nuevo componente 4D-QPDF que ofrece el comando PDF Get attachmentspara extraer los archivos adjuntos de un documento PDF/A3.
- Lista de bugs corregidos: lista de todos los bugs que se han corregido en 4D 20 R6.
Cambios de comportamiento
- Soporte de encadenamiento de desplazamiento en los formularios: los subformularios principales ahora se desplazan automáticamente cuando los objetos integrados deslizables (verticalmente u [horizontalmente](. /FormObjects/properties_Appearance.md#horizontal-scroll-bar)) han llegado a sus límites y el usuario sigue desplazándose utilizando el ratón o el trackpad (desplazamiento excesivo).
- La API REST $catalogahora devuelve singletons (si los hay).
4D 20 R5
Lea Novedades en 4D 20 R5, la entrada del blog que muestra todas las nuevas funcionalidades y mejoras en 4D 20 R5.
Lo más destacado
- Nuevo Gestor de componentes para gestionar componentes a través de un archivo dependencies.json.
- Soporte de estructuras de gestión de errores Try...Catch...End try.
- La capa de red QUIC ahora soporta broadcasting, SSO, e IPv6.
- Soporte de selecciones de entidades restringidas.
- Soporte de clases compartidas y de clases singleton. Nuevas propiedades de clase: isShared,isSingleton,me.
- Soporte para inicializar una propiedad de clase en su línea de declaración.
- Nuevo modo forzar login para peticiones REST con un soporte específico en Qodly Studio for 4D.
- Nuevo parámetro REST $format.
- El objeto Sessionestá ahora disponible en sesiones de usuario remotas y en sesiones de procedimientos almacenados.
- Lista de bugs corregidos: lista de todos los bugs que se han corregido en 4D 20 R5.
Cambios de comportamiento
- Los plug-ins 4D Internet Commands y 4D for OCI ya no se incluyen en los instaladores de 4D. Para obtener estos plug-ins, necesita conectarse al portal de descarga de productos 4D.
- Los cambios realizados en el editor de estructura en relación con el aspecto gráfico de las tablas y de los campos (color, posición, orden...) ahora se guardan en un archivo separado llamado catalog_editor.jsonalmacenado en la carpetaSourcesdel proyecto.
4D 20 R4
Lea Novedades en 4D 20 R4, la entrada del blog que muestra todas las nuevas funcionalidades y mejoras en 4D 20 R4.
Lo más destacado
- Soporte de formato de cifrado ECDSA` para certificados TLS.
- Las conexiones TLS cliente/servidor y servidor SQL ahora se configuran dinámicamente (no se requieren archivos de certificado).
- Formato HTML directo para exportaciones de definición de estructura.
- Nuevo Code Live Checker que mejora el control del código durante los pasos de declaración, comprobación de sintaxis y compilación para evitar errores de ejecución.
- Los parámetros de métodos declarados en prototipos #DECLAREya no son necesarios en métodos "Compiler_".
- Soporte de formatos personalizados de fecha y hora
- Nueva palabra clave Try(expression)para tratar casos de error simples.
- Nuevo comando HTTP Parse message.
- Nueva opción de compatibilidad Impresión no bloqueante.
- Nuevo modo de edición en el Explorador de datos.
- Lista de bugs corregidos: lista de todos los bugs que se han corregido en 4D 20 R4.
Cambios de comportamiento
- El uso de una sintaxis heredada para declarar parámetros (por ejemplo, C_TEXT($1)ovar $1 : Text) es obsoleto y genera advertencias en los pasos de escritura de código, verificación de sintaxis y compilación.
- La coherencia de las selecciones ahora se mantiene después de que se hayan eliminado algunos registros y se hayan creado otros (ver esta entrada de blog).
- En la actualización de la librería OpenSSL, el nivel de seguridad SSL/TLS por defecto se ha cambiado de 1 a 2. Las llaves RSA, DSA y DH de 1024 bits o más y menos de 2048 bits, así como las llaves ECC de 160 bits o más y menos de 224 bits, ya no están permitidas. Por defecto, la compresión TLS ya estaba desactivada en versiones anteriores de OpenSSL. En el nivel de seguridad 2 no se puede activar.
- Asegúrese de que su método base "On REST authentication" puede manejar contraseñas en claro (el tercer parámetro es entonces False) y que Open datastoreencripta su conexión pasando la opción "tls" a True en connectionInfo. Asegúrese de que su método base "On REST authentication" puede manejar contraseñas en claro (el tercer parámetro es entonces False) y queOpen datastoreencripta su conexión pasando la opción "tls" a True en connectionInfo. En casos concretos, también se puede utilizar una nueva opción "passwordAlgorithm" por compatibilidad (ver el comandoOpen datastore).
4D 20 R3
Lea Novedades en 4D 20 R3, la entrada del blog que muestra todas las nuevas funcionalidades y mejoras en 4D 20 R3.
Lo más destacado
- Nueva función collection.multiSort.
- Soporte del parámetro context en Formula from string.
- Soporte de la propiedad headersen el parámetro connectionHandler de 4D.WebSocket.new.
- Sello de modificación global para ayudar a implementar módulos de sincronización de datos. Nuevas funciones: ds.getGlobalStampyds.setGlobalStamp.
- La asignación de referencias de archivo a atributos imagen/blob está soportada en ORDA.
- Soporte para inicializar el valor de la variable y el tipo de datos en la línea de declaración.
- Los parámetros del archivo de registro se guardan ahora con el archivo de datos actual
- Nueva sintaxis para declarar parámetros variádicos
- 4D View Pro: soporte de la importación y de la exportación de documentos 4D View Pro al formato Blob.
- Lista de bugs corregidos: lista de todos los bugs que se han corregido en 4D 20 R3.
Cambios de comportamiento
- Algunos errores eran detectables por su método de gestión de errores solo en modo interpretado. Se ha realizado una corrección para que los siguientes errores se detecten también en modo compilado: Indice fuera de rango, Tipo incompatible y Derreferenciación de un puntero Null. Sin embargo, para tales errores en los procesadores Intel, el procedimiento se sigue interrumpiendo como antes, mientras que en los procesadores Apple Silicon el procedimiento solo se interrumpe si se llama al comando ABORT.
- 4D ya no incluye un intérprete PHP interno. Necesita configurar y ejecutar su propio intérprete PHP para utilizar comandos PHP.
4D 20 R2
Lea Novedades en 4D 20 R2, la entrada del blog que muestra todas las nuevas funcionalidades y mejoras en 4D 20 R2.
Si sus aplicaciones 4D utilizan conexiones TLS, se recomienda actualizar a 4D 20 R2 HF1 build 100440 o superior. Para más información, consulte este Boletín de seguridad.
Lo más destacado
- Nueva clase WebSocket para crear y gestionar conexiones WebSocket cliente desde 4D.
- Nueva capa de red QUIC configuración de interfaz.
- 4D View Pro: soporte del formato de archivo .sjs para la importación y la exportación de documentos.
- Interfaz Write Pro 4D: nuevo Asistente de tablas.
- Lista de bugs corregidos: lista de todos los bugs que se han corregido en 4D 20 R2.
Cambios de comportamiento
- Atención: el valor inicial offsetde los objetos 4D.FileHandle estaba incorrectamente definido en 1 en lugar de 0. Se ha hecho una corrección en 4D a partir de las versiones 20.1 HF1 y 20 R2 y el valor ahora es 0.
4D 20.x LTS
Consulte Notas de la versión 4D 20.x LTS.
Tabla de la librería
| Librería | Versión actual | Actualizado en 4D | Comentario | 
|---|---|---|---|
| BoringSSL | 9295969 | 20 R10 | Utilizado para QUIC | 
| CEF | 6778 | 20 R8 | Chromium 131 | 
| Hunspell | 1.7.2 | 20 | Utilizado para la corrección ortográfica en formularios 4D y 4D Write Pro | 
| ICU | 73.2 | 20 | Esta importante actualización obliga a reconstruir automáticamente los índices alfanuméricos, texto y objeto. | 
| libldap | 2.6.7 | 20 R6 | |
| libsasl | 2.1.28 | 20 | |
| Liblsquic | 4.2.0 | 20 R10 | Utilizado para QUIC | 
| Libuv | 11.51.0 | 20 R10 | Utilizado para QUIC | 
| libZip | 1.9.2 | 20 | Utilizado por los componentes zip class, 4D Write Pro, svg y serverNet | 
| LZMA | 5.4.1 | 20 | |
| ngtcp2 | 1.13 | 20 R10 | Utilizado para QUIC | 
| OpenSSL | 3.3.2 | 20 R7 | Se ha actualizado el nivel de seguridad TLS/SSL por defecto. Ver Cambios de comportamiento para la versión 20 R4 | 
| PDFWriter | 4.5.11 | 20 R3 | |
| PHP | 8.2.4 | 20 | |
| SpreadJS | 17.1.0 | 20 R7 | Consulte esta entrada de blog para obtener una visión general de las nuevas funciones | 
| webKit | WKWebView | 19 | |
| Zlib | 1.2.13 | 20 |