
New in this prerelease of the 23.3 plugins:
- Added ConvertImage method for WindowsPDFDocumentMBS class.
- Added Describe method to GMImageMBS class.
- Added evaluate method to XMLDocumentMBS class to do XPath queries.
- Added FilterObjectArray method in JSONMBS class.
- Added RegisterRGBAImage and MarkerDefineRGBAImage methods to ScintillaControlMBS class.
- Added tag property to CURLSMultiMBS and CURLSMBS classes.
- Added XMLXPathResultMBS class.
- Fixed CURLSMultiMBS class to set AutoPerform to true for shared instance.
- Improved ScintillaControlMBS to better recognize xojo comments.
- Our plugin now requires glibc 2.25 for openssl on Linux (from 2017)
- Removed PHP classes.
- Updated CURL library to version 8.1.2.
- Updated LibSSH to version 1.11.0.
- Updated MongoDB-c library to version 1.23.4.
- Updated openssl library to version 3.1.1.
- Updated RabbitMQ-c library to version 0.13.
- Updated SQLite to version 3.42.0.
Download:
monkeybreadsoftware.de/xojo/download/plugin/Prerelease/ or
from DropBox.
Or ask us to be added to our shared DropBox folder.

New in this prerelease of version 13.3 of the
MBS FileMaker Plugin:
- Added translation in German, Dutch, Italian, French, Swedish, Portuguese, Spanish, Chinese, Japanese and Korean for preferences dialog on macOS and various FileMaker enhancements. Please let us know if you see a typo or wrong translation.
- Added auto completion for custom function dialog, but you need to press Function-F5 to trigger it.
- Added DynaPDF.AddFieldToFormAction, DynaPDF.CreateResetAction and DynaPDF.CreateSubmitAction functions.
- Added DynaPDF.CreateAnnotAP function.
- Added GMImage.Describe function.
- Added JSON.FilterObjectArray function.
- Added JSON.GetArrayItemsAsQuickList and QuickList.JoinJSON functions.
- Added Matrix.HTML function.
- Added new flag to XL.Book.GetText and XL.Sheet.GetText to return texts as rich text.
- Added OCR.GetTextAsJSON function.
- Added password parameter to WebHook.SetSSL function.
- Added Text.ConcatWithDelimiter function.
- Added XL.Sheet.CellWriteMatrix function.
- Changed Audit functions to return SQL errors from Insert, so you may debug when something goes wrong.
- Changed DynaPDF.Initialize to ignore calls with old license key, if a valid key was set before.
- Changed DynaPDF.StampAnnot to have the last 3 parameters optional.
- Fixed a memory leak with reusing shell on macOS to run multiple commands.
- Fixed a possible bug in XML.SubTree function when XML is empty.
- Fixed a problem with colorspace warning printed on console due to a change in NSColor handling by macOS.
- Fixed a problem with Text.ReadTextFile reporting an error for zero byte files.
- Fixed an issue on Linux with encoding text in native encoding.
- Fixed an issue with SystemInfo.ADSystemInfo function reporting an error about not having initialized COM.
- Fixed CURL.GetResultAsContainer function to prefer the download name over the given fallback name.
- Fixed FM.ScriptNames for database file with dots inside.
- Fixed problem with ProcessActivity.beginActivity not working well on Windows.
- Improved showing script IDs when you have two files with same name open.
- Our plugin now requires glibc 2.25 for openssl on Linux (from 2017)
- Removed PHP functions.
- Updated CURL library to version 8.1.2.
- Updated LibSSH to version 1.11.0.
- Updated MongoDB-c library to version 1.23.4.
- Updated openssl library to version 3.1.1.
- Updated SQLite to version 3.42.0.
Download at
monkeybreadsoftware.com/filemaker/files/Prerelease/, in
DropBox folder or ask for being added to the DropBox shared folder.
Did you know that FileMaker Pro or the whole computer can go to sleep while doing a longer script?
On macOS there is a feature called App Nap to save energy by sleeping applications. And of course on Windows and macOS the display gets to sleep after some time and sometimes even the whole PC or Mac goes to sleep.
With MBS FileMaker Plugin, you can add a script line on the start of your script and then a second line on the end of the script.
The start of the script calls the ProcessActivity.beginActivity function like this:
Set Variable [ $activity ; Value: MBS( "ProcessActivity.beginActivity"; "IdleSystemSleepDisabled UserInitiated"; "Doing Backup in FileMaker" ) ]
On the end of the script, you have a line to end the activity:
Set Variable [ $r ; Value: MBS( "ProcessActivity.endActivity"; $activity ) ]
All activities are cleared when you exit the application.
(more)
Since Xojo Inc. doesn't plan one, we step in and invite you to come to our home country. To keep it easy for us, we'll have the conference nearby here and we would enjoy, if you join us and visit the area here.
The MBS Xojo Conference will take place Thursday,
25th and Friday,
26th April 2024 in
Andernach in Germany, a town nearby here at the river Rhine. We look forward to host around 50 Xojo developers here, have various speakers for the sessions as well as several workshops and labs.
You can come by train or by car there and we encourage attendees to stay the weekend and explore the area. If you take a train, you find plenty of
direct train connections from Hamburg to Munich, Berlin and Luxembourg. If you fly, look for flights to Frankfurt or Cologne and take trains from there to Andernach station. From the station, you can about walk 1 km to the hotel.
For Wednesday,
24th April 2024 we plan a
Xojo training day, where we will develop various projects in Xojo. We include various things attendees like to see. For example we could write a desktop app to manage a database, then a web app to use the same database. For mobile users we could make a little web service providing the data to an iOS and/or Android application.
Attendees coming from abroad can stay a bit longer. We plan to have a sight seeing day for Tuesday to visit some nice places and show you a bit of the landscape, the history and the culture. Enjoy extra days here and plan to visit the world's highest cold-water
geyser, which erupts up to 60 meters high in the nature reserve Namedyer Werth.
The planning of the conference involves all the things we learnt from previous conferences. Skipping expensive hotels in big cities to make the conference more affordable. The key thing is to bring together developers from all over the world to exchange ideas, learn new techniques and have a great time.
More details will be announced once the paper work is finished.
Xojo Inc. announced a sale for the next few days:
If you waited to get a Xojo license or to renew your license or to upgrade to Xojo Pro, this is your chance.
As usual, if your Xojo license is up for renewal in May or June, you can update now and enjoy a discount. If your Xojo license expired already, just get a new one. With the discount it is cheaper than a regular update.
The add-ons are included in the sale. If you like to get one of the MBS articles there, you can use the sale price at Xojo Store or we match the price if you buy directly from us. Please contact us if you need a MBS Plugin license.
You can use MBS Plugin to earn some extra money in your Xojo application.
Try our classes for Windows Store, macOS Store, iOS Store or iOS Ads to monetarize your application.
Windows Store
Check out the Windows Store classes to perform in-app purchases. You can offer your application as a trial for free and then offer the user to purchase a license to a full or pro version of your application. If your application is sold upfront, you can query license information.
Blog:
Selling Xojo apps on Windows Store
Documentation:
WindowsStore classes
Example project:
/WinFrameworks/Windows Store
(more)
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 what is new in the MBS FileMaker Plugin in version 13.2. Including the plugin running on Linux on ARM with a demonstration of Trace function, DynaPDF functions for JavaScript and form fields, use of MongoDB functions, more Archive functions, WinPDF functions for rendering previews of PDF pages, AVPlayer and WMFP functions.
(more)
Let's say you have a Xojo desktop app and you like to have an iOS app, which can connect to the desktop application. We like to avoid the user entering some kind of connection information and just automatically connect. Then once connected, the iOS app can do some things and talk to the desktop app for more. Let's say the desktop app manages the database and the iOS app can show data on the go, e.g. after scanning a barcode.
For this project we use Xojo with two projects, one for desktop and one for iOS.
Desktop Project
We use a ServerSocket to wait for incoming connections. We let the ServerSocket pick a random port instead of relaying on a fixed port number.
Public Sub StartServer()
ServerSocket = New MyServerSocket
ServerSocket.MinimumSocketsAvailable = 3
ServerSocket.Listen
System.DebugLog "Waiting on port "+ServerSocket.Port.ToString
End Sub
(more)
In this article I want to introduce you the new functionalities from the MBS Xojo Plugins in version 23.2.
CURL
With the new method SharedInstance from the classes CURLMultiMBS, CURLNMultiMBS and CURLSMultiMBS we simplify the multi transfer for our Xojo CURL Plugin. If you want more information to that then read our blogpost Easier multi transfer for our Xojo CURL Plugin. For The CURLMultiMBS classes you need a timer that calls Perform regularly. If you want to run Perform automatically you can set true in the AutoPerform property.
MongoDB
Since a few releases we also have the possibility to connect to a MongoDB database and work with it. Also in this release we extend the functionalities of MongoDB. First of all we can now convert information as Binary JSON for Mongo DB. The information is first read in an encoding of your choice or by default with UTF-8, converts to base64 and embeds it in a $binary JSON for use in MongoDB. You can use the method DataToBinary from the class MongoClientMBS for this. The data is passed as a string or MemoryBlock.
Two other new methods of this class deal with time in MongoDB. With the method NowUTC we get the current UTC timestamp. This can look like this:
{ "$date" : "2023-03-09T11:39:34Z" }
Matching to this there is the method Time which gives us the matching UTC timestamp in a JSON with a time as seconds since 1970 specification.
(more)
In this article we want to introduce you the new functions from the MBS FileMaker Plugin in version 13.2.
FileMaker 2023
As you have probably already noticed, FileMaker 2023 was launched at the end of April. We are happy to announce that we have adapted our plugin to be compatible with the new FileMaker version and you can use the functions as usual under FileMaker 20.1. With the Release 13.2 we support FileMaker 7 to the latest version 20.1.
DynaPDF
DynaPDF focuses in this release on the integration of JavaScript codes in the documents. Already since plugin version 6.4 we can include JavaScript actions in a PDF document. A JavaScript Action causes a script to be compiled and executed by the JavaScript interpreter of Adobe's Acrobat. Depending on the nature of the scripts, this can cause various interactive form fields in the document to update their values or change their visual appearances. With the new function DynaPDF.ChangeJavaScriptAction you can replace an existing JavaScript action with a new one. If you want to know which action has been stored use the DynaPDF.GetJavaScriptAction function to find out. As return you get the JavaScript code as string. You can also add a global JavaScript to the PDF document with the function DynaPDF.AddJavaScript. In case of an already existing global JavaScript you can change the name of the JavaScript with DynaPDF.ChangeJavaScriptName. With DynaPDF.ChangeJavaScript you not only change the name of a global JavaScript but you can also replace it completely with a new one. If you want to read the code of the global JavaScript, you can use the DynaPDF.GetJavaScript function.
To find out how many actions are stored in a PDF document, you can use the DynaPDF.GetActionCount function. This function returns the number of actions. This value can be used to enumerate actions or to delete specific action types.
In PDFs we can also work with tags to provide accessible metadata. We have to open a tag first, then we add the content for the tag and then we have to close it again. For this task we have the functions DynaPDF.OpenTag and DynaPDF.CloseTag.
If we use tabs in DynaPDF we can now also determine their length. For this we use the DynaPDF.SetTabLen function. In the parameters we set how many spaces a tab should measure. The minimum number we can specify is 1 and the maximum number of spaces is 256. The default value is 3. Of course you can also query the specified number of spaces. For this you can use the DynaPDF.GetTabLen function.
(more)
Since FileMaker 2023 we got the feature named OnWindowTransaction trigger. You may have read about it on the Claris Engineering Blog: Creating audit logs with the OnWindowTransaction script trigger.
Now where do you store your AuditLogs?
In the same table, the same database, on the same server?
Maybe better take advantage from the fact, that you get JSON data passed to your trigger and pass it to MongoDB. Since MongoDB stores JSON very efficiently, you could just store all your audit data there. Whether you store them all on one MongoDB server (cluster) or have each FileMaker server from a client have their own MongoDB server, depends on how your organize your data.
We have an older blog post showing a script to store copies of all records in a MongoDB for all changes and do the audit there. That has the advantage, that you could restore from your copy in MongoDB as well as access these records from e.g. a website. See older blog post: FileMaker and MongoDB
(more)
Thank you all for answering our survey about a potential conference in 2024.
We got 66 answers. From that 20 people answered that they would come, plus 27 with a maybe. We also got 10 people unlikely to show due to various concerns (time, location, money) and 9 straight nos.
(more)
You can join a FileMaker conference in Rome, Italy this year from 3rd to 8th October 2023.
For the international traveler coming to the conference, please note, that there are extra days for sight seeing and/or training with your fellow developers.
Day |
Sight Seeing |
Training |
Conference |
3rd Oct |
Tour Rome & FileMaker Undergrounds of Rome and via dell'acqua |
4th Oct |
Tour Rome & FileMaker Industrial Rome |
Course build your FileMaker app from scratch (in Italian)
Course build your FileMaker app from scratch (in English) |
5th Oct | | | Claris Partner meeting (in English) Conference start. |
6th Oct | | | Conference & Gala Dinner |
7th Oct | | | Conference |
8th Oct | | JavaScript & FileMaker Course Design Masterclass (in Spanish) |
More information is coming to the website over the summer. Last year we had live translation between English and Italian and you could use head phones to hear all presentations in either language. This year FMGuru looks into adding Spanish and French translation.
If you sign up, please find below the €100 discount coupon on the event ticket: RFWMBS100
Just six months until the
EngageU conference. ClickWorks and Square Moon continue to organize a pan-european conference for Claris FileMaker developers from all over the world.
EngageU - FileMaker Conference
12th - 14th of November 2023, Antwerp, Belgium
After the conference in Malmö last year, we see the second conference coming to Belgium. This may be the largest in-person European FileMaker conference this year with about 250 participants. Claris is expected to join and all presentations will be in English.
Please mark the date in the calendar to sign up for the conference.
And it's great reason for people from all around the world to do a business trip to see Belgium.
More events are listed on our
events website.
We are happy to
sponsor the
CURL project for a year now. And maybe your company could also find and support an open source project?
Join in and Sponsor!
Please consider sponsoring the project. Maintaining, bug tracking, hosting and supporting this project requires resources. You can help!
We do not consider single-shot donations as "sponsorships". Those are donations and while welcome, they will not be honored by a mention here. Sponsors mentioned here keep supporting the project long-term by covering some sort of notable cost to the benefit of the project and its users.
The best way to sponsor this project is to allow a paid engineer or two to spend work hours on curl. Responding to email and writing curl improvements. Alternatively, donate to curl on the opencollective page.
Pledge
We promise to use donated funds only for things and activities that we believe are beneficial for the project and its development. That includes but is not limiting us to bug-bounties, developer conferences, infrastructure, services and hardware.
(more)
The MBS Plugin mail lists moved to a new server since our existing provider stops doing mailinglists. We'll move over everyone, but you have to confirm your email by replying the confirm message.
MBS FileMaker Plugin Mailing list
To post a message to all the list members, send email to
mbsfmplugin @ lists.monkeybreadsoftware.com.
You can subscribe to the list, or change your existing subscription here:
Mailinglist Website
MBS Xojo Plugins Mailing list
To post a message to all the list members, send email to
mbsxojoplugins @ lists.monkeybreadsoftware.com.
You can subscribe to the list, or change your existing subscription here:
Mailinglist Website
The old lists will end around 22nd May 2023 and we may send a reminder. Please check your spam folder for the confirmation email and/or for emails from the new list. You may need to adjust your mail sorting rules.
If you don't receive the email for next pre-release, you can sign up again manually.
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 MBS FileMaker Plugin and the OCR functions. This includes WindowsOCR functions for Windows and Vision functions for platform specific OCR functions.
(more)
Let us show you how to install a new virtual machine with Linux on macOS, so we can have a local server to test. Works fine with various virtual machine software packages like Parallels, VMWare Fusion or UTM.
First, let us start with creating a new virtual machine. After we clicked the plus button on the VM list window, the new window offers us Ubuntu 22, so lets Parallels download and install it.

Once this is done, you click on the user to login and set your new password. This will be the password you need later for sudo. And thus right away after we login, parallels asks this password to install the tools and then offers to restart the linux machine. For the Ubuntu assistant, we can click next a few times as usual, e.g. without location services or an Ubuntu account.
(more)

Nickenich, Germany - (May 9th, 2023) -- MonkeyBread Software today is pleased to announce
MBS FileMaker Plugin 13.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 13.2 has been updated and now includes over 7100 different functions, and the versatile plugin has gained more new functions:
Our plugin got updated to work with FileMaker 2023. A few changes were necessary to keep functionality working for the new version and our current plugin can be used in several FileMaker Pro versions from ancient version 7 (on Windows) to the latest 20.1 one. Changes include adjustments for
window functions, script workspace, fmp URL handling, get functions and other places.
We include a Linux ARM version of our plugin. Everything should work the same on ARM CPUs, just like on Intel or AMD CPUs. You can now install Ubuntu 22 in a VM on your Macbook with M1/M2 Chip or on AWS E2 instances with ARM CPUs. While we updated our plugin for Ubuntu 22, we still keep it compatible for the older Linux versions, so there is just one plugin file.
For Windows we add
functions to use the built-in PDF functionality from Microsoft. You can open PDF documents, query page count and sizes and render preview pictures of pages. The plugin uses this functionality internally to provide previews of PDF documents in various functions and the
Vision.RecognizeText function now works with PDF on Windows.
Our
DynaPDF functions got upgraded to allow you to add JavaScript to the PDF document, change or query existing JavaScript scripts. We added functions to set tab length as well as tag functions for tagged PDF documents.
The
GraphicsMagick functions got improved to now include WebP support. This includes reading and writing WebP files, so you can directly upload WebP functions from your CMS solution to your web server.
For MongoDB we have new functions to convert text or container data to binary data for passing to the MongoDB database for efficient storage (without Base64 overhead). The
MongoDB.NowUTC function returns the current date in the format needed for MongoDB in JSON and
MongoDB.Time can convert time stamps if needed.
On macOS in the debugger, you can now copy variable or field values via contextual menu. You can sort your scripts not just by name, but also by ID.
We upgraded the
PhotoPicker functions to work on macOS in addition to iOS. We updated
Java functions for Java versions 19 and 20. The
WMFP functions can now return details on the audio channels, frame rate, bits and samples. The
archive functions can now handle lz4 and zstd compression methods. For Windows you can control more on printing WebViewers with
WebView.SetPrintParameter function.
Finally we updated curl to version 8.0.1, LibArchive to 3.6.2, libwebp to 1.3.0, SQLAPI to 5.2.4b3, SQLite to 3.41.2, libXL to 4.1.2 and Xcode to version 14.3.
See
release notes for a complete list of changes.

Nickenich, Germany - (May 9th, 2023) -- MonkeyBread Software today is pleased to announce
MBS Xojo Plugins 23.2 for macOS, Linux and Windows, the latest update to their product that is easily the most powerful plugin collection currently available for Xojo.
MBS Xojo Plugins have been updated and now includes over 3000 classes and 80,000 documented features, and the versatile plugins have gained more new functions:
For Windows we add
classes to use the built-in PDF functionality from Microsoft. You can open PDF documents, query page count and sizes and render preview pictures of pages.
The
GraphicsMagick functions got improved to now include WebP support. This includes reading and writing WebP files, so you can directly upload WebP functions from your CMS solution to your web server.
For
MongoDB we have new functions to convert strings or MemoryBlocks to binary data for passing to the MongoDB database with DataToBinary function for efficient storage (without Base64 overhead). The NowUTC function in the
MongoClientMBS class returns the current date in the format needed for MongoDB in JSON and Time can convert time stamps if needed.
We added new delegate based functionality to
CURLSMultiMBS class to make it easier to do asynchronous transfers in the background. For this you can now use our shared instance and the AutoPerform property.
The
ScintillaControlMBS control can now print and show print preview with the new FormatRange method. You can use it to render text into a picture and set various options with the new
ScintillaRangeToFormatMBS class.
The
CanvasGesturesMBS class is updated to work with DesktopCanvas control. The
PHPickerViewControllerMBS class is updated to work on macOS and not just on iOS. We updated our Java classes for Java versions 19 and 20. The
MFPMediaItemMBS class can now return details on the audio channels, frame rate, bits and samples. The archive classes can now handle lz4 and zstd compression methods. For Windows you can now control the printing for WebView2 with the new
WebView2PrintSettingsMBS class.
Finally we updated curl to version 8.0.1, LibArchive to 3.6.2, libwebp to 1.3.0, SQLAPI to 5.2.4b3, SQLite to 3.41.2, libXL to 4.1.2, and Xcode to version 14.3.
See
release notes for a complete list of changes.