Saltar para o conteúdo principal
Version: v20 BETA

Notas de Lançamento

4D v19.6

See the previous Release notes on

Aviso de reconstrução do índice

4D v20 inclui uma atualização da biblioteca da UCI (ver abaixo) que forçará uma reconstrução automática de índices do tipo alfa, texto e objeto. Dependendo do tamanho do ficheiro de dados, esta operação pode demorar algum tempo e pode necessitar de ser planeada.


Mudanças de comportamento

  • Para conformidade com HTTP RFC, HTTPRequestClass.response.headers propriedade devolve agora todos os nomes de cabeçalho em minúsculas. Se quiser que o seu código continue a funcionar como antes, utilize a nova propriedade HTTPRequestClass.response.rawHeaders.
  • TLS certificates are now automatically validated by 4D when sending HTTP requests with, and rejected with an error if they are invalid. A new option property allows you to control this validation.

4D v19.5

4D v19.5 é certificado em macOS Ventura (macOS 13)


Mudanças de comportamento

  • Para conformidade com HTTP RFC, HTTPRequestClass.response.headers propriedade devolve agora todos os nomes de cabeçalho em minúsculas. Se quiser que o seu código continue a funcionar como antes, utilize a nova propriedade HTTPRequestClass.response.rawHeaders.
  • When a bevel button with linked pop-up menu is assigned a standard action, the standard action is no longer generated if a pop-up menu option is selected.
  • In Web areas using blink (CEF), dialogs displayed from external scripts are now blocking if not called from a setTimeout() JS function. This is due to the current CEF updates, in which dialogs displayed by functions such as alert() or print() are no longer handled by the OS but by the Web area. See WA Evaluate JavaScript and WA EXECUTE JAVASCRIPT.

4D v19 R7

Leia O que há de novo em 4D v19, o post do blog que lista todas as novas funcionalidades e melhorias em 4D v19 LTS.


Mudanças de comportamento

  • For consistency with standard interfaces (e.g. OS file explorers), list box rules for row selection/drag and drop have been modified. A continuous or discontinuous selection of rows can be dragged by simply clicking on and moving a selected row; the Alt key is not longer necessary (but can still be used like in previous previous). When the Shift or Ctrl/Command key is pressed, a mouse click is taken into account when the click is down. For more information on drag and drop in list boxes, you can refer to this blog post and download this HDI 4D project.
  • The 4D internal build numbering has been modified as of 4D v19 R7:
    • releases up to 4D v19 R6 (included) are numbered 282xxx,
    • releases from 4D v19 R7 will be numbered 100xxx.
      Note that a specific 4D version is still uniquely identified by a branch name and a build number. The build number increases chronologically.
  • The ability to use Wakanda/4D Mobile REST protocol to call a project method has been removed. You can use ORDA data model class functions or /4DACTION urls instead.

4D v19.5 é certificado no Windows 11 22H2

4D v19 R5

  • The project directory.json file can now be embedded in the server at build time, allowing you to deploy a client/server application with a basic security user and group configuration.

  • You can now deselect useless modules in your built applications.

  • The MeCab library is included by default in all 4D applications on macOS. In previous releases, this library, specifically designed to manage Japanese text, was only available in the Japanese version of 4D on macOS. If you do not need this library in your final applications, you can now deselect it.

  • Client/Server optimization: New class functions allow you to handle the ORDA cache and the contents of an optimization context. See Preconfiguring contexts and ORDA Cache for more information.

    These functions are intended for developers who need to customize ORDA default features for specific configurations. In most cases, you will not need to use them.

  • DataClass class: The new .getCount() function returns the number of entities in a dataclass.

  • The 4DDiagnosticLog.txt file only records high-level information by default (INFO level. You can now select the information level to record (for example DEBUG level information) using the Diagnostic log level selector of the SET DATABASE PARAMETER command or the log configuration file.

  • Calling Use() on a non-shared object or a non-shared collection does nothing (it no longer generates an error). Thus, it is now useless to test if the object or collection passed to Use() is actually shared.

  • For clarification purposes, two SQL commands have been prefixed: GET DATA SOURCE LIST has been renamed to SQL GET DATA SOURCE LIST, Get current data source has been renamed to SQL Get current data source.

  • 4D View Pro:

  • Web areas:

    • New Windows system rendering engine: Web Areas using the Windows system rendering engine are now based upon Microsoft Edge WebView2. This impacts the following features:
      • The WA Create URL history menu and WA GET URL HISTORY commands only return the current URL.
      • The Progression variable is no longer updated.
      • Drag and drop features are handled by a Windows API which is tagged "experimental" by Microsoft. Consequently, web areas may not work as expected when this API is not installed: Drag and drop may seem allowed even when the WA enable URL drop preference has been set to False. However, the drop action is blocked by default, and you can control the allowed URLs using the On Window Opening Denied event (see below).
    • (Windows only) When the user selects Print... from a web area using the embedded web rendering engine, a new print settings window is now displayed.
    • To reflect their actual effect in web areas (increase or decrease page zoom level), two commands have been renamed: WA SET PAGE TEXT LARGER has been renamed WA ZOOM IN, WA SET PAGE TEXT SMALLER has been renamed WA ZOOM OUT.
    • Enhanced security in web areas that use the embedded web rendering engine or the Windows system rendering engine (based on Microsoft Edge WebView2):
      • CORS policies now apply when accessing files on disk in web areas. For example, when opening a .html file with WA OPEN URL, that .html file cannot contain links that point to files outside its folder
      • Dropping external contents in web areas is now always blocked and triggers the On Window Opening Denied event when the WA enable URL drop preference is set to True (when set to False, the WA enable URL drop preference only modifies the drop cursor icon and filters the On Window Opening Denied event). To allow a drop action, you need to execute additional code in the object method of the web area:
WA OPEN URL(*;"WebArea";WA Get last filtered URL(*;"WebArea"))

4D v19 R4

  • Alias attributes are available in ORDA classes.
  • Support for break and continue statements in loops.
  • Support for return statement and return expression to return values.
  • Support for compound assignment operators, short-circuit operators, and ternary operator
  • The Code Editor now includes an dropdown tool and supports markers for better code navigation.
  • New Preferences: Include tokens in project source files and Show clipboards option on the Methods page.
  • New REST request to lock/unlock entities.
  • 4D View Pro chapter added with new commands: VP Copy to object, VP MOVE CELLS, VP PASTE FROM OBJECT.
  • New SystemWorker class.
  • The Alias selection constant has been renamed Allow alias files to resolve a conflict resulting from the support of alias attributes in 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 v19 R4 and higher. You can also enable this default behavior in your databases converted from previous versions by selecting the Map NULL values to blank values unchecked by default at field creation compatibility setting. Working with Null values is now recommended since they are fully supported by ORDA.
  • Because of the support of the ternary operator, the colon ":" is no longer allowed in variable, field, constant, function, plugin and project method names. If your database/project contains identifiers with colons, you must replace them before converting it to v19 R4 or higher, otherwise errors may occur in your code. For example, if you have a variable named a:b, it could be interpreted as ternary operator syntax:
$value:=($size>1000)? a:b // Here 'a:b' is viewed as a ternary operator.

4D v19 R3

// "concate" function of myClass Function concate ($param1 : Text ; $param2 : Text)
ALERT($param1+" "+$param2)
// Calling method
$class.concate("Hello";" world") // Displays "Hello world"
$class.concate("Hello") // Displays "Hello "
$class.concate() // Displays " "

For detailed information, please refer to this blog post. To benefit from this overall simplification, you need to recompile both calling and called methods; thus components must be recompiled.

  • Debugging web server sessions is easier on 4D Server.

  • The new 4D NetKit component allows you to connect to third-party APIs such as Microsoft Graph.

  • 4D v19 R3 uses a stronger hashing algorithm for 4D user passwords: Bcrypt. This new algorithm is automatically used when a password is changed using the Tool Box, the CHANGE PASSWORD command, or the Set user properties command. Once a password is modified, opening the database with a version prior to 4D v19 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 v19 R3 or later.

  • For accuracy, the 4D digest constant has been renamed 4D REST digest.

  • End-of-line and BOM management for XML commands: When opened in 4D v19 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. This allows a better compatibility with VCS tools. If necessary, you can restore the v19 R2 behavior using the XML SET OPTIONS command. In projects or databases converted from versions prior to 19 R2, these options are managed by two compatibility settings.

  • Runtime Explorer shortcut removed in built projects: The Cmd/Ctrl+Shift+F9 shortcut does no longer display the Runtime Explorer window in single-user merged project applications. This shortcut can now be a user application shortcut. You can call the Runtime Explorer window using the new OPEN RUNTIME EXPLORER command.

  • Extended debugging capabilities with 4D Server: In interpreted mode, 4D Server can now debug all kinds of processes, including scalable web sessions. This is available when the debugger is attached to the server or to a remote client.
    Warning: In interpreted mode, in order to make extented debugging available on the server machine, all server processes are now automatically executed in cooperative mode when the debugger is attached to the server (default setting). This can have a significant impact on the performance of your converted applications when they run with 4D Server v19 R3 and higher. To restore preemptive execution on the server in this case, all you need to do is detach the debugger from the server (and attach it to a remote client if necessary).

  • On Windows, 4D projects and databases created with 4D v19 R3 and higher use the DirectWrite API in forms. This API improves text rendering, especially in high DPI configurations. DirectWrite is used for text rendering with static and input text, checkboxes, buttons, and radio buttons. Note that listboxes already use DirectWrite. A compatibility option allows you to enable DirectWrite in projects and databases created with previous 4D versions.

  • If you use components compiled with 4D v19.0 for Silicon (Apple ARM CPUs) which call the Count parameters command, we recommend to recompile them with 4D v19 R3 to provide compatibility with 4D v19 R3 and future releases. If a component is not compiled for Silicon, there is no need to recompile.

4D v19 R2

Lançamentos anteriores

Click to see the release notes for previous versions

4D v19

18 R6

Tabela da biblioteca

BibliotecaVersão atualAtualizado em 4DComentário
ICU68.120This major upgrade forces an automatic rebuild of alphanumeric, text and object indexes.
CEF10920Chromium 5414. CORS policies now also apply when accessing files on disk (see the "security" paragraph on web areas in the 4D v19 R5 section above).
Hunspell7.3.2720Used for spell checking in 4D forms and 4D Write Pro
PDFWriter4.320FreeType dependency in 12.2.1
SpreadJS19.620Motor 4D View Pro
OpenSSL1.1.1s18 R6
libZip19.520Used by zip class, 4D Write Pro, svg and serverNet components
libldap2.4.4818 R2