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.
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.
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)
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.
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.
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!
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.
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.
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)
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.
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)
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!
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.
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.
14-16th September 2021 in San Diego, USA.
PS: The dates may change due to conflict with Yom Kippur, a major jewish holiday.
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)
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.
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!
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.
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.