Socket changes for MBS FileMaker Plugin

We adjust our Socket functions for next pre-release to allow better error handling. Do you use those?

The changes are that we now better return you the lower level socket errors:

If the socket is broken due to being disconnected, we now return an error instead of zero for Socket.AvailableBytes or empty text for reading. Writing no longer returns -1 in case of error, but the error code and message. Please be aware that if you checked with MBS("IsError") already (as recommended) for all MBS calls, you would catch the error state. But in case you compare results to -1 for write, this will fail in future as you now have an error message. GetAsText() for the error message could take just the error number. You may also use Socket.LastError to get the OS specific error code.

We hope you enjoy the Socket functions!

Talking of Socket functions, for most people it is better to use CURL functions instead. If you use CURL.SetOptionConnectOnly to turn a CURL session to connect only, you can then use the socket to do whatever you like. Until you close via CURL.Cleanup, you can use CURL.ReceiveData, CURL.ReceiveText, CURL.SendData and CURL.SendText functions to read/write data on the sockets. As CURL can do proper SSL, timeouts and proxy tunneling, you benefit from those additional features.

On the way we got another nice feature: Trace.SetServerLogPath function. This allows you to tell the plugin to put trace files on server in a folder and give each individual thread executing scripts it's own log file. So if you run 100 PSoS scripts in parallel, you now can have those 100 files to see each script doing it's work. But be aware that FileMaker Server reuses threads and the logs append the files, so when a script is done, the log file gets reused for another script.

MBS FileMaker Plugin, version 10.4pr6

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

Import images from cameras on MacOS with FileMaker

We got a few new ImageCapture functions to import images from camera on Mac. So if you can import in Photos.app or Image Capture.app, you can also import them in FileMaker.

For version 10.4 of our MBS Plugin we got a new function ImageCapture.SetItemsAddedScript to define which script to trigger when a new picture is there. So you first use ImageCapture.OpenDevice to connect to camera, then use ImageCapture.RequestEnableTethering to ask for tethering, later call ImageCapture.RequestTakePicture to take a picture. Once the picture is taken, you get the script triggered and there you get a JSON like this:

(more)

MBS FileMaker Plugin, version 10.4pr5

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

FileMaker Stammtisch in Wien im September 2020

On my next visit to Vienna, we plan another developer meeting:

Wer hat Interesse an einem FileMaker Entwicklertreffen im September in Wien?

Einfach in gemütlicher Runde treffen in einem netten Restaurant und beim Abendessen was über FileMaker reden. Vielleicht habt ihr ja auch Fragen und Probleme, wo ich helfen kann?

Zeit wäre ca. 18 bis 22 Uhr am 10. September 2020, so dass man auch später kommen oder früher gehen kann,

Treffpunkt steht noch nicht fest, vorzugsweise ein Biergarten.

Wer dabei sein möchte, bitte bei der Umfrage eintragen uns melden.

Falls sonst noch Bedarf an Schulung, vor Ort Entwicklung oder FileMaker/Xojo Hilfe besteht, bitte wegen Terminfindung bald melden.

Dutch FileMaker Meetup 31st August virtual

On August 31st 2020, a group of Dutch FileMaker developers hosts a meeting of the FileMaker Developers NL meetup group:

FileMaker Developers NL Meetup

The meeting will be held in virtual this time on August 31st, 19:30 and be in Dutch.
Topics could be Claris Engage and the announcements.

The group there is nice and we had been at a meeting in December with over 20 people showing up.
See you there!

Using TLS when connecting to MySQL server

If you like to connect to MySQL or MariaDB from FileMaker with MBS Plugin, you can set SSL options to connect through an encrypted connection. The options are named SSL, but nowadays it's all TLS v1.2 or newer.

 

Here is a sample script we build with a client to get this FileMaker solution to connect to a MySQL server to download data, e.g. from a web shop.

 

# Query parameters for connection

Set Variable [ $$SQL.DB ; Value: Test SSL::_DBName ] 

Set Variable [ $$SQL.Server ; Value: Test SSL::_Host ] 

Set Variable [ $$SQL.Account ; Value: Test SSL::_User ] 

Set Variable [ $$SQL.Pwd ; Value: Test SSL::_Passwort ] 

# Start new connection

Set Variable [ $$Connection ; Value: MBS("SQL.NewConnection") ] 

# Query path to folder with database

Set Variable [ $appPath ; Value: MBS( "Path.RemoveLastPathComponent"; MBS( "Path.FileMakerPathToNativePath"; Get( FilePath ) )) ] 

# Build pass for mysql library in same folder as database

Set Variable [ $libPath ; Value: MBS( "Path.AddPathComponent"; $appPath ; Case( Abs( Get( SystemPlatform )) = 1 ; Test SSL::_Library_MAC ; Test SSL::_Library_WIN )) ] 

# Tell plugin where to find library

Set Variable [ $result ; Value: MBS("SQL.SetConnectionOption"; $$Connection; "MYSQL.LIBS"; $libPath) ] 

# And SSL-Parameter

Set Variable [ $result ; Value: MBS("SQL.SetConnectionOption"; $$Connection; "MYSQL_SSL_CIPHER"; "DHE-RSA-AES256-SHA") ] 

Set Variable [ $result ; Value: MBS("SQL.SetConnectionOption"; $$Connection; "MYSQL_OPT_SSL_MODE"; "SSL_MODE_REQUIRED") ] 

Set Variable [ $sslPath ; Value: MBS( "Path.AddPathComponent"; $appPath ; "cacert.pem") ] 

Set Variable [ $result ; Value: MBS("SQL.SetConnectionOption"; $$Connection; "MYSQL_SSL_CA"; $sslPath) ] 

# Now connect it

Set Variable [ $result ; Value: MBS("SQL.SetClient"; $$Connection; "MySQL") ] 

Set Variable [ $DB ; Value: $$SQL.Server & "@" & $$SQL.DB ] 

Set Variable [ $result ; Value: MBS("SQL.Connect"; $$Connection; $db; $$SQL.Account; $$SQL.Pwd; "MySQL") ] 

# check result

If [ $result = "OK" ] 

# use $$Connection in calling script

Exit Script [ Text Result: "OK" ] 

Else

# cleanup and return error

Set Variable [ $error ; Value: $result ] 

Set Variable [ $result ; Value: MBS("SQL.FreeConnection"; $$Connection) ] 

Set Variable [ $$Connection ; Value: "" ] 

Exit Script [ Text Result: $error ] 

End If

 

If you have trouble or questions, please don't hesitate to contact us. If you need a cacert.pem file, you can go to the CURL website. As you see we pick the mysql library name based on the platform. While you can download MySQL or MariaDB servers and client software, we provide a convenient library download on our website: Libraries. The MySQL 8 files there include SSL libraries, so use the MySQL client libraries when you want to connect via SSL.


Software Breaking points

Recently a client complained that an old plugin wouldn't work with last version. We try to make our plugins as much as possible forward and backward compatible. You can use our latest plugins with FileMaker 7 or newer and Xojo 2006r4 and newer. But you probably use a newer version from this or last year, right?

While we do have clients successfully use 10 year old MBS Plugins with old license keys, that is usually an exception. In the last years we had a few breaking points:

For example applications had to move to 64-bit. FileMaker 14 and Xojo 2017r3 needed 64-bit code for plugins and everyone had to update their plugins. Currently MacOS with 32-bit is dead, most Linux distributions are now 64-bit only for servers and Microsoft fades out 32-bit versions of Windows.

We had a breaking point with Xojo 2016r2, which added new keywords to the language. As we used those keywords in the function and parameter names, the plugin had to be adjusted. Same for changes for API 2.0, GTK 3 or updated plugin SDKs, which forced users to upgrade. And when Xojo moves to WebKit 2, our HTMLViewer extensions may need newer plugins, too. See version table.

For FileMaker we had a breaking point with version 16 on macOS where Claris redid the web viewer control to use WebKit 2. For Windows this point will come later in 2021 (?) with the move to Chromium based Edge browser for the web viewer. All our WebView functions will need a rewrite then.

If you use anything related to the Internet, there were breaking points, too. All websites and services like SMTP for sending emails now need TLS v1.2. So all the older code, which did only SSL v3 or TLS 1.0/1.1 broke at some point. But we had TLS v1.2 support in for a lot of years, so that should not have hurt you. But you probably use TLS v1.2 exclusively now as anything older is not acceptable under GDPR.

The next breaking point is coming soon: For Macs the CPU will change to Apple Silicon, an ARM64 based architecture. That means once again all developers and users will have to upgrade to current versions of the software to benefit from the new computers they buy.

The conclusion?
Only if you stay current and keep licenses up to date, you can enjoy the latest versions of the software with the latest features on a moving target. And all the software you use need active development with someone taking care. Which usually requires you to keep funding them with regularly paying for updates or getting a subscription. Our plugins are not different in this regard.

If your license lapsed and you are not eligible for update pricing, maybe you want to get the license in November with Black Friday promotion.

PS: In Germany we have a temporary VAT rate change this year and some people had to come back to us to help change the software for this.

Perform Script on Server with Audit for FileMaker Go

You may have enjoyed our Audit functions in MBS FileMaker Plugin, but wondered how to use them with FileMaker Go, where our plugin doesn't run. Well, you could always build an iOS app with the FileMaker iOS SDK and include the MBS FileMaker Plugin to use Audit functions on device. But with FileMaker Go, you can only use MBS FileMaker Plugin indirectly, e.g. via Perform Script on Server, so lets show it to you.

 

For our Audit example we have our call to Audit.Changed function to do the audit bookkeeping with the plugin. We pass the timestamp field, the table name and any custom values you like, e.g. $$InsideScript, which is a variable set in a script. You can also use an If conditions to disable audit if needed:

 

If ($$AuditDisabled; 0

MBS("Audit.Changed"; AuditTimeStamp; "Audit"; "InsideScript|" & $$InsideScript))

 

For FileMaker Go the calculation above will produce an error. Let's write a script, which runs on record commit as layout script trigger:

 

# Trigger Audit on Server in file Audit

 

Set Error Capture [ On ]

# check for missing plugin, e.g. on FileMaker Go

If [ GetAsText(MBS("Version")) = "?" ] 

Perform Script on Server [ Specified: From list ; “Audit on server” ; Parameter: Get(LayoutName) & ¶ & MyTable::ID & ¶ & Get(UserName) ; Wait for completion: Off ]

End If

 

As you see we turn on error capture to avoid an error for calling plugin function if it's missing. When our version function returns a question mark, the plugin is not there. In that case we perform a script on the server and pass the layout name, the record ID and the user name.

The script on the server will run as a new session, so we need to restore context and go to the right layout, the right record and perform Audit there. Some values may not be the same when PSoS runs, so you can e.g. pass an extra UserName value here.

(more)

MBS FileMaker Plugin, version 10.4pr4

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

macOS Privacy and FileMaker

You may have seen the privacy panel for system preferences in macOS?

For every application, you may need to allow access to data and FileMaker may need permissions, too. Either a dialog may prompt you, or you may need to enable things manually. As a FileMaker developer using the MBS FileMaker Plugin, you should allow notifications for FileMaker to see MBS errors.

(more)

Virtual MBS Booth at Claris Engage

The conference is over, it's time to close the booth. Usually after the last break at 15:45 o'clock, the conference staff will tear down the vendor booths within minutes and we have to quickly rescue our stuff. But with the virtual conference, the autoenter.live website stays alive till today and will shut down later. Thanks to the friendly people from Geist-interactive for creating it!

If you still have a question, please do not hesitate to contact us.
We are reachable via form, email, chat, iMessage and phone.

You got an idea for a new feature? A topic for a blog post? Something we should explain in a video?
Let us know!

The coupon code ClarisEngage stays active for another week, so fell free to use it. If used properly, you receive 20% discount on the new license prices. Updates can be ordered regularly with 50% discount (compared to new licenses) to renew your licenses and extend maintenance for up to 5 years.
If you accidentally bought a new license instead of an update, please let us know, so we change the order it to a 2 year update.

See you on the next conferences!


MBS FileMaker Plugin, version 10.4pr3

New in this prerelease of version 10.4 of the MBS FileMaker Plugin:
  • Updated GraphicsMagick library to version 1.3.35.
  • Fixed bug in XML.NodeCount and XML.NodeNames, where root node was counted when we had no children.
  • Updated bzip2 library to version 1.0.8.
  • Updated pcre library to version 8.44.
  • Updated jpeg library to version 9d.
  • Improved copy/cut/paste for editing script calculations.
Download at monkeybreadsoftware.com/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

Deutschen FileMaker Konferenz 2021 in Malbun

Die FileMaker Konferenz 2020 in Malbun (Liechtenstein) verschiebt sich leider auf Juni 2021.

Vom 28. bis 31. Oktober 17. bis 19. Juni 2021 22. bis 24. Juli 2021 findet die elfte deutschsprachige FileMaker Konferenz im JUFA Hotel in Malbun, Liechtenstein statt. Ursprünglich geplant für Juni/Oktober 2020 muss die Veranstaltung leider in den Juni 2021 verschoben werden. Wir hoffen dennoch auf tolles Wetter, viele Interessante Teilnehmer und Gespräche.

Ein MBS Schulungstag ist für den Mittwoch vorher geplant: 16. Juni 2021 21. Juli 2021. Bei Interesse kann man sich gerne bei uns anmelden. Die Ankündigung liegt hier: MBS Workshop



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

Für den Deutschsprachigen Raum ist diese Konferenz das Treffen des Jahres. Hier finden Sie vom Anfänger bis zum Profi Kontakte zu anderen Entwicklern. Lernen Sie was es neues gibt, nehmen Sie Impulse mit für die eigene Arbeit und erfahren Sie mehr zu FileMaker von deutschsprachigen Experten!
Bitte planen Sie wenigstens einen extra Tag ein für ihren Besuch in Liechtenstein, damit Sie die Natur in dem schönen Tal geniessen können. Den Aufstieg auf den Sareis können Sie bequem zu Fuß vom Hotel aus starten und die Turnastraße hinauf spazieren bis zum Restaurant am Gipfel. Oder alternativ die Seilbahn nehmen.

See you next year at Claris Engage 2021

14-16th September 2021 in San Diego, USA.

PS: The dates may change due to conflict with Yom Kippur, a major jewish holiday.


Dark Mode in FileMaker

With latest MBS FileMaker Plugin 10.3 we tuned our dark mode support for FileMaker. While Filemaker's Script Workspace comes with some syntax highlighting features built-in, our MBS FileMaker Plugin can add more for macOS users:

On the left is pure FileMaker and on the right side is with MBS FileMaker Plugin. Below in light mode:

(more)

Notes from Claris Engage

We got a few notes from the Claris Engage sessions:

  • We are about 1400 Claris Business Alliance partners. Claris reported a growth in sign-ups, so hopeful the number will go up over years.
  • About 1350 devices on the YouTube stream live for the keynote watching, but probably several people per screen in a lot of watch parties.
  • Web Authoring makes progress. Quick layout changes like adding a field could be possible soon via browser on a FileMaker Server.
  • Cloud Smart sounds much better than Cloud First.
  • An update for FileMaker 19 is coming within weeks. They showed a few nice add-ons, but no promise on which of them will ship and when.
  • Webviewer will get an upgrade on Windows. Internet Explorer is on the way out!
    No timeframe given, but I expect they use Microsoft's WebView2 control based on Edge with Chromium and that one is scheduled to come Q4 2020 (or later). Once that ships with Windows 10, Claris may be able to use it. You may be able to install it on Windows 8.x, too.
    Warning: When this switch happens, MBS WebView functions would need a rewrite to support it and we may review that when needed to determinate whether this is possible and what features may be worth to carry on.
  • Claris puts priority on the server to be first stable and second have great performance.
  • They still work on page locking for server and may provide a better locking than file or page locks we have currently with something between to make it simpler and faster. They played with sorting with threads and sort on server.
  • You may join ETS program to try various features, you can turn on/off.
  • Linux server will be finished end of summer and released! They are very enthusiastic about it.
This list may get extended over the day.

Virtual MBS Booth at Claris Engage

This year we have no physical booth for Claris Engage, but we provide a lot of information via our website:

And for the conference week, you can use coupon code ClarisEngage for 20% off for new licenses in our web store. See pricing page and pick the new licenses. Make sure the coupon code is entered and the amount deducted. If you missed to enter it, we may not be able apply discount later and can only offer to extend the license with additional months.

Enjoy the conference!

MBS FileMaker Plugin, version 10.4pr2

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

Moving to Visual Studio 2019

For years we build the DLLs for Windows with Visual Studio 2008 for our plugins. The reason we didn't upgrade for a long time was Windows XP. But now we can skip that behind and move to a newer Visual Studio version. Now the minimum is Windows 7 and we relay on the universal runtime. That is a newer version of the Visual Studio Runtime since Visual Studio 2015, which is automatically installed on Windows 10 and used by FileMaker Pro and Xojo.
See Windows App Requirements in Xojo blog and Windows Universal Runtime in Xojo developer guide.

If Windows update didn't install it for you, you can install it manually. The installers are included with the FileMaker or Xojo download, but you can also load it on the Microsoft website as redistributable installers.

By switching from a 10 year old compiler to current one, we gain a lot of new features, so we hope to extend our plugins in the next months with a couple of new Windows based features.

There is a little new feature in Visual Studio 2019, which reduces the space needed for the metadata used for exception handling. But that causes an extra dependency to VCRuntime140_1.dll, which is new since 2019. But as that DLL may be missing on client computer, we disable this feature. This removes the dependency and allows us to relay on the DLLs you already need to have. If FileMaker Pro or your Xojo application runs, the plugin should also load just fine.

For developers the dependency is for __CxxFrameHandler4 function in VCRuntime140_1.dll. You can disable it by using -d2FH4- as a compiler option and -d2:-FH4- for linker option. Also it looks like you have to not use std::nothrow as that also depends on that DLL.

The important thing: Please try one of the pre-releases soon and let us know if you see anything not working. We'll try ourselves 100s of example projects, but you can help to try a few more things.

PS: The MBS Xojo XMP Plugin may have the VCRuntime140_1.dll dependency as we can't build it without currently.

Archives

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