Our Blog, FileMaker only, Xojo only, Archive (older)     Follow us on Twitter, Xing, LinkedIn or Facebook.

Convert a SVG image to PNG with alpha channel

You can use GraphicsMagick functions in MBS FileMaker Plugin to convert a SVG to a PNG image with transparency.

To assist there we add a new GMImage.ReadFromContainer function to our plugin. This allows you to create the picture, configure it and then load the picture into the image. When you set background to transparent in a picture with alpha channel, you can preserve the transparency from the SVG. And as you specify a size for the picture and reading it, you can scale the SVG to the size you need:


# Load image from container

Set Variable [ $image ; Value: MBS( "GMImage.New"; "500x500"; "transparent" ) ] 


# turn on alpha channel and set background to transparent

Set Variable [ $r ; Value: MBS( "GMImage.SetType"; $image; 7 ) ] 

Set Variable [ $r ; Value: MBS( "GMImage.SetBackgroundColor"; $Image; "transparent" ) ] 


# Read SVG

Set Variable [ $r ; Value: MBS( "GMImage.ReadFromContainer"; $image; SVG to PNG::InputFile; "500x500"; 0; "SVG" ) ] 

# Output to container and release image

Set Field [ SVG to PNG::OutputFile ; MBS( "GMImage.WriteToPNGContainer"; $image; "test.png") ] 

Set Variable [ $r ; Value: MBS("GMImage.Free"; $image) ] 

If you have questions or need a newer plugin including the new plugin, please don't hesitate to contact us.

MBS Xojo Plugins, version 20.2pr2

New in this prerelease of the 20.2 plugins: Download: monkeybreadsoftware.com/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.

MBS FileMaker Plugin, version 10.2pr2

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

MacOS System Preference Links

Since MacOS 10.10 we got links to open system preferences and point user to a specific preference panels.

In general you have "x-apple.systempreferences:" as URL scheme followed by the bundle ID of the preferences panel. Not all preference panes can be accessed this way and some have special parameters for sub panels. Here is the list:
Preference PaneBundle IdentifierCan be opened via URL?

Query FileMaker records as JSON

When you need FileMaker records as JSON, you can just query them via MBS Plugin functions. Use FM.SQL.Execute first to run SQL and get reference number to result in memory. Then call FM.SQL.JSONRecords to get the records as a JSON array. This has high performance and may be faster than looping in a script to build the JSON in pure FileMaker functions.

Once you have the JSON, you may just pass it to FileMaker's data API to move records to another server or pass them as payload for a web service. Within the SQL you can make adjustments to the data. For example you insert fixed values with putting them in the SQL (text in single quotes), you can use CONCAT to concat texts or use CAST() to change data type in SQL. By passing field list to FM.SQL.JSONRecords, you can rename the fields to match whatever you target service expects.

# get related teams
Set Variable [ $r ; Value: MBS( "FM.SQL.Execute"; Get(FileName); "SELECT \"UUID\", \"ID\", \"ID_Abteilung\", \"Team.Name\", \"Txt_Anz.Mia\" FROM \"Teams\" WHERE ID_Abteilung=?"; Abteilung::ID) ]
If [ MBS("IsError") ]
    Show Custom Dialog [ "SQL error" ; $r ]
    # fill as json in field
    Set Field [ Abteilung::JSON_Abteilung ; MBS( "FM.SQL.JSONRecords"; $r; "UUID¶ID¶ID_Abteilung¶Team.Name¶Txt_Anz.Mia") ]
    Set Variable [ $e ; Value: MBS( "FM.SQL.Release"; $r ) ]
End If

Don't forget to release memory when you are done by calling FM.SQL.Release function.
Check also FM.SQL.JSONRecord to just get one row as JSON object. Use FM.SQL.InsertRecords to insert records into another table in another file within FileMaker or FM.SQL.InsertRecordsToSQL to insert records to a foreign database, e.g. MySQL. You can use FM.SQL.CSV to get records as CSV for exporting.

If you have questions, please don't hesitate to contact us.

Connect Xojo to SAP via RFC

For next MBS Xojo Plugins 20.2, we will have a new set of classes to connect to SAP systems via the SAP NetWeaver RFC SDK 7.50. The SDK allows to call remote functions in the SAP application and move data to/from SAP.

By connecting Xojo applications to SAP, we enable a whole new field of collaboration. Xojo developers and lookup records or call functions to trigger actions in SAP. Developers using SAP on a daily basis can now optionally use Xojo to develop utility applications to help their daily routine. We imaging a lot of import/export applications may be doable as well as interface applications to connect to other devices. e.g. let a Xojo app measure something and send results to the SAP application.

To get the SDK and development access to SAP applications you need to be registered SAP user. The company with the SAP license needs to have user licenses for this usage. And the SDK is available for MacOS, Windows and Linux and so are our plugin classes.

Check the RFCModuleMBS module to load the libraries and check global parameters like the location of the INI file. Then use RFCConnectionMBS class for a connections, query function descriptions and call functions. Use classes for tables and structures to work on records.

Here a screenshot of the sample project we made with a client:

Please let us know if you like to learn more.
SAP and SAP NetWeaver are trademarks from SAP SE.

Virtuelle FileMaker Stammtische

Da aktuell kein Restaurant oder Biergarten offen hat, verlegen sich viele Stammtische ins Internet.

Dienstag war der Virtueller, überregionaler FileMaker Stammtisch vom Holger Darjus organisiert. Immerhin 56 Leute waren zur Spitzenzeit online!

Heute Abend findet dann der Hamburger Stammtisch virtuell statt. 2. April, gegen 19 Uhr per Zoom teilnehmen: Zoom Link.

Voraussichtlich findet der Ulmer Stammtisch die Woche darauf auch virtuell statt.

Der Zürcher Stammtisch findet am 17. April online statt. Anmeldung

Generell bietet es sich an, dass FileMaker Entwickler aus dem ganzen Deutschsprachigen Raum sich regelmäßig treffen. Und reihum können verschiedene Leute die Moderation übernehmen.

MBS Xojo Plugins, version 20.2pr1

New in this prerelease of the 20.2 plugins: Download: monkeybreadsoftware.com/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.

MBS FileMaker Plugin, version 10.2pr1

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

MBS Birthday Sale

We celebrate in April 2020 the 20th anniversary of our company. Founded on 1st April 2000 as a sole proprietorship, we later upgraded in 2005 to a GmbH (limited) and over the years even got staff. As we trade as Monkeybread Software, we got a trademark for this name. Since 2001 we provide Xojo plugins and since 2006 we provide a FileMaker plugin.

Thanks to the thousands of customers around the world, who support us by buying licenses over the years. Thank you for the feedback, the greetings and the good testimonials we got.

Our party got moved to 2021 where we celebrate 20+1 years of the Monkeybread Software next year. Same party may also celebrate 15 years of MBS FileMaker Plugin, my 40th birthday and 20 years of our MBS Xojo Plugins.

As a thank you for all our existing and new customers, we offer for April a 20% discount on purchases for all our licenses. Coupon code 20years needs to be entered for web shop to get the discount. For links to PayPal directly from our website, we can just reduce the amount automatically.

If you need a license or an update, please enjoy the discount. This includes our licenses as well as DynaPDF licenses. If your license expires in the future, you can order this month and extend your license for up to five years in the future!

Otherwise have a great spring time at home, stay healthy and see you at the next conferences!

Build System Updates for new targets

As you may have noticed the Xojo Inc. announced in the XDC 2020 keynote (see Youtube playlist), that we'll get plugins for iOS later this year. For us it is time to update the build system to duplicate a lot of scripts for new targets.

First we tested how to build iOS dylibs from command line which worked quickly. The more difficult part will be to change code to use #if to enable it for iOS. And of course to later add iOS specific code to get functionality.

Next we worked on trying Linux ARM in 64bit. While not announced, we expect Xojo Inc. to do this someday when they see the need and an engineer has a few days to start the process. For us building ARM 64-bit seems to work fine. It's more or less just duplication of scripts and changing 32 to 64 for the bit count and using separate folder/file names for libraries.

To be prepared in case the Mac with ARM rumors turn up true, we added MacARM as possible build target. The scripts seem to work except that we get errors as the Mac SDK shipping currently does not support arm.

Finally we added the Android platform as target with both simulator and device modes. But we have not yet compiled anything this is a bit new for us. But we expect to learn from Xojo Inc. on how to setup a build environment as they need to do this for their own internal plugins, e.g. XML classes.

All the work is a bit preliminary and subject to change. Once Xojo comes with support for new targets, we can make sure we use the right compilation flags to produce matching libraries.

The new targets added here are:
  • iOS Simulator 64-bit
  • iOS Device 64-bit
  • Linux ARM 64-bit
  • Mac ARM 64-bit
  • Android ARM Simulator 64-bit
  • Android ARM Device 64-bit
Not sure if we get those targets all this year, but at least the build system is prepared. Over 20 libraries do compile for iOS and Linux 64bit already. Some plugins like the CURL and DynaPDF ones do compile for those platforms just fine.

Looking forward for the new targets and thanks to everyone who supports us by testing new functionality and keeping license current.

XDC 2020 MBS Plugins Presentation

Christian Schmitz presents what is new in MBS Xojo Plugins since the last conference and what is coming soon.

Enjoy and if you have questions, please don't hesitate to contact us.

XDC 2020 SceneKit Presentation

Stefanie Juchmes presents SceneKit and what coming soon for next plugin version: Enjoy and if you have questions, please don't hesitate to contact us.

New Examples 2020

ThumbnailNew Examples 2020


19:05 minutes

We made a new video to show you a few newer examples for MBS FileMaker Plugin this spring. Later download the plugin to try the examples yourself.

Watch on our website or on Youtube.


0:15Signature Field
2:40Barcode functions on MacOS
8:10WebView.Evaluate on MacOS
11:20Font in Script Workspace
13:50WebView.Evaluate on Windows
14:40Barcode functions on Windows
17:35Windows Media Player (WMPF functions)

Looping over records in FileMaker with error checking

Recently I got a client complaining about a crash in FileMaker Server with a script using plugin functions. A look on the trace output from our plugin via MBS("Trace"; $path) function call to write a log file showed the problem. The loops where running endless. And an endless loop eventually causes trouble when some resource is limited, e.g. available memory.

Looking on the script we basically found this a couple of times:

Go to Layout [ “MyTable” (MyTABLE) ; Animation: None ]

Perform Find [ Restore ] 

Go to Record/Request/Page [ First ]


# process record

# next

Go to Record/Request/Page [ Next ; Exit after last: On ]

End Loop


For privacy reasons, I removed the code to process the record and renamed the layout and file here. But otherwise the script contains a few of those loops and not all loops work well. Does the script look fine? Look and decide before you continue to read.


MapKit functions in MBS Plugins

Stefanie made a poster for our MapView functions in MBS FileMaker Plugin:

Learn more:
Available for Xojo via MBS Xojo MacFrameworks Plugin: MapKit classes.

20 year party moved to 2021

After long discussions we decide to move our 20 year party to the year 2021. Same location, same setup, but simply a year later.

In April 2020 our company will turn 20 years old and we celebrate a bit at home.
We'll plan to have a big party next year in Germany near our office with over 100 guests.

All people invited for this year will be asked to contact us in early 2021 whether they join the party in April 2021. We'll send new invitations next year to remind everyone.

The new date has the advantage that it's close to XDC 2021, so customers from America may extend their stay in Europe and join our party.

Please stay healthy and enjoy some time home with family.

News from the MBS Xojo Plugins Version 20.1

In this article I want to introduce you the new functionalities from the MBS Xojo Plugins in version 20.1.

Data from Images
The classes JPEGImporterMBS, GMImageMBS and GM16ImageMBS got the new property ExifThumbnail. This property extracts an embedded thumbnail in EXIF data and return it as a string. With this string we can use the method getData method of the Picture class or our JPEG functions to decompress and display the thumbnail.

The class JPEGImporterMBS got the ExifOrientation property that queries the orientation from the Exif data. We receive the orientation as an integer and you can use this number to determine and adjust the alignment if necessary.

The classes GMImageMBS and GM16ImageMBS include the new shared method FontMap. We can use this method to find out which fonts are currently available. The method can also help us to debug and find out the reason why a font is not loaded. The function returns a string with a XML structure. (more)

New in the MBS FileMaker Plugin 10.1

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

In the last plugin version we introduce the new JavaScript component. With those functions it is possible to use JavaScript without the help of a web viewer. In this version we have added some features, that simplify the work with JavaScript functions.

Times and dates in JavaScript are passed as floating pointer numbers. The function “JS.Now” returns us the number of milliseconds since the 1st January 1970. So we can determine the current time in combination with the “JS.TimeToDateComponents” function. This function returns us a JSON object with the individual specifications like year, month, day, hours, minutes, seconds, milliseconds, weekday, timezone and weekday

Here you see an example script:
Set Variable [ $JS ; Value: MBS( "JS.New" ) ]
Set Variable [ $time ; Value: MBS("JS.Now";$JS) ]
Set Variable [ $Res ; Value: MBS( "JS.TimeToDateComponents"; $JS;$time) ]
Set Variable [ $r ; Value: MBS( "JS.Free";$JS ) ]

If you combine this function with the “JS.UTCDateToTime” function you can get such a JSON of a FileMaker timestamp. “JS.UTCDateToTime” convert a FileMaker timestamp to the time format that the function “JS.Now” uses. Additionally there is a function that converts the millisecond output back to a FileMaker readable timestamp. This function is called JS.TimeToUTCDate.

We have also added counting functions that count the number of objects and global strings. In an empty JavaScript environment there are already about 1000 strings and about 400 objects. So if you want to find out how many objects and strings are added, you have to subtract the basic amounts. (more)

Background Color for TextArea control

For next plugin version we add four new properties to TextArea class: So you can control the background color of text for MacOS and Windows.

Coming soon for next plugin pre-release.

Older blog entries:

2020-03-14 Tip of the day: Do Copy and Paste yourself in Xojo desktop app on Windows
2020-03-13 Congratulations to the 2020 Xojo Design Award Winners!
2020-03-13 Tip of the day: Step for Textfield in Xojo
2020-03-12 Trip to New York and Nashville cancelled
2020-03-11 FileMaker Stammtisch Braunschweig (virtuell)
2020-03-11 Checking out the party location
2020-03-10 MBS FileMaker Plugin 10.1 - More than 6100 Functions In One Plugin
2020-03-10 MonkeyBread Software Releases the MBS Xojo Plugins in version 20.1
2020-03-10 Neues MBS FileMaker Plugin 10.1 - Über 6100 Funktionen in einem Plugin
2020-03-09 WebPicture from PDF Page HiDPI
2020-03-08 Sort Layouts and Fields in FileMaker
2020-03-08 New York FileMaker Meeting
2020-03-05 MBS FileMaker Plugin, version 10.1pr7
2020-03-05 MBS Xojo Plugins, version 20.1pr7
2020-03-03 Permanent column widths for FileMaker
2020-03-03 xDev 18.2 Issue
2020-03-02 MBS Xojo Plugins, version 20.1pr6
2020-03-02 MBS FileMaker Plugin, version 10.1pr6
2020-03-01 20 Years Monkeybread Software Party
2020-02-28 MBS Syntax Colorizing saves the day!


Apr 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
XML: RSS Feed XML: Atom Feed