Send Audit Log via CURL in background

When we saw the new OnWindowTransaction, we got the idea to pass the JSON we receive to a web server to log the changes outside the FileMaker database. We had a similar thing with using MongoDB functions in a recent blog post: OnWindowTransaction and MongoDB. By storing the JSON outside, we can do the audit log on a different server. Whether you pass the JSON to another FileMaker Pro via our WebHook functions, a PHP script on your web server or directly send it to AWS to put in a database.


From the point of view of MBS FileMaker Plugin we just use the CURL functions. And there we have the CURL.PerformInBackground function to perform a HTTP Post in the background without slowing down the GUI. When the request is sent, we get either an expression evaluated or a script triggered. There we may check if the transfer worked, maybe do something special if it failed. But on the end we always free the curl object.


New in MBS FileMaker Plugin 13.5

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


A very cool new feature is in the ListDialog Component. Because we now have checkboxes for the list dialog. These can be displayed using the ListDialog.SetShowCheckboxes function. You can now check boxes either manually or by script. If you want to check the boxes by script, use the ListDialog.SetChecked function. Here you enter the list index of the row you want to check followed by the value. 1 for check and 0 for do not check. You can use the ListDialog.GetChecked function to determine whether a field in a particular row is checked or not. To do this, enter the list index in the parameters and the corresponding value will be returned. We can also use the ListDialog.GetCheckedTags and ListDialog.GetCheckedTitles functions to obtain a list of the checked tags and titles. If you use the filter in the dialog, the boxes remain checked even if they are not currently visible and are returned in these lists.


Data structures in MBS Plugin

Let us show you today the various data structures we have in MBS FileMaker Plugin and how to use them.

  • QuickList
  • Dictionary
  • Matrix
  • JSON References
  • SQL Result

In general you can keep huge amounts of data in memory to query them anywhere with a quick lookup in one of the data structures. Such a lookup may avoid needing extra relationships and can be faster than a database lookup.


Black Friday coming soon

As you may know Americans love to shop on Black Friday and Cyber Monday. This year Black Friday is 24th November. About half our customers are in North America, so we are happy to offer you a discount if you buy this weekend. Our offer will go live in the next days and should be available in time.

We plan to offer coupon code BlackFriday for the web shop with 20% off for new licenses of MBS Plugins, DynaPDF and LibXL.
Updates are already offered with discount (usually 50%) compared to new purchases and and our academic prices already have a discount, too. If you like, you can email us to get an order link for all licenses you need or provide an invoice if needed. Especially if you like to use Paypal for payment, we can provide a link with discount or write a custom invoice.

Order MBS FileMaker Plugin     Order MBS Xojo Plugins     Order LibXL

As usual the discounted offer allows you to buy whatever licenses you may need in the next year. Especially if your license expired in 2022 or before, this is a great chance to get up to date!

You have a question? Please don't hesitate to contact us by email or phone. We may help to point you to the right offer.

MBS @ FMTraining.TV - FileMaker Monkeybread Plug-in Update 13.4

Check out the 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 talk about the new MBS FileMaker Plugin 13.4 release: Announcement, release notes, new functions and download


MBS Function calls in blue

When you enter a MBS function in a calculation on macOS, we show MBS in blue. The function name entered behind it as parameter turns blue if the function is known to the plugin. It will show in red while the function name is not correct. When you type something and you see it in red, then check for typos.


Read and write notes in Contacts

As you may know we have Contacts functions for years and quite a few people use them to synchronize to the macOS Contacts application from FileMaker. Our functions allow you to read and write to contacts database and you can implement a sync method for it. Especially if you have contacts in your FileMaker database, you may like to synchronize these contacts to the contacts database. Once synchronized, they appear on the iPhone when you get called.


We got a bit surprised with macOS Ventura adding restrictions for reading notes. Don't get us wrong: the privacy control is great. Like you may not like every application to read your whole contacts database. Especially as people write sensitive informations in their notes, this field gets an extra permission. This allows you to share your contacts with an application like Signal or WhatsApp, but not upload all these notes. Now FileMaker Pro comes with the entitlement to read the contacts, but not the one for the note field. So we looked for alternative ways and found one via AppleScript.


Since we have AppleScript functions in our plugin to run AppleScripts, we can leverage them. In our case we have a static script with a property, which we compile once. Then we can use it several times and just change the ID we pass. Please never build scripts using data from the user. We don't want the equivalent of a SQL injection in our AppleScript script. For each time you lookup the contact note, you can now take AppleScript.SetPropertyValue to pass the ID and the run AppleScript.Execute function. This then returns the result of the script, which is the note field.


Format button for FileMaker

We got a new format button labeled with "ƒ" for the calculation dialog in FileMaker on macOS.

We parse the formula, detect which brackets belong together and then output the formula with additional whitespacing.


FileMaker 2023, third release

Claris released today FileMaker 2023 in version 20.3.1.

You get better layout calculations, better performance, the new FMDeveloperTool command line tool and HTTPS tunneling for easier cooperate deployment. FileMaker is compatible to macOS Sonoma with some known issues and you may enjoy a few bug fixes. But please read details in the release notes:


FileMaker Pro 20.3.1 release notes
FileMaker Go 20.3.1 release notes
FileMaker Server 20.3.1 release notes

You can download it on the ESD website. The link is in the license email from Claris.

For MBS Plugin, just make sure you have a 13.x version. We fixed a few minor things over the beta test period, so recommended version is 13.5.

Check out the Snippets database example

Did you know, that we have an example with snippets for writing scripts and makes them available in Script Workspace to insert via a hotkey?

Please check the Snippets for Windows.fmp12 file. Beside it being for Windows, it can also work on MacOS if needed. So you may use it and then call the "Install Picker Dialog" script in your solution to install it, if you sign-in as developer. (more)

MBS FileMaker Plugin at EngageU 2023

The presentation about MBS Plugin for EngageU conference.

All movies   Watch on YouTube.   MBS2023.mp4   MBS2023.pdf

MBS Booth ready for EngageU

Please visit us at the booth to say Hello, ask a few questions and learn what is new for MBS FileMaker Plugin. Join our presentation on November 14 at 12:50 o'clock for the presentation.

As usual you can come by, read the poster, ask us questions and talk with us about existing and future features.
Use coupon code FileMakerConference for the discount on new licenses. See pricing page.

See you soon!

MBS Plugin 13.5 for Claris FileMaker

Nickenich, Germany - (November 7th, 2023) -- Monkeybread Software today is pleased to announce MBS FileMaker Plugin 13.5 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 13.5 has been updated and now includes over 7200 different functions, and the versatile plugin has gained more new functions:

To help with JSON processing, we have JSON functions to search, replace and query. Use JSON.Query function for JSON Path queries and JSON.Replace to replace found values with new values. Use JSON.Search to perform JMESPath queries in FileMaker.

Our ListDialog functions can show check boxes in the dialog. Turn them on with ListDialog.SetShowCheckboxes function, mark a few rows a pre-checked before showing the dialog. When the dialog finished, you can query checked entries. Combine this feature with our filter field to find various items and check them all.

The DynaPDF library can create PDF/A documents in versions 4, 4e and 4f and we improved our DynaPDF.CheckConformance and DynaPDF.SetPDFVersion functions for this. For DynaPDF.SetGStateFlags we added the SkaleAnnotIcons flag and we added DynaPDF.CreateGeospatialMeasure function.

We added Phidget functions in the last version. We rewrote the script trigger handling to work better for events happening quickly. To clear an event trigger, please use Phidget.ClearScriptTrigger function.

For macOS we added a format button to calculation dialog. This takes the current formula, parses it and produces a new formatted version. Please try and report edge cases. You can use Command-Shift-F to go to the replace field for the find panel in a calculation. Press Command-Option-Shift-C to copy the current formula as html.

If you enjoy our URL recognition for Script Workspace on macOS, you can use goto: and field: URLs there. Clicking on the URL button for a goto: URL jumps to a line in the script while clicking on a script: URL jumps to a different script.

When checking variable names in the Script Workspace on macOS, you can declare new variables with a comment before a Let statement to tell our plugin about the new variables.

For Windows we have the Window.AddToTaskbar and Window.RemoveFromTaskbar functions to hide windows from the taskbar if needed. We improved the use of our WindowsOCR functions for server.

Since MacOS Sonoma introduces reactions for video recording, you can configure this via AVRecorder functions. When running on macOS 14 or iOS 17, your application can check for effect availability and beside gesture also run effects via script via AVRecorder.PerformEffectForReaction function.

We added a MongoDB Audit sample database to the examples. For linux we use the more secure libc functions. Use Matrix.Lookup to look for a value in a matrix with a fallback to a default value, use the Text.TextToHTML function to convert styled text to html including highlighted ranges and use XML.Import with new flags to skip UUID fields or ignore duplicate primary key errors.

Finally we updated CURL library to version 8.4.0, DynaPDF to, SQLAPI to 5.2.6 and SQLite to 3.44.0 and Xcode to version 15.0.

See release notes for a complete list of changes.

Neues MBS Plugin 13.5 für Claris FileMaker

7. November 2023 - Monkeybread Software veröffentlicht heute das MBS FileMaker Plugin für Claris FileMaker in Version 13.5, mit inzwischen über 7200 Funktionen eines der größten FileMaker Plugins überhaupt. Hier einige der Neuerungen:

Um die JSON-Verarbeitung zu erleichtern, haben wir JSON-Funktionen zum Suchen, Ersetzen und Abfragen. Verwenden Sie die Funktion JSON.Query für JSON-Pfadabfragen und JSON.Replace, um gefundene Werte durch neue Werte zu ersetzen. Verwenden Sie JSON.Search, um JMESPath-Abfragen in FileMaker durchzuführen.

Unsere ListDialog-Funktionen können Checkboxen im Dialog anzeigen. Schalten Sie sie mit der Funktion ListDialog.SetShowCheckboxes ein, markieren Sie einige Zeilen als angekreuzt, bevor Sie den Dialog anzeigen. Wenn der Dialog beendet ist, können Sie die angekreuzten Einträge abfragen. Kombinieren Sie diese Funktion mit unserem Filterfeld, um verschiedene Einträge zu finden und sie anzuklicken.

Die DynaPDF Bibliothek kann PDF/A Dokumente in den Versionen 4, 4e und 4f erzeugen und wir haben unsere DynaPDF.CheckConformance und DynaPDF.SetPDFVersion Funktionen dafür angepasst. Für DynaPDF.SetGStateFlags haben wir das SkaleAnnotIcons Flag hinzugefügt und wir haben eine neue DynaPDF.CreateGeospatialMeasure Funktion.

Wir haben in der letzten Version Phidget-Funktionen hinzugefügt. Wir haben die Handhabung von Skript-Triggern überarbeitet, damit sie bei schnell auftretenden Ereignissen besser funktionieren. Um einen Script Trigger zu löschen, verwenden Sie bitte die Funktion Phidget.ClearScriptTrigger.

Für macOS haben wir dem Berechnungsdialog eine Schaltfläche zum Formatieren hinzugefügt. Diese nimmt die aktuelle Formel, analysiert sie und erzeugt eine neue formatierte Version. Bitte probieren Sie es aus und melden Sie Sonderfälle. Sie können Befehl-Umschalt-F verwenden, um zum Ersetzen-Feld für das Suchfeld in einer Formel zu wechseln. Drücken Sie Befehl-Option-Umschalt-C, um die aktuelle Formel als html zu kopieren.

Wenn Ihnen unsere URL-Erkennung für Script Workspace unter macOS gefällt, können Sie goto: und field: URLs dort verwenden. Mit einem Klick auf die URL-Schaltfläche für eine goto: URL springen Sie zu einer Zeile im Skript, während ein Klick auf eine Skript: URL springen Sie zu einem anderen Skript.

Bei der Überprüfung von Variablennamen im Skriptarbeitsbereich unter macOS können Sie neue Variablen mit einem Kommentar vor einer Let-Anweisung deklarieren, um unser Plugin über die neuen Variablen zu informieren.

Für Windows gibt es die Funktionen Window.AddToTaskbar und Window.RemoveFromTaskbar, um bei Bedarf Fenster aus der Taskleiste auszublenden. Wir haben die Verwendung unserer WindowsOCR-Funktionen für den Server verbessert.

Da MacOS Sonoma Reaktionen für Videoaufnahmen einführt, können Sie diese über unsere AVRecorder-Funktionen konfigurieren. Unter macOS 14 oder iOS 17 kann Ihre Anwendung die Verfügbarkeit von Effekten prüfen und neben der Geste auch Effekte per Skript über die Funktion AVRecorder.PerformEffectForReaction ausführen.

Wir haben eine MongoDB Audit-Beispieldatenbank zu den Beispielen hinzugefügt. Für Linux verwenden wir die sichereren libc-Funktionen. Verwenden Sie Matrix.Lookup, um nach einem Wert in einer Matrix mit einem Fallback auf einen Standardwert zu suchen, verwenden Sie die Funktion Text.TextToHTML, um gestylten Text in HTML zu konvertieren, einschließlich hervorgehobener Bereichen, und verwenden Sie XML.Import mit neuen Flags, um UUID-Felder zu überspringen oder doppelte Primärschlüssel zu ignorieren.

Schließlich haben wir die CURL-Bibliothek auf Version 8.4.0, DynaPDF auf, SQLAPI auf 5.2.6 und SQLite auf 3.44.0 und Xcode auf Version 15.0 aktualisiert.

Alle Änderungen in den Release Notes.

Three months until Claris Engage 2024

Just three months left until Claris Engage 2024, 6th to 8th February 2024 in Austin, Texas.

The Claris Engage conference will take place one day in the Apple Campus (6900 West Parmer Lane) for training and keynote. After the keynote, we'll meet each other at a party with food and drinks. Plenty of time to welcome old friends and talk about the keynote content. The other two days are on a different Apple Campus (5505 Parmer Lane). All the sessions will be there with lunches and refreshment breaks.

I hope to meet a lot of our clients there, answer questions and have a great time!

Use DynaPDF to create PDF documents with PDF/A-4 version

PDF/A is a specific subset of the PDF (Portable Document Format) file format that is designed for long-term preservation and archiving of electronic documents. It is intended to ensure that digital documents can be reliably preserved and accurately reproduced over time, even as technology and software evolve. PDF/A achieves this by imposing certain restrictions and guidelines on the content and features of a PDF document. Here are some key characteristics of PDF/A:
  • Self-Containment: A PDF/A document should be self-contained, meaning that all the elements required for rendering the document, such as fonts and images, must be embedded within the file. This eliminates the risk of dependencies on external resources that may become unavailable in the future.
  • Device Independence: PDF/A files are designed to be device-independent. This means that they should be viewable and printable consistently on different devices and software applications without any significant loss of fidelity.
  • Preservation of Content: PDF/A focuses on preserving the visual content, structure, and layout of a document. This ensures that the document's appearance and readability remain consistent over time.
  • Metadata: PDF/A requires the inclusion of standardized metadata to describe the document's properties and its context, making it easier to search, retrieve, and understand the content.
  • No Encryption or Password Protection: PDF/A documents should not be encrypted or password-protected to ensure long-term accessibility.
  • No JavaScript: PDF/A does not allow the use of JavaScript or other executable code, which can pose security risks or become obsolete.
  • No Embedded Audio or Video: Multimedia elements such as embedded audio or video are not typically allowed in PDF/A, as they can complicate preservation and access.
PDF/A comes in different versions, each with varying levels of features and restrictions. The most common PDF/A versions are PDF/A-1, PDF/A-2, PDF/A-3 and PDF/A-4, each building on the previous version while adding new capabilities. PDF/A-2 and PDF/A-3, for example, allow the embedding of files and support for digital signatures.

Organizations and institutions that deal with long-term document preservation, such as archives, libraries, and government agencies, often use PDF/A to ensure the integrity and accessibility of their digital records. It is essential to follow the specific requirements of the chosen PDF/A version to create compliant documents for long-term archiving.

With DynaPDF we have two ways to create a PDF/A document. First you can create a new PDF in memory from new content without importing existing PDF. Then you only add what is allowed for the PDF/A format you target and you set the version with SetPDFVersion. Alternative get DynaPDF Pro + PDF/A converter licensers and load an existing PDF to convert it with CheckConformance. That function will check for compliance and if the PDF/A converter is licensed also convert the PDF to make it compliant. If you don't license the PDF/A converter, you can still check for compliance and adjust your code on producing the PDF.

Please download our plugins and try the examples. You find more details about PDF/A in the DynaPDF manual. We have plenty to try out for you and please do not hesitate to contact us if you have questions.

Watch MongoDB Database

Did you know that MongoDB has a watch feature (change stream) to see what happens in the database?



Comment links with goto and script scheme

This may change how you write scripts. Your longer scripts may now have an index on top with goto: URLs jumping to specific lines. The goto:start and goto:end links may help to jump to start or end of the script. And script: links may jump to a different script.


Let's start with script links. You put in the script name after the script: prefix. The plugin will read the name, decode percent escaped sequences and looks for a script in same file with the given name to show it. If you have special characters in the script name, please use GetAsURLEncoded() function in FileMaker to get the URL encoded properly, e.g. with %20 for spaces. This may look like this in the script:


# We open the database connection in the Connect to database script 

# See also script:Close%20database 🌍 


Perform Script [ Specified: From list ; “Connect to database” ; Parameter:    ]


Set Variable [ $result; Value: Get(ScriptResult) ]



MBS FileMaker Plugin, version 13.5pr7

New in this prerelease of version 13.5 of the MBS FileMaker Plugin: Download at, in DropBox folder or ask for being added to the DropBox shared folder.


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