4D v20 R3 Beta Starts Today

We’ve been quite active here at 4D over the past few months. We trust that our release of Qodly Studio in Developer Preview has kept you engaged and busy, and we want to extend our gratitude to all of you who have been testing it.

And now, we are thrilled to announce the launch of beta testing for 4D v20 R3 … starting today!

Let’s uncover all that this feature release has to offer:




  • 4D Write Pro is out with two features that are sure to capture your interest. You can now assign names to formulas to enhance clarity. Plus, export documents in the PDF/A format.
  • As for the new programming capabilities, we are improving your coding experience. This includes a one-line variable declaration and initialization, simplified function declarations for any number of parameters, and global stamps for incremental synchronization that is no longer limited to 4D for Mobile but can be applied to multiple scenarios via the 4D REST Server— among other enhancements.
  • A new 4D View Pro blob format allows storing compressed documents in your database, providing the same high performance as the .sjs format.
  • A new Visual Studio Code extension feature that provides easy access to 4D documentation.
  • And that’s not all —Much more awaits you!

Download 4D v20 R3 now (Exclusive to 4D Partners)


Effortless Variable Initialization

4D v20 R3 enables developers to declare and initialize variables in a single line, effortlessly eliminating repetitive code.

This feature simplifies your development process, resulting in cleaner and more efficient code.

For that, you have two options: let the compiler determine the variable type from the value automatically or explicitly specify it for complex types.

Streamlined Variadic Function Writing

Starting from 4D v20 R3, adding the “…” symbol in the last parameter simplifies method and function declarations that accept an unspecified number of parameters, making your code shorter, more readable, and flexible. 

Incremental Synchronization with Global Stamps

Incremental synchronization was introduced with 4D for Mobile. This feature allows to update or synchronize data by transferring only the changes made since the last synchronization instead of transferring the entire dataset.

The best part? You can now tap into this power using the 4D REST Server, effortlessly applying it to any scenario. 4D assigns stamps to your new, modified, or deleted records automatically. And if you ever want to take control, we’ve got you covered with two handy functions to get and set these stamps as needed.

Efficient collections Manipulation with multiSort()

4D empowers you to work efficiently with object collections, simplifying tasks like sorting, ordering, and filtering. Yet, when data arrives from non-4D systems in the form of arrays, converting them into object collections and back into arrays can be tedious.

In 4D v20 R3, the new multiSort() function simplifies the sorting and synchronization of multiple collections, making data manipulation more efficient.

Websocket Client Headers Customization

Customizing WebSocket client headers lets you inject specific information, preferences, or requirements into the WebSocket connection establishment process.

4D v20 R3 allows you to transmit security information, application-specific data, or any pertinent information to the server via WebSocket client headers, enhancing the versatility and control of your WebSocket interactions.

Log Management Made Easy

In 4D v20 R3, log management gets an upgrade to offer more configuration options for deployment

Now, just like other backup settings, you can override the “Use log file” option. This setting determines whether your application uses a log. When enabled, 4D seamlessly guides you through log creation or selection while storing the log path in the data file.

If you need to open a data file to testing/development without access to the last use log, even if the structure normally requests one, you can now overwrite the option in your data settings file and open the data without the need to run a backup first, to create a new log.


In 4D v20 R3, the Formula from string command is enhanced, allowing formulas to be executed in different contexts. This update simplifies component development, enabling easier access to methods and variables from the host database.

The Future of PHP in 4D: Important Changes

PHP has played a significant role in 4D’s web development, offering features like zip, hash, and LDAP functionality. Over time, many PHP features have become integral to 4D’s core functionality. To simplify things, we are removing the built-in PHP interpreter in 4D v20 R3 and starting the deprecation process for PHP commands in v21.

While we won’t completely eliminate PHP commands from 4D, we strongly recommend using system workers to execute PHP code



 4D Write Pro

Enhance Clarity with Formula Naming

Previously, formulas could be displayed as values, expressions, or symbols, which might have posed challenges regarding readability.

However, with 4D v20 R3, developers now have the option to assign names to formulas. This improves the intuitiveness of 4D Write Pro documents since users can quickly identify and understand the purpose of each formula within the document, making it easier to work with templates and boosting the overall user experience.

Introducing PDF/A Format export

The PDF format has long been a classic choice for exporting 4D Write Pro documents, available in various versions. But with 4D v20 R3, we’re thrilled to introduce a new addition: the PDF/A format. While optional, this format opens doors to future applications like electronic invoicing. It enables the generation, transmission, receipt, and storage of business transactions in electronic form, fostering more efficient and eco-friendly management of these processes.



4D Netkit

Gmail Management: Labels, Fetching, and Email Removal

The previous feature release was the first step of integrating the Gmail API into 4D Netkit. Starting from 4D v20 R3, we’ve introduced commands for retrieving label lists, fetching emails, and removing emails, and there are even more commands in the pipeline. Stay tuned!

Microsoft 365: Update mail properties

Listening to your feedback, we’re introducing a new command to address your requests regarding the ‘isRead’ flag in emails. With the release of 4D v20 R3, 4D Netkit puts you in control, enabling updates to a wide range of properties for received and drafted emails using the ‘Office365.mail.update()’ function.


 4D View Pro


We understand developers’ challenges when dealing with larger 4D View Pro documents. To elevate your experience, we introduced the .sjs file format.

But the enhancements don’t stop there. With 4D v20 R3, we’re introducing a new blob format that lets you effortlessly store compressed documents in your database, offering the same exceptional performance as the .sjs format.


 Visual Studio Code

Explore 4D Documentation with Ease

4D v20 R3 comes with a new Visual Studio Code editor feature thanks to the 4D-Analyzer extension — the “Show 4D Documentation” feature!

Even if you’re good at understanding 4D commands and classes, there are times when having complete information while working with code in VS Code is invaluable.

Starting from 4D v20 R3, it’s a breeze: simply hover your mouse over the command, class, or class function you want to explore, and a tooltip with a description will appear. You’ll find a link at the bottom of this tooltip that says, “Show documentation.” Couldn’t get any easier!


Need more technical details? Take a look at the 4D v20 R3 Beta documentation on the 4D Doc Center.

Your feedback is greatly appreciated and will help us improve our product quality and better serve your needs. We’d love to hear your thoughts about any of the features above. Contribute to our beta forum (accessible for all 4D Partners). And don’t hesitate to tell us about your needs; we take votes very seriously

Not yet a partner? Don’t miss out on the opportunity to become a 4D Partner and engage in meaningful discussions. Join us today and be part of the conversation!

• Product Marketing Manager • Intissar joined 4D in 2017 as a Product Marketing Manager. She works closely with the product, marketing, engineering, and technical support teams to highlight the ‘why’, the ‘how’, and the ‘what’ of new and updated features to different audiences. This close proximity allows her to craft messaging frameworks and write in-depth content and code samples for the 4D blog and website. After graduating with an engineer's degree in Computer Science from VINCI university, Intissar worked in several startups as a software engineer. Her hands-on experience includes software specification, design, and development, user training and support, and team management.