Debug on the server with scalable web sessions

Scalable web sessions were a significant improvement brought by 4D v18 R6. They allow you to use 4D tags, 4D actions, and REST API in preemptive processes, even in interpreted mode, on a 4D server. However, to debug such programs, you needed to open your development environment on the server to make it switch to cooperative mode, as the debugger window cannot be opened with preemptive processes. This way, until v19 R2, you could debug REST, 4D actions, or 4D tags. From v19 R3, all of this has become much easier, and you can debug on the server-side simply by attaching the debugger to it, as usual.

Product blank

Bcrypt support for passwords

Security is a fundamental topic for today’s business solution systems. At 4D, we understand its importance; that’s why we keep delivering features that tackle this topic.

And with 4D v19 R3, 4D now uses a stronger hashing algorithm for user passwords. Let’s find out more!

Product blank

ORDA: Thoroughly compare two entity selections

Since ORDA allows you to work with several entity selections simultaneously, we’re sure you take advantage of this by passing entity selections as a parameter to project methods or to functions of ORDA Data model classes.

To work efficiently with object-oriented programming using as few lines of code as possible, you need robust and optimized functions. That’s why with 4D v19 R3, we are shipping a new function available on the entitySelection object: the selected() function.

Thanks to it, you’ll be able to inspect and compare two entity selections. Let’s see the details!

Product blank

Simplified navigation between development windows

When writing a new function or method, or when creating a form, the work is never linear. We usually need to:

  • access the explorer to find the form in its folder
  • access the explorer to write the documentation for the method
  • read the documentation of a command on the 4D documentation website
  • read the documentation of a component’s method


In this new version, we have added some menu items in the code editor and form editor to allow you to better navigate between the different elements of a project.

Product blank

Stop press! Accessing parameters not being passed is … possible

A method or function can have optional parameters. Sometimes the function is called with two parameters, and other times with three parameters. We’ve all dreamed of accessing the parameters without counting the parameters, checking if the parameter has been passed, or simply not having to check if the variable associated with the parameter has been initialized. This could make the code much simpler, and much more readable, without all the “If” or “Count parameters” lines.

Well, dream no more, and switch to 4D v19 R3! Managing method and function parameters has never been easier.