New parameter for DISTINCT VALUE

With 4D v15 R4, a new parameter is introduced for the DISTINCT VALUE command. This parameter must be an array, and it receives the count of each distinct value in a selection of records.

This feature is particularly useful for obtaining statistics on records, or to order records by their most common type.


New “error formula” system variable

A new system variable is available to get the offending 4D code that generates an error. With 4D v15 R4 whenever an error is raised you have a means to get the offending code in addition to getting the error code, as well as the method and line where the error occurred.


Export 4D method code regardless programming language of the 4D product used

The METHOD GET CODE command has been enhanced to export the method code and get the very same result whatever the name of the commands, tables, fields, and regardless of the programming language of the 4D product used…

To do so the tokens of the code elements (4D commands, 4D constants, tables, fields, etc.) are exported with them. These tokens are unique and can be interpreted as the elements they represent by 4D even if their names have been upgraded or if they are written in another language than that of the 4D that executes it.


Database mirroring

When integrating the log file, 4D stops at the first error and doesn’t return any error message. Reasons for integration errors could be a damaged log, by example because of a bad hard disk or software error during writing. If that error happens at the end, no problem; but it could also be at the start or in the middle of the log. In this case, the data after the error might be useful.

Now, when the integration fails in standard mode, you can try integration in auto-repair mode. In this case, 4D tries to resolve the error encountered, doesn’t stop the integration, and returns the error list.


JSON export for Journal

In 4D applications, the data file is important, so all the activity of the database is stored in the log file. As you all know, the log file is a vital element for the restoration of your database following an unfortunate contingency. However all the information on the database activity may also be useful for analysis. For example, to check the activity on a table, to see the changes made by a user, and to follow a record’s history.

Product 4D Mobile

4D Mobile sessions

The WEB Session commands have been adapted to 4D Mobile session. Now, you can save the results of a query or an inter-process variable related to a given 4D Mobile session. For example, with new handling of 4D Mobile sessions, you can manage the cart of your users.


New architecture for application deployments

Today, merged applications save many information in the application package and also in the compiled file (.4DC). Besides preventing to create read-only applications, saving information in the application package has another annoying consequence: the information gets lost when you update the application.


Report duplicates in unique fields

In 4D v15 R3, the way to detect duplicates in fields declared as unique has been enhanced so that users have a mean to know which are the offending fields.

What’s new? All the offending fields are now displayed in an error message or in the log.

Duplicates can be reported through 2 different ways:

  • when 4D needs to create indexes on a database with offending fields.
  • during an MSC Verify scan.



In 4D v15 R3, the algorithm of the REPLACE STRING command has been enhanced to make replacements on large amounts of data faster. In our tests replacing 32,000 occurrences, the new algorithm makes the command an average of 4000 times faster than the old one.