4D 20 R6 is Here
Introducing 4D 20 R6 – Available Now!
Here’s a quick look at what this feature release brings:
Download 4D 20 R6 (monthly Hot Fixes available)
- Code Editor: Customize which warnings are generated to stay focused on critical issues.
- Programming:
- Use new comparison operators to check if objects or collections share the same reference.
- Access classes from other components via namespaces for greater flexibility.
- Keep data consistent across sessions with Session Storage by ID.
- Automate PDF/A3 file extraction for electronic invoicing.
- Ensure security by default with Force Login for REST API,
- and boost performance with HTTP Agents through connection reuse.
-
- GitHub Components: Manage components directly in 4D, with automatic repository downloads and semantic versioning for smoother collaboration.
- 4D Write Pro: Keep documents clean with the wk empty datasource attribute, controlling how tables appear when datasources are empty.
- User Experience: Enjoy smoother subform navigation with enhanced scrolling behavior, improving user interaction.
- ORDA: Use the new clean() function to eliminate empty spaces and keep your interfaces tidy with less effort.
Qodly Studio for 4D: Dynamic User Interfaces with Page States
With 4D 20 R6, Qodly Studio for 4D introduced an exciting new feature: Page States. Perhaps you’ve already come across our previous post, but let’s explore what makes this feature so valuable for dynamic UIs.
Imagine UIs that adapt instantly to different user steps or contexts.
Here are some common use cases where Page States shine:
- Enable or disable components based on user actions (e.g., activate the “Save” button only when all mandatory fields are filled).
- Switch between light and dark modes with a simple toggle.
- Restrict access to actions (read, update, etc.) based on user privileges.
PDF/A3 Attachment Extraction
In previous posts, we explored embedding documents within PDF/A-3 files using 4D Write Pro, including generating electronic invoices. As e-invoicing becomes mandatory in various European countries—such as France and Germany—the ability to extract embedded XML files from these PDFs is becoming crucial. But the utility of PDF/A-3 extends beyond invoices; these files can embed various document types that may require extraction.
While tools like Adobe Acrobat Reader offer manual extraction, this post introduces an efficient, automated method using 4D 20 R6 to easily handle the process.
REST and Qodly Support of Singletons
With 4D 20 R5, we released singletons. And with 4D 20 R6, we now allow you to directly call the exposed functions of your shared singletons through REST calls. Similarly, you can use the exposed functions of your shared singletons in events when designing your Qodly Pages. Let me delve deeper into these new capabilities.
Integrate 4D Components Directly from GitHub
Many 4D developers leverage the power of third-party components found on GitHub, particularly those listed in the 4d-component topic. 4D 20 R6 introduces a fantastic new feature: directly integrating these components within the Component Manager.
This blog post dives into the details, making your development process easier and more efficient.
Customize Global Warnings Generation
Warnings are a valuable aid for alerting 4D developers to potential code mistakes. With the release of 4D 20 R6, it is now possible to globally define which warnings are generated, enhancing the overall development experience.
Permissions: Inspect Session Privileges for Easy Debugging
Today, you can benefit from a powerful feature to filter access to data, which is essential for preventing malicious access to your application.
This feature uses privileges that allow certain actions on your data. These privileges are assigned to users through roles and stored in the Session during authentication.
In 4D 20 R6, we enhanced this functionality by allowing you to inspect the privileges in the Session, which is very helpful for debugging.
Keep reading to learn more.
UX: Enhanced Scrolling Behavior in Subforms
User forms are all about making things easy for users. But what happens when scrolling becomes a battle between subforms and their contents? You’ve probably experienced this before: you try to scroll through a list box in a subform, but the entire subform moves instead. Or, worse, you try to scroll the subform itself, but the list box stubbornly stays put!
This has been improved with 4D 20 R6, making the action more natural.
Custom Parameters for Initializing Embedded Web Area
Since the embedded web area utilizes CEF as its web browser engine, there have been requests for a method to incorporate additional CEF switches, like the autoplay-policy switch, during the area initialization.
Starting with 4D 20 R6, you can manage your custom parameters using a parameter file.
Easy Reference Comparison of Objects & Collections
Objects have become an essential part of the 4D language and of Qodly.
But when you declare a variable of this type, you define a reference. So, how do you know if two objects are, in fact, just one and share the same reference?
Starting with 4D 20 R6, comparing object references is simple: enter the = and # operators!
This blog post explores these operators and how they help determine if objects share the same reference. Let’s find out more!
Contact us
Got a question, suggestion or just want to get in touch with the 4D bloggers? Drop us a line!
* Your privacy is very important to us. Please click here to view our Policy