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.
(more)
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.
(more)
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.
(more)

New in this prerelease of version 13.5 of the
MBS FileMaker Plugin:
- Updated DynaPDF to version 4.0.81.236.
- Updated SQLAPI to version 5.3.
- Added FullyQualifiedFieldName as new field for DynaPDF.GetFieldAsJSON and DynaPDF.GetFieldAsJSON results.
- Added DynaPDF.GetFullyQualifiedFieldName function.
- Fixed WebView.InstallUserMediaAccess to not return error when called a second time.
- Added flags for List.BestMatch and QuickList.BestMatch to use Jaro-Winkler distance optionally and optionally return list of top 5.
- Added Command-Option-Cursor key shortcuts for relationship graph on macOS to align items.
- Added Command-Option-Shift-Cursor key shortcuts for relationship graph on macOS to resize items to smallest/biggest size.
- Fixed ListDialog functions to not use column widths if you have only one column.
- Fixed copy variables command to not limit it to 500 lines.
- Improved script coloring to better read script lines.
- Added caching for variable check to improve performance for longer scripts.
- Fixed an endless loop in JSON.Search function with a bad query. Now propergates the error properly.
- Implemented Time.Parse for Windows.
- Improved animation for ProgressDialog functions on macOS.
- Fixed an issue with auto completing underscore prefixed local variables.
- Added Phidget.DisableServerDiscovery and Phidget.EnableServerDiscovery functions.
- Added SyntaxColoring.GetCodeFoldingEnabled and SyntaxColoring.SetCodeFoldingEnabled function.
- Added List.Shuffle and QuickList.Shuffle functions.
- Improved performance for newer JSON functions.
- Fixed AppleScript.Compile to clear last error for AppleScript.LastErrorMessage function.
- Updated for future FileMaker version.
- Updated openssl library to version 3.1.4.
- Removed support for Claris Pro/Server.
- Updated to LCMS 2.16fc1.
- Improved format button to handle <=, >= and <> correctly. But you can also use ≤, ≥ or ≠ of course.
- Enabled Folders.UserDownloads to work in iOS.
- Fixed a problem in Matrix.CopyRow when using row names.
- Added Matrix.IndexOfFirstValueMatching function.
- Updated SQLite to version 3.44.1.
- Added DynaPDF parser functions: DynaPDF.Parser.ChangeAltFont, DynaPDF.Parser.Create, DynaPDF.Parser.DeleteText, DynaPDF.Parser.ExtractText, DynaPDF.Parser.FindText, DynaPDF.Parser.Line, DynaPDF.Parser.ParsePage, DynaPDF.Parser.ReplaceSelText, DynaPDF.Parser.SetAltFont, DynaPDF.Parser.TextMatrix, DynaPDF.Parser.WriteToPage.
- Added JSON.JSONPatch.ApplyPatch, JSON.JSONPatch.FromDiff, JSON.MergePatch.ApplyPatch and JSON.MergePatch.FromDiff functions.
- Added CNContactStore.ContactsMatchingURL function.
- Added FM.SQL.ToMatrix function.
- Fixed an edge case with Path.LastPathComponent to return last path name, even if a slash is on the end of the path.
- Added command-J to format text as JSON in a text view, e.g. in data viewer result.
- Fixed CURL.SetupAWS and CURL.SetupOAuth to reset NoBody flag if new transfer is not head.
- Fixed DynaPDF field functions to try different field structure sizes, if the DynaPDF DLL is much newer/older than our plugin and prevent errors about different structure sizes.
- Improved XL functions for form controls to take name of control in addition to index.
- Added XL.FormControl.JSON function.
Download at
monkeybreadsoftware.com/filemaker/files/Prerelease/, in
DropBox folder or ask for being added to the DropBox shared folder.
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:
(more)
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.
(more)
In this article we want to introduce you the new functions from the MBS FileMaker Plugin in version 13.5.
ListDialog
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.
(more)
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.
(more)
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.
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
(more)
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.
(more)

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.
(more)
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.
(more)

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:
Announcement
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.
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)
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!

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 4.0.80.232, 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.

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 4.0.80.232, SQLAPI auf 5.2.6 und SQLite auf 3.44.0 und Xcode auf Version 15.0 aktualisiert.
Alle Änderungen in den
Release Notes.
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!