Training day for MBS Filemaker Plugin - new dates for 2016

The people at are hosting a training for our MBS Filemaker Plugin. So if you want to spend a day with us learning about our plugin, please join us.

We make a guided tour and show you a couple of highlights and examples. Talk about what you can do and how you do some things. Later we will implement a couple of things in sample databases like the Audit function. Also download and upload with CURL is a good topic. We will look into the webviewer extensions and fill a sample form. Next we will do some image editing and writing a report into a Excel file.
Finally we have plenty of time for questions.

This event is in German (english event is also possible).
We meet 3rd December 2015 at 9:30 am in Denkform office. Cost is 99 Euro (incl. VAT) and you can buy a license with 50 Euro discount.
You can register on the denkform website. After the event, there is the regular meeting which everyone can join for free and have dinner with us.

Dates for 2016: 3rd March 2016 and 3rd November 2016.

MBS FileMaker Plugin, version 5.4pr4

New in this prerelease of the 5.4 plugins:
  • Added Window.ModalDialogFont function.
  • Added HotKey.GetEnabled, HotKey.GetIgnoreOnModal, HotKey.SetEnabled and HotKey.SetIgnoreOnModal.
  • Changed Text.TextToHTML and Text.TextToRTF to include font.
  • Added Text.Serialize and Text.Deserialize.
  • Fixed a bug in PDFKit.GetPDFPagesPDFRef with ranges of pages.
  • Fixed bug in window ID handling on Mac.
  • Added Window.Screenshot function.
  • Added Addressbook.recordsMatchingSearchElement, Addressbook.searchElementForConjunction and Addressbook.searchElementForProperty to make complex searches in addressbook.
  • Added JSON.Import functions.
  • Added flags parameter to XML.Query to get result as text list, enable/disable formatting.
  • Added Addressbook.person.SetBirthdayComponents function.
  • Changed SerialPort DataAvailable Script. Ones you got a script triggered, you must use Read command to actually get data before the plugin will trigger the script again. This should help debugging and avoid scripts being triggered too often.
  • Same for Sockets with Error, DataAvailable and NewConnection script triggers.
  • Updated to Xcode 7.1.
  • Added DynaPDF.Print function to print PDF on Windows.
  • Added HotKey.GetLocal or HotKey.SetLocal to limit hotkeys to only FileMaker.
  • Added Encoding parameter for Barcode.Detect.
  • Added HotKey.GetName, HotKey.GetTag, HotKey.SetName and HotKey.SetTag.
  • Fixed a bug in Twain where driver would request a higher preferred buffer size than the maximum buffer size.
Download at or ask for being added to the dropbox shared folder.

JSON Import for FileMaker

You remember the XML.Import functions we got in the last plugin release?
See older blog post: XML Import for FileMaker

We now got the same for JSON. Yes, you can take any JSON and the plugin will create the required tables, fields and adds all the values as records.
Coming soon in the next plugin release.

Sample JSON data for and volunteers for testing are welcome.

Shared FileMaker Server Hosting and Plugin Security

There is a topic we need to talk about. Do you use a FileMaker Server hosting service? With more than one client per Server? Not that you have several customers and you are the only developer. We talk about the case that several developers share one server to host their solution. So one developer doesn't check other developers scripts and is aware of what they do.

Why? Because a plugin can do anything. Actually the Send Event command itself to run command line tools does the same trouble. If two people develop on one server, they can write scripts which provide trouble to others. Simple things as deleting/moving files. Or more dangerous ones like importing one database into a container field of another database. Yes, that's possible! Because both command line and plugin are not aware of the permissions and security settings you defined.

If you install a plugin on a server, people can use all the commands in the plugin. e.g. FTP all databases to a FTP server, copy all the files in unencrypted external containers or even damage the server installation.

The problem is not new and exists since FileMaker has a server with command line and plugin access. But after getting you worried, we want to show you a possible solution:

For the MBS Plugin we want to provide more control. You can already use the Plugin.SetFunctions function. This function allows you to limit the available commands. So if the people on your server only use the MBS Plugin to email newsletters, you can only allow the email commands. All other commands can be disabled. This happens by passing a list of allowed function names to Plugin.SetFunctions. You do this normally when server starts and you register the plugin in a script. Once the plugin removed a function from the internal dispatch list, you can no longer call it. This is reset only when the server restarts.

With version 5.4 we add more commands. The Plugin.LockFunction allows you to disable a function and later unlock it in a script where you need it. This way you can limit the availability of functions for the time a script runs. The Plugin.LimitFunction on the other side can limit the execution of a function to a list of allowed user accounts, privilege sets and script names. For example you could only allow a backup script to use Files.Delete function. For this you could define that only accountName = "Admin" and ScriptName = "Maintenance.fmp12:NightlyBackupFTP" would be allowed to delete files. You can store those limitations in a table and apply them to a plugin functions on server startup. Once limited there is no way to remove the limit unless you restart server.

We do hope people are aware of the potential issues. Please make sure you only allow others to share your server with the respect and trust. Our plugin functions may help to make it more difficult to abuse them.

PDF Printing in FileMaker on Windows without PDF Reader

Just today on a visit at a client I added a new plugin function: DynaPDF.Print.

This function allows us to print a PDF documents directly. No need for opening the PDF file in Adobe Reader or other PDF applications.

The PDF pages are rastered and sent to the printer without a dialog. We can specify a couple of options including margins, color/gray/b&w and rotation/scaling. If needed we could add the option to show a dialog and control more print settings.

For OS X you can use PDFKit.Print for similar functionality.

MBS FileMaker Plugin, version 5.4pr3

New in this prerelease of the 5.4 plugins:
  • Added LimitFunction, LockFunction and UnlockFunction.
  • Added new parameter to XML.Query to get result as text list.
Download at or ask for being added to the dropbox shared folder.

MBS FileMaker Plugin Documentation as PDF

The documentation for our MBS FileMaker Plugin is now also available as PDF format:

MBS.pdf (18 MB, 4390 pages)

if you like, download a copy and keep on your iPad to read on the go or to search locally. Or keep your bookmark in your favorite browser for our online documentation.

The question left is if we go should now include the PDF instead of the html files in the plugin archive.

MBS FileMaker Plugin, version 5.4pr2

New in this prerelease of the 5.4 plugins:
  • Updated SQLite to 3.9.0. Now with FTS5 and JSON extensions enabled.
  • Added Files.CanOpenFile function.
  • Updated DynaPDF to version
  • Added new keys OwnerPassword, UserPassword, EncryptionKeyLength, AllowsPrinting and AllowsCopying for PDFKit.GetPDFAttribute and PDFKit.SetPDFAttribute.
  • Fixed bug with container processing when containing a MAIN item.
  • Fixed an edge case where email subjects where not always decoded properly.
  • Added CURL.List function.
  • Added relation graph search field for FileMaker 11 and 12, too.
  • For our new search fields, the escape key now clears the field content.
  • The colors for AND, OR, NOT and XOR now also apply for localized variants.
Download at or ask for being added to the dropbox shared folder.

MBS FileMaker Plugin, version 5.4pr1

New in this prerelease of the 5.4 plugins:
  • Added search field for relationship graph dialog.
  • Added a new tag for syntax coloring so you can define field color, and, or, not and xor colors for calculations.
  • Added SyntaxColoring.GetScriptHighlightColor and SyntaxColoring.SetScriptHighlightColor to have plugin overlay the selection in script editor and provide a selection color with more contrast.
  • Added "cent variable name" tag for syntax coloring.
  • Added search field for script editor on Mac. Highlights lines with matching visible text in yellow.
  • Added elliptic curve key generation for public and private keys and functions to sign and verify digital signatures.
  • Fixed crash with SerialPort functions on Mac.
  • Fixed an issue with WebView.LoadHTML called without URL.
  • Added AVAsset.TimeCodes function.
  • Added plugin reference as PDF file.
  • Updated DynaPDF to version
  • Added support for RC5 cipher.
  • Updated to Xcode 7.0.1.
  • Improved email generation for related/alternative content.
  • Added EmailParser.Date function.
  • Updated TinyMCE example to version 4.2.6.
  • Added Text.FileExtensionToMimeType and Text.MimeTypeToFileExtension functions.
  • Added EmailParser.Hash, EmailParser.Source and EmailParser.SourceWithoutAttachments functions.
  • Improved email parser to detect errors better like BOM characters.
Download at or ask for being added to the dropbox shared folder.

GoTo Box

We got today a little textfield for going to a line:

Maybe it helps you?
Now if your colleagues now tell you to look on line 123, you can just enter number, press return and you jump right to the line.

So far we got a couple of improvements created at the FileMaker conference including Search box for FileMaker Relations, a search field for scripts, a configurable highlight color in script editor and Elliptic Curve Sign and Verify.

Search box for FileMaker Relations

You know this dialog? Spot a little difference to your FileMaker?

Yes, there is a little combo box. The popup shows all the table occurrences and the text field inside auto completes. When select something or press return after typing, the plugin will pass that text to the search in relation graph:

Coming soon for FileMaker 13 and 14 with MBS Plugin 5.4.

The FileMaker conference here is great and people have a lot of excellent ideas. We have a long list of things to improve in MBS Plugin in the next years.
So far we got a couple of improvements including a search field for scripts, a configurable highlight color in script editor and Elliptic Curve Sign and Verify. We'll see what happens tomorrow here in Hamburg!

Change highlight color for FileMaker script editor

We got the colors, yesterday the search field and today we got a customizable color for script editor:

The light blue FileMaker Inc. picked is a problem for a few people here at the FileMaker conference. So MBS Plugin allows in next version to define your own color to overlay the color from FileMaker. This way you can use a bolder blue and still see the selection when using a projector. Perfect for your next presentation!

Available soon for FileMaker 14 with 5.4 plugins in the next days.

Elliptic Curve Sign and Verify

Yesterday I implemented for our FileMaker and Xojo Plugins the classes/functions to use the elliptic curve functions from OpenSSL for digital signatures.

Using those functions you can create a pair of private/public keys. Using the private key you can sign some data digitally. Later you can use our verify function to verify the signature with the public key.

Now if you want to use this to sign some data, you generate your keys. The private key is stored locally. The public key is sent to your partner, client or whoever should verify the signature.

To sign data, please make a Hash first. We use SHA-512 for most secure hashes currently. This hash is than signed and we get a signature. The public key is sent to someone once. Next you send the data with signature. Now the receiver can use the public key to verify the signature on the same data hash.

For the key generation we can choose between 79 different built-in curves with various bit numbers from 112 to 571 bit.

Read more on wikipedia. Available for FileMaker and Xojo with next plugin prerelease.

FileMaker Search field for script content

A little job for the lunch break here at the FileMaker conference in Hamburg:

We got a little search field in the right title bar for FileMaker's script editor to search in the scripts. It highlights all lines matching the text. As you see above I searched for "Grid" and three lines got highlighted in FileMaker 14.
For FileMaker 11 to 14 on Mac OS X and brand new today.

FileMaker Conference in Hamburg, Germany

Are you in Hamburg currently or the next days?
Be sure to visit my booth at the FileMaker Conference here.


We have flyers, pens and sweats and I try to answer all your questions. Thanks for supporting the conference.

[ANN] MBS FileMaker Plugin 5.3 for OS X/Windows

Nickenich, Germany - (October 1st, 2015) -- MonkeyBread Software today is pleased to announce MBS FileMaker Plugin 5.3 for Mac OS X or Windows, the latest update to their product that is easily the most powerful plugin currently available for FileMaker Pro. As the leading database management solution for Windows, Mac, and the web, the FileMaker Pro Integrated Development Environment supports a plugin architecture that can easily extend the feature set of the application. MBS FileMaker Plugin 5.3 has been updated and now includes over 3300 different functions, and the versatile plugin has gained more new functions:

Does your application need email receiving? In our new plugin version we got a set of Mime parser functions. Our examples show you how to parse an email and show subject, plain and html text, receivers and sender, inline graphics and attachments. Using our CURL functions you can download emails via IMAP or POP3 and our example project shows you how this works. Combined with FileMaker database you can have your emails automatically get downloaded, parsed and stored in your database in several related tables. Our plugin can send emails via SMTP, too.

When you need to import Tab-separated values from a text file, you can use our new FM.InsertRecordTSV function. You provide the text with tab/return delimiters, table name and field names. The plugin will read through the values and create records for you automatically.

If you need to import XML files, check our new XML.Import function. It's written in a way that it should import any XML file without the need of a XLST or similar format description. Our plugin processes the xml and creates tables for the fields and attributes found in records. Next it imports all data found in the XML into new records. Finally you can process those new records and pick the values you need form the XML.

Our plugin now handles compressed container values better. We now have functions to compress and uncompress container values. The Files.ReadFile function can also read files and return them as compressed containers.

For DynaPDF we got new functions for color management. Now you can use color profiles to render pages. This even allows to render images with CMYK color space. And we got a new function to show differences between two PDF pages.

For our SQL functions, you can now use an internal SQLite library within the plugin. This copy of the SQLite library includes the encryption extension, so you can use encrypted databases. We support AES 128, AES 256 and RC4 encryption.

We got a new audit example for you, new socket and serial functions. You can hide the bottom bar in FileMaker and use Social Requests on OS X.

We updated CURL to version 7.44.0, DynaPDF to, libXL to 3.6.4 and OpenSSL to 1.0.2d.

See release notes for a complete list of changes.


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