State of the Art Business Applications

  • user warning: Table '4dbdd.semaphore' doesn't exist query: SELECT expire, value FROM semaphore WHERE name = 'locale_cache_en-US' in /var/www/ on line 149.
  • user warning: Table '4dbdd.semaphore' doesn't exist query: SELECT expire, value FROM semaphore WHERE name = 'menu_rebuild' in /var/www/ on line 149.
  • user warning: Table '4dbdd.semaphore' doesn't exist query: SELECT expire, value FROM semaphore WHERE name = 'menu_rebuild' in /var/www/ on line 149.
  • warning: file_get_contents( [function.file-get-contents]: failed to open stream: Network is unreachable in /var/www/ : eval()'d code on line 4.
As the business application ecosystem evolves, so must the tools used to create and deliver solutions to users, who demand more every day. 4D v14 delivers, with high productivity for developers and end users, as well as new ways to extend solutions to Web and mobile.


From productivity to mobility, the best 4D ever

4D v14 builds on the business development application platform's highly-evolved, solid foundation for even greater productivity for developers and end-users, amazing ease of maintenance, and the ability to bring your solutions to the Web and mobile.


Download 4D v14

Complete list of features




A great foundation

For years, 4D has been built on a solid foundation, with each new version bringing additional performance and stability, as well as ease of use for developers and end-users. 4D v14 further builds on this foundation with vast improvements in the management of and access to data, multi-lingual support, mirroring, journaling and logging.


Structured Objects in 4D

4D v14 allows you to organize data – from any table or record – into individual objects based on JSON (JavaScript Object Notation) a lightweight interchange format that allows your data to be shared all throughout – and external to – your 4D solution.


The object is so fundamental to the backbone of 4D v14 that it often took center stage at 4D Summit 2013 in Las Vegas and Europe. View a presentation of objects and how they work below. (Video, 19m23s)



The new C_object acts as a simplified array with key-value pairs. It is a schema-less collection of variables, with each being completely unique. Instead of having to load an entire table into memory, a developer can simply access what is necessary by using object theme commands.


C_object is ubiquitous: It can be used in the query editor, and is used by 4D itself for dynamic key-value pairs, in the Plug-in SDK, the realtime monitor, in form geometry, the improved Web Area, and in the all-new 4D Mobile feature.

External access via SQL views

SQL Views

There are many ways to interact with data from outside of 4D, the primary being ODBC. 4D v14 introduces an improved security model. Going beyond users, groups and schemas (and thus table control), SQL Views can limit the particular table columns and rows that users have access to.

Creating a view is as easy as writing a SQL statement and a query, and users can be limited to accessing just this view, as opposed to an entire table or an entire database. This provides secure access from external tools like Crystal Reports and Dynamics GP (Great Plains) and is compliant with strict HIPAA privacy standards, not to mention within 4D itself to make access for users.


SQL Views in 4D v14, as presented at 4D Summit 2013 (12m12s)




Multilingual installation

Extended multi-lingual functionality

4D v14 can now be installed in any one or many of the six languages available. On Mac OS X, 4D will default to the system language, if available. While this is not standard behavoir in Windows, 4D v14 is designed to borrow this useful capability from the Mac.


You can take multi-lingual apps further, with the plug-in architecture now supporting multiple languages with support for separate lproj files in each language.


Full-time mirroring

4D v14 contains new mechanisms to generate and use journal files. With a high-availability mirroring system, 4D gains a more secure architecture with fine-grain control over which tables are journalized. Integrated log files that are less linear are also more robust. In journal mode, for example, records are uniquely identified by primary key, which is more secure than a record number. Mirrors have their own logs, so you can now mirror a mirror.


In 4D v14, a production server has a journal, as does a mirror, rendering mirrors recoverable. If there’s a problem with a production server, a mirror can quickly go into production, and because that mirror is journaled, a new mirror can easily be created, ensuring full-time redundancy and limited downtime.


4D v14 Mirroring, Journaling and Logging, presented at 4D Summit 2013 (7m53s)



Selective journaling

The efforts to improve mirroring in 4D v14 has also resulted in improved journaling, namely selective journaling. Tables can now be specifically targeted for logging, allowing developers to select the important data to be included in a journal, while leaving out unimportant data for improved efficiency.


Log it

A new debugger log – providing consistent, more readable error logs – makes tech support easier, whether it’s for you calling 4D or your client calling you! And anything that makes support easier is better for your business, and leaves you more time for developing critical new features for your solution.



4D Mobile

Use of the mobile Web – not only for browsing or retrieving data, but for running functional applications – has seen explosive growth in recent years. Developers seeking a solution to bring their 4D applications to the mobile and Web space now have the means to do so.


With a growing number of smartphones and tablets being released on to the market each year, and with ever-increasing fragmentation of mobile operating systems and browsers, Web applications are a practical solution for putting the same functionality across desktop and mobile operating systems and browsers. Sidestep app stores, OS updates, and other headaches by expanding the reach of your 4D application to the Web sphere.


4D Mobile, new for 4D v14, is a means of getting your 4D applications and their data to the Web and mobile devices more easily and functionally than ever before. It provides a transparent bridge to 4D’s Wakanda platform for professional Web applications. Your 4D application’s data can be made available (and manipulable) at a basic level via browser with no additional programming necessary, but with plenty of room to go further.


With 4D Mobile, a Wakanda app has selective access to all of your 4D application’s tables, data and methods, in order to replicate functionality from any modern browser – whether on desktop, tablet or mobile – from any 4D source.


To make your 4D v14 application compatible with 4D Mobile, all it takes is a simple checkbox in the Web Server Configuration of your Database settings, which allows 4D’s HTTP server to take REST requests.


4D Mobile video
Visit the 4D Mobile page to watch a video presentation
from 4D Summit 2013.

More advanced development of Web apps with Wakanda requires some JavaScript and familiarity with the IDE (which is clean and intuitive and a lot like 4D!), but rest assured that 4D Mobile will move your data and business logic safely to the Web with virtually no additional effort!


Of course, mobile applications – particularly data-intensive ones – have particular requirements like multi-user access and optimistic concurrency control. 4D Mobile supports these, naturally.


Furthermore, Wakanda applications connected to 4D via 4D Mobile can even be hosted on the cloud for high availability and scalability.


It is free to develop with 4D Mobile for those with licenses with 4D Developer Professional or 4D Team Developer Professional. You may download Wakanda Enterprise (including Wakanda Enterprise Server, Wakanda Enterprise Studio and 4D Connector Pro) to develop and test your Web application.


4D Mobile Expansion is sold as a deployment option for 4D Server in a package including Wakanda Enterprise Server and 4D Connector Pro. Get details here.


Taking your productivity to new heights

The 4D features that developers use every day (and in turn, that end-users rely upon) need to be as efficient and easy to use as possible. 4D v14 has continued the evolution of these features in ways that are logical and, of course, productive.


Web Area inspector

Web Area gets even better

4D’s Web Area has grown over several versions into an invaluable tool to integrate Web-based and other content in HTML5, CSS3, JavaScript and more. With Web technologies gaining ever-increasing prominence, 4D v14 streamlines the development and usage of this feature for higher performance and compatibility.


A new Web Area Inspector allows you to expose and explore all the elements of your Web Areas just as you would with any modern browser, insert breakpoints as you would in the 4D debugger.




 Watch what's new in Web Area for 4D v14 (10m55s)


A new query editor
Redesigned to be more modern, the new query editor includes features like intelligent constraints based on data type (i.e. “is”, “is not”, “contains” for text, “is true” or “is false” for Booleans, “is today” or “is within last…” for dates, etc.).


There is also a history of recent queries to easily access the last ten queries performed.


Queries are considered schema-less objects, and can thus be defined as a C_object and further exported as JSON, modified, and re-used in other applications.



New array types
The language used by 4D is itself rich and powerful, highly adapted toward the needs of professional business applications. Its evolution advances in 4D v14 with new array types – ARRAY TIME, ARRAY BLOB, ARRAY OBJECT – the latter of which is closely connected to the aforementioned C_object to easily access data inside objects.


A more versatile list box

As one of 4D’s most utilized interface elements, the list box is incredibly important and thus sees further improvement under 4D v14. List boxes can now contain styled cells and word wrap functionality, all accessible via checkbox properties and programmatically with new commands. List box columns can now be duplicated or moved programmatically as well, and automatic action buttons can interact with selection listboxes (i.e. modify or delete a record). Even double-click actions can be managed automatically by 4D.


 See what's new for the List Box in 4D v14 (3m20s)



Styled text object

Text has become even richer in 4D v14, with integrated URLs and even integrated 4D fields and methods via 4D expressions, with support for events (e.g. OnClick) including customizable right-click actions.


You can now easily create HTML mail, including 4D expressions in subject and body code. Take advantage of font list management, HTML image tags and HTML entities, and even mail merge – the mass mailing to numerous recipients with customized parameters for each.


Two new commands (ST INSERT EXPRESSION and ST INSERT URL) will help you create styled text in a flash.


Styled Text Object improvements, as presented at 4D Summit 2013 (3m46s)


Email improvements

Generating emails has become an indispensable feature for many applications, including the ones you create. Improvements to email come via 4D Internet Commands, refined and revamped for 4D v14. Features include Unicode support, inline HTML previews, and automatic generation of multipart emails for full support of sending HTML mail.


Further front-end niceties
The user experience is improved under 4D v14, with small but significant interface improvements that make applications easier and more productive for end-users.


For example, you can now customize drag-and-drop images with the SET DRAG ICON command to further enhance user interface ergonomics. Lists and pop-ups can now be connected directly to tables. Static text can now be displayed vertically… or even upside-down!


A new event, called On Picture Scroll, does what the name suggests, allowing you to trigger an action when an image has been scrolled. Speaking of scrolling, scrollbars now appear automatically in list boxes and hierarchical lists.


And to the relief of many end-users, form geometry is now “memorized,” meaning splitter positions, open tabs, listbox column widths and slider positions are now retained between sessions.



Maintaining your solution

As use of your solutions grows, users have demands for new versions, updates, and additional maintenance capabilities. With growth, you also have a greater need for control over your deployment and development process. 4D v14 provides new features to respond to these needs.


Design Object Access
In 4D v13, 4D gained the capability of method introspection at runtime. With 4D v14, this has been extended to form introspection. The newly renamed FORM GET NAMES command allows you to retrieve an array names of all the methods in a form, while FORM LOAD allows you to load a form into memory to get to its internals. FORM GET OBJECTS can retrieve all the objects in a form, and a new host of getters have been added to be able to retrieve all the settings for these form objects.


The advantage of design object access, and namely form introspection, is the ability to discover exactly what is in your application interface, their dependencies, and determine what would need to be updated or modified to create a new version of your solution (i.e. job costing). Another use would be to easily export all of your form objects and methods to text for the purpose of revision control/tracking.


Logging Improvements

Realtime monitor

The new debugger log and its chief benefit is mentioned above. To go further, your debug and request logs are now more human readable, with line numbering, headers, tab-delimited columns, carriage returns, escapes, and durations in microseconds. Logs can also be segmented for better management of the space they take.


These improvements lead to improved performance analysis, and this is further improved by on-the-fly analysis with the Real-Time Monitor (RTM), which shows logging processes as they happen. You’re armed with as much information as possible about what’s happening with your application right away, all of which is available programmatically via the GET ACTIVITY SNAPSHOT command.



Auto update

Automatic Updates of Merged Apps
If your client/server application is installed on various sites with multiple users, it can sometimes be a challenge keeping everybody on the latest version. 4D v14 now offers automatic updates to merged applications, using both server and client update capabilities coded by the developer: Simply restart the server with the new RESTART 4D command, pointing at the directory containing the new version of your application using SET UPDATE FOLDER. Two commands.


The automatic update feature can even apply to a merged application acting as a service (on Windows).


On Mac OS X, you can sign your merged apps to make them compatible with GateKeeper.