Saltar al contenido principal
Versión: 20

Notas del lanzamiento

tip

Lea las novedades de 4D 20, la entrada del blog que lista todas las nuevas funcionalidades y mejoras en 4D 20.x LTS.

4D 20.5 LTS

Lo más destacado

  • 4D 20.5 LTS está certificado en Windows 11 24H2.
  • 4D 20.5 LTS está certificado en macOS Sequoia (macOS 15).
Problema conocido en Windows 11 24H2

En Windows 11 24H2, la generación de archivos pdf mediante el driver Microsoft Print to PDF puede fallar debido a un problema que aún se está investigando. Si imprime con frecuencia archivos PDF con su aplicación 4D, le recomendamos que no actualice a Windows 11 24H2.

4D 20.4 LTS

Lo más destacado

4D 20.3 LTS

Lo más destacado

  • CEF actualizado a Chromium 5993
  • SpreadJS actualizado a la versión 16.2.6 (en 4D 20.2 HF1).
  • Lista de bugs corregidos: lista de todos los bugs corregidos en 4D 20.3 LTS.

Cambios de comportamiento

  • A partir de 20.3, para permitir la verificación de contraseña cuando el directorio de usuario 4D utiliza el algoritmo bcrypt, el valor "contraseña" en el parámetro connectionInfo del comando Open datastore ahora se envía de forma clara por defecto. Asegúrese de que su método base "On REST autentication" puede manejar contraseñas de forma limpia (el tercer parámetro es entonces False) y que Open 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 la compatibilidad (ver Open datastore).

4D 20.2 LTS

Lo más destacado

  • 4D 20.2 está certificado en macOS Sonoma (macOS 14).

:::advertencia 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.

:::

Versión mínima del cliente para 4D Server 20.2 y posterior

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.

Cambios de comportamiento

  • 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 se ha definido incorrectamente en 1 en lugar de 0. Se ha realizado una corrección en 4D a partir de las versiones 20.2 (20.1 HF1) y 20 R2 y el valor es ahora 0.

4D 20.1 LTS

Lo más destacado

4D 20.1 reconstrucción de índices y versiones cliente/servidor

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: solo los clientes remotos 4D 20.1 pueden conectarse al servidor 4D 20.1 y viceversa.

4D 20 LTS

Lo más destacado

Reconstrucción de los índices

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.

Cambios de comportamiento

  • Para el cumplimiento con la RFC HTTP, la propiedad HTTPRequestClass.response.headers devuelve ahora todos los nombres de encabezados 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 versión en 4D Server. La versión 1.3 se selecciona ahora por defecto y se utiliza automáticamente si se definen las constantes _o_TLSv1_0 o _o_TLSv1_1 con SET DATABASE PARAMETER.
  • Por consistencia, todos los botones, casillas de selección y botones de opción se representan ahora con un tipo "3D" en tiempo de ejecución: Object type 3D button, Object type 3D checkbox y Object type 3D radio button son devueltos por OBJECT Get type para estos objetos.
  • A partir de 4D 20, 4D for Mobile ya no se instala 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 funciones del componente 4D Mobile App Server, asegúrese de instalarlo también en la carpeta "Componentes" del proyecto.

4D 19 R8

Lea las novedades de 4D 19 R8, la entrada del blog que lista todas las nuevas funcionalidades y mejoras en 4D 19 R8.

Lo más destacado

Cambios de comportamiento

  • Para el cumplimiento con la RFC HTTP, la propiedad HTTPRequestClass.response.headers devuelve ahora todos los nombres de encabezados en minúsculas. Si desea que su código siga funcionando como antes, utilice la nueva propiedad HTTPRequestClass.response.rawHeaders.
  • Cuando a un botón de bisel con menú emergente vinculado se le asigna una acción estándar, ésta 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() JS. Esto se debe a las actualizaciones actuales 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

Lea las novedades de 4D 19 R7, la entrada del blog que enumera todas las nuevas funcionalidades y mejoras en 4D 19 R7.

Lo más destacado

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 más información sobre arrastrar y soltar en list box, 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 4D específica sigue estando identificada de forma única 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. En su lugar, puede utilizar funciones de clase del modelo de datos ORDA o las urls /4DACTION.

4D 19 R6

  • Nueva clase HTTPRequest.
  • Las funciones de colección que pueden llamar a código ahora soportan objetos función como parámetro formula: .every(), .filter(), .find(), .findIndex(), .map(), .orderByMethod(), .reduce(), .some(), .sort()
  • Las celdas listbox soportan el espacio horizontal y vertical.
  • 4D View Pro: nuevos comandos VP CREATE TABLE y VP REMOVE TABLE para manejar tablas en las hojas.
  • Posibilidad de ver los 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 en la que se 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 al 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 los módulos inútiles en sus aplicaciones generadas.

  • 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 librería 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 Preconfiguración de 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.

  • Clase DataClass: la nueva función .getCount() devuelve el número de entidades de una dataclass.

  • El archivo 4DDiagnosticLog.txt sólo registra información de alto nivel por defecto (nivel INFO. Ahora puede seleccionar el nivel de información que desea 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 del registro.

  • 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 a SQL GET DATA SOURCE LIST, Get current data source se ha renombrado a 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 establecido 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 ha cambiado el nombre de 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 integrado 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á establecida en True (cuando está establecida 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

  • Atributos Alias están disponibles en las clases ORDA.
  • Soporte para las instrucciones break y continue en los bucles.
  • Soporte a la instrucción return y la return expression para devolver los valores.
  • Soporte para operadores de asignación compuesta, operadores de cortocircuitosy 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: Incluir tokens en los archivos fuente del proyecto y Mostrar portapapeles en la página Métodos.
  • Nueva petición REST para las entidades lock/unlock.
  • 4D View Pro capítulo añadido con nuevos comandos: VP Copy to object, VP MOVE CELLS, VP PASTE FROM OBJECT.
  • Nueva clase SystemWorker.
  • La constante Alias selection ha pasado a llamarse Allow alias files para resolver un conflicto derivado del soporte de atributos de 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 a la compatibilidad con el operador ternario, ya no se permiten los dos puntos ":" en los 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 v19 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 considera 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.

  • La depuración de las sesiones de servidor web es más fácil en 4D Server.

  • El nuevo componente 4D NetKit permite conectar con APIs 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. 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 denominarse 4D 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 v19 R2 utilizando el comando XML SET OPTIONS. En los proyectos o bases de datos convertidos desde versiones 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 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 el modo interpretado, para que la depuración extendida esté disponible en la máquina del servidor, todos los procesos del servidor se ejecutan ahora automáticamente en modo cooperativo cuando el depurador está conectado al servidor (configuración predeterminada). Esto puede tener un impacto significativo en el rendimiento de sus aplicaciones convertidas cuando se ejecutan con 4D Server v19 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

4D 19.x LTS

Ver Notas de la versión de 4D 19.x LTS.

Tabla de librerías (4D v20 LTS)

LibreríaVersión actualActualizado en 4DComentario
ICU73.220.1Esta importante actualización obliga a reconstruir automáticamente los índices alfanuméricos, texto y objeto.
CEF11820.3Chromium 5993
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.2 HF1Motor 4D View Pro
16.0.420
OpenSSL3.1.620.4 HF2
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
libsasl2.1.2820