FileMaker Spanish Devcon 2018

In October all around Europe are conferences for FileMaker. This year there is the second Spanish conference:

26th to 27th October 2018 in Madrid. See Website
You can now sign up as speaker or sponsor.

MBS Workshop in Malbun bei der FileMaker Konferenz

In Zusammenarbeit mit dem Verein FM Konferenz bieten wir eine Schulung zum MBS Plugin an. Am 17. Oktober 2018 können Sie in Malbun, Liechtenstein an einer eintägigen Schulung teilnehmen. Lernen Sie die über 5000 Funktionen einmal näher kennen und wie Sie sie effektiv einsetzen. Sammeln Sie Ideen und verbessern Sie ihre FileMaker Lösungen durch den Einsatz unseres Plugins.

Das Monkeybread Software Plugin für FileMaker stellt eine vielseitige Erweiterung der eigenen Datenbank dar. Der Kurs bietet nicht nur einen tiefgreifenden Überblick in die Benutzung und Entwicklung, sondern bietet auch die Chance das Plugin günstiger zu erstehen.
  • Einführung in das MBS Plugin
  • Überblick über die Funktionsbereiche
  • Neues im MBS Plugin dieses Jahr und in der dann aktuellen Version 7.5
  • Rundgang durch ausgewählte Beispiele
  • Gemeinsames Implementieren von Plugin Funktionen in eine Datenbank.
    • Upload/Download mit CURL auf einen HTTP/FTP Server
    • Ausfüllen eines Formulares auf einer Webseite
    • Bilder bearbeiten
    • PDF Verarbeitung
    • Druckerfunktionen
    • Einbinden von Webservices with JSON/XML für REST/SOAP.
  • Fragen und Antworten
Die Teilnahme kostet 149 CHF (Frühbucher bis 17. Juni 2018) bzw. 199 CHF inkl. Verpflegung. Trainer ist der Plugin Entwickler und Monkeybread Software Geschäftsführer Christian Schmitz persönlich.

Anmeldung bei Monkeybread Software.

Am Abend vorher treffen wir uns zum gemütlichen Beisammensein im Restaurant vom Konferenzhotel. Im Anschluss an die Schulung können Sie gleich rüber zum Apero gehen und die anderen Teilnehmer kennen lernen.

Check version of FileMaker Plugins on Windows

As you may see, on MacOS we provide metadata about plugin version in Finder's info dialog. But for Windows?

Well, turns out the problem is the file extensions. FileMaker plugins for Windows are technical just DLLs with a special relation to FileMaker application. So if you rename the .fmx or .fmx64 file to .dll, you can see the metadata in the info dialog:

So if you want to know which MBS Plugin version, you have, please use this trick to read the version name.
For Linux, you can run the file as an application in command line. Each plugin from us has a little command line app in the .so files, which prints the version number to the terminal.

Normalize PDF orientation with MBS Plugins and DynaPDF

A client got scanned PDFs and they are sometimes showing rotated in FileMaker's container fields. The reason is simple: They are scanned and marked to be rotated. But preview in FileMaker ignores the orientation metadata (see issue 137094).
To fix this for the client, we wrote the following script. If first page is rotated, we assume this is a PDF which needs to be normalized to have 0° rotation. So we loop over all pages, rotate the pages with a non zero orientation to have one and add them to the new PDF: 
 # Clear current PDF document

Set Variable [ $pdf ; Value: MBS("DynaPDF.New") ] 

# Load PDF from container

Go to Record/Request/Page [ First ]

Set Variable [ $r ; Value: MBS("DynaPDF.OpenPDFFromContainer"; $pdf; Generate Previews::InputPDF) ] 

# Check if first page is rotated

Set Variable [ $rotation ; Value: MBS("DynaPDF.GetImportOrientation"; $pdf; 1) ] 

// Show Custom Dialog [ "Rotation is " & $rotation ] 

If [ $rotation ≠ 0 ] 

# Rotate all pages to 0° if needed

Set Variable [ $page ; Value: 1 ] 

Set Variable [ $pageCount ; Value: MBS( "DynaPDF.GetImportPageCount"; $PDF ) ] 


# Check current page rotatations

Set Variable [ $rotation ; Value: MBS("DynaPDF.GetImportOrientation"; $pdf; $page) ] 

If [ $rotation = 0 ] 

# import as is

Set Variable [ $r ; Value: MBS( "DynaPDF.ImportPDFPage"; $PDF; $page ) ] 


# import and rotate

Set Variable [ $template ; Value: MBS( "DynaPDF.ImportPageAsTemplate"; $PDF; $page ) ] 

Set Variable [ $template ; Value: MBS( "DynaPDF.RotateTemplate"; $pdf; $template; -$Rotation ) ] 

# now put on a new page:

Set Variable [ $r ; Value: MBS( "DynaPDF.AppendPage"; $PDF) ] 

Set Variable [ $w ; Value: MBS( "DynaPDF.GetTemplWidth"; $pdf; $template ) ] 

Set Variable [ $h ; Value: MBS( "DynaPDF.GetTemplHeight"; $pdf; $template ) ] 

Set Variable [ $r ; Value: MBS( "DynaPDF.SetPageWidth"; $PDF; $w) ] 

Set Variable [ $r ; Value: MBS( "DynaPDF.SetPageHeight"; $PDF; $h) ] 

Set Variable [ $r ; Value: MBS( "DynaPDF.PlaceTemplate"; $PDF; $template; 0; 0; $w; $h) ] 

Set Variable [ $r ; Value: MBS( "DynaPDF.EndPage"; $PDF) ] 

End If

# next page

Set Variable [ $page ; Value: $page + 1 ] 

Exit Loop If [ $page > $pageCount ] 

End Loop

# Save PDF

Set Field [ Generate Previews::OutputPDF ; MBS("DynaPDF.Save"; $pdf; GetAsText ( Generate Previews::InputPDF )) ] 

End If

Set Variable [ $r ; Value: MBS("DynaPDF.Release"; $pdf) ] 

The resulting PDF has all pages in 0° orientation, so the fact that FileMaker doesn't handle this, is no longer a problem and the PDF shows nicely.
Of course this may not work, if the pages are not marked with correct orientation metadata! 
Requires MBS FileMaker Plugin + DynaPDF Lite. With DynaPDF Pro, the resulting PDFs can include the preview JPEG to show a preview in a non-interactive container on Windows, see DynaPDF.GeneratePreview.
The same can be done in Xojo, see /DynaPDF/Rotate rotated PDF back example project.

Disabled Plugins in FileMaker

Today a client contacted use with the following problem.
Whenever they go to the plugins section in FileMaker Pro, they get an error message and the plugins are greyed out:

and after clicking OK button:

They asked for help, so we checked. Turns out they used assisted install with the option AI_DISABLEPLUGINS=1 in the configuration file. Please use AI_DISABLEPLUGINS=0 if you plan to use plugins like the MBS FileMaker Plugin.

FileMaker Pro 16.0.5 Update available

FileMaker Inc. just released the version 16.0.5 for FileMaker Pro (Advanced).

This update fixes a crash with scrolling in FileMaker Pro, which you only see with macOS High Sierra 10.13.

The same problem we fixed a few days ago with the FM.PatchNotificationProblem function. See blog article.

More details in the Support Article 26025 and download here.

We recommend everyone to install this update to avoid the trouble with older versions of FileMaker 16.
The download patches the 16.0.4 version in place, so you may want to duplicate the app before doing the update to have a copy of the old version available in case the update process fails.

As this issue only affected the MacOS desktop software, the update is not available for Windows or FileMaker Server including the FileMaker Cloud.

MBS FileMaker Plugin v8.1 with 5100 Functions In One Plugin

Nickenich, Germany - (March 6th, 2018) -- MonkeyBread Software today is pleased to announce MBS FileMaker Plugin 8.1 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 8.1 has been updated and now includes over 5100 different functions, and the versatile plugin has gained more new functions:

For years the MBS Plugin offers functions to create a drop area on MacOS. The new version adds support for Windows platform, so you can now use this feature cross platform. You define an area in your layout with a nice picture, e.g. with a drop here message. The user can than drag files from other applications and drop them on your area and trigger your script, which decides what to do with the files. We already supported promised drags on MacOS for files, which are only created on demand when the plugin accepts them. Now on Windows we support file descriptors, which allows to accept drags of virtual files. For example Outlook does provides email attachments on the fly without a temporary file and you can add them to a container field easily.

For MacOS, if you use our syntax highlighting features, you may enjoy a new one. For the database design dialog, the MBS Plugin now optionally adds a search field in the tables and fields lists. You can type a partial text and the plugin searches the list of fields/tables for this text to jump to the line of interest. With pressing return key you can jump to the next place as needed. For huge scripts we now skip variable checking or if/loop block highlighting to improve performance. If you have a Macbook Pro with TouchBar, you can optionally block ESC key and require pressing Option-ESC to trigger ESC and avoid custom function dialog and other dialogs to close too easily.

Our new XML.Validate function can validate a XML document against a given XML schema. The new XML.SetPathXML function allows to add an XML to an existing XML document at a given position.

The new WebView.CreateOnPopover function allows to create a WebKit 1.x web viewer on a popover for MacOS. This allows several web viewers on a popover which can be controlled in detail with our plugin functions.

For ImageCapture's scanner panel we got a new close script trigger, so you get notified when the user closes the window. For ImageCapture.OpenDevice we got a timeout to not block your solution.

The PHP integration in MBS Plugin got an upgrade with new error messages for execution failures.

Our Java loading code has been updated for version 9 of the Java Runtime Environment. You can now use all Java versions from 1.4 to version 9.

Enjoy new barcode options, better email sending, SQL.InsertOrUpdateRecords with multiple primary keys, improved support for connections to SQL Anywhere servers, dictionaries and quick lists with custom identifiers. We prepared for the next FileMaker version and improved CURL.SetupAWS function for Amazon S3 and Dell ECS.

Finally we updated the CURL library to version 7.58.1, DynaPDF to version, LibXL to version 3.8.2, SQLite to version 3.22.0, the JPEG library to version 9c and LibTiff to version 4.0.9 including support for BigTiff format.

See release notes for a complete list of changes.

MBS FileMaker Plugin 8.1

6. März 2018 - Monkeybread Software veröffentlicht heute das MBS Plugin für FileMaker in Version 8.1, mit inzwischen über 5100 Funktionen eines der größten FileMaker Plugins überhaupt. Hier einige der Neuerungen:

Seit ein paar Jahren bietet das MBS Plugin Drag & Drop Funktionen für MacOS an. Mit der neuen Version unterstützen wir die gleichen Funktionen für Windows. Sie können jetzt bei Mac und Windows einen Drop Bereich auf ein FileMaker Layout legen und Dateien per Drag & Drop annehmen. Ein Skript ihrer Wahl wird gestartet und kann die ankommenden Dateien verarbeiten. Wir unterstützen schon länger Promised Drags, d.h. ein Programm wie schreibt die Dateien erst raus, wenn wir Sie annehmen. Bei Windows funktioniert das ähnlich mit File Deskriptoren. Beispielsweise liefert Outlook Anhänge von Emails erst nach Aufforderung als virtuelle Datei aus und wir können Ihnen die Anhänge als Containerwert geben.

Für MacOS bieten wir einige schöne Erweiterungen für die Entwicklung in FileMaker an und jetzt haben wir etwas neues: Im Datenbank Design Dialog können Sie mit dem neuen Plugin die Liste der Felder und Tabellen durchsuchen. Sie können etwas Text eingeben und das Plugin durchsucht die Liste nach passenden Texten und springt zur ersten passenden Zeile. Mit der Eingabetaste können Sie dann zu den nächsten Fundstellen springen. Für eine besser Performance im Skriptarbeitsbereich schalten wir jetzt automatisch die Überprüfungen für Variablen und Schleifenblöcke für sehr große Skripts aus. Wenn Sie ein Macbook Pro mit TouchBar haben, können Sie optional die ESC Taste in FileMaker deaktivieren und durch Alt-ESC ersetzen. Somit schließen Sie aus versehen weniger Dialoge.

Die neuen XML.Validate Funktion kann ein XML Dokument gegen ein XML Schema validieren und entsprechende Fehler melden. Die neue XML.SetPathXML Funktion fügt ein XML in ein bestehendes XML Dokument ein.

Die neue WebView.CreateOnPopover kann einen WebKit 1.x basierten Web Viewer unter MacOS erzeugen und auf ein Popover platzieren. Den neuen Web Viewer können Sie dann über die Webview Funktionen im MBS Plugin steuern.

Für das ImageCapture Fenster zum Scannen haben wir einen neuen Skripttrigger für das Schließen vom Fenster. Und beim ImageCapture.OpenDevice sorgt ein Timeout dafür, dass ihr Programm nicht ewig wartet.

Die PHP Integration im MBS Plugin wurde verbessert und gibt jetzt auch Fehlermeldungen aus, wenn das Ausführen vom PHP Code nicht erfolgreich war.

Unsere Java Integration kann jetzt auch Version 9 vom Java Runtime Environment laden. So können Sie jetzt von Java 1.4 bis Version 9 alle Java Versionen verwenden.

Freuen Sie sich auf neue Barcode Optionen, besseres Emailversenden, SQL.InsertOrUpdateRecords mit mehrere Primärschlüsseln, leichtere Verbindung zu SQL Anywhere Servern, Dictionaries und QuickList mit eigenen Namen. Wir haben das Plugin für die nächste FileMaker Version angepasst und die CURL.SetupAWS Funktion für Amazon S3 und Dell ECS verbessert.

Außerdem haben wir die CURL Bibliothek auf Version 7.58.1 aktualisiert, DynaPDF auf Version, LibXL auf Version 3.8.2, SQLite auf Version 3.22.0, die JPEG library auf Version 9c und LibTiff auf Version 4.0.9 inklusive der Unterstützung für BigTiff Formate

Alle Änderungen in den Release Notes.

FileMaker Magazin - MBS Artikel

For our German speaking users:

Wir haben die Artikel zum MBS Plugin aus dem FileMaker Magazin gesammelt hier online gestellt: FileMaker Magazin Artikel:

Wir empfehlen allen FileMaker Anwender ein Abo vom Magazin und den Kauf der alten Ausgaben. Das FileMaker Magazin ist eine exzellente Quelle von Informationen, Anleitungen und Profitips.

Have you tried new search feature in MBS Plugin?

Coming for 8.1 release is the new search in tables and fields in the Database Design dialog on MacOS:

As you see, we got to the Database Design dialog in a contacts solution. There we first search for "stat" and later for "city". We can jump from one item to next with pressing return and all the visible text is searched including formulas.

If you like to try, please download 8.1 prerelease or next week the final version.

Crashes with FileMaker 16.0.4 with scroll gesture notification

If you saw the thread on the FileMaker Community, you may have noticed that for a few weeks people experience crashes with FileMaker 16.0.4 on MacOS 10.13.3.

Checking the crash reports, you see they all are quite similar and show abort being called to terminate the app due to an unhandled exception:

terminating with uncaught exception of type std::__1::bad_function_call: std::exception

Now if you look on the stack trace, you see the abort is caused due to the invocation of a notification observer. So somewhere in the function CreateNativeViewIfNeeded deep inside FileMaker, they create the scroll view for the window. They attach an observer to listen for a notification. Somehow the related object for the observing block of code is released too early. When a scroll gesture is detected in the Cocoa event handling system, the system calls the method _beginScrollGesture to inform interested observers about the new gesture coming. As the block of code observing is gone already, an C++ Exception is raised, which nobody handles, so the app goes down. The crash report looks like this:

Application Specific Information:
abort() called
terminating with uncaught exception of type std::__1::bad_function_call: std::exception

Thread 0 Crashed:: Dispatch queue:
0 libsystem_kernel.dylib 0x00007fff6e66be3e __pthread_kill + 10
1 libsystem_pthread.dylib 0x00007fff6e7aa150 pthread_kill + 333
2 libsystem_c.dylib 0x00007fff6e5c8312 abort + 127
3 libc++abi.dylib 0x00007fff6c5a3f8f abort_message + 245
4 libc++abi.dylib 0x00007fff6c5a4113 default_terminate_handler() + 241
5 libobjc.A.dylib 0x00007fff6d92eeab _objc_terminate() + 105
6 libc++abi.dylib 0x00007fff6c5bf7c9 std::__terminate(void (*)()) + 8
7 libc++abi.dylib 0x00007fff6c5bf26d __cxa_throw + 121
8 libViewSystem.dylib 0x0000000103e34c17 std::__1::function::operator()() const + 65
9 libViewSystem.dylib 0x0000000103e34bd4 invocation function for block in ScrollView::CreateNativeViewIfNeeded() + 20
10 0x00007fff48d01330 -[__NSObserver _doit:] + 303
12 0x00007fff46c1eaaa _CFXRegistrationPost + 442
13 0x00007fff46c1e7f2 ___CFXNotificationPost_block_invoke + 50
14 0x00007fff46bdc670 -[_CFXNotificationRegistrar find:object:observer:enumerator:] + 1664
15 0x00007fff46bdb7a3 _CFXNotificationPost + 595
16 0x00007fff48cc0467 -[NSNotificationCenter postNotificationName:object:userInfo:] + 66
17 0x00007fff44440470 -[NSScrollView _beginScrollGesture] + 82
18 0x00007fff4475789d -[NSScrollingBehaviorConcurrentVBL _startGestureScrollWithVBLFilter:] + 130
19 0x00007fff4443fbcf -[NSScrollingBehaviorConcurrentVBL _scrollView:trackGestureScrollWithEvent:] + 1024
20 0x00007fff4443ead3 -[NSScrollingBehaviorConcurrentVBL scrollView:scrollWheelWithEvent:] + 549
21 libViewSystem.dylib 0x0000000103e34179 -[VSScrollViewMac scrollWheel:] + 2052
22 libViewSystem.dylib 0x0000000103df7efa -[NativeView_Mac scrollWheel:] + 116
23 0x00007fff44b20029 -[NSWindow(NSEventRouting) _reallySendEvent:isDelayedEvent:] + 5040
24 0x00007fff44b1e85c -[NSWindow(NSEventRouting) sendEvent:] + 497
25 com.filemaker.client.pro12 0x00000001022561cb -[FMDocWindowCocoa sendEvent:] + 1221
26 0x00007fff4497fed3 -[NSApplication(NSEvent) sendEvent:] + 2543
27 com.filemaker.client.pro12 0x0000000101f73756 -[FMCocoaApplication sendEvent:] + 329
28 0x00007fff441e0d9d -[NSApplication run] + 812
29 com.filemaker.client.pro12 0x0000000101f73956 CMacApp_Main + 497
30 com.filemaker.client.pro12 0x0000000102039a73 main + 49
31 libdyld.dylib 0x00007fff6e51c115 start + 1

This looks like a little bug in FileMaker 16.0.4, where an object reference for the code block is not retained properly and kept as long as the window is alive. We expect this to be fixed soon with a 16.0.5 update.

For our MBS Plugin we prepared a workaround for you. By calling our new function FM.PatchNotificationProblem, you can let the plugin filter all notification. So whenever the _beginScrollGesture (or related methods) send a notification like NSScrollViewWillStartLiveScrollNotification, we can ignore it, so no observer is notified and nothing crashes.

Once FileMaker 16.0.5 will come out, the problem is gone and we can remove the function again...

If you like to try this plugin function, please contact us soon.

PS: New plugin uploaded with newer version of 8.1pr6 disk image.

MBS FileMaker Plugin, version 8.1pr6

New in this prerelease of version 8.1 of the MBS FileMaker Plugin:
  • Fixed Trace function to ignore extra parameters, if more than 2 passed.
  • Disabled variable checking for scripts with > 2000 lines to avoid performance hit.
  • Limit search for Loop/If boundaries to 200 rows to avoid performance hit in script workspace with huge scripts.
  • Improved variable check to detect undefined variable in variable repetition count.
  • Fixed JSON.GetPathItem returning numbers with dot incorrectly for non-english localization. Broken in 7.5.
  • Added RefNum parameter to QuickList.New.
  • Added Dictionary.CreateNamed function.
  • Known issue: Zip functions broken on Linux.
Download at or ask for being added to the dropbox shared folder.


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