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

MBS Plugin Advent calendar: 4 - Speech

Door 4 - Speech

Fact of the day
A voice output can not only make reading easier, but also creates freedom for people with physical disabilities.

In this door, you have the opportunity to ensure that your solution never has to be at a loss for words again. Today we are teaching your application to speak, because MBS offers speech output for Windows, Mac and iOS with the Component Speech.

If we want to output a text, we can use the Speech.Speak function. We first pass the text to be read out in the parameters. That's enough for now. Optionally, we can also choose from various speakers. You can find out which speakers are available with the Speech.AvailableVoices function. This function provides you with a list of all speakers. You can specify in this function whether you want the speaker names or the ID for the speaker to be displayed in this list.

If you want to use a specific speaker in the Speech.Speak function, you need to enter the ID. In the Speech.Speak function, you can also set whether or not your script should be continued while the speech output is running. Stopping a script also makes sense if you call the Speech.Speak function in the script several times so that the text that follows is also read out and is not lost because another text is being read out. You can also set the volume and playback rate in the function. The volume is between 0.0 (silent) and 1.0 (full). The playback speed ranges between 0.0 (silent) and 2.0 (double speed). The default value for both settings is 1.0.


MBS Plugin Advent calendar: 3 - BinaryFile

Door 3 - Binary File

Fact of the day
You may also be interested in the Text component. Because you can also create a text file with this component.

Behind door 3 is a component that is mostly unseen, but is used in many applications by customers and has become essential. It is the BinaryFile component. You can use it to read binary data from a file and also write it to a file.

But what is it actually good for? Although the texts are saved as binary data, you can also create normal text files with this component and read them out again later. For example, you can create a log file yourself in which you can write information. We would like to do this now by logging in the file when a certain script has been called and what result it has. The aim is to have as less code as possible in the script that we want to log so that the script doesn't become confusing. For this reason, we use the Perform Script script step and call a script that writes the desired text to the log file. We pass the text that we want to write to the log file as a parameter. In this way, for example, the results that were calculated in the script can also be written to the file.


MBS Plugin Advent calendar: 2 - Vision

Door 2 - Vision

Fact of the day
The MBS FileMaker Plugin not only offers you the Apple Vision as a framework, using MapKit you can also integrate Apple maps into your application or take pictures with your iPhone via Continuty Camera and store them directly in FileMaker.

The second door provides something for Mac users. Apple provides a framework called Vision. With this framework you can recognize barcodes, recognize texts from images or classify images into categories with the help of machine learning, e.g. so that you can search for them in your image database. This framework makes MBS usable with the plugin for FileMaker.

Barcode recognition

Let's first look at the possibility of recognizing multiple barcodes on an image. You simply pass the image to the Vision.DetectBarcode function as a parameter and Vision then searches for the barcodes on the image and returns a JSON in which the barcodes are listed. If you only want to search for QR codes on the image, for example, you can restrict the barcode types in the search by specifying the desired types as parameters. You can find out which barcode types can be recognized with Vision on your computer using the Vision.SupportedSymbologies function.

Result from Vision.DetectBarcode

MBS FileMaker Plugin, version 13.6pr1

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

MBS Plugin Advent calendar: 1 - Barcodes

Door 1 - Barcodes

Fact of the day
Did you know that you can generate over 80 different barcode types with MBS?

Welcome to the first door of our advent calendar. In this advent calendar I will introduce you to various components of the MBS FileMaker Plugin and show you how to use them. Today it's all about barcodes. Did you know that you can create over 80 different barcode types with the MBS FileMaker Plugin? How this works I will show you today in a project in which we create a WIFI QR code. If your guests get bored over the Christmas period, they can simply scan this QR code with their smartphone to gain access to your WiFi.

First of all, let's consider the question of how such a WiFi QR code is actually structured. The information you need for the QR code is the SSID, In other words the network name, the access password, the type of WiFi encryption and the visibility. For this test, let's imagine we have a WLAN with the following data:


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 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 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!

Older blog entries:

2023-11-05 Use DynaPDF to create PDF documents with PDF/A-4 version
2023-11-04 Watch MongoDB Database
2023-11-02 Comment links with goto and script scheme
2023-11-01 MBS FileMaker Plugin, version 13.5pr7
2023-10-31 Query current found set with Execute FileMaker Data API as JSON
2023-10-30 Check Variables for Let
2023-10-26 MBS FileMaker Plugin, version 13.5pr6
2023-10-20 List dialog with checkboxes
2023-10-19 MBS FileMaker Plugin, version 13.5pr5
2023-10-18 Using JSONPath in FileMaker
2023-10-17 Checking out JSON.Search function in MBS FileMaker Plugin
2023-10-16 MBS FileMaker Plugin, version 13.5pr4
2023-10-13 19 years of FileMaker versions supported
2023-10-12 Limited access to calendars on macOS Sonoma
2023-10-12 EngageU - FileMaker Conference in one month
2023-10-11 MBS FileMaker Plugin, version 13.5pr3
2023-10-11 Rome FileMaker Week 2023 - MBS Presentation
2023-10-10 How long do you wait for Insert From URL to finish?
2023-10-07 See you at Claris Engage 2024
2023-10-02 MBS FileMaker Plugin, version 13.5pr2


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