New XML Functions in MBS FileMaker Plugin

The last days I chatted with a FileMaker developer who had a need for some XML handling functions. So I added a few functions, first one to extract node names from an XML: XML.NodeNames. You pass in a XML and it can give you the list of node names in the first layer or if you want recursively all layers.

Next we got a function to get a subtree (XML.SubTree). So you may have a big XML with a smaller chunks and we can query nodes inside a bigger tree. This includes getting the nth entry like the nth record in a list of records.

The XML.ExtractText extracts the text inside an XML tree. So all text portions are returned as a list. You can first use the subtree function to get a part of a XML to only get a portion of the texts.

We got a few functions to handle attributes. XML.GetAttribute returns the value for the attribute.

Setting Variables

Now we got something special for FileMaker Scripts.

We parse an XML with the XML.SetVariables function, identify all nodes with text values and create variables for you automatically. The plugin sets those variables and returns a list of the names. Later you can pass the list to XML.ClearVariables to clear them for another run.

For example the script looks like this:

Set Variable [$XMLVariables; Value:MBS( "XML.SetVariables"; test::input; 1)]

Set Variable [$otherVariable; Value:1]

#See Variables in Data Viewer

Set Field [test::output; MBS( "XML.ClearVariables"; $XMLVariables)]

Set Variable [$someVariable; Value:1]


The test XML:
<?xml version="1.0" encoding="UTF-8"?>
<Job>
<Name>Test</Name>
<CreationDate>2016-11-23 12:34:56</CreationDate>
<Reference>8F223E5F-6A57-4ECD-9AB2-0FD0DA3414FF</Reference>
<Priority>5</Priority>
<Comment>Just a test.</Comment>
<Labels>
<Label>green</Label>
<Label>work</Label>
<Label>test</Label>
<Label>important</Label>
</Labels>
</Job>
And in the debugger all the variables may look like this for a test XML:



So you can have an input XML, split the values into variables using our plugin and process them in your script. I hope this is handy for you. What do you think?
Plugin will be available soon. If you like to test today, you can email me.

FileMaker Stammtisch im Bärenpark

We had a nice meeting with FileMaker developers in the bear and wolf park:


We even had some guests from Swiss and Frankfurt/Main coming. Topics included using SVGs to display complex layout information of print jobs with creating the SVG data on the fly in a script, access to web services, FileMaker news/licensing, developing business apps and of course using MBS FileMaker Plugin.

Goodies video from FMValencia conference

Goodies for FileMaker

(English)

9:21 minutes
Thumbnail
I recorded the presentation about the MBS Plugin goodies from the FMValencia conference.

Learn about the syntax coloring, error highlighting, context menus, script and relation graph search.

Check the SyntaxColoring functions.

To see notifications for wrong variables, please enable the variable checks and enable notifications for FileMaker in system preferences. (more)

FileMaker Conferences in 2017

The new year 2017 is coming soon and I am already looking for which conferences I may visit. So here is a list of conferences which may be of interest for FileMaker developers:

  • MBS Xojo Conference, English, 4th/5th May 2017 in Berlin, Germany, see monkeybreadsoftware.de/conference
    In case you want to check out Xojo.
  • .fmp[x]Berlin, English, 1st to 3rd June 2017 in Berlin, Germany, see dotfmp.com
    The biggest english speaking FileMaker conference in Europe.
  • FMValencia, Spanish/English, 17th June 2017 in Valencia, Spain, see fmvalencia.com
    The FileMaker group from Valencia is meeting again.
  • FileMaker DevCon, English, 24th to 26th July 2017 in Phoenix, USA, see filemaker.com/developers/devcon/
    The conference in USA with 1500+ attendees.
  • FileMaker Konferenz, German/English, 12th to 14th October 2017 in Salzburg, Austria, see filemaker-konferenz.com
    The German conference with around 200 people usually.

Somewhere in October we expect also conference in Dutch: fmsummit.info, Italian: fmdevcon.com, French: fmconf.com, Japanese: filemaker.com/jp/conference/2016/ and one in scandinavian countries.

Is there one I missed? Please let me know. Especially when you have dates.


FileMaker Stammtisch im Bärenpark am Freitag

Am 16. Dezember 2016 treffen sich ab 15 Uhr FileMaker Entwickler im Restaurant Bärenblick im Alternativer Wolf- und Bärenpark Schwarzwald in Bad Rippoldsau-Schapbach.

Es empfiehlt sich etwas früher zu kommen und eine Runde durch den Park zu machen und den Bären zuzuschauen.
Der Eintritt in den Park ist obligatorisch und kostet 5 €.

Ich versuche selber dabei zu sein bei diesem Termin. Wer kommt noch?

siehe Stammtischseite beim FileMaker Magazin und baer.de.

MBS FileMaker Plugin 6.5 for OS X/Windows

Nickenich, Germany - (December 12th, 2016) -- MonkeyBread Software today is pleased to announce MBS FileMaker Plugin 6.5 for Mac OS X, 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, 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 6.5 has been updated and now includes over 4300 different functions, and the versatile plugin has gained more new functions:

For this release we now include a Linux version. This plugin file can be used with FileMaker Cloud, or on any FileMaker Server running under 64-bit Linux. Over 2200 functions are instantly available for Linux, others may follow later. Please let us know what features you'd like to see for FileMaker Cloud in the future.

We rewrote our Audit function. It's now much faster, eliminates duplicate log entries and only records one log entry for a new record to reduce the amount of log records. You should see a big performance gain when using tables with a lot of fields and a FileMaker Server for hosting.

The menu commands have been reimplemented for Windows. Now we support all the font styling we had on Mac before. You can now use custom fonts, bold/italic/underline/strikeout styles, font sizes, colors and a background color. Instead of simple checkmarks, you can use bullet, diamond or mixed marks.

For macOS 10.12 we added several TouchBar functions. You can define one app wide and per window touch bars. Each can have buttons which trigger scripts or evaluate expressions. This way you can offer contextual commands on the keyboard and react in FileMaker. You can even define buttons to use in FileMaker itself, like a button to show/hide the debugger.

To interface existing Java classes, the plugin can now optionally talk to Java. From older Java 6 to latest Java version 8, you can load whatever Java version you like. Than you can create objects from classes and call both class and object methods. You can set and query properties on those classes or objects and exchange data directly. Containers can be passed/returned to/from Java as byte arrays for efficient data exchange.

For those using flatbed/feeder scanners, we can now interface them on Windows via native drivers. We use the official WIA interface from Microsoft which most scanners nowadays support. You can either use system dialogs to scan or send scan commands directly. On Mac we now provide optionally windows to select scanner or perform scans. In total, we now provide three ways to scan: 1st TWAIN for macOS and Windows, 2nd ImageCapture for macOS and 3rd WIA for Windows. All three ways can get your scans with or without a dialog to an image file.

For the Script Workspace we provide an enhanced contextual menu. We provide copy/cut/paste/delete commands at your finger tips and commands to enable/disable script steps. For perform script steps we now provide a way to jump directly to the target script.

On Windows you can now control the print dialog. Our plugin can automatically select printer, paper format, paper tray and other options. You can query available printers, paper formats and trays. For Mac, please use our existing PrinterDialog functions.

We added more DynaPDF functions: You can now directly draw styled text from a field in your layout to a PDF. The plugin internally converts the styles to DynaPDF formatting commands. You can now process data from XFA forms automatically and when printing PDFs on Windows, you can now optionally show a print dialog.

On Mac you can workaround the printing issues with FileMaker and macOS Sierra. If you don't like the scrolling elasticity in your layouts, you can disable it. The plugin can now list and trigger commands on the FileMaker windows directly. For example in a table view, we can trigger the dialog to customize which fields are shown. Via plugin functions you can control the updater in FileMaker, trigger update search or change various options.

For editing Excel documents, you can copy sheet content from one sheet to another, even across books. You can copy rows from one sheet to another. When writing formulas you can now include the pre-calculated result as number, text or boolean value.

You can now calculate the width of a text with a given font. So you can automatically cut text and add dots via custom functions in your layouts.

For Windows we added still photo capture to our video recorder. For the Webviewer you can now switch it to silent mode and javascript errors are not longer displayed to users.

Our barcode generator learnt two new types: DotCode and HanXin. You can query the memory used by FileMaker, clear recent files in preferences on Mac, list mounted volumes, change orientation for images in EXIF metadata, send text attachments in emails and get/set the current working directory.

We updated CURL library to version 7.51.0, DynaPDF to 4.0.5.15, libSSH2 to 1.8, libXL to 3.7.0, OpenSSL to 1.0.2j, SQLAPI++ to 4.1.10, SQLite to 3.15.0 and zint to 2.5.

More details in the release notes. Please take the time to check our 450 example databases and check where you can use our plugin features in your solutions.

Supporting 10 years of FileMaker with current plugin

Current MBS FileMaker Plugin in version 6.4/5 support all FileMaker versions from 8.5 to 15. That is ten years!

Our plugin uses the FileMaker 7 plugin format. So until FileMaker 6 the way of writing plugins was different and changed for version 7. When I started writing a FileMaker plugin, the version 8 was current and so I started there and quickly made sure my plugin works on 7 and 8. Over the years we continue with the same interface to FileMaker. All newer functions are weak linked, so our plugin loads in older versions.

For Mac you can use FileMaker 8.5 (Released 2006) to current one. That is due to the switch to Intel CPUs by Apple in 2006 and 8.5 was the first version to support x86 CPUs. We later dropped PPC support and you still can get a copy of our plugin in version 2.4 for PPC support. Current plugin requires Mac OS X 10.6 and newer.



With Windows you can even go back to FileMaker 7 if you like, 12 years back! Current plugin works fine there as well as with newer versions of FileMaker. The picture above shows FileMaker 8 on Windows 10 (Server 2016) with current MBS Plugin from earlier today. We support Windows XP and newer.

If you are lucky to be a member of FileMaker's beta testing, you an even try our plugin with the next FileMaker version and find some new features.

Finally please keep your plugin installation up to date to benefit from bug fixes and improved features. Don't waste hours figuring out details about a bug in an ancient plugin version, which has been fixed last year.

MBS FileMaker Plugin, version 6.5pr10

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

Custom function to optimize PDF in FileMaker via DynaPDF

This little function can be called anywhere to optimize a PDF. Of course you should initialize DynaPDF in startup script of your solution. But than you can call OptimizePDF function everywhere and pass in a PDF container value. The PDF is optimized and returned.

If you like add further parameters to decide what optimization to do. The example be low uses a good default setting to reduce PDFs for email delivery.

 

# Custom Function OptimizePDF(InputPDF)

#

# Optimizes PDF and returns either new one or old one in case of error.

 

Let ([ 

PDF = MBS("DynaPDF.New");

OpenResult = MBS("DynaPDF.OpenPDFFromContainer"; PDF; InputPDF);

OpenError = MBS("IsError");

ImportResult = MBS("DynaPDF.ImportPDFFile"; PDF);

ImportError = MBS("IsError");

Options = "FlattenLayers DeleteInvPaths ScaleImages NewLinkNames DeletePrivateData IgnoreZeroLineWidth DeleteAlternateImages DeleteThumbnails";

OptimizeResult = MBS("DynaPDF.Optimize"; PDF; Options; 50; 50; 50; 150; 150; 150; "JPEG"; "JPEG"; "JPEG");

OptimizeError = MBS("IsError");

OutputPDF = MBS("DynaPDF.Save"; PDF; GetAsText(InputPDF));

SaveError = MBS("IsError");

ReleaseError = MBS("DynaPDF.Release"; PDF);

 

Result = If( 

  // all okay?

  OpenError = 0 and ImportError = 0 and OptimizeError = 0 and SaveError = 0 and MBS( "Container.GetSize"; OutputPDF; "PDF " ) > 0

  // than return new PDF

  OutputPDF;

  // return old PDF

  InputPDF)

 

];

 

result )


MBS FileMaker Plugin, version 6.5pr9

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

FileMaker Conference in Madrid

Greetings from the spanish FMValencia conference in Madrid.

Over 35 attendees are here already this morning :-)

FileMaker DevCon 2017 surprises

Have you seen the plan for DevCon 2017?

DevCon schedule

The conference is in total four days, but first one is training and keynote, last day is FBA only. This is a change from previous conferences and the reduced cost for FMI could lead into cheaper tickets which may bring more new faces to the conference.

If you like to speak, you can apply for a session. Please make your FM 15 certification first if you are not yet certified. Speaking has the advantage of 4 free hotel nights and a free ticket to the conference.

Archives

Dec 2025
Nov 2025
Oct 2025
Sep 2025
Aug 2025
Jul 2025
Jun 2025
May 2025
Apr 2025
Mar 2025
Feb 2025
Jan 2025
Dec 2024
Nov 2024
Oct 2024
Sep 2024
Aug 2024
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
Mar 2010
Dec 2009
Nov 2009