Executive Summary-FileMaker 2024

Executive Summary-FileMaker 2024

Claris just released the FileMaker 2024 product line…

And we shall call it FileMaker 21.0.1…

Not because we’re contrary but because the platform goes by two names. FileMaker 2024 is its marketing name. That name will cover many different releases, just as FileMaker 2023, released in April 2023, covered versions 20.1.1 through 20.3.2. Most of these releases brought new features as well as bug fixes. In the case of 20.3.2, we received no new features but an important security patch. I have more about that below.

You can track all releases in the Claris knowledge base. Here is the list of FileMaker Pro releases and the same information for FileMaker Server.

OS Compatibility

Claris FileMaker Pro drops support for macOS Monterey (12) and supports macOS Ventura (13) and Sonoma (14). On Windows, you need to be on 10 or 11, which hasn’t changed since the previous version.

With this version of FileMaker Pro, you will be able to connect to FileMaker Server version 19.4.2 and up.


Claris worked hard on patching some long-standing vulnerabilities. One of them is something I mentioned in my Engage 2024 presentation: “Are you confident in your app’s security?”.

When you use the Grant Full Access to scripts that contain certain script steps that let users interact with FileMaker functionality, you may inadvertently be exposing a lot more to the user than you intended. This includes giving them the ability to mess about in your tables and fields. The Import Records script step dialog is just one of those:

Specify Import Order in the Import Records script step

In my Engage 2024 presentation, I make the case to be extremely cautious when granting Full Access to scripts. Often, we find that it is the lazy way out instead of crafting the proper privilege set for the users. Don’t be that kind of developer.

If you do need to grant Full Access to a script, add a comment in the script explaining why so that developers who come after you don’t have to guess.

There are other security vulnerabilities that got patched in this version, too. You can read up on them in this white paper by Steven Blackwell and myself.


There was a lot of buzz around AI at February’s Engage 2024. You can watch some of Claris’ content on that on their YouTube channel.

While this new version brings some built-in AI functionality, I want to call out that there is already a lot of AI integration that you can do, as shown in our blog post from early 2023. That blog post shows powerful – and secure! – ways of integrating with ChatGPT.

Claris is embedding the AI functionality deeply into FileMaker’s Draco engine, as per this screenshot from Wade Ju’s Engage 2024 presentation, with a whole new Large Language Model (LLM) connectivity layer in the engine.

Image showing the Large Language Model (LLM)

Clearly, there are more features to come in this area. For now, this is what we have that is new. For this release, the focus is on adding support for vector embeddings and semantic search.

In your script workspace, you will see a new section of script steps:

New 'Artificial Intelligence' section added to the script steps inn the Script Workspace

The Configure Machine Learning Model is not new. It was introduced with 19.0 back in 2020, but the other script steps are new.


Let’s tackle vector embeddings first since that is at the core of a lot of functionality. I like how Wade Ju explained it in his Engage session: think of it as another type of index of your data. As we know, the index that we have on data makes it easier and faster to search for data. Vector embeddings do the same. They create numerical representations of your data so that you can do the types of searches such as “How similar is this to that, how closely related are they?” or to classify text, summarize it, and so on.

Embeddings are the representations or encodings of tokens, such as sentences, paragraphs, or documents. Or put a different way: embeddings are a way to store data of all types (including images, audio files, text, documents, etc.) in number arrays called vectors. Inside your FileMaker file, you can store these embeddings in a text field or in a container field in binary format. The recommendation is to always use a container field because the processing of that binary format is much faster and is smaller in amount of storage space.

These embeddings are then used by the LLM, the Large Language Model, to interpret and generate some output.

Semantic Search

Semantic search is one of those capabilities that is unlocked by all of this. It’s the ability of the model to do more than a literal search for the words that you are typing, but also to interpret them and derive meaning from the natural language you write your question in.

Most of the community content will be focused on integrating with cloud-based AI functionality from OpenAI (ChatGPT) and Anthropic (Claude). However we want to emphasize that you can also deploy your own Large Language Model (LLM) to integrate with so that no data or metadata ever needs to leave your own environment, whether you do that on-premise or self-cloud-hosted. Claris calls this the “Open Source” route (or Open Handler in the graphic above). That is where we will primarily focus our future content.

It’s important to note that Claris uses the same kind of approach as we did in our blog post from last year: no data is sent to the LLM, only metadata. Enough metadata about the schema of your solution so that the LLM can return a valid SQL query that FileMaker can execute to get you the response you were prompting it for. When you see references to DDL (Data Definition Language), that is your metadata.

You might spot this as one of the new functions:

GetTableDDL ( tableOccurrenceNames ; ignoreError )

GetTableDDL script - Returns table information in Data Definition Language (DDL) format for a list of table occurrences specified as a JSON array.

Execute Data API: Create, Update, Duplicate and Delete

This is a huge feature. For years, we’ve been pining for a way to manipulate data in a context-less fashion. Meaning that we wanted to break free from having to navigate to a particular layout just so we could touch the data that belongs to the underlying table of that layout’s table occurrence.

For reading data we have been able to do this through the ExecuteSQL() function and the Execute FileMaker Data API script step. But those could not create, edit, or delete data. And now we can, with the updated Execute FileMaker Data API script step. And for the record – because there is still a lot of confusion about this script step – this does not require the file to be hosted or the server to have the Data API enabled. This script step works internally inside the FileMaker file.

Until now, we have been limited to using the read action in the instructions we sent to the script step to retrieve a single record or do a search. But now you can use the editdeletecreate, and duplicate actions.


There used to be a time when I was very good at writing XSLT stylesheets, the things required to import XML from other systems into FileMaker and/or to transform FileMaker’s XML grammar into the XML syntax that other systems required.

Specify XML and XSL Options dialog

Most of our integration work these days is through REST APIs and JSON, so XML has not been that prominent. But the need for it has not gone away. Under the hood, Claris has replaced the main libraries that it uses for processing XML and XSLT (Xerces with libxml2 and Xalan with libxslt). In addition to overall better performance, those new libraries allow for a bunch of new functionality in the form of additional extension elements and functions. See, as a reference. If you process a lot of XML, then definitely keep an eye on the Claris community because there will be some interesting content for you.

Save as XML

Claris itself uses a lot of XML. The Database Design Report, for instance, produces XML. So does the Save as XML script step (SaXML). Both of these output your solution’s schema elements (tables, fields, scripts, layouts, relationships, value lists, etc.) in an XML format. The SaXML format is becoming more important.

JSON Functions

Most coding environments have an efficient way of using arrays by providing you with an easy way to find the last element in the array, remove it, and add something to the end of an array.

Before this version, you would always have to take a detour by figuring out how many elements were in the array so that you could address the last one. You’d typically use JsonListKeys() for this, but now you can directly reference the last element in an array with the [:] syntax or add an element to the end of an array with the [+].

Additionally, there is also a new JsonMakeArray() function that lets you easily create an array from any form of delimited list.



Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top
Scroll to Top