What’s new in 4D v16 R6

Retrieve what was new in previous R-releases >


4D v16 R6 introduces the new concept of shared objects and shared collections. They are an alternative to the use of inter-process variables, as they are an easy and efficient way to share information between preemptive processes. Shared objects and shared collections behave just like standard ones, except they must be declared as “shared” during their instantiation with the following new commands: New shared object and New shared collection. Once instantiated, they can be used directly, just like any other variable, for reading. And for writing or modifying, they must be surrounded by the Use and End use keywords.


The manipulation of collections has been greatly enhanced, thanks to new methods used with Object Notation, provided as a preview. These methods allow, for instance, to add or remove elements, sort the collection, and much more. Over 40 new methods are already available with 4D v16 R6. Here’s just a few of them: pop, push, concat, resize, query, slice, …

dynamic forms

4D v16 R6 makes possible to create and use dynamic forms, as a preview. Stored in a text-based format (JSON), they are opening a wide list of new opportunities: creating forms fully adapted to the end-user context, share the same form among several databases. The textual description of the form can be saved in a 4D object or a file. Then at runtime, the forms can be loaded from this 4D object or file. The following commands have been enhanced so that a 4D object or JSON file path can be passed: Open form window, DIALOG, FORM SET INPUT, FORM SET OUTPUT, OBJECT SET SUBFORM, OBJECT GET SUBFORM, FORM LOAD, Print form and Current form name.

dates inside objects

Dates can be now be set as dates and not strings in an object, making the use of dates inside objects easier and more intuitive. Thus OB SET and OB Get can be used without requiring the is date constant, and the object notation can applied to them like any other typical object. In order to use dates inside objects, just check the “Use date type instead of ISO date format in objects” option from the compatibility setting page in Database Settings.

4D Write Pro

Pictures in absolute position

4D v16 R6 gives you full control over picture insertion at a specific position in a document: in front of or behind text, as well as anchored to the page or specific parts of the document (i.e., header, footer, sections). The new WP Add picture command adds the picture to the page, then to define its exact position as well as other properties, you can either use Standard actions, or go via the new set of selectors that have been added to WP GET ATTRIBUTES and WP SET ATTRIBUTES commands.

use leading characters for tabs

4D Write Pro now provides an additional functionality to fine tune your design: leading characters (e.g.the repeated dots or any other character in a table of contents for instance). Leading characters can be controlled either from the contextual menu when you click on an existing tab in the ruler area, or programmatically thanks to the wk tab stop leadings new selector and the WP SET ATTRIBUTES command.

4D view Pro

convert 4d view documents into 4d view pro

4D v16 R6 introduces the very first step toward converting your existing 4D View documents to 4D View Pro as a preview. Thanks to the VP Convert from 4D View new command, most properties and information stored in 4D View documents are automatically converted, including document structure, values, formats, styles, borders and formulas!


perfect forward secrecy activation in 4D web Server

Starting with 4D v16 R6, 4D Web Server’s default security has been increased by supporting Perfect Forward Secrecy (PFS). This implementation provides your application with a better compliance for some networking security features, as well as a higher ranking on web security audit tests. PFS is automatically enabled when TLS is activated on the server. The WEB Get server info command can be used to make sure that PFS is enabled. The value of the perfectForwardSecrecy new attribute is true whenever all conditions needed to use PFS are met.

Keep in mind that the RC4 algorithm is deprecated now in 4D Web Server as a result of some known security issues.

restore last database backup by default

To protect your data from damage, the Restore last backup if database is damagedoption from the “Backup” page of Database Settings is checked by default for new databases, which provides you with the best level of protection.

better management of files and folders extensions

Two new commands have been created to ease the management of file and folder paths. The Path to object command returns an object containing the specific properties (parent folder, file or folder name, file or folder extension) of the path you passed in parameter. The Object to path command builds a path from the object attributes passed in parameter. So, to compose a new path, modify the object attributes you need and just recombine them.

These commands should now be used in place of the _o_Document type and _o_SET DOCUMENT TYPE deprecated commands.

code completion and suggestion for OBJECT attributes

The method editor has been enhanced to provide code completion for object attributes. A list of suggested attributes is being displayed, whenever a dot character is typed after an object, to improve the coding velocity and avoid mistakes or typos. The autocomplete behavior can be customized from the “4D preferences” panel, to define whether the suggestion list will be automatically opened after typing a dot character (option checked), or only after using the tab key (option unchecked).

easy access to log files

The Get 4D file command has been enhanced for a better access to log files. Now you can easily find a particular log file instead of getting the folder containing all the logs. A set of new selectors have been created for this command: Request log file, Debug log file, Backup log file, Verification log file, Compacting log file, Repair log file, HTTP debug log file and Build application log file.


Want to know more? Read all blog posts about 4D v16 R6!