MBS @ FMTraining.TV - PDF Forms with Submit button for Adobe Reader using the FileMaker MonkeyBread Plug-in

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 adding a submit button to a PDF document with DynaPDF functions in MBS FileMaker Plugin to send the PDF file to our server.


New in MBS FileMaker Plugin 13.3

In this article we want to introduce you the new functions from the MBS FileMaker Plugin in version 13.3.

PDF Preview

With the new version of the plugin we have also added a new component that I would like to introduce to you today. With the Preview component you get a control for macOS and Windows that gives you a PDF preview in the layout. Since the plugin puts the control on the layout, it is independent of FileMaker, it can stay when switching records and can load data from a container field or from a file on disk. First you can use Preview.Available to check if the functions are available for your operating system. With the functions Preview.Create or Preview.CreateWithControl you can then create the control with a certain size defined in the parameters or with the help of a control. You get a reference number as return which you can use in the further functions. You can then load a PDF from a container with Preview.LoadContainer or from a file with Preview.LoadFile. With Preview.Unload you can then remove the file from the preview again. This and much more is waiting for you in this component, please have a look.


MBS @ FMTraining.TV - Debugging your FileMaker Servers with the MonkeyBread Plug-in

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 debugging with the MBS FileMaker Plugin with Trace and Log function to find issues in your scripts, especially on server side.


MBS FileMaker Plugin - Sydney 2023

A recording of our short presentation for Reconnect.Sydney to talk about what is new in 2023 for MBS Plugin for Claris FileMaker.

All movies   Watch on YouTube.   MBS-Sydney-2023.mp4

MBS Plugin 13.3 for Claris FileMaker

Nickenich, Germany - (July 18th, 2023) -- MonkeyBread Software today is pleased to announce MBS FileMaker Plugin 13.3 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.3 has been updated and now includes over 7100 different functions, and the versatile plugin has gained more new functions:

With this version, we switch from OpenSSL 1.1 to the newer version 3.1.1. While you may not notice the difference from the outside, the inside is updated for Encryption, CURL, WebHook, Archive and Sign functions. Since the new OpenSSL 3 deactivates less secure ciphers by default, you can enable them again with CURL.SetOptionSSLCipherList function if needed.

Our new Preview functions allow you to add a preview control on a FileMaker layout. Independent from FileMaker, you can show PDF documents on macOS and Windows.

To improve JSON processing, we got the JSON.GetArrayItemsAsQuickList function to split a JSON array into a quick list. The JSON entries can then be changed and later reassembled with the QuickList.JoinJSON function. If you look for matching entries in a JSON array structure, check the JSON.FilterObjectArray function to look for matching objects.

For macOS we localized our user interface, so you can use the preferences dialog in one of 12 languages. Enjoy auto completion in the custom function dialog with the function-F5 shortcut. We improved our clickable links in Script Workspace to include links in calculations.

We enhanced our Matrix functions to output the content of the matrix to HTML with the Matrix.HTML function. And a matrix can be written to a sheet in an Excel workbook with XL.Sheet.CellWriteMatrix function.

For DynaPDF we got new functions to create reset and submit actions for forms and adding fields to them. The DynaPDF.CreateAnnotAP function creates a custom appearance stream for an annotation. For tagged PDF formats, you can use DynaPDF.OpenTagEx and related functions to add tags as needed. And the DynaPDF.AddDPartNode allows to add Document Part Metadata right within your PDF document.

We got a Files.DeleteLater function to remove temporary files when the application quits. The GMImage.Describe function can provide various details for an image as text to show to the user and OCR results can be returned as JSON with OCR.GetTextAsJSON function. The WebHook can now use a password protected private key for WebHook.SetSSL function, Text.ConcatWithDelimiter can help to concat texts with a given delimiter and Schedule.SetEnabled lets you disable or enable schedules. The audit functions now better return SQL errors, the XL.Sheet.SetColPx and XL.Sheet.SetRowPx functions can set column widths or row heights in pixel instead of characters.

Finally we updated CURL library to version 8.1.2, DynaPDF to, LibSSH to 1.11.0, LibXL to 4.2, MongoDB-c library to 1.23.4, openssl to 3.1.1 and SQLite to version 3.42.0.

See release notes for a complete list of changes.

Neues MBS Plugin 13.3 für Claris FileMaker

18. Juli 2023 - Monkeybread Software veröffentlicht heute das MBS Plugin für Claris FileMaker in Version 13.3, mit inzwischen über 7100 Funktionen eines der größten FileMaker Plugins überhaupt. Hier einige der Neuerungen:

Mit dieser Version wechseln wir von OpenSSL 1.1 auf die neuere Version 3.1.1. Während Sie den Unterschied von außen vielleicht nicht bemerken, wurde das Innere für die Encryption, CURL, WebHook, Archive und Sign Funktionen aktualisiert. Da das neue OpenSSL 3 weniger sichere Verschlüsselungsalgorithmen standardmäßig deaktiviert, können Sie diese bei Bedarf mit der Funktion CURL.SetOptionSSLCipherList wieder aktivieren.

Unsere neuen Preview Funktionen ermöglichen es Ihnen, ein Vorschausteuerelement in ein FileMaker-Layout einzufügen. Unabhängig von FileMaker können Sie PDF-Dokumente auf macOS und Windows anzeigen.

Um die JSON-Verarbeitung zu verbessern, haben wir die Funktion JSON.GetArrayItemsAsQuickList entwickelt, die ein JSON-Array in eine QuickList zerlegt. Die JSON-Einträge können dann geändert und später mit der Funktion QuickList.JoinJSON wieder zusammengefügt werden. Wenn Sie nach bestimmte Einträgen in einer JSON-Array-Struktur suchen, können Sie mit der Funktion JSON.FilterObjectArray nach passenden Objekten filtern.

Für macOS haben wir unsere Benutzeroberfläche lokalisiert, sodass Sie den Einstellungsdialog in einer von 12 Sprachen verwenden können. Genießen Sie die automatische Vervollständigung im Dialogfeld für eigene Funktionen mit der Tastenkombination Funktion-F5. Wir haben unsere klickbaren Links im Skript-Arbeitsbereich um Links in Berechnungen erweitert.

Wir haben unsere Matrix Funktionen erweitert, um den Inhalt der Matrix mit der Funktion Matrix.HTML in HTML auszugeben. Und eine Matrix kann mit der Funktion XL.Sheet.CellWriteMatrix in ein Blatt in einer Excel-Arbeitsmappe geschrieben werden.

Für DynaPDF gibt es neue Funktionen zum Erstellen von Reset- und Submit-Aktionen für Formulare und zum Hinzufügen von Feldern zu diesen. Die Funktion DynaPDF.CreateAnnotAP erstellt einen benutzerdefinierten Appearance Stream für eine Annotation. Für getaggte PDF-Formate können Sie DynaPDF.OpenTagEx und verwandte Funktionen verwenden, um Tags nach Bedarf hinzuzufügen. Und die Funktion DynaPDF.AddDPartNode ermöglicht das Hinzufügen von Document Part Metadaten direkt im PDF-Dokument.

Wir haben eine Files.DeleteLater-Funktion, um temporäre Dateien zu entfernen, wenn die Anwendung beendet wird. Die GMImage.Describe-Funktion kann verschiedene Details für ein Bild als Text bereitstellen, um sie dem Benutzer anzuzeigen, und OCR-Ergebnisse können mit der OCR.GetTextAsJSON-Funktion als JSON zurückgegeben werden. Der WebHook kann nun einen passwortgeschützten privaten Schlüssel für die Funktion WebHook.SetSSL verwenden, mit Text.ConcatWithDelimiter können Texte mit einem bestimmten Trennzeichen zusammengefügt werden und mit Schedule.SetEnabled können Sie Zeitpläne deaktivieren oder aktivieren. Die Audit-Funktionen geben jetzt SQL-Fehler besser zurück, die Funktionen XL.Sheet.SetColPx und XL.Sheet.SetRowPx können Spaltenbreiten oder Zeilenhöhen in Pixel statt in Zeichen festlegen.

Wie aktualisieren die CURL-Bibliothek auf Version 8.1.2, DynaPDF auf, LibSSH auf 1.11.0, LibXL auf 4.2, die MongoDB-c-Bibliothek auf 1.23.4, openssl auf 3.1.1 und SQLite auf Version 3.42.0.

Alle Änderungen in den Release Notes.

How to use Trace

When you run into trouble and you contact us via support@ email address, we may frequently question you to provide:

  • The text of your script.
    But, please no screenshot. You can copy the script text into an email or print to PDF.
  • The log of plugin calls from Trace function, so we see what you call and what parameters you actually pass.
  • If CURL functions are involved, the CURL debug messages via CURL.GetDebugMessages function.

We frequently ask to reproduce the problem in a new database or with a short script. It's hard to dig through 1000 lines of script to come to the 10 lines where the problem shows and make sure none of the lines above causes the trouble.

Let us show you how to use Trace function in various situations:


MBS @ FMTraining.TV - Digital Document Super Glue in FileMaker

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. We talk about merging documents with DynaPDF including PDF documents and various image files.


MBS FileMaker Plugin, version 13.3pr7

New in this prerelease of version 13.3 of the MBS FileMaker Plugin:
  • Tuned localizations.
  • Localized sort script commands for contextual menus.
  • Fixed positioning of Preview control on macOS with multiple screens.
  • Fixed a crash with SQL.SetParamAsNumber when parsing a string.
  • The plugin now prints a message on server to state whether license is loaded with expiration date for maintenance.
  • Deprecated WindowTransition functions.
  • Fixed Events.RequestAccessToEntityType to return "Wait" not as error. And to wait up to 10 seconds for dialog response.
  • Fixed Files.AudioTags function for macARM target.
  • Updated DynaPDF to version
Download at monkeybreadsoftware.com/filemaker/files/Prerelease/, in DropBox folder or ask for being added to the DropBox shared folder.

Merge documents with DynaPDF

Recently we got a request to merge documents of several types. Basically PDF files and images. Clients want to merge report from FileMaker with attachments like image files of repaired items and additional certificates as PDF documents. The start file has a layout with six container fields for input. It could have been a portal with a sub table for the fields, but for some reason the client didn't do that. So six fields may or may not contain some content. 


We start with a script by checking if DynaPDF needs initialization. Either on startup or first time you use our plugin's DynaPDF functions, please locate where the library is and call DynaPDF.Initialize. Our examples look for the library file in the same folder, but you can change that. Newer plugins for a few years allow you to just pass the file name instead of a full path. And if the file name is the default one, you can leave it away. Then our plugin will look for dynapdf.dylib (macOS), dynapdf.dll (Windows) or dynapdf.so (Linux) in the same folder as the plugin file. 


# Initialize DynaPDF if needed

If [ MBS("DynaPDF.IsInitialized") ≠ 1 ] 

Perform Script [ Specified: From list ; “InitDynaPDF” ; Parameter:    ]

End If


For DynaPDF we have a context object, which you reference in FileMaker scripts with a number and we usually store the value in $pdf. This way you can have multiple scripts using DynaPDF functions in parallel. The context for DynaPDF includes the current working PDF and the import PDF, if you have one open.


# Clear current PDF document

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


MBS FileMaker Plugin, version 13.3pr6

New in this prerelease of version 13.3 of the MBS FileMaker Plugin:
  • Updated LibXL to version 4.2.
  • Added XL.Sheet.SetColPx and XL.Sheet.SetRowPx functions.
  • Improved JSON.Text function to output less commas.
  • Added Polish translations.
  • Improved if/loop highlights for transaction blocks when using Czech, Turkish or Polish localization.
Download at monkeybreadsoftware.com/filemaker/files/Prerelease/, in DropBox folder or ask for being added to the DropBox shared folder.

Thoughts about OnWindowTransaction

Recently in the FM Training Livestream, we talked about the new OnWindowTransaction trigger in FileMaker 2023 version.

We looked into the Creating audit logs with the OnWindowTransaction script trigger article on the Claris Engineering blog. You may also want to check the blog article from Soliant here: Transaction Logging in FileMaker 2023.

We got a few questions and thoughts and we look forward to have someone make a session about the trigger for next Claris Engage to talk about all the little details, but let me start here with a few thoughts and possible pitfalls:



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