Xojo Conferences
Our Blog, Filemaker only, Xojo only, Archive (older)

Follow us on Twitter, Xing, LinkedIn or Facebook.

Combine PDFs 5.4

Monkeybread Software today is proud to announce Combine PDFs 5.4, an update to their popular PDF merge and split tool for Mac OS. With a focus on ease-of-use, Combine PDFs is a lightweight utility which allows anyone to merge PDF files and images into a single PDF file. The user need only drag & drop files onto the program icon. The main window appears, allowing the user to set the order in which the files are joined.

Changes in Version 5.4:
  • Requires MacOS 10.10 or newer.
  • Upgraded to Xojo 2019r1 for dark mode support.
  • Notarized.
Combine PDFs Website

Requires MacOS 10.10 or newer for 64-bit. Older 32-bit version stays available and still works very well.

This application is made with Xojo 2019r1.

MBS FileMaker Plugin, version 9.4pr2

New in this prerelease of version 9.4 of the MBS FileMaker Plugin: Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

Vision Framework for FileMaker

For the next MBS Filemaker Plugins, we worked on including the Vision framework from Apple. Currently we have six new Vision functions. We even include the new features coming with MacOS 10.15 Catalina release.

The Vision framework performs face and face landmark detection, text detection, barcode recognition, image registration, and general feature tracking. Vision also allows the use of custom Core ML models for tasks like classification or object detection.

For now we have Vision.ClassifyImage function to classify image content, Vision.RecognizeText to recognize text in a picture and Vision.DetectBarcode to find barcodes in a picture.

Please try them later with version 9.4pr2 and let us know if you need more.

Whats new in MBS FileMaker Plugin version 9.3

Since July 2019 we offers a new version of our FileMaker Plugin. Let me show you the new function and how you can use it.

New functions for better working with the MBS FileMaker Plugin
Maybe you have asked yourself how often you use the MBS FileMaker Plugin. Now you can answer this question by using the "Plugin.CallCounter" function. This function shows you how many times you called a MBS FileMaker Plugin function. The call of this function also counts.
For a better debugging of the MBS FileMaker Plugin we developed the “Plugin.InstallSignalHandlers” function. With this function you install the signal handler invoked by the OS when the application crashes. Thats helps to detect what and where exactly is the problem. Usually you call this function only if we ask you to help on debugging a crash on Linux or MacOS. Our plugin then prints a backtrace to show where the crash happened.

New possibilities in debugging
New for the debugging is the Trace.SetErrorsOnly function. If you call this and use our Trace functions you log only the MBS FileMaker Plugin calls that return errors. Whether this option is set can be queried with the Trace.GetErrorsOnly function. With Trace.SetWithTimes the time is additionally logged. Trace.GetWithTimes evaluates whether this option is set.

A helping tool for command line tools debugging is the new Shell.GetArguments function. This function query a list of all arguments of the shell. Use it to look whether an argument that you need is missing.

Test your XML import
For better XML import debugging we offers you the XML.Import.Errors function, which list all errors. It only reports each error once. With XML.Import.ErrorCount you can count the errors. Because of this you can learn, whether you had errors during the import. (more)

Zwei Monate bis zur FileMaker Konferenz 2019 in Hamburg

Vom 16. bis 19. Oktober 2019 findet die zehnte deutschsprachige FileMaker Konferenz in Hamburg, Deutschland statt. FileMaker Anwender und Entwickler sind herzlich eingeladen sich anzumelden.

Die Veranstalter vom Verein FM Konferenz erwarten auch 2019 rund 180 Entwickler, Anwender, IT-Fachleute und Entscheidungsträger aus Wirtschaft, Bildung und Verwaltung. Rund um über 25 Fachvorträge und Workshops wird es viel Zeit zum Vernetzen in den gemeinsamen Pausen und beim Abendprogramm geben.

Dieses Jahr gibt es wieder eine MBS Plugin Workshop, diesmal am 16. Oktober 2019 von ca. 9 bis 17 Uhr.
Anmeldung bei Monkeybread Software.

CURL Up 2020

The CURL conference for 2020 is announced:

curl up 2020 will take place in Berlin, Germany in mid May.

When: May 9-10, 2020
Where: Berlin, Germany
Venue: Co.up Community

Anyone interested in the CURL project is welcome to join the conference!
For details, please check the website.

Maybe we can arrange some developer meeting with our Xojo and FileMaker clients, too?

More Text Encoding conversion for FileMaker

FileMaker itself understands a few text encodings. And with our various plugin formats we offer them directly to use within the plugin. We usually only document the short list: ANSI, Mac, Latin1, ISO-8859-1, Windows, Native, UTF-8 and DOS.

But the following encodings also work: ShiftJIS-Mac, ShiftJIS-Win, Korean-Mac, Korean-Win, Korean-Johab, ChineseTrad-Mac, ChineseTrad-Win, ChineseSimp-Mac, ChineseSimp-Win, Cyrillic-Mac, Cyrillic-Win, ISO-8859-5, CentralEurope-Mac, EasternEurope-Win, ISO-8859-2, Turkish-Mac, Turkish-Win, ISO-8859-3, ISO-8859-9, Baltic-Win, ISO-8859-4, Arabic-Mac, Arabic-Win, ISO-8859-6, Greek-Mac, Greek-Win, ISO-8859-7, Hebrew-Mac, Hebrew-Win, ISO-8859-8 or ISO-8859-15.

But what if you have a more exotic text encoding or an old DOS code page? Like CP865?

We added a new function Text.ConvertToTextEncoding to convert from normal text to any encoding in a long list. The result is hex encoded as we otherwise can't really show you the text. So you can pass the hex encoded text in the specific encoding to other functions like BinaryFile.WriteHex, Socket.WriteHex or SerialPort.WriteHex. If you need to decode back, you can use the new Text.ConvertFromTextEncoding function. (more)

See you at Claris Engage 2020

After the conference is before the conference.
We are looking forward to meet all the FileMaker developers next year in Nashville.

Claris International Inc. hosts the Claris Engage conference in Nashville, August 3-6 2020.
We will probably attend and have a booth as usual, so see you there!

MBS FileMaker Plugin, version 9.4pr1

New in this prerelease of version 9.4 of the MBS FileMaker Plugin: Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

Slides and Pictures from my presentation

Here a few pictures from the MBS FileMaker Plugin presentation at the FileMaker DevCon 2019 hosted by Claris International, Inc:


MBS Plugin Session on Wednesday at lunch time

Please join our MBS Plugin Presentation at 12:00 PM on Wednesday. It's lunch time, so get some food and sit down in the theater for an update on what is new in the MBS FileMaker Plugin:

Come by to our booth, read the posters, ask us questions and talk with us about existing and future features.
We got flyers with our DevCon2019 coupon code for the discount on licenses (20% on everything).

MBS Booth ready for FileMaker DevCon 2019

Please come and visit me in the booth #230 at FileMaker DevCon:

As usual you can come by, read the posters, ask us questions and talk with us about existing and future features.
We got flyers with our DevCon2019 coupon code for the discount on licenses (20% on everything).

MBS Plugin Session on Wednesday, 7th August 2019 at 12:00 PM (noon) right in the theater, so you can bring your lunch and listen.

Posters for DevCon

We printed posters for our booth at the FileMaker DevCon 2019 about what's new in the MBS FileMaker Plugin:

If you have questions, please don't hesitate to contact us. See you at the booth!

DynaPDF for iOS

We rebuild the the DynaPDF library for iOS, so you can use the current version of DynaPDF with your FileMaker iOS SDK apps when using the MBS FileMaker Plugin.

We include four variants in our download:
  • DynaPDF for iOS Device
    64-bit for device
  • DynaPDF for iOS Simulator
    64-bit for simulator
When building your iOS app, just include the dynapdf framework file in the frameworks folder inside the app and call DynaPDF.Initialize in the start script passing the framework name and your license key.

The result should be OK if everything worked. If you get an error message including "mach-o, but wrong architecture", well you did copy the wrong framework file.

Download: DynaPDF iOS or DynaPDF iOS

PS: You may need to change the version number in the framework for iOS to a 3 component number (4.0.30 instead of And for testing on your own device, please make sure the framework has your code signature.

Notarized MBS FileMaker Plugin

When loading our plugin for FileMaker on MacOS 10.15 Catalina, you may have seen such a dialog.

We now made a notarized version of the download: MBSFMPlugin93-notarized.dmg

This plugin download is notarized. But it misses the iOS parts as you can't have currently iOS frameworks in Mac software notarized.
We hope to be able to notarize all downloads in the future for our 9.4 release to avoid friction.

MBS FileMaker Plugin 9.3 - More than 5900 Functions In One Plugin

Nickenich, Germany - (July 24th, 2019) -- MonkeyBread Software today is pleased to announce MBS FileMaker Plugin 9.3 for macOS, iOS, Linux and 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, macOS, iOS 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 9.3 has been updated and now includes over 5900 different functions, and the versatile plugin has gained more new functions:

For DynaPDF we got support for ZUGFeRD 2.0 and Factur-X. Our new example database shows you how to create invoices in PDF format with embedded XML invoices. The DynaPDF.Optimize function got new flags to convert existing images in a PDF to grayscale, RGB or CMYK color spaces. With ReplaceJP2KWithJPEG option, you can convert JPEG 2000 images into regular JPEG Images.

This release addresses a few problems with thread synchronization on FileMaker Server, which could lead to crashes in previous releases. With the new release we made significant changes, so you can use CURL, SQL, JSON, GraphicsMagick, and many other functions parallel in several scripts. We tuned the mutexes used for synchronization to allow even more functions to run in parallel.

For MapKit functions on iOS and MacOS to show Apple Maps within a FileMaker layout, we got a new MapView.Screenshot function. Beside the snapshot functions to render maps, the screenshot function returns the current viewed map with all pins and annotations. The MapView.SetScript function allows to define a script to be triggered when you click on a pin. Pins can now have a custom color.

To compare two tables you can use our FM.CompareTables function, e.g. compare current against yesterday's version. The function will analyze the field list and report changes as JSON. This includes changes to the field list, changes to the record IDs and if you request per field changes for each record. The function has excellent performance and can even show progress with our ProgressDialog functions.

While you can use styled text in FileMaker fields, it may be hard to analyze styles. Our Text.Styles function reports all text style information from a text as JSON array. This includes the text, start position, font with size, color, font styles like bold and italic.

The WebView functions got improvements to better find the web viewer in the windows. Those functions should now work fine from the data viewer. Our WebView.SetCustomUserAgent function works now for iOS, too. For Mac and iOS we got new functions to decide whether to show link previews. FontManager.ListFontFamilies and GraphicsMagick font mapping got implemented for iOS as well as WebView.AllowsAnyHTTPSCertificateForHost for WebKit 2.x.

For reminders on Mac you can now query start and due date as timestamps, with the UNNotification functions you can deliver a notification now or schedule it with a timestamp. The new SystemInfo.ADSystemInfo function queries Active Directory details for current user, the JSON.Sort function sorts your JSON data, and the Trace function got new options.

Finally we updated CURL to version 7.65.3, DynaPDF to, libcpuid to 0.4.1, libiconv to 1.16, libPNG to 1.6.37, libssh2 to 1.8.2, libxlst to 1.1.33, libxml2 to 2.9.9, libzint to 2.6.3, OpenSSL to 1.1.1c, PCRE to 8.43 and SQLite to 3.29.0.

See release notes for a complete list of changes.

Neues MBS FileMaker Plugin 9.3 - Über 5900 Funktionen in einem Plugin

24. Juli 2019 - Monkeybread Software veröffentlicht heute das MBS Plugin für FileMaker in Version 9.3, mit inzwischen über 5900 Funktionen eines der größten FileMaker Plugins überhaupt. Hier einige der Neuerungen:

Für DynaPDF haben wir die Unterstützung von ZUGFeRD 2.0 und Factur-X eingebaut. Unsere Beispieldatenbank zeigt wie man eine digitale Rechnung im PDF Format mit eingebettetem XML anlegt. Die DynaPDF.Optimize Funktion hat neue Flags um vorhandene Bilder nach Graustufen, RGB oder CMYK Farbräume zu konvertieren. Mit der ReplaceJP2KWithJPEG Option werden vorhandene JPEG 2000 Bilder nach JPEG konvertiert.

Die neue Version behebt ein paar Probleme mit der Synchronisation von Threads am FileMaker Server, die mit älteren Plugins von uns zu Abstürzen führen konnten. Mit der neuen Version haben wir signifikante Änderungen gemacht, so dass Sie unsere CURL, SQL, JSON, GraphicsMagick und andere Funktionne parallel in mehreren Skripten gleichzeitig nutzen können. Wir haben die Mutexe für die Synchronisation optimiert, so dass sogar mehr Funktionen als bisher effizient parallel laufen können.

Mit den MapKit Funktionen können Sie auf iOS und MacOS die Karten von Apple im FileMaker Layout anzeigen. Mit der MapKit.Snapshot Funktion erzeugen Sie gerenderte 2D/3D Kartenausschnitte. Neu ist eine MapView.Screenshot Funktion für Fotos von der aktuell anzeigten Karte mit allen Pins. Mit MapView.SetScript können Sie ein Skript festlegen, welches dann bei einem Klick auf einen Pin ausgeführt wird. Pins können jetzt eingefärbt werden.

Um zwei Tabellen zu vergleichen können Sie die FM.CompareTables Funktion verwenden, zum Beispiel die aktuelle Version einer Tabelle gegen den Stand von gestern vergleichen. Das Plugins schaut sich die Feldliste an und berichtet über Änderungen als JSON. Dabei melden wir Änderungen in der Liste der Felder, dann Änderungen bei den Datensätzen und auf Wunsch auch die einzelnen Feldänderungen für jeden Datensatz. Die Funktion ist recht performant, kann aber auch den Fortschritt über unsere ProgressDialog Funktionen anzeigen.

Während Sie zwar Text in FileMaker per Funktion formatieren können, bleibt es doch schwierig diese Formatierungen auszulesen. Unsere Text.Styles Funktion analysiert den Text und gibt alle Details als JSON Block zurück. Mit dabei sind die Texte, Positionen, Schriften mit Größe, Farbe und Schriftstilen.

Die WebView Funktionen haben Verbesserungen um den Web Viewer zuverlässiger zu finden, auch vom Data Viewer aus. Die WebView.SetCustomUserAgent Funktion unterstützt neben MacOS jetzt auch iOS. Für Mac und iOS haben wir neue Funktionen um festzulegen, ob eine Vorschau für Links angezeigt wird. Die Funktionen FontManager.ListFontFamilies und die Schriftenverwaltung für GraphicsMagick sind für iOS eingebaut und die Funktion WebView.AllowsAnyHTTPSCertificateForHost unterstützt jetzt WebKit 2.x.

Für Erinnerungen am Mac können Sie die Start und Endzeit als Zeitstempel abfragen, bei den UNNotification Funktionen können Sie eine Notification sofort ausliefern oder mit einem Zeitstempel terminieren. Die neue SystemInfo.ADSystemInfo Funktion fragt Active Directory oder LDAP Server ab zum aktuellen Benutzer, die JSON.Sort Funktion sortiert JSON Daten und die Trace Funktion hat jetzt ein paar Optionen.

Außerdem haben wir CURL auf Version 7.65.3 aktualisiert, DynaPDF auf, libcpuid auf 0.4.1, libiconv auf 1.16, libPNG auf 1.6.37, libssh2 auf 1.8.2, libxlst auf 1.1.33, libxml2 auf 2.9.9, libzint auf 2.6.3, OpenSSL auf 1.1.1c, PCRE auf 8.43 und SQLite auf 3.29.0.

Alle Änderungen in den Release Notes.

Fun with While function in FileMaker

We can use While function (or FM.Loop function in our plugin) to do loops directly in FileMaker.  With Let statement we can combine several calls to our plugin including While() calls into one expression. You can put this into a custom function or in a Set Variable call to calculate it where you need.


1. Simple loop


You can write a complete encapsulated While call which defines a list of numbers with values counting up:


While([ list = ""; i = 1]; i ≤ 10; [ list = list & i & ¶; i = i + 1 ] ; list )


This returns a list of 1 to 10.


2. Fill JSON array


Next we write a Let statement for combining several MBS calls and a while call to fill a JOSN array. Here we use our object reference numbers to avoid passing around the half finished JSON and speed up the performance of the calculation.


Let ( [

  // Create array object

  j = MBS( "JSON.CreateArrayRef" );

  // make a loop to add numbers

  r = While ( i = 0 ; i < 10 ; [ 

     r = MBS( "JSON.AddNumberToArray"; j; i )

     i = i + 1 ] ; i );

  // format the result

  text = MBS( "JSON.Format"; j );

  // free json

  r = MBS( "JSON.Release"; j )


// return result as text

 text )


This returns the following JSON:


[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]


MBS FileMaker Plugin, version 9.3pr7

New in this prerelease of version 9.3 of the MBS FileMaker Plugin: Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

MBS Plugin beim FileMaker 18 Launch Event

Das Video zur MBS Plugin Präsentation vom FileMaker 18 Launch Event bei der Denkform in Wiesbaden steht bereit.

Viel Spaß beim zuschauen und bis bald auf der FileMaker DevCon in Orlando!

Older blog entries:

2019-07-19 DynaPDF Manual online updated
2019-07-17 MBS FileMaker Plugin, version 9.3pr6
2019-07-16 Drei Monate für FileMaker Konferenz 2019 in Hamburg
2019-07-16 Was gibt es neues bei MBS Version 9.2
2019-07-15 Customer Distribution
2019-07-13 MBS FileMaker Plugin, version 9.3pr5
2019-07-12 Calendar access in FileMaker 18
2019-07-10 SMTP Server Settings
2019-07-06 One month till FileMaker Developer Conference 2019
2019-07-05 FileMaker Magazin - MBS Artikel
2019-07-02 FileMaker Magazin
2019-06-30 Debugging problems on FileMaker Cloud for AWS
2019-06-29 FileMaker 18 - Exklusives Launch Event
2019-06-27 MBS FileMaker Plugins Mailinglist
2019-06-27 MBS FileMaker Plugin, version 9.3pr4
2019-06-26 MBS Vendor Session at FileMaker Developer Conference 2019
2019-06-24 DynaPDF 4 for PHP
2019-06-22 JSON Sort
2019-06-21 Introducing FM.CompareTables function
2019-06-21 MBS FileMaker Plugin, version 9.3pr3


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