Durante el ciclo R-release, se actualizan varias librería y componentes utilizados por 4D, se modifican los comportamientos existentes y se registran los problemas conocidos. Esta información, publicada inicialmente a través de las "Notas del lanzamiento" de cada versión, se resume en esta página.
4D v18 R6 incluye una actualización de la librería ICU (ver abajo) que forzará una reconstrucción automática de los índices de tipo alfa, texto y objeto. Dependiendo del tamaño del archivo de datos, esta operación puede llevar un tiempo y puede requerir ser planificada.
Si utiliza componentes compilados con 4D v19.0 for Silicon (CPUs ARM de Apple) que llaman al comando Count parameters, recomendamos recompilarlos con 4D v19.1 (o v19 R3) para ofrecer compatibilidad con 4D v19 R3 y futuras versiones. Si un componente no está compilado para Silicon, no es necesario recompilarlo.
El compilador 4D ha sido actualizado en 4D v19, con las siguientes consecuencias:
Si quiere utilizar una versión compilada de un proyecto v18 Rx con 4D v19 o superior, debe recompilar previamente el proyecto con 4D v19.
La notación de puntos y los métodos de guardado en Unicode son ahora obligatorios para compilar una base de datos. Al intentar compilar la base de datos con una de estas opciones desactivada, se genera un error de compilación. Las opciones correspondientes deben estar activadas en el Página Compatibilidad de la Configuración.
En Windows, la creación de una aplicación cliente/servidor que active las actualizaciones automáticas para los clientes macOS requiere ahora que se seleccione un archivo .4darchive previamente generado del lado de macOS.
4D v19 es la primera versión binaria universal de 4D en macOS. Un binario universal no se diferencia de una aplicación normal, pero su archivo ejecutable contiene dos versiones: una versión se ejecuta de forma nativa en Apple silicon, y la otra se ejecuta de forma nativa en los ordenadores Mac basados en Intel.
El atributo SameSite de las cookies de sesión web escalares está configurado por defecto como "Strict" a partir de 4D v19 (la configuración más segura). En versiones anteriores, este atributo no era definido por el servidor web; por lo tanto, los navegadores utilizaban una configuración "Lax" por defecto. Ver developer.4d.com para más información.
4D v19 y superiores incluyen modificaciones internas relativas a las funcionalidades de encriptación. Como resultado, un archivo de datos encriptado con 4D v19 o superior utilizando un comando como Encrypt data file o el CSM no puede ser reabierto utilizando una versión anterior (excepto 4D v18.5 que incluye las modificaciones).
Nota: el cifrado también se activa con las operaciones de compactación o reparación.
Sin embargo, aún será posible reabrir el archivo de datos utilizando una versión anterior de 4D eliminando previamente el cifrado en 4D v19.x.
Sólo se trata de archivos de datos encriptados. Si no se utiliza la encriptación, el archivo de datos puede reabrirse como de costumbre.
Por consistencia, la propiedad MailAttachment.path ahora devuelve la ruta del archivo adjunto con una sintaxis POSIX. Utilice la nueva propiedad MailAttachment.platformPath para obtener la ruta del archivo adjunto con una sintaxis de plataforma.
Para una mejor claridad y para promover la arquitectura basada en proyectos en nuevos desarrollos, la terminología general se ha actualizado en 4D y se ha simplificado la interfaz:
El término genérico "base de datos" ha sido reemplazado por "proyecto" en todas las aplicaciones 4D.
Por defecto, solo se propone la opción Nuevo > Proyecto... en el menú Archivo/botón de la barra de herramientas Nuevo.
La capacidad de crear bases binarias a través del menú Archivo o el botón de la barra de herramientas Nueva todavía es soportada, pero debe habilitarse explícitamente en las Preferencias utilizando la opción Activar la creación de bases en binario.
Para ser consistentes con las funciones de colección, las funciones entitySelection.min( ), entitySelection.max( ) y entitySelection.average( ) ahora devuelven Undefined cuando se aplican a la selección de entidades vacías. En las versiones anteriores a la v18 R6, devolvían Null en este caso.
A partir de 4D v18 R5, las funciones de la clase modelo de datos ORDA existentes (introducidas en 4D v18 R4) pasan a no estar automáticamente expuestas a las peticiones REST por defecto. Se debe declarar explícitamente cada función que se desea que esté disponible de las solicitudes REST como expuesta. Ver la documentación de las clases modelo de datos en developer.4d.com.
A partir de 4D v18 R5, los objetos de selección de entidades pueden ser compartidos entre procesos para mayor flexibilidad y escalabilidad. Dependiendo de como son creadas, algunas selecciones de entidades pueden volverse compartibles en su aplicación (ver Selecciones de entidades compartibles vs. modificables).
Una selección de entidades compartible no acepta la adición de nuevas entidades. Como consecuencia, las llamadas a entitySelection.add( ) podrían generar errores en su código existente. En este caso, para restaurar una ejecución sin errores, puede:
"forzar" todas las selecciones de entidades nuevas para que sean modificables de forma predeterminada en su proyecto mediante la función dataStore.makeSelectionsAlterable( ).
Cuando ejecuta una restauración manual de un archivo de copia de seguridad, todo contenido relacionado con el archivo de datos (archivos y carpeta de configuración) ahora se restaura automáticamente en una subcarpeta Datos creada dentro de la carpeta de destino.
Las llaves XML de Backup / Base ya no están disponibles en el archivo "backup.4DSettings" (DatabaseName, LastBackupPath, LastBackupLogPath, CurrentBackupSet, LastBackupDate, LastBackupTime). La información y los informes sobre la última operación de copia de seguridad se encuentran ahora en el archivo "backupHistory.json".
El puerto 19815 del servidor ahora es utilizado automáticamente por 4D Server cuando el depurador remoto está activo (número de puerto por defecto). Para más información, consulte la sección 4D Server y los números de puerto.
A partir de 4D v18 R6, los eventos On Clicked y On Double Clicked se generan cuando se produce un clic en una celda de entrada de texto mientras se está editando la celda. Esta funcionalidad permite mostrar menús emergentes después de un Contextual click por ejemplo. El evento se genera en la columna y en el objeto list box (en ese orden).
En versiones anteriores, estos eventos sólo podían generarse para celdas de entrada de texto cuando no estaban en edición. Para evitar efectos inesperados en las interfaces existentes, puede añadir la siguiente prueba en su código:
//Objeto List box o método columna list box If(FORM Event.code=On Clicked) //o On Double Clicked If(Not(Is editing text)) //prueba agregada //código anterior End if End if
A partir de 4D v18 R4, las funcionalidades avanzadas de list box están disponibles para todos los usuarios de 4D de forma gratuita (anteriormente requerían una licencia 4D View Pro). Estas funcionalidades incluyen:
Estos comandos han sido actualizados en 4D v18 R4. Algunos comportamientos no documentados han sido modificados, lo que podría traer problemas de compatibilidad en las aplicaciones existentes.
Ambos comandos se usaron para modificar la variable del sistema OK; ya no definen esta variable.
En caso de un formato Base64 inválido, BASE64 DECODE llamado en un parámetro blob único dejaba el blob intacto. Ahora devuelve un blob vacío.
Siguiendo las recomendaciones de Apple, 4D ahora entrega 4D Volume Desktop y plug-ins firmados y notariados. En consecuencia, firmar sus aplicaciones en macOS se convierte en obligatorio, de lo contrario el proceso de creación producirá paquetes con firmas rotas. La opción Firmar aplicación está marcada de manera predeterminada en el cuadro de diálogo Crear aplicación. Los desarrolladores que no tienen un certificado de distribución deben utilizar un certificado autofirmado (se ha agregado un botón Generar certificado autofirmado en el cuadro de diálogo Crear aplicación para facilitar las cosas).
Además, ya no es posible crear una aplicación cliente macOS directamente en la plataforma Windows. Debe compilar el archivo macOS en una Mac y copiarlo al paquete final.
Nota: 4D ahora controla que la estructura de los plug-ins y aplicaciones de terceros cumpla con los últimos requisitos de Apple (actualizados en febrero de 2020) durante el paso de firma. Por lo tanto, incluso un antiguo elemento notariado podría ser rechazado por 4D. Esto ahorrará tiempo ya que toda la notarización fallaría eventualmente. En este caso, es posible que deba ponerse en contacto con el proveedor del plug-in o de la aplicación para obtener una versión actualizada.
En las aplicaciones proyecto, cuando 4D se conecta a un servidor 4D en la misma máquina, 4D utiliza ahora sus propios componentes y complementos internos en lugar de los del servidor 4D (los complementos del servidor no se "descargan" en la aplicación 4D en este contexto). Tenga en cuenta que ya no se recomienda instalar complementos o componentes a nivel de la aplicación del servidor 4D o del 4D. Para más información, consulte esta sección.
El plug-in 4D Internet Commands ya no está instalado por defecto en 4D a partir de 4D v19. Debe ser explícitamente seleccionado/descargado e instalado en la carpeta Plugins de su base de datos si aún lo utiliza. Para más información, consulte Instalación y requerimientos de software.
Como se indica en la página Nuevo sitio Web de documentación, la documentación de 4D se está trasladando a la plataforma developer.4d.com/docs. Además de los nuevos contenidos, el nuevo sitio Web también se llena progresivamente con material actualizado de doc.4d.com.
Para evitar confusiones, hemos empezado a eliminar las secciones de doc.4d.com que ya han sido actualizadas y migradas a developer.4d.com. Las secciones eliminadas ahora muestran una redirección al nuevo sitio web, por ejempl
Al importar documentos del plug-in 4D Write antiguos, Write Pro 4D utiliza ahora por defecto el separador del sistema (devuelto por GET SYSTEM FORMAT) como separador de decimales para las tabulaciones decimales. Puede cambiar este parámetro utilizando el comando WP SET ATTRIBUTES.
A partir de 4D Write Pro v18 R2, los métodos y comandos ya no se filtran en las fórmulas: 4D Write Pro ahora soporta fórmulas como objetos en lugar de como cadenas. Las fórmulas creadas pueden ser insertadas y calculadas, incluso si llaman a métodos, no "autorizados". Las siguientes funcionalidades de filtrado 4D ahora se ignoran para la evaluación de la fórmula 4D Write Pro:
La opción Filtrado de los comandos y métodos de proyecto... de la página "Seguridad" del cuadro de diálogo Propiedades de la base
En versiones anteriores, el comando ST FREEZE EXPRESSIONS siempre calculaba expresiones antes de ejecutarlas en documentos 4D Write Pro. A partir de 4D v18 R2, solo calcula expresiones si aún no se calcularon (excepto si se utilizó el parámetro *).
A partir de 4D v18 R2, los archivos de la librería Oracle deben instalarse en /usr/local/lib (no se admite ninguna otra ubicación). Ver también la página 4D para OCI Parámetros OCI.