4D v16 R6 introduced a new concept of communication between processes: shared object and shared collection variables! Thanks to this, you’re able to easily share information between processes.
Until now, entity selections weren’t shareable between processes. However, that has changed … we’re pleased to announce that in 4D v18 R5 entity selections are shareable!
Gone are the days of building a list of primary keys to move a selection of entities to another process. Enhance your multi-processes code by including ORDA entity selections as shared objects.
Keep reading to learn more.
4D v18 R4 and ORDA made it possible for you to create high-level class functions above the data model. This allows you to write business-oriented code to hide complexity, reduce errors, and speed up the development process.
With 4D v18 R5, we’re bringing even more features to help you optimize and organize your code. For example, you might need to run a function locally on the client to improve performance when working in client/server mode. It’s now possible! Or if you expose your database as a REST server, you might want some functions to be available on the server-side but hidden for your REST clients. This is also possible!
By now you’re aware of the availability of ORDA classes. In this blog post, you’ll learn a few handy tips to get the most out of them!
Let’s see it in action!
In a previous blog post, we introduced you to the world of ORDA data model classes. Now it’s time to get our hands dirty and learn more!
You already know that ORDA’s structure (datastore, dataclass, entity, entity selection) is made up of objects. But they’re not just objects, they’re strongly-typed objects linked to specific ORDA classes. This means that you can write functions to hide the complexity of your data’s physical implementation.
ORDA was a revolution with 4D v17. It opened a whole new world of possibilities and took you to another programming dimension. A dimension where you can easily develop applications using an object-oriented approach.
We didn’t stop there! We continued to add enhancements to ORDA through a set of features in each subsequent feature release. Now with 4D v18 R4, we’re thrilled to be going another step further with the availability of ORDA data model classes. Classes dedicated to your data model.
This will greatly elevate your code. Your applications can now easily expose services, be more manageable and easier to maintain, and seamlessly integrate with other applications.
This is another big feature made possible thanks to the projects!
We’re thrilled to announce that 4D v18 R3 includes an enhancement that will have a huge impact on the developer’s experience. A feature many of you have requested, and 4D delivers!
When you work in 4D standalone mode during the development phase (writing and testing your code), you’re no longer required to restart your database in order to have an up-to-date datastore (ds) when the structure is updated!
Now you don’t need to restart the database each time you need a new attribute or a new table in your code! It’s all automatic!
When you call the ds command, you get an up-to-date datastore object. This means that several versions of this datastore object are handled at the same time … depending on when you updated your structure … without breaking running processes.
If you work in client / server mode, this works fine for code running on the 4D Server.
For remote clients, you simply need to restart the client requiring the structure’s update.
How many times have you gotten the “Not supported value type in a shared object” error when trying to put an object into a shared object?
What did you do? Write longer code to turn your innocent object into a shared one, perhaps iterating over all of its properties?
How about transferring a shared object from one shared group to another?
An interesting thing about objects: you already know they can be used as a hash map (a key/value system), but what about gettings all the keys or all the values with a single line of code?
Keep reading, because 4D v18 R3 is out and brings good news!