Full support of BLOB
Starting with 4D v19 R3, Blobs are fully supported in ORDA, like any other type, allowing ORDA developers to use BLOB type attributes in entities operations.
A new way to gather even more of your business logic in Classes and ORDA classes! The times when you had to define business-related formulas in your 4D UI (such as string concatenations or VAT computation) are over. You can now define complex calculations directly in your Classes and use the result like you would do for any other structure field in Rest API, in your mobile application, or in your ORDA-based user interface, for instance. Your business rules deserve Classes!
compare two entity selections
To work efficiently with object-oriented programming and write a few lines of code as possible, you need robust and optimized functions. That’s why, with 4D v19 R3, we’re 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.
4D for iOS
Action Input controls
Until now, custom formatters allowed you to match text or images to the contents of a field, such as replacing male/female with an image, or 1, 2, 3 with text labels. 4D v19 R3 allows you to create action input controls available from actions forms, such as creating a choice list with a predefined text. And what’s even better, this list can be dynamically filled using a data source, such as a list of employers.
Action input controls are dedicated action formatters that allow you to create a static list using JSON or a dynamic one using data sources. This will ensure that you always have up-to-date lists directly accessible from your mobile application.
Apple native apps interaction
Other action input controls are available; they add modules in your action forms to interact with Apple native apps. Several ones are already available in the gallery, such as:
- phoneContact: to search for a contact phone number directly from the Apple Contacts app
- emailContact: to search for a contact email directly from the Apple Contacts app
- currentLocation and currentLocationAddress: to fill the current location of the app user with coordinates (latitude and longitude) and addresses automatically
To use them in your mobile projects, you’ll need to include them for formatters or custom list and detail forms in your database. To do this, create a particular “inputControls” folder, download the input control that suits you the best from the gallery, unzip it and drag it into the inputControls folder.
Sort criteria and action parameters enhancements
Defining sort criteria and action parameters has been made quicker and more efficient.
Regarding the Sort action, you can now easily change action sort criteria using a simple dropbox, enabling you to choose another field among the available ones. A message indicates the field linked to the selected parameter at the bottom of the Action Parameters panel for the Add and Edit preset actions.
4D for Android
Debug your mobile apps on Android devices
4D v19 R3 adds the possibility to debug a mobile application directly on an Android device. The procedure requires only two steps to get your app up and running on your device of choice:
- Enable USB Debugging in the Developer Options settings.
- Once your smartphone is plugged in, select your physical device from the list and click “Build and Run.”
4D and Microsoft 365 access
Following the introduction of OAuth 2.0 authentication to access emails through IMAP, SMTP, or POP3 transporters. 4D continues to implement the OAuth 2.0 protocol with 4D v19 R3 and provides a way to easily request authentication tokens from the Microsoft identity platform to connect to the API for Microsoft 365.
bcrypt support for passwords
Starting with 4D v19 R3, all passwords are hashed with the bcrypt algorithm. An algorithm takes much longer to compute, enough to prevent brute force algorithms from recovering the original password.
To put it in place, everything is automatic. You don’t need to touch any setting or any line of code. When the password is changed in the toolbox or using the CHANGE PASSWORD or Set user properties commands, the bcrypt hash is stored. And during authentication, 4D recognizes automatically if the password is stored with legacy or bcrypt hash so that users continue to connect without changing their password.
Files and folders
Support of LZMA, the new compression algorithm
With 4D V19 R3, the Zip Create Archive command supports a new compression algorithm: LZMA. The advantage of this algorithm is that it creates smaller archives than the standard zip compression algorithm. You can pass a “zipArchive” object to the command to customize your zip. This allows you to choose the compression algorithm, the encryption algorithm, and some other options.
4D Write Pro
Image setting dialog
4D Write Pro interface component now includes a new Picture Settings dialog. This allows you to easily define:
- the size of the image
- the display format
- margins and padding
- the position on the page for anchored images
The dialog can be displayed either from the contextual menu or from an event such as “on double click” on the form using the “WP PictureSettings” component method.
This feature release also adds the possibility to add an image from a URL with the toolbar widget.
Continuous section breaks
Starting with 4D v19 R3, 4D Write Pro supports continuous section breaks. A continuous section break creates a section in its own right but without causing a page break. This allows, among other things, to have different numbers of columns on the same page.
Inserting a continuous section break can be done:
- By programming via the WP Insert break command, which now supports a new value: wk continuous section break
- By using a menu with an associated standard action or by simply adding a standard action to a button
- via the user interface
Formula visibility management
Several display options are already available for 4D Write Pro documents. We’ve added the wk formula highlight option to the list, with 4 possible values:
- 0: no highlighting of formulas and values
- 1: highlight formulas only (default value)
- 2: highlight values only
- 3: highlight formulas and values
It can also be done using standard actions. They can be used with checkboxes, standard buttons, and dropdown lists.
Export TO SVG format
4D Write Pro documents can be already exported into different formats: pdf, plain text, Microsoft Word, HTML… To this list is now added the SVG format. This allows, for instance, to create a picture of the first page for a fast preview, usable on both platforms and in a browser or mobile device, or insert a 4D Write Pro block inside another document, such as a 4D View Pro document.
SVG being an image format, you will have the possibility to choose which page of your document you want to export. The final image will be based on the page rendering of your document. It will take into account all the layout options such as orientation, margins, etc.
DebugGING on the server with scalable web sessions
Scalable web sessions were a significant improvement of 4D v18 R6. They allow you to use 4D tags, 4D actions, and the REST API in preemptive processes, even in interpreted mode, on a 4D server. However, for debugging, 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. Starting with 4D v19 R3, we simplified debugging on the server-side by simply attaching the debugger to it.
Accessing method parameters that don’t exist
4D v19 R3 adds the possibility of accessing all the method parameters without error, even if some were not passed by a caller. The code is more straightforward and more readable without the repeated “if” keyword.
Simplified cross-platform client/server applications building on Windows
With the introduction of Silicon, building cross-platform client/server applications has changed. As long as you build your server on Mac, it’s not much of an issue, as you can compile for both Intel and Silicon platforms. But on Windows, it’s not possible to compile for Silicon Macs. 4D v19 R3 introduces a new feature that reduces the number of files to transfer from your Mac to your Windows machine. When building the client on Mac, 4D will also generate a Compiled Database directory. This folder contains only the compiled code for your application and is, as such, relatively small.
4D v19 R3 allows you to display video conferencing from different sources like Zoom, Microsoft Teams, Kopano, and others, by introducing audio and video streams in web areas. To use your webcam in a web area, simply create a web area with the Use embedded Web rendering engine parameter checked. The support of video streams in the web area is automatic since it is based on your system parameters.
Simplified navigation between code, documentation, and explorer
When creating a form or writing a new function or method, you usually need to:
- access the explorer to fill the form in its folder
- access the explorer to write the documentation for the method
- to see the documentation of a command on the 4D online site
- to see the documentation of a method of a component
- access the code of the function we want to use in our method to make some modifications
- navigate easily between the different functions of a class
In 4D v19 R3, we’ve added menu items and a new list in the code editor that allow you better navigate between the different elements of a project.
configuration file for logging
As part of our logs enhancement project, 4D v19 R3 adds two new functionalities:
- the ability to instantly pause logging
- and a way for support teams to quickly help their customers configure their logs through a configuration file
Developing with 4D in a dark environment on macOS
Since 4D v19, you can create applications on macOS that support dark mode, so you can please your users by giving them the possibility to choose either light or dark style applications. With 4D v19 R3, we are providing you, as a developer, the choice when developing your application. 4D Developer Edition integrates seamlessly with the light or dark look of macOS.