4D v19 R4 Beta starts today

Yet another release, but not just any other release ?

We’re thrilled to announce the launch of beta testing for 4D v19 R4, which incorporates many features you requested, plus features we believe will be delightful to use!

Without further ado, let’s take a look and see what it has in store for you:


  • Upon your request, we supported high-resolution displays, such as 4K displays, in Windows. This results in better text and image quality.
  • Another highly requested feature is at your disposal, the possibility to launch an external process asynchronously to enhance your users’ experience. 
  • What about pessimistic lock management via REST? YES, we have that too.
  • As for the 4D language, we couldn’t be more excited to share the many improvements we made available with you to elevate your coding experience.
  • 4D Write Pro is embracing the dark (mode)! And enabling you to add page breaks inside table rows.  
  • Speed up your development process with 4D View Pro “templates.”
  • The code editor has its share of features. For example, comment tags, quick access to different class functions, and syntax error checking.
  • And much more (see below)! 

Download 4D v19 R4 now (Exclusive to 4D Partners)



AN IMPROVED 4D language that goes all out

We listened and followed your feature requests in the 4D Forum with several 4D language improvements:

  • Starting with statements that allow you to jump out a code block: return, break, and continue.
  • Followed by short-circuit evaluation with two new operators: && for the AND operator and || for the OR operator.
  • And then there is the ternary operator, which is a condition followed by a question mark ( ? ), an expression to evaluate if the condition is truthy followed by a colon (:), and finally the expression to evaluate if the condition is false: condition? Value If True: value If False.


4D v19 R4 is shipped with a new command that gives all the information about your license usage: Get License Usage, which will enable you to follow the license consumption on your server, optimize your usage, and plan ahead for your future needs.

Editable or not editable. That’s the question

The OBJECT SET ENTERABLE command has been enhanced, enabling you to better manage a field that is not editable. As a third parameter, the command supports a boolean or an integer. 


 User Interface


High DPI stands for High Dots Per Inch. It represents the pixel density; the higher the DPI, the higher the density of pixels. On 4K screens, the pixel density can be so high that displaying, as usual, would make all icons and controls extremely small. As such, Windows allows you to change the scale of text, icons, and controls. On 4K screens, it’s activated by default. We first supported high DPI on Mac, and with v19R4, 4D is now fully compatible on Windows. This results in better text and image quality.


 System workers

Launch an external process asynchronously

Another highly requested feature is available for you. Sometimes, you need to run processes in the background and perform specific actions based on its output code as soon it is available while the process is still running. For example, to display a progress bar. 4D allows you to start a background process with the new 4D.SystemWorker class and automatically execute callback methods when the process returns information. So, if you use it with an interface, the interface stays responsive to your user while the external process is running, and when it is finished, you can display the result to your client.



Say hello to Aliases

4D v19 R4 is shipped with a new ORDA concept: Aliases. They are the logical and complementary continuation of computed attributes. As the name suggests, an alias is, in fact, a shortcut to an existing datastore object.

Disable default mapping of NULL value to a blank value

When you create a new field in your database, 4D allows you to choose or not to map NULL values to blank values. Starting from 4D v19 R4, in new projects, 4D will no longer by default map the NULL value to absent data. This is beneficial because ORDA is perfectly designed to work with NULL values, and it will spare you lots of inelegant workarounds.

Pessimist lock management via REST

With 4D v19 R4, you can use the REST API to lock or unlock an entity. This is particularly useful to keep your code consistent if you are used to working with the REST API. There is no need to write an ORDA Data Model Class function to lock/unlock an entity. And the second benefit; smoothly using the pessimistic locks with the REST API.




 4D for Mobile


As of now, you can use almost all types of attributes in your mobile projects: text, dates, time, integers. 4D v19 R4 is bringing another one: object attributes. This allows you to display object fields in your mobile application in human-readable or JSON format. Object fields are used to store various types of data in your 4D application; now, they are easily useable in mobile apps, meaning that building even more advanced iOS and Android applications is at your fingertips.


With 4D v19 R4, the data section has been improved to give you more information about the data you will package with your mobile application. For example, you will get the exact number of entities and the data size for each data class, avoiding getting too much data in your mobile app. This improvement will also help you check your query validity by clicking the Validate button. You will get more visual feedback about your queries validation with error messages if the query is incorrect.



 4D for Android

Fresh Features from the oven

Many improvements were brought to 4D for Android, enabling you to enjoy the same premium experience 4D for iOS offers. 4D v19 R4 is bringing:

  • The support of One to N relations: Display the relative data to a record in the list and detail form.
  • Online actions: It”s possible to modify an entity or entity selection in online mode.
  • And Object field formatted: Display object fields in your mobile application in human-readable format or JSON format.



 Code Editor


Classes were introduced with 4D v18 R3. They allow you to organize your business logic and separate it from the UI more quickly. And with 4D v19 R4, the list of functions in your class is displayed in the code editor toolbar, allowing you to quickly jump to a specific function.


4D v19 R4 takes comments to a new level with comment tags to better organize your code to prioritize your future actions. Tags are used to classify comments by simply putting the tag at the beginning of the comment line. We have put three tags at your disposal: MARK, TODO, and FIXME.


Auto-completion for classes is available since 4D v18 R4. This feature simplifies code writing and limits errors in function names. But it doesn’t avoid them entirely; it’s easy to reverse two letters or forget to capitalize a letter and then spend time looking for why your code doesn’t work. So what better way than to ask 4D to check if the classes or functions already exist? Starting with 4D v19 R4, a warning is displayed in the code editor if you call a function that does not exist.


In addition to customizing the window and the code area, 4D v19 R4 brings two new customization options: Show or hide the ten clipboards. Plus, the “show/hide lists” icon has been moved to the bottom right next to the lists.



 4D Write Pro


4D v19 R4 is shipped with new attributes to better define table layout, enabling you to create complex 4D Write Pro documents with ease, but most importantly, visually appealing documents: say hello to page breaks inside table rows. This is useful when the cells have longer text (or several paragraphs). It may be interesting to define that a cell (and therefore a table line) can also be split in two to fill the available space on the pages.

Dark mode support

With 4D v19 R4, 4D Write Pro has gone dark. You can ultimately develop and deploy in light or dark mode on macOS. The last widgets of the library are compatible in dark mode (on macOS): 4D Write Pro Interface toolbar, 4D Write Pro Interface, and Sidebar Rich text area.



 4D View Pro

Workbook options

When you create a document with 4D View Pro, you often need to fine-tune your user experience by hiding the sheet tabs and scrollbars, by deactivating the context menu or the drag and drop feature… All these features and more are possible with the VP SET WORKBOOK OPTIONS command.


Creating reports or spreadsheets from existing templates speeds up development. Like an end-user using the Copy and Paste action, as a developer, you can, with 4D v19 R4, simply “copy” a range of cells from another location or even another area.





As a software publisher, some of your customers sometimes have many instances of your merged server application, for example, a merged server application for each company of a group. In this kind of deployment architecture, your customer’s officers often ask you to install a merged client application for each merged server application on their computer because they want to use the software for each company. From now on, you have a new buildApp key at your disposal to make each duplicated merged client application use its own user preferences folder (based on its application path): ClientUserPreferencesFolderByPath.



Need more technical details? Take a look at the 4D v19 R4 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 a partner yet? Become a 4D Partner and join the conversation!

• 4D Product Team Leader •Mathieu joined 4D in 2020 as Product Team Leader. His team is composed of Product Owners, the users voice of 4D. Working hand to hand with engineering team, their role involves prioritizing, scoping and verifying that new features will match 4D users expectations.Mathieu previously acted as projects director and team manager in various leading industries IT divisions - automotive, safety, advertising, specialized in international contexts and cloud oriented services.