Notas del lanzamiento
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.
Destacados
- 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 para 4D.
- Nuevo parámetro REST $format.
- El objeto
Session
está ahora disponible en sesiones de usuario remotas y en sesiones de procedimientos almacenados. - Comandos del lenguaje 4D: página Novedades en doc.4d.com.
- 4D Write Pro: página Novedades en doc.4d.com.
- 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.json
almacenado en la carpetaSources
del 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.
Destacados
- 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
#DECLARE
ya 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.
- Comandos del lenguaje 4D: Página de novedades en doc.4d.com.
- 4D Write Pro: página Novedades en doc.4d.com.
- 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.
- Para permitir la verificación de la contraseña cuando el directorio de usuarios 4D utiliza el algoritmo bcrypt, el valor "password" en el parámetro connectionInfo del comando
Open datastore
se envía ahora en claro por defecto. 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 datastore
encripta su conexión pasando la opción "tls" a True en connectionInfo. En casos específicos, también se puede utilizar una nueva opción "passwordAlgorithm" para compatibilidad (verOpen 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.
Destacados
- Nueva función
collection.multiSort
. - Soporte del parámetro context en
Formula from string
. - Soporte de la propiedad
headers
en 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.getGlobalStamp
yds.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.
- Comandos del lenguaje 4D: Página Novedades en doc.4d.com.
- 4D Write Pro: página Novedades en doc.4d.com.
- 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.
Destacados
- 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.
- Comandos del lenguaje 4D: Página Novedades en doc.4d.com.
- 4D Write Pro: página Novedades en doc.4d.com.
- 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
offset
de 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
Lea Novedades en 4D 20, la entrada del blog que muestra todas las nuevas funcionalidades y mejoras en 4D 20.
Por razones internas, la versión de los clientes remotos que se conectan a 4D Server 20.2 y posteriores debe ser al menos 4D 20.2.
Si sus aplicaciones 4D utilizan conexiones TLS, se recomienda actualizar a 4D 20.2 LTS build 100956 o superior. Para más información, consulte este Boletín de seguridad.
Aviso de reconstrucción del índice
4D 20 incluye una actualización de la librería ICU (ver abajo) que forzará una reconstrucción automática de los índices de tipo alpha, texto y objeto. Dependiendo del tamaño del archivo de datos, esta operación puede llevar un tiempo y puede ser necesario planificarla.
4D 20.1 también incluye una actualización de la biblioteca ICU, que tiene las siguientes consecuencias:
- Forzará una reconstrucción automática de los índices de tipo alfa, texto y objeto.
- Por coherencia de ordenación, es necesario que los clientes remotos 4D y el servidor 4D utilicen la misma versión: sólo los clientes remotos 4D 20.1 pueden conectarse al servidor 4D 20.1 y viceversa.
Destacados
- 4D 20.2 está certificado en macOS Sonoma (macOS 14).
- (4D 20.1) Nueva propiedad
plugins
en el parámetro options del comandoCompile project
. - 4D Server integra automáticamente varios diarios: Restauración automática.
- Clase IMAP Transporter:
.getBoxInfo()
devuelve id,.selectBox()
devuelve id, flags y permanentFlags,.addFlags()
y.removeFlags()
soportan palabras claves personalizadas. - Nuevas clases WebSocketServer y WebSocketConnection para crear y gestionar conexiones WebSocket desde 4D.
- Soporte de la palabra clave
property
en las definiciones de clases de usuario. - Nuevas funciones para bloquear/desbloquear el datastore:
.flushAndLock()
,.locked()
,.unlock()
. - Nueva función
.at()
en la clase de selección de entidades. - Nuevas funciones en la clase Collection:
.at()
,.first()
,.flat()
,.flatMap()
,.includes()
,.last()
,.reduceRight()
. - Editor de código: funcionalidaes mejoradas Buscar y reemplazar.
- Nuevo elemento del lenguaje "property" en la caja de diálogo Buscar en diseño....
- Para simplificar el código, algunos operadores de comparación pueden utilizarse ahora con Valores indefinidos sin generar errores.
- Soporte del parámetro headerOnly en
POP3Transporter.getMail()
. - Soporte de la opción
count values
en las funcionesentitySelection.distinct()
ycollection.distinct()
. - Nueva función
entitySelection.distinctPaths()
. - Los registros de peticiones ORDA ya están disponibles en el servidor, nuevo parámetro para la función
.startRequestLog()
. - Nuevas herramientas para la ejecución de código en CLI: tool4d y 4D Server in utility mode.
- Explorador de datos: nuevo botón y visualización en una ventana 4D.
- Nuevas propiedades para botones, casillas de verificación y botones de radio: Posición de título e imágenes y Alineación horizontal.
- Soporte de
WinIcon
en la funciónfile.setAppInfo()
. - Nueva opción
validateTLSCertificate
para4D.HTTPRequest.new()
que permite controlar la validación automática de certificados. - Comandos del lenguaje 4D: página Novedades en doc.4d.com.
- 4D Write Pro: página Novedades en doc.4d.com.
- Listas de errores corregidos: 4D 20 - 4D 20.1 - 4D 20.2 - 4D 20.3 - 4D 20.4.
Cambios de comportamiento
- A partir de 20.3, para permitir la verificación de la contraseña cuando el directorio de usuarios 4D utiliza el algoritmo bcrypt, el valor "password" en el parámetro connectionInfo del comando
Open datastore
se envía ahora en claro por defecto. 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 datastore
encripta su conexión pasando la opción "tls" a True en connectionInfo. En casos específicos, también se puede utilizar una nueva opción "passwordAlgorithm" para compatibilidad (verOpen datastore
. - A partir de 20.2, 4D 20 LTS ya no es compatible con Windows Server 2012 R2.
- Atención: el valor inicial
offset
de 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. - Para el cumplimiento de HTTP RFC, la propiedad
HTTPRequestClass.response.headers
devuelve ahora todos los nombres de encabezado en minúsculas. Si desea que su código siga funcionando como antes, utilice la nueva propiedadHTTPRequestClass.response.rawHeaders
. - Los certificados TLS son ahora validados automáticamente por 4D al enviar peticiones HTTP con
4D.HTTPRequest.new()
y rechazados con un error si no son válidos. Una nueva propiedad option le permite controlar esta validación. - TLS v1.0 y TLS v1.1 están obsoletos, ya no están soportados como
Min TLS version
en 4D Server. La versión 1.3 se selecciona ahora por defecto y se utiliza automáticamente si las constantes_o_TLSv1_0
o_o_TLSv1_1
se definen cen conSET DATABASE PARAMETER
. - Por coherencia, todos los botones, casillas de verificación y botones de opción se representan ahora con un tipo "3D" en tiempo de ejecución: respectivamente,
Object type 3D button
,Object type 3D checkbox
yObject type 3D radio button
son devueltos porOBJECT Get type
para estos objetos. - A partir de 4D 20, 4D for Mobile ya no está instalado por defecto en el entorno 4D. Para beneficiarse de las funcionalidades de desarrollo de 4D for Mobile en 4D, necesita instalar el componente 4D Mobile App en la carpeta "Components" de sus proyectos. Si un proyecto convertido utiliza funcionalidades del componente 4D Mobile App Server, asegúrese de instalarlo también en la carpeta "Componentes" del proyecto.
4D 19 R8
Lee Novedades en 4D 19 R8, la entrada del blog que muestra todas las nuevas funcionalidades y mejoras en 4D 19 R8.
Destacados
- Se pueden instalar métodos de gestión de errores para contextos de ejecución globales y de componentes.
- Los list boxes con fuentes de datos selección de entidades o colecciones ahora soportan la propiedad de columna Alto de fila automática.
- ORDA: soporte del archivo roles.json para definir privilegios asignados a la sesión con
setPrivileges()
. - Soporte de modo SDI en modo de prueba en Windows.
- 4D View Pro:
- soporte de temas en tablas: nuevos comandos VP SET TABLE THEME y VP Get table theme, soporte de opciones de tema en VP CREATE TABLE
- nuevo comando VP Get table dirty rows
- Comandos del lenguaje 4D: página Novedades en doc.4d.com.
- 4D Write Pro: página Novedades en doc.4d.com.
- Lista de bugs corregidos: lista de todos los bugs que se han corregido en 4D 19 R8.
Cambios de comportamiento
- Para el cumplimiento de HTTP RFC, la propiedad
HTTPRequestClass.response.headers
devuelve ahora todos los nombres de encabezado en minúsculas. Si desea que su código siga funcionando como antes, utilice la nueva propiedadHTTPRequestClass.response.rawHeaders
. - Cuando se asigna una acción estándar a un botón biselado con menú emergente vinculado, la acción estándar ya no se genera si se selecciona una opción de menú emergente.
- En las áreas Web que utilizan blink (CEF), los diálogos mostrados desde scripts externos ahora se bloquean si no se llaman desde una función
setTimeout()
. Esto se debe a las actualizaciones actuales del CEF, en las que los diálogos mostrados por funciones comoalert()
oprint()
ya no son gestionados por el SO sino por el área Web. VerWA Evaluate JavaScript
yWA EXECUTE JAVASCRIPT
.
4D 19 R7
Lee Novedades en 4D 19 R7, la entrada del blog que muestra todas las nuevas funcionalidades y mejoras en 4D 19 R7.
Destacados
- Los datos relacionados y los atributos calculados/alias pueden visualizarse en el Explorador de datos.
- Nueva clase FileHandle y nueva función
.open()
en la claseFile
. - Clase selección de entidades:
.add()
soporta un parámetro entitySelection,.minus()
soporta un parámetro keepOrder. - Soporte de las opciones automaticRedirections y decodeData en
4D.HTTPRequest.new()
. - Nuevo archivo de registro 4DHTTPClientLog.txt.
- 4D View Pro: new table commands VP Find table, VP Get table column attributes, VP Get table column index, VP Get tables, VP INSERT TABLE COLUMNS, VP INSERT TABLE ROWS, VP REMOVE TABLE COLUMNS, VP REMOVE TABLE ROWS, VP RESIZE TABLE, VP SET TABLE COLUMN ATTRIBUTES.
- Los espacios de nombres de los componentes ahora se muestran en el Explorador.
- Los objetos Área de texto y Formulario de entrada soportan ahora la propiedad radio de esquina.
- Comandos del lenguaje 4D: página Novedades en doc.4d.com.
- 4D Write Pro: página Novedades en doc.4d.com.
- Lista de bugs corregidos: lista de todos los bugs que se han corregido en 4D 19 R7.
Cambios de comportamiento
- Para mantener la coherencia con las interfaces estándar (por ejemplo, los exploradores de archivos del sistema operativo), se han modificado las reglas del list box para la selección/arrastrar y soltar de líneas. Se puede arrastrar una selección continua o discontinua de líneas simplemente haciendo clic en una línea seleccionada y moviéndola; la tecla Alt ya no es necesaria (pero se puede seguir utilizando como en el caso anterior). Cuando se presiona la tecla Mayús o Ctrl/Comando, se tiene en cuenta el clic del ratón cuando éste está presionado. Para obtener más información sobre la función de arrastrar y soltar en los list boxes, puede consultar esta entrada del blog y descargar este proyecto HDI 4D.
- La numeración interna de 4D ha sido modificada a partir de 4D 19 R7:
- las versiones hasta la 4D 19 R6 (incluida) llevan el número 282xxx,
- las versiones a partir de 4D 19 R7 se numerarán 100xxx.
Tenga en cuenta que una versión específica de 4D sigue estando identificada unívocamente por un nombre de rama y un número de compilación. El número de build aumenta cronológicamente.
- Se ha eliminado la posibilidad de utilizar el protocolo Wakanda/4D Mobile REST para llamar a un método proyecto. Puedes usar funciones clase modelo de datos ORDA o /4DACTION urls.
4D 19 R6
- Nueva clase HTTPRequest.
- Las funciones Collection qur pueden llamar código ahora soportan objetos función como parámetro formula:
.every()
,.filter()
,.find()
,.findIndex()
,.map()
,.orderByMethod()
,.reduce()
,.some()
,.sort()
- Las celdas Listbox soportan relleno horizontal y vertical.
- 4D View Pro: nuevos comandos VP CREATE TABLE y VP REMOVE TABLE para manejar tablas en las hojas.
- Posibilidad de ver atributos relacionados, calculados y alias en el Explorador de datos web.
- Para que nuestros productos sean siempre mejores, ahora recogemos automáticamente los datos relativos a las estadísticas de uso de las aplicaciones 4D Server en funcionamiento. Esto no tendrá ningún impacto en el rendimiento. Consulte la nueva página que explica por qué y cómo 4D recopila datos.
- Componentes compilados para Silicon: en las plataformas macOS Silicon (CPU ARM de Apple), los componentes deben recompilarse con 4D 19 R6 o superior para poder utilizarse con esta versión.
4D 19 R5
- El archivo directory.json del proyecto ahora puede ser integrado en el servidor al momento de la generación, lo que le permite desplegar una aplicación cliente/servidor con una configuración básica de la seguridad de los usuarios y de los grupos.
- Ahora puede deseleccionar módulos inútiles en sus aplicaciones creadas.
- La librería MeCab se incluye por defecto en todas las aplicaciones 4D en macOS. En versiones anteriores, esta librería, diseñada específicamente para gestionar texto japonés, sólo estaba disponible en la versión japonesa de 4D en macOS. Si no necesita esta Si no necesita esta librería en sus aplicaciones finales, ahora puede deseleccionarla.en sus aplicaciones finales, ahora puede deseleccionarla.
- Optimización cliente/servidor: nuevas funciones clase permiten manejar la caché ORDA y el contenido de un contexto de optimización. Ver Preconfigurar contextos y Caché ORDA para más información.
Estas funciones están destinadas a los desarrolladores que necesitan personalizar las funciones por defecto de ORDA para las configuraciones específicas. En la mayoría de los casos, no será necesario utilizarlos.
- ClaseDataClass: la nueva función .getCount() devuelve el número de entidades de una clase de datos.
- El archivo 4DDiagnosticLog.txt sólo registra información de alto nivel por defecto (nivel INFO. Ahora puede seleccionar el nivel de información a registrar (por ejemplo, información de nivel DEBUG) utilizando el selector
Diagnostic log level
del comandoSET DATABASE PARAMETER
o el archivo de configuración de logs. - Llamar a
Use()
sobre un objeto no compartido o una colección no compartida no hace nada (ya no genera un error). Por lo tanto, ahora es inútil comprobar si el objeto o colección pasado a Use() es realmente compartido. - Para mayor claridad, se han antepuesto dos comandos SQL:
GET DATA SOURCE LIST
se ha renombrado comoSQL GET DATA SOURCE LIST
,Get current data source
se ha renombrado comoSQL Get current data source
. - 4D View Pro:
- Los nuevos comandos VP SET DATA CONTEXT, VP Get data context, VP SET BINDING PATH, VP Get binding path permiten crear contextos de datos y vincular su contenido a las celdas de la hoja.
- VP EXPORT DOCUMENT y VP Export to object aceptan ahora la nueva opción
includeBindingSource
que exporta el contenido de un contexto de datos como valores de celda. - (Sólo Windows) Las áreas de 4D View Pro utilizan ahora una nueva ventana de configuración de impresión.
- Áreas web:
- Nuevo motor de renderizado del sistema Windows: las áreas web que utilizan el motor de renderizado del sistema Windows se basan ahora en Microsoft Edge WebView2. Esto afecta a las siguientes funcionalidades:
- Los comandos
WA Create URL history menu
yWA GET URL HISTORY
sólo devuelven la URL actual.
- La variable de progresión ya no se actualiza.
- Las funciones de arrastrar y soltar se gestionan mediante una API de Windows que Microsoft califica de "experimental". En consecuencia, es posible que las áreas web no funcionen como se espera cuando esta API no está instalada: arrastrar y soltar puede parecer permitido incluso cuando la preferencia
WA enable URL drop
se ha definido en False. Sin embargo, la acción de soltar está bloqueada por defecto, y puede controlar las URLs permitidas utilizando el eventoOn Window Opening Denied
(ver más abajo).
- Los comandos
- (Sólo Windows) Cuando el usuario selecciona Imprimir... desde un área web que utiliza el motor de renderizado web anidado, ahora se muestra una nueva ventana de configuración de impresión.
- Para reflejar su efecto real en las áreas web (aumentar o disminuir el nivel de zoom de la página), se han renombrado dos comandos:
WA SET PAGE TEXT LARGER
ha pasado a llamarseWA ZOOM IN
,WA SET PAGE TEXT SMALLER
ha pasado a llamarseWA ZOOM OUT
. - Seguridad mejorada en áreas web que utilizan el motor de renderizado web anidado o el motor de renderizado del sistema Windows (basado en Microsoft Edge WebView2):
- Las políticas CORS ahora se aplican cuando se accede a archivos en disco en áreas web. Por ejemplo, al abrir un archivo .html con
WA OPEN URL
, ese archivo .html no puede contener enlaces que apunten a archivos fuera de su carpeta - Ahora, soltar contenidos externos en áreas web siempre está bloqueado y activa el evento
On Window Opening Denied
cuando la preferenciaWA enable URL drop
está en True (cuando está en False, la preferenciaWA enable URL drop
sólo modifica el icono del cursor de soltar y filtra el eventoOn Window Opening Denied
). Para permitir una acción de soltar, es necesario ejecutar código adicional en el método objeto del área web:
- Las políticas CORS ahora se aplican cuando se accede a archivos en disco en áreas web. Por ejemplo, al abrir un archivo .html con
- Nuevo motor de renderizado del sistema Windows: las áreas web que utilizan el motor de renderizado del sistema Windows se basan ahora en Microsoft Edge WebView2. Esto afecta a las siguientes funcionalidades:
WA OPEN URL(*;"WebArea";WA Get last filtered URL(*;"WebArea"))
4D 19 R4
- Los atributos Alias están disponibles en las clases ORDA.
- Soporte para las declaraciones break y continue en bucles.
- Soporte para la declaración return y la expresión return para retornar valores.
- Soporte para operadores de asignación compuesta, operadores de cortocircuito y operador ternario
- El editor de código ahora incluye una herramienta desplegable y soporta marcadores para una mejor navegación por el código.
- Nuevas Preferencias: Incluye tokens en los archivos fuente del proyecto y Mostrar portapapeles en la página Métodos.
- Nueva petición REST para bloquear/desbloquear entidades.
- 4D View Pro capítulo añadido con nuevos comandos: VP Copy to object, VP MOVE CELLS, [VP PASTE FROM OBJECT](../ViewPro/commands/vp-paste-from-obj
- Nueva clase SystemWorker.
- La constante
Alias selection
ha sido renombradaAllow alias files
para resolver un conflicto resultante del soporte de atributos alias en ORDA. - Para un mejor cumplimiento de las especificaciones ORDA, la propiedad de campo Asignar valores NULL a valores vacíos está ahora desmarcada por defecto en bases de datos creadas con 4D 19 R4 y superiores. También puede activar este comportamiento por defecto en sus bases de datos convertidas de versiones anteriores seleccionando la opción de compatibilidad Asignar valores NULL a valores vacíos desmarcada por defecto en la creación de campos. Ahora se recomienda trabajar con valores Null, ya que ORDA los soporta completamente.
- Debido al soporte del operador ternario, los dos puntos ":" ya no están permitidos en nombres de variables, campos, constantes, funciones, plugins y métodos proyecto. Si su base de datos/proyecto contiene identificadores con dos puntos, debe reemplazarlos antes de convertirla a 19 R4 o superior, de lo contrario pueden producirse errores en su código. Por ejemplo, si tiene una variable denominada a:b, podría interpretarse como sintaxis de operador ternario:
$value:=($size>1000)? a:b // Aquí 'a:b' se ve como un operador ternario.
4D 19 R3
- Las propiedades calculadas están disponibles en las clases.
- Los atributos calculados están disponibles en las clases ORDA. Son similares a las propiedades calculadas, pero también admiten las funciones query y orderBy.
- Nueva clase de datos ORDA attributes:
exposed
yreadOnly
. - Archivos ZIP ahora soporta algoritmos de compresión LZMA y xz.
- Una nueva opción de compilación facilita la inclusión de clientes Silicon Mac en aplicaciones Server en Windows.
- Extendido soporte del modo oscuro en macOS.
- Soporte del objeto token OAuth2 en
IMAP New transporter
,POP3 New transporter
ySMTP New transporter
. - Ahora los usuarios pueden cargar un archivo de configuración de registros mediante un botón de la ventana de administración del servidor.
- La gestión de los parámetros opcionales es más flexible en el lenguaje 4D cuando se accede a parámetros declarados pero no pasados. Por ejemplo, el siguiente código ya no provoca un error:
// Función "concate" de myClass
Function concate ($param1 : Text ; $param2 : Text)
ALERT($param1+" "+$param2)
// Método de llamada
$class:=cs.myClass.new()
$class.concate("Hello";" world") // Displays "Hello world"
$class.concate("Hello") // Displays "Hello "
$class.concate() // Displays " "
Para obtener información detallada, consulte esta entrada del blog. Para beneficiarse de esta simplificación general, es necesario recompilar tanto los métodos que llaman como los que son llamados; por lo tanto, los componentes deben recompilarse.
-
Depurar las sesiones del servidor web es más fácil en 4D Server.
-
El nuevo componente 4D NetKit permite conectarse a API de terceros, como Microsoft Graph.
-
4D 19 R3 utiliza un algoritmo hash más fuerte para las contraseñas de los usuarios 4D: Bcrypt. Este nuevo algoritmo se utiliza automáticamente cuando se cambia una contraseña utilizando la Caja de herramientas, el comando
CHANGE PASSWORD
o el comandoSet user properties
. Una vez modificada la contraseña, la apertura de la base de datos con una versión anterior a 4D 19 R3 provocará una denegación de autenticación para esta cuenta. Si utiliza contraseñas 4D, es muy recomendable hacer una copia de seguridad del archivo .4db (bases de datos binarias) o del archivo directory.json (proyectos) antes de actualizar a 4D 19 R3 o posterior. -
Para mayor precisión, la constante
4D digest
ha pasado a llamarse4D REST digest
. -
Gestión de fin de línea y lista de materiales para comandos XML: cuando se abren en 4D 19 R3, los proyectos o bases de datos creados con versiones anteriores se comportan de forma diferente en lo que respecta a los caracteres de fin de línea predeterminados y la gestión de la lista de materiales en documentos XML: se utilizan caracteres de salto de línea (LF) en lugar de CR (en macOS) y no se incluyen las marcas de orden de bytes (BOM). Esto permite una mejor compatibilidad con las herramientas VCS. Si es necesario, puede restaurar el comportamiento de 19 R2 utilizando el comando
XML SET OPTIONS
. En los proyectos o bases de datos convertidos desde releases anteriores a la 19 R2, estas opciones se gestionan mediante dos ajustes de compatibilidad. -
Se ha eliminado el acceso directo al Explorador de ejecución en los proyectos creados: el acceso directo Cmd/Ctrl+Mayús+F9 ya no muestra la ventana del Explorador de ejecución en aplicaciones de proyectos fusionados de un solo usuario. Este acceso directo ahora puede ser un acceso directo a una aplicación de usuario. Puede llamar a la ventana del Explorador de tiempo de ejecución utilizando el nuevo comando
OPEN RUNTIME EXPLORER
. -
Capacidades de depuración extendidas con 4D Server: en modo interpretado, 4D Server puede ahora depurar todo tipo de procesos, incluidas las sesiones web escalables. Está disponible cuando el depurador está conectado al servidor o a un cliente remoto.
Atención: en modo interpretado, para que la depuración extendida esté disponible en la máquina servidor, todos los procesos del servidor se ejecutan ahora automáticamente en modo cooperativo cuando el depurador está conectado al servidor (configuración por defecto). Esto puede tener un impacto significativo en el rendimiento de sus aplicaciones convertidas cuando se ejecutan con 4D Server 19 R3 y superiores. Para restaurar la ejecución preferente en el servidor en este caso, todo lo que tiene que hacer es desconectar el depurador del servidor (y conectarlo a un cliente remoto si es necesario). -
En Windows, los proyectos 4D y las bases de datos creadas con 4D 19 R3 y superiores utilizan la API DirectWrite en los formularios. Esta API mejora el renderizado de texto, especialmente en configuraciones de alto DPI. DirectWrite se utiliza para la representación de texto con texto estático y de entrada, casillas de verificación, botones y botones radio. Tenga en cuenta que los listboxes ya utilizan DirectWrite. Una opción de compatibilidad permite activar DirectWrite en proyectos y bases de datos creados con versiones anteriores de 4D.
-
Si utiliza componentes compilados con 4D 19.0 para Silicon (CPUs Apple ARM) que llaman al comando
Count parameters
, le recomendamos recompilarlos con 4D 19 R3 para ofrecer compatibilidad con 4D 19 R3 y futuras versiones. Si un componente no está compilado para Silicon, no es necesario volver a compilarlo.
4D 19 R2
- A default .gitignore file can be created with new projects
- Nueva API clase Blob para manejar nuevos objetos
4D.Blob
- compatibilidad con
no-bom
y nuevos caracteres de fin de línea por defecto en.setText()
Lanzamientos anteriores
Haga clic para ver las notas de las versiones anteriores
4D 19
Si sus aplicaciones 4D utilizan conexiones TLS, se recomienda actualizar a 4D 19.7 LTS build 288986 o superior. Para más información, consulte este Boletín de seguridad.
- Clase IMAPTransporter: nuevas funciones
.createBox()
,.deleteBox()
,.renameBox()
,.subscribe()
, y.unsubscribe()
. - Clase File: nuevas funciones
setAppInfo()
ygetAppInfo()
. - Nueva etiqueta de transformación 4DEACH.
- Servidor Web: nueva configuración cookie de sesión SameSite.
- Esquemas de color claros y oscuros para formularios y hojas de estilo
- Nuevos temas oscuros y claros por defecto en Preferencias del editor de código.
- Compilación nativa para procesadores Silicon.
- La propiedad Cálculo de variables ahora es compatible con las columnas list box de la selección de entidades.
- Nueva página [CLI]completa (../Admin/cli.md).
4D 18 R6
- Clase Entity Selection: las funciones
.average()
,.max()
y.min()
ahora devuelven undefined si la selección de entidades está vacía. - IMAP Mail, POP3 Mail and SMTP Mail: la propiedad
authenticationMode
activa OAuth 2.0 - IMAP Mail: nuevas funciones
.expunge()
y.append()
- Nuevo componente de servidor web WebAdmin
- Nueva interfaz ExploradorDatos
- Nueva web sesiones de usuario y su API.
Tabla de librerías
Librería | Versión actual | Actualizado en 4D | Comentario |
---|---|---|---|
ICU | 73.2 | 20.1 | Esta importante actualización obliga a reconstruir automáticamente los índices alfanuméricos, texto y objeto. |
CEF | 121 | 20 R5 | Chromium 6167 |
Hunspell | 1.7.2 | 20 | Utilizado para la corrección ortográfica en formularios 4D y 4D Write Pro |
PDFWriter | 4.3 | 20 | Dependencia FreeType en 12.2.1 |
SpreadJS | 16.2.6 | 20 R4 | Motor 4D View Pro |
OpenSSL | 3.2.0 | 20 R4 | Se ha actualizado el nivel de seguridad TLS/SSL por defecto. Ver Cambios de comportamiento para la versión 20 R4 |
libZip | 1.9.2 | 20 | Utilizado por los componentes zip class, 4D Write Pro, svg y serverNet |
LZMA | 5.4.1 | 20 | |
Zlib | 1.2.13 | 20 | |
webKit | WKWebView | 19 | |
PHP | 8.2.4 | 20 | |
libldap | 2.6.4 | 20 R3 | |
libsasl | 2.1.28 | 20 |