Our Blog   Our Claris FileMaker Blog   Our Xojo Blog   Archive     Follow us on BlueSky, Mastodon, Twitter, Xing, LinkedIn or Facebook.

MBS FileMaker Plugin, version 15.3pr3

New in this prerelease of version 15.3 of the MBS FileMaker Plugin:
  • Updated DynaPDF to version 4.0.102.288.
  • Added DynaPDF.SetActiveSigField function.
  • Added SystemInfo.isTahoe function.
  • Fixed a problem in CompressFiles method for ZipMBS class, broken since 25.0.
  • Improved SQL.InternalSQLiteLibrary.Dump function.
  • Updated SQLite to version 3.50.1.
  • Improved our CoreML functions to handle Int8 data type in addition to Float16, Float32, Int32 and Float64 data types that your models may use.
  • Updated CURL library to version 8.14.1.
  • Added CURL.SetOptionSSLSignatureAlgorithms function.
  • Improved loading LDAP library on Linux to work on Ubuntu 22 and 24.
  • Changed copy text/selection in ScriptWorkspace to indent the lines.
  • Added SelectedOnly and EndOfLine parameters for ScriptWorkspace.StyledScriptText function.
Download at monkeybreadsoftware.com/filemaker/files/Prerelease/

You can subscribe to our FileMaker mailing list to get notified for new pre-release and release versions.


JSON as input for Saxon functions

Did you know that you can use JSON in our Saxon functions? Originally Saxon is a XML library, but it can take JSON as input in various queries. The queries internally work with maps and arrays and these can be filled by JSON.

Let us show you how to use JSON for Saxon.XPathQuery and Saxon.XQuery functions:

(more)

Round corners for card windows

For the next version of MBS FileMaker Plugin in 15.3 we add the Window.SetRoundCorners function to provide round corners.

At the recent Vienna Calling conference a developer asked if we can get the edges of the card in FileMaker to be round. And yes, that is indeed possible. Once the card is shown, the MBS Plugin can find the card window and apply round corners to it.

(more)

MBS FileMaker Plugin, version 15.3pr2

New in this prerelease of version 15.3 of the MBS FileMaker Plugin: Download at monkeybreadsoftware.com/filemaker/files/Prerelease/

You can subscribe to our FileMaker mailing list to get notified for new pre-release and release versions.


Shortcuts for formula result data types

Did you notice that MBS FileMaker Plugin 15.2 includes a new feature to add keyboard shortcuts for the result data types for a formula?

(more)

Create an email in Apple Mail from FileMaker

Did you know we can pass styled text to Apple Mail?

We can use our SharingService functions to share data with other applications. This includes passing styled text, containers with images, files or URLs.

Available services

Using the SharingService.ServicesForItems function, we can query the available services to request. This allows us to check which services are available and only show a button to share via Airdrop, if that is possible.

By default you have these services available on macOS:

TitleNameTextFile PathImagesURLs
Add to Photoscom.apple.share.System.add-to-iphoto-XX-
Add to Reading Listcom.apple.share.System.add-to-safari-reading-list---X
AirDropcom.apple.share.AirDrop.send-XXX
Dropbox Transfercom.getdropbox.dropbox.TransferExtension-XX-
Freeformcom.apple.freeform.sharingextensionXXXX
Mailcom.apple.share.Mail.composeXXXX
Messagescom.apple.share.Messages.windowXXXX
Notescom.apple.Notes.SharingExtensionXXXX
Reminderscom.apple.reminders.sharingextensionXXXX
Simulatorcom.apple.iphonesimulator.ShareExtension-XXX

If you install applications, they may offer additional services. I got Dropbox to show up here, so I included it in the table.

(more)

MBS FileMaker Plugin, version 15.3pr1

New in this prerelease of version 15.3 of the MBS FileMaker Plugin: Download at monkeybreadsoftware.com/filemaker/files/Prerelease/

You can subscribe to our FileMaker mailing list to get notified for new pre-release and release versions.


MBS @ FMTraining.TV - The MonkeyBread Plug-in 15.2 Update

Check out the FMTraining.tv website. Richard Carlton and his team do a daily free live stream about FileMaker to watch.

A few days ago Christian Schmitz from Monkeybread Software joined a live episode to talk a bit about the MBS FileMaker Plugin. Watch it on YouTube.

We talked about the 15.2 release: See announcement, the new functions and release notes.

(more)

MBS @ FMTraining.TV - MBS Open Q&A

Check out the FMTraining.tv website. Richard Carlton and his team do a daily free live stream about FileMaker to watch.

A few days ago Christian Schmitz from Monkeybread Software joined a live episode to talk a bit about the MBS FileMaker Plugin. Watch it on YouTube.

A question and answer round for the MBS FileMaker Plugin. We check Window.Activate, Process.SetFrontMost, Time.Format, AVRecorder, WebView, DynaPDF, JSON and more functions. We check out the script workspace enhancements with the various shortcuts and the snippet database.

(more)

LastError and LastErrorDetail in FileMaker

We used to suggest scripts like the one below to install the MBS FileMaker Plugin and check for the error status. But the following script has a big problem, a little oversight on how FileMaker works. Try to guess what is wrong here:

Install Plug-In File [ Install Plugin Update if needed::Plugin File Mac ]
Set Variable [ $LastError ; Value: Get(LastError) ]
Set Variable [ $LastErrorDetail ; Value: Get(LastErrorDetail) ]


The script installs the plugin and in case of an error, we like to query the error code and message. But this script never gets the last error detail! You may guess that we query the last error number and detail for the first line with the installation. But what we do is to query the detail for LastErrorDetail, we get the result from the Set Variable script line in the second line. Yes, the Set Variable will clear the error state and thus we never get the detail for the first line.

We have a fixed script:

Install Plug-In File [ Install Plugin Update if needed::Plugin File Mac ]
Set Variable [ $r ; Value: Let([
  $lastError = Get(LastError);
  $lastErrorMessage = Get(LastErrorDetail)
]; 1) ]


This time we use a Let() statement to query both LastError and LastErrorDetail and assign it to variables. This way the Set Variable can overwrite the error state after we got the values.

If you have existing scripts using Get(LastErrorDetail), you may want to update them to use a Let statement.

MBS @ FMTraining.TV - The MonkeyBread Plug-in 15.1 Update

Check out the FMTraining.tv website. Richard Carlton and his team do a daily free live stream about FileMaker to watch.

A few days ago Christian Schmitz from Monkeybread Software joined a live episode to talk a bit about the MBS FileMaker Plugin. Watch it on YouTube.

We talked about the 15.1 release: See announcement, the new functions and release notes.

(more)

News in MBS FileMaker Plugin 15.2

In this article we want to introduce you the new functions from the MBS FileMaker Plugin in version 15.2.

LibXL

Let's start with what's new in the LibXL component. LibXL supports you since years in creating, reading and modifying Excel files. In this release you get the possibility to add and format tables. First, we can add a table with the XL.Sheet.AddTable function. You can give this table a name, a range and a style. You can change the name and style later using the other functions we have added. To change the name, we use the XL.Table.SetName function. To change the style, use the XL.Table.SetStyle function. You can find out which styles you can use here (https://www.libxl.com/table.html).

Now we can decide whether we want to apply the formatting to the colum and row stripes. With the functions XL.Table.SetShowLastColumn and XL.Table.SetShowFirstColumn you can decide whether the first and last row should have the style applied. If you want to know how many columns are in your table, use the XL.Table.ColumnSize function.

ListDialog

We also have some new functions for the ListDialog. You can now also assign a value to the various buttons, which can then be used in a script to differentiate between cases, for example. To set this value, use the functions ListDialog.SetCancelButtonValue, ListDialog.SetOtherButtonValue and ListDialog.SetSelectButtonValue. You then have the corresponding counter functions to query these values: ListDialog.GetCancelButtonValue, ListDialog.GetOtherButtonValue and ListDialog.GetSelectButtonValue. In the list dialog, you can also press the Cancel button if you have not made a selection. With the Select button, you always need a selection to be able to use it. With the OtherButton button, you can now use the ListDialog.SetOtherButtonNeedsSelection function to decide for yourself whether or not a selection must be made when using this button. By default Mac shows Cancel left and OK right. On Windows it is reversed and OK is left and Cancel right. So that you can standardize this, we now provide you with the ListDialog.SetSwapButtons function that can swap these buttons.

(more)

Using Gmail with oAuth2 for SMTP with MBS Plugin

A client asked about using Gmail with oAuth 2 and our SendMail functions in MBS FileMaker Plugin. We have an existing example for Microsoft Office 365, which we can adapt for Google Mail. We change a couple of URLs, the scope and then it works fine. But let's go step by step.

 

As part of the oAuth, we later get a callback. Usually this is for contacting a web server, but we like to do it locally. We use our WebHook functions to do within the FileMaker Pro application and catch the answer from the JavaScript running in the browser.

 

Set Variable [ $$WebHooks ; Value: MBS("WebHook.Create") ]

Set Variable [ $r ; Value: MBS("WebHook.Listen"; $$WebHooks; 9999) ]

Set Variable [ $r ; Value: MBS("WebHook.SetScript"; $$WebHooks; Get(FileName); "WebHookReceived") ]

 

Set Variable [ $text ; Value: "<html><p>Request arrived.</p></html>" ]

Set Variable [ $text ; Value: "HTTP/1.1 200 OK¶Server: MyServer 1.0¶Connection: close¶Content-Type: text/html¶Content-Length: 36¶¶" & $text ]

Set Variable [ $text ; Value: MBS( "Text.ReplaceNewline"; $Text; 3 ) ]

Set Variable [ $r ; Value: MBS("WebHook.SetAutoAnswer"; $$Webhooks; $text; "UTF-8") ]

 

As you see we let the WebHook just answer any request with OK and a short html answer. That one is sent to the JavaScript in the WebViewer and it only cares for the 200 OK. The plugin triggers a script to report the incoming connection.

(more)

MBS Plugin 15.2 for Claris FileMaker

Nickenich, Germany - (May 6th, 2025) -- Monkeybread Software today is pleased to announce MBS FileMaker Plugin 15.2 for Claris FileMaker for macOS, iOS, Linux and Windows, the latest update to their product that is easily the most powerful plugin currently available for Claris FileMaker produce line. As the leading database management solution for Windows, macOS, iOS and the web, the Claris FileMaker Pro Integrated Development Environment supports a plugin architecture that can easily extend the feature set of the application. MBS FileMaker Plugin 15.2 has been updated and now includes over 7600 different functions, and the versatile plugin has gained more new functions:

Our Integration of the Saxon XML processing library into Xojo completed with the Saxon 12.6 release. You can use XSLT 3.0 for transformations, XQuery 3.1 for queries, XSD 1.1 for document validation and XPath 3.1 for navigation within documents.

We added new shortcuts for developers on macOS for calculation dialogs defining formulas: Press key combinations to define the return type just like field types, e.g. command-N for number.

For DynaPDF we have a new DynaPDF.RenderJob function to perform rendering pages in a background thread. This keeps the main thread free while you receive a script trigger when it finished. The DynaPDF library can now incrementally update PDF documents and better handle big TIFF images. We added functions to control bidi modes for right to left languages and ReadImageFormatFile and DynaPDF.ReadImageResolutionFile functions to query information for image files.

We improved our ListDialog functions. You can define the value returned for the buttons and define whether an extra button needs a selection. And you can control whether we swap OK and cancel button on Windows.

You can use auto complete on macOS for file path dialogs. The auto completion now handles XL function names better with two dots. The If/Loop highlighting can show the blocks defined by enter find mode and perform find.

Plugin defined variables can contains value lists. Use Variable.ValueCount to count values in the variable and use Variable.AppendValue and Variable.PopValue to add and remove values. Similarly you can store JSON in a plugin based variable and add JSON using Variable.AppendJSON and remove it later using Variable.PopJSON thread safely.

For auditing you can set the name of the table occurence for the AuditLog table. If you use UUIDs as primary key, you can use Audit.SetUUIDFields to define the exact names of the fields with the UUID.

We added the XL functions to define styled tables in an Excel files, a JSON.ToCSV function to turn JSON into CSV text and added ExtensionFilter parameter for Files.ListRecursive function.

Finally we updated the CURL library to version 8.13.0, DynaPDF to 4.0.100.285, expat to 2.7.1, libarchive to 3.7.9, LibXL to 4.6, SQLAPI to 5.3.6, Saxon to 12.6 and we updated the plugin SDK.

See release notes for a complete list of changes.


Neues MBS Plugin 15.2 für Claris FileMaker

6. Mai 2025 - Monkeybread Software veröffentlicht heute das MBS FileMaker Plugin für Claris FileMaker in Version 15.2, mit inzwischen über 7600 Funktionen eines der größten FileMaker Plugins überhaupt. Hier einige der Neuerungen:

Unsere Integration der Saxon XML-Verarbeitungsbibliothek in FileMaker wurde mit der Saxon Version 12.6 abgeschlossen. Sie können XSLT 3.0 für Transformationen, XQuery 3.1 für Abfragen, XSD 1.1 für die Dokumentenvalidierung und XPath 3.1 für die Navigation in Dokumenten verwenden.

Wir haben Tastenkombinationen für Entwickler auf macOS für Berechnungsdialoge hinzugefügt, die Formeln definieren: Drücken Sie Tastenkombinationen wie Befehl-N für Zahlen, um den Rückgabetyp genau wie Feldtypen zu definieren.

Für DynaPDF gibt es eine neue DynaPDF.RenderJob Funktion, um das Rendern von Seiten in einem Hintergrund-Thread durchzuführen. Dies hält den Haupt-Thread frei, und Sie bekommen einen Skript-Trigger, wenn der Vorgang abgeschlossen ist. Die DynaPDF Bibliothek kann nun PDF Dokumente inkrementell aktualisieren und besser mit großen TIFF Bildern umgehen. Wir haben Funktionen hinzugefügt, um Bidi-Modi für Rechts-nach-Links-Sprachen zu steuern und ReadImageFormatFile und DynaPDF.ReadImageResolutionFile Funktionen, um Informationen für Bilddateien abzufragen.

Wir haben unsere ListDialog-Funktionen verbessert. Sie können den Wert definieren, der für die Buttons bei einem Klick zurückgegeben wird, und festlegen, ob zusätzliche Buttons eine Selektion in der Liste benötigt. Und Sie können festlegen, ob wir unter Windows die OK- und die Abbruch-Schaltfläche vertauschen.

Sie können die Autovervollständigung unter macOS für Dateipfaddialoge verwenden. Die Autovervollständigung kann jetzt XL-Funktionsnamen mit zwei Punkten besser verarbeiten. Die If/Loop-Hervorhebung kann die Blöcke anzeigen, die durch die Eingabe des Suchmodus und die Durchführung der Suche definiert sind.

Plugin definierte Variablen können Wertelisten enthalten. Verwenden Sie Variable.ValueCount, um die Werte in der Variable zu zählen und verwenden Sie Variable.AppendValue und Variable.PopValue, um Werte hinzuzufügen oder zu entfernen. In ähnlicher Weise können Sie JSON in einer Plugin-basierten Variable speichern und JSON mit Variable.AppendJSON hinzufügen und später mit Variable.PopJSON thread sicher entfernen.

Für das Auditing können Sie den Namen des Tabellenvorkommens für die Tabelle AuditLog festlegen. Wenn Sie UUIDs als Primärschlüssel verwenden, können Sie mit Audit.SetUUIDFields die genauen Namen der Felder mit der UUID festlegen.

Wir haben XL-Funktionen hinzugefügt, um formatierte Tabellen in einer Excel-Datei zu definieren, eine JSON.ToCSV-Funktion, um JSON in CSV-Text umzuwandeln, und einen ExtensionFilter-Parameter für die Files.ListRecursive-Funktion.

Schließlich haben wir die CURL-Bibliothek auf Version 8.13.0, DynaPDF auf 4.0.100.285, expat auf 2.7.1, libarchive auf 3.7.9, LibXL auf 4.6, SQLAPI auf 5.3.6, Saxon auf 12.6 und das Plugin SDK aktualisiert.

Alle Änderungen in den Release Notes.


14 FileMaker Conferences in 2025

So far we know about 14 conferences around the world. Time to pick which ones to join. Please pick a few from this menu:

EventLanguageDateWhereLinks
Claris Engage Japan Japanese 5th to 7th November 2025 Tokyo, Japan claris.com/ja/conference
EngageU English 9th to 11th November 2025 Antwerpen, Belgium engageu.eu
Full Access English 20th to 23rd October 2025 Los Altos, USA fullaccess.us
Reconnect.Melbourne English 16th to 17th October 2025 Melbourne, Australia reconnect.fm
Naples FileMaker Week English 8th to 10th October 2025 Naples, Italy filemakerweek.com
FileMaker Konferenz German 15th to 17th September 2025 Hamburg, Germany filemaker-konferenz.com
Build Grow Learn English 8th to 10th September 2025 Greenville, USA buildgrowlearn.com
Vienna Calling English 4th to 7th June 2025 Vienna, Austria viennacalling.eu
Elevate FM English 26th to 27th May 2025 Toronto, Canada elevatefm.ca
FMTR Zirvesi '25 Turkish/English 24th May 2025 Istanbul, Turkey fmtrzirvesi.com
Rendez-vous::FM[2025] French 15th to 17th May 2025 Reimes, France rendez-vous-fm.fr
CodeWave Spanish 25th to 26th April 2025 Valencia, Spain codewave.es
Claris Engage USA English 25th to 27th March 2025 Austin, Texas claris.com
(more)

Using Feature Flags in FileMaker: A Smarter Way to Manage Features

Feature flags (also known as feature toggles) are a powerful technique in modern development. They allow you to turn features on or off dynamically—without modifying scripts or deploying updates. While widely used in web and SaaS platforms, this strategy works extremely well in FileMaker, especially when building scalable, multi-user solutions or managing access to licensed features.

(more)

From speech to text with FileMaker and MBS

I wanted to transcribe a few voice messages from WhatsApp. Doing this by hand takes a long time for longer voice messages, but maybe I can solve this with a script?

With FileMaker and the MBS FileMaker Plugin, you can quickly build a supporting tool for this.

I used the functions from the Speech component for Mac and iOS. First, a new script was created in the project. In this script, we first check whether Speech recognition has been initialized. If the SpeechRecognition.IsInitialized function returns something that is not equal to 1, we must first initialize the whole thing with SpeechRecognition.Initialize

(more)

MBS FileMaker Plugin, version 15.2pr7

New in this prerelease of version 15.2 of the MBS FileMaker Plugin:
  • Updated DynaPDF to version 4.0.100.285.
  • Added PremulAlpha as a possible raster flag for DynaPDF.RenderPage, DynaPDF.RenderPDFFile and DynaPDF.RenderPDFFileEx functions.
  • Improved Bonjour functions to cleanup threads better.
Download at monkeybreadsoftware.com/filemaker/files/Prerelease/

You can subscribe to our FileMaker mailing list to get notified for new pre-release and release versions.


Useful iOS functions

If you make an iOS application with the FileMaker iOS SDK, you can embed the MBS FileMaker Plugin for iOS and enjoy a lot of iOS specific feature.

Let's say you have a container for a document and you want the user to be able to scan a document. Then you check the DocumentCameraScan functions to add a button for this.

(more)

Older blog entries:

2025-04-25 MBS FileMaker Plugin, version 15.2pr6
2025-04-22 MBS FileMaker Plugin, version 15.2pr5
2025-04-16 MBS FileMaker Plugin, version 15.2pr4
2025-04-10 MBS FileMaker Plugin, version 15.2pr3
2025-04-10 Connect to DuckDB in FileMaker
2025-04-09 Connect to Postgres in FileMaker
2025-04-07 MBS FileMaker Plugin, version 15.2pr2
2025-04-01 MBS FileMaker Plugin, version 15.2pr1
2025-03-30 FileMaker Konferenz 2025 in Hamburg - Frühbucher
2025-03-19 MBS FileMaker Plugin 15.1 News
2025-03-12 Exploring the Plugin.LimitToFile Feature in the MBS FileMaker Plugin 15.1
2025-03-11 MBS Plugin 15.1 for Claris FileMaker
2025-03-11 Neues MBS FileMaker Plugin 15.1 für Claris FileMaker
2025-03-06 MBS FileMaker Plugin, version 15.1pr7
2025-03-06 Electronic invoices in FileMaker
2025-03-04 Elektronische Rechnungen in FileMaker
2025-03-03 MBS FileMaker Plugin, version 15.1pr6
2025-02-25 Claris Engage 2025 - Next Month
2025-02-24 MBS FileMaker Plugin, version 15.1pr5
2025-02-22 Visiting Texas for Claris Engage

Archives

Jun 2025
May 2025
Apr 2025
Mar 2025
Feb 2025
Jan 2025
Dec 2024
Nov 2024
Oct 2024
Sep 2024
Aug 2024
Jul 2024
Jun 2024
May 2024
Apr 2024
Mar 2024
Feb 2024
Jan 2024
Dec 2023
Nov 2023
Oct 2023
Sep 2023
Aug 2023
Jul 2023
Jun 2023
May 2023
Apr 2023
Mar 2023
Feb 2023
Jan 2023
Dec 2022
Nov 2022
Oct 2022
Sep 2022
Aug 2022
Jul 2022
Jun 2022
May 2022
Apr 2022
Mar 2022
Feb 2022
Jan 2022
Dec 2021
Nov 2021
Oct 2021
Sep 2021
Aug 2021
Jul 2021
Jun 2021
May 2021
Apr 2021
Mar 2021
Feb 2021
Jan 2021
Dec 2020
Nov 2020
Oct 2020
Sep 2020
Aug 2020
Jul 2020
Jun 2020
May 2020
Apr 2020
Mar 2020
Feb 2020
Jan 2020
Dec 2019
Nov 2019
Oct 2019
Sep 2019
Aug 2019
Jul 2019
Jun 2019
May 2019
Apr 2019
Mar 2019
Feb 2019
Jan 2019
Dec 2018
Nov 2018
Oct 2018
Sep 2018
Aug 2018
Jul 2018
Jun 2018
May 2018
Apr 2018
Mar 2018
Feb 2018
Jan 2018
Dec 2017
Nov 2017
Oct 2017
Sep 2017
Aug 2017
Jul 2017
Jun 2017
May 2017
Apr 2017
Mar 2017
Feb 2017
Jan 2017
Dec 2016
Nov 2016
Oct 2016
Sep 2016
Aug 2016
Jul 2016
Jun 2016
May 2016
Apr 2016
Mar 2016
Feb 2016
Jan 2016
Dec 2015
Nov 2015
Oct 2015
Sep 2015
Aug 2015
Jul 2015
Jun 2015
May 2015
Apr 2015
Mar 2015
Feb 2015
Jan 2015
Dec 2014
Nov 2014
Oct 2014
Sep 2014
Aug 2014
Jul 2014
Jun 2014
May 2014
Apr 2014
Mar 2014
Feb 2014
Jan 2014
Dec 2013
Nov 2013
Oct 2013
Sep 2013
Aug 2013
Jul 2013
Jun 2013
May 2013
Apr 2013
Mar 2013
Feb 2013
Jan 2013
Dec 2012
Nov 2012
Oct 2012
Sep 2012
Aug 2012
Jul 2012
Jun 2012
May 2012
Apr 2012
Mar 2012
Feb 2012
Jan 2012
Dec 2011
Nov 2011
Oct 2011
Sep 2011
Aug 2011
Jul 2011
Jun 2011
May 2011
Apr 2011
Mar 2011
Feb 2011
Jan 2011
Dec 2010
Nov 2010
Oct 2010
Sep 2010
Aug 2010
Jul 2010
Jun 2010
May 2010
Apr 2010
Mar 2010
Feb 2010
Jan 2010
Dec 2009
Nov 2009
Oct 2009
Sep 2009
Aug 2009
Jul 2009
Apr 2009
Mar 2009
Feb 2009
Dec 2008
Nov 2008
Oct 2008
Aug 2008
May 2008
Apr 2008
Mar 2008
Feb 2008
XML: RSS Feed XML: Atom Feed