Saltar al contenido principal
Versión: 20 R5 BETA

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

Cambios de comportamiento

  • The plug-ins 4D Internet Commands and 4D for OCI are no longer included in 4D installers. To get these plug-ins, you need to connect to the 4D Product Download portal.
  • Changes made in the Structure editor regarding graphical appearance of tables and fields (color, position, order...) are now saved in a separate file named catalog_editor.json stored in the project's Sources folder.

4D 20 R4

Read What’s new in 4D 20 R4, the blog post that lists all new features and enhancements in 4D 20 R4.

Destacados

Cambios de comportamiento

  • El uso de una sintaxis heredada para declarar parámetros (por ejemplo, C_TEXT($1) o var $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.
  • In order to allow password verification when the 4D user directory uses the bcrypt algorithm, the "password" value in the connectionInfo parameter of the Open datastore command is now sent in clear form by default. Make sure your "On REST authentication" database method can handle passwords in clear form (third parameter is then False) and that Open datastore encrypts your connection by passing the "tls" option to True in connectionInfo. In specific cases, a new "passwordAlgorithm" option can also be used for compatibility (see Open datastore command).

4D 20 R3

Read What’s new in 4D 20 R3, the blog post that lists all new features and enhancements in 4D 20 R3.

Destacados

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

Read What’s new in 4D 20 R2, the blog post that lists all new features and enhancements in 4D 20 R2.

Nota de seguridad

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

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

Read What’s new in 4D 20, the blog post that lists all new features and enhancements in 4D 20.

Minimal client version for 4D Server 20.2 and later

For internal reasons, the version of remote clients connecting to 4D Server 20.2 and later must be at least 4D 20.2.

Nota de seguridad

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 index rebuild and client/server versions

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.
  • Because of sorting consistency, it requires that 4D remote clients and 4D Server use the same version: only remote 4D 20.1 can connect to 4D Server v20.1 and vice versa.

Destacados

Cambios de comportamiento

  • As of 20.3, in order to allow password verification when the 4D user directory uses the bcrypt algorithm, the "password" value in the connectionInfo parameter of the Open datastore command is now sent in clear form by default. Make sure your "On REST authentication" database method can handle passwords in clear form (third parameter is then False) and that Open datastore encrypts your connection by passing the "tls" option to True in connectionInfo. In specific cases, a new "passwordAlgorithm" option can also be used for compatibility (see Open datastore command).
  • As of 20.2, 4D 20 LTS is no longer compatible with 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 propiedad HTTPRequestClass.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 con SET 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 y Object type 3D radio button son devueltos por OBJECT Get type para estos objetos.
  • As of 4D 20, 4D for Mobile is no longer installed by default in the 4D environment. 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

Read What’s new in 4D 19 R8, the blog post that lists all new features and enhancements in 4D 19 R8.

Destacados

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 propiedad HTTPRequestClass.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 como alert() o print() ya no son gestionados por el SO sino por el área Web. Ver WA Evaluate JavaScript y WA EXECUTE JAVASCRIPT.

4D 19 R7

Read What’s new in 4D 19 R7, the blog post that lists all new features and enhancements in 4D 19 R7.

Destacados

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

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 comando SET 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 como SQL GET DATA SOURCE LIST, Get current data source se ha renombrado como SQL Get current data source.
  • 4D View Pro:
  • Á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 y WA 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 evento On Window Opening Denied (ver más abajo).
    • (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 llamarse WA ZOOM IN, WA SET PAGE TEXT SMALLER ha pasado a llamarse WA 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 preferencia WA enable URL drop está en True (cuando está en False, la preferencia WA enable URL drop sólo modifica el icono del cursor de soltar y filtra el evento On Window Opening Denied). Para permitir una acción de soltar, es necesario ejecutar código adicional en el método objeto del área web:
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 renombrada Allow alias files para resolver un conflicto resultante del soporte de atributos alias en ORDA.
  • For better compliance with ORDA specifications, the Map NULL values to blank values field property is now unchecked by default in databases created with 4D 19 R4 and higher. 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. If your database/project contains identifiers with colons, you must replace them before converting it to 4D 19 R4 or higher, otherwise errors may occur in your code. 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

// 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 comando Set user properties. Once a password is modified, opening the database with a version prior to 4D 19 R3 will cause an authentication denial for this account. If you use 4D passwords, it is highly recommended to backup the .4db file (binary databases) or directory.json file (projects) before upgrading to 4D 19 R3 or later.

  • Para mayor precisión, la constante 4D digest ha pasado a llamarse 4D REST digest.

  • End-of-line and BOM management for XML commands: When opened in 4D 19 R3, projects or databases created with previous releases behave differently regarding default end-of-line characters and BOM management in XML documents: line feed (LF) characters are used instead of CR (on macOS), and byte order marks (BOM) are not included. Esto permite una mejor compatibilidad con las herramientas VCS. If necessary, you can restore the 4D 19 R2 behavior using the XML SET OPTIONS command. In projects or databases converted from releases prior to 19 R2, these options are managed by two compatibility settings.

  • 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). This can have a significant impact on the performance of your converted applications when they run with 4D Server 19 R3 and higher. 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).

  • On Windows, 4D projects and databases created with 4D 19 R3 and higher use the DirectWrite API in forms. 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.

  • If you use components compiled with 4D 19.0 for Silicon (Apple ARM CPUs) which call the Count parameters command, we recommend to recompile them with 4D 19 R3 to provide compatibility with 4D 19 R3 and future releases. Si un componente no está compilado para Silicon, no es necesario volver a compilarlo.

4D 19 R2

Lanzamientos anteriores

Haga clic para ver las notas de las versiones anteriores

4D 19

Nota de seguridad

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.

4D 18 R6

Tabla de librerías

LibreríaVersión actualActualizado en 4DComentario
ICU73.220.1Esta importante actualización obliga a reconstruir automáticamente los índices alfanuméricos, texto y objeto.
CEF12120 R5Chromium 6167
Hunspell1.7.220Utilizado para la corrección ortográfica en formularios 4D y 4D Write Pro
PDFWriter4.320Dependencia FreeType en 12.2.1
SpreadJS16.2.620 R4Motor 4D View Pro
OpenSSL3.2.020 R4Se ha actualizado el nivel de seguridad TLS/SSL por defecto. Ver Cambios de comportamiento para la versión 20 R4
libZip1.9.220Utilizado por los componentes zip class, 4D Write Pro, svg y serverNet
LZMA5.4.120
Zlib1.2.1320
webKitWKWebView19
PHP8.2.420
libldap2.6.420 R3
libsasl2.1.2820