I picked up my first copy of FileMaker 3 and wrote my first little database app in 1998. Twenty-five years later, I still find myself eagerly anticipating the next new release, hoping to try out the next cool feature that promises to keep this business of solving problems with software fun.
A lot has changed in the intervening years. The product has evolved and made significant transformations, gaining power and features. FileMaker started as a tool that hobbyists and professionals depended on. Today, it is also unequivocally a platform for professional software developers. I can’t think of another development platform with the same legacy and endurance as FileMaker. Many all-in-one database and business application development products have come and gone. FileMaker is still, by all measures, going strong. I think this is worthy of celebration and study.
In the coming days, you will read and hear about many of the cool features that Claris is releasing with FileMaker 2023. There is a lot in this release, and I am going to single out one of my favorites–the OnWindowTransaction script trigger. Note: non-technical readers might want to skip to the next section.
OnWindowTransactions in FileMaker 2023
Here’s how it works per the release notes:
The new OnWindowTransaction script trigger creates a JSON object whenever a window’s transaction completes successfully. The JSON object includes the file name, base table name, record ID, operation, and contents of a specified field (or a field named OnWindowTransaction if none is specified) in the base table for every operation within the completed transaction.
Naturally, I find anything to do with transactions pretty exciting, though I think this one is subtly powerful. New possibilities for audit-logging immediately come to mind. But this feature also feels like the closest thing we have to an events handler that can be bound to our app’s data “objects.”
Imagine if we had a CONTACTS object that is modeled with several related tables like so:
In this example, I have created a JSON object in a field called _JSON. This JSON includes data from the CONTACTS table and its related ROLES and PARTY tables.
We can then hook up a script to that OnWindowTransaction trigger to do a thing such as publish a message to another file or just show a dialog message with the contents of the JSON payload along with the operations details of the transaction every time a CONTACTS record was created, updated, or deleted(!).
For example, after I modified James Bond’s Contact::name to ‘Jane Bond’, FileMaker fires off a script with the contents of the _JSON field from the CONTACTS table:
The amazing thing about this is that this is layout agnostic. This is a Window-level trigger which, for all intents and purposes, means it will work on any layout. Total. Game. Changer.
Let that sink in.
Yes, you can probably do this today with a lot of care and effort, but doing this kind of thing with OnWindowTransaction would be a huge time saver–it’s simpler and more elegant.
It is modern.
FileMaker can now natively publish changes to data. Imagine the possibilities if we could couple this power to a simple pub/sub system or message queue to distribute those changes in a non-blocking way to other FileMaker apps or 3rd party integrations. Conveniently, we happen to write just that thing for FileMaker; it is called SimpleQ, and it is free.
But wait, there is more
Aside from the above-mentioned OnWindowTransaction trigger, we are also getting a bunch of eye-opening features such as the new ability to do callbacks with Perform on Server scripts. There are also dozens of important bug fixes and stability improvements, not to mention the numerous features aimed at scaling Server performance.
This is a doozy of a release.
I’ll admit I wasn’t sure about the decision to call it “FileMaker 2023” but, in retrospect, it makes a ton of sense. At its core, FileMaker 2023 it’s still very much the FileMaker we all know and love. But juxtaposed with the changes that have come before, this release feels revolutionary–it feels like a release designed for modern software development.
Speaking of modern software development, we’ve previously outlined some of our ideas on the Modern FileMaker Revolution, here, but the gist of it is this: if the legacy FileMaker development is about making monolithic do-it-all database apps, modern FileMaker is partly about lightweight, highly performant apps that work within a network of other applications, be it cloud-based SaaS apps or traditional on-prem business ERPs. Modern FileMaker development practices emphasize ideas around loose-coupling and encapsulating complexity to make things easier to maintain; taken all together, the developer-centric features of FileMaker 2023 like OnWindowTransaction, and callbacks help us do exactly that.
Be warned. The release notes are long, but one thing seems clear–Claris remains deeply committed to the FileMaker product line even as it is working to expand the Claris platform; and, I think, for good reason. Twenty-five years since my first “File…New” command, and years of professional consulting and development work with so-called serious software development stacks later, FileMaker is still the first tool I reach for when I want to solve a business problem.
Congratulations on a great release, Claris! Learn more about FM2023 here.