Add a search and replace command for FileMaker Script Workspace


Have you seen the SyntaxColoring.AddContextMenuCommand command in our latest plugin?
It allows you to have a customized contextual menu in Script Workspace with your own commands. And here is a powerful command we just developed for you:
 

MBS( "SyntaxColoring.AddContextMenuCommand"

"Search and Replace"

"Let ([ 

/* ask for search text via dialog */

ResetResult = MBS( \"Dialog.Reset\" );

ClearResult = MBS( \"Dialog.ClearFields\" );

MessageResult = MBS( \"Dialog.SetMessage\"; \"Search and replace in script:\" );

InfoResult = MBS( \"Dialog.SetInformativeText\"; \"Search text can include XML tags.\" );

Field1Result = MBS( \"Dialog.AddField\"; \"Search for:\" );

Field2Result = MBS( \"Dialog.AddField\"; \"Replace with:\" );

Button1Result = MBS( \"Dialog.SetDefaultButton\"; \"Replace\");

Button2Result = MBS( \"Dialog.SetAlternateButton\"; \"Cancel\");

DialogResult = MBS( \"Dialog.Run\" );

SearchText = MBS( \"Dialog.GetFieldText\"; 0 );

ReplaceText = MBS( \"Dialog.GetFieldText\"; 1 );

/* do replace */

r = If(DialogResult = \"Replace\"; Let([

/* copy script steps */

r = MBS( \"Menubar.RunMenuCommand\"; 57634 ); 

/* get XML from clipboard */

xml = MBS( \"Clipboard.GetFileMakerData\"; \"ScriptStep\" ); 

/* search and replace */

xml = Substitute ( xml; SearchText; ReplaceText); 

/* put XML back on clipboard */

r = MBS( \"Clipboard.SetFileMakerData\"; \"ScriptStep\"; xml ); 

/* paste script steps */

r = MBS( \"Menubar.RunMenuCommand\"; 57637 ) 

]; 1))

];1)"; 3 )

 
Copy and paste this into the data viewer and evaluate it once to add the command to the contextual menu. Now you can just select a few lines, choose the menu command and we do a search and replace. The new lines are pasted below the old license and you can review them.
(more)

eID card reading via bluetooth on iOS


Recently we had a client from Belgium who was interested in reading eID, the electronic ID cards given out by the country of Belgium.

Those cards are normal smart cards and we already provide functions via our Smartcard functions to read the data from those cards including the pictures.

Now this client is interested in using FileMaker iOS SDK, so our traditional SmartCard APIs won't work. We implemented the iOS SDK from Zetes for the client and added new EIDSDK functions for the next MBS FileMaker Plugin.

If you like to try and you have a bR301 Bluetooth Smartcard Reader from Zetes, you can contact us for a test copy.
I think you can buy this reader here: Sipiro M BT 4.0 bluetooth (Feitian bR301BLE)

If you are looking for help on implementing eID functions with Smartcard function in our plugin, we may provide you contacts to developers, who may offer help as service.

End of Live for FileMaker Runtimes


Claris Inc. deprecated the FileMaker runtime feature in version 14 and recently announced its removal for the upcoming version 19 in May 2020. If you still depend on building runtimes, it's time to consider moving yourself and your customers in a new direction.

You can of course continue for a few years with FileMaker Pro 18 Advanced to create and deploy runtimes. But it is time to tell your clients that this won't work forever. A security policy change, a newer version of MacOS or Windows OS, or a switch in CPU architecture to ARM could stop the applications from working. Other changes like a new codec for images, some new web protocols or other features will not be supported in runtimes and probably a change in future OS could affect you badly causing crashes on launch or when working with some features.

To continue distributing your solution with FileMaker, please check the options:

  • You can continue with the runtimes until they fall apart.
  • You can ask user to migrate to an iPad or iPhone and use FileMaker Go with your solution.
  • You could sell the database alone and let your users get a copy of FileMaker themselves.
    That may be a good thing to let your customers know: When the runtime stops and they need to use the applications, they could buy a FM Pro themselves and contact you to help to move the database.
  • You may be able to join the SBA program and bundle FileMaker Pro with your software. This may enable you to sell a standard solution for more than one seat and provide a server version. As you get a discount for FileMaker licenses, this could be a bit cheaper then using regular licenses.
    And there was a discussion at the conferences that in future FileMaker may offer a program to buy license packages and split them up for customers in need of less then 5 seats for a server.
  • You could offer clients the new FileMaker Cloud to host the solution if they don't want to host themselves and they have at least 4 or 5 users. This may be a great way forward for clients, who don't want to maintain a server and still want to use the solution with multiple users and enjoy proper security and backups.

So you may offer people to license your solution and use it with FileMaker Go or their own copy of FileMaker Pro. You may offer for 2 or more users your solution as SBA version or with 4 or 5 as Cloud solution. Joining FBA program or register with a FileMaker distributor is a good way to increase your margin and receive discounts for buying licenses in bigger quantities.

For example you can offer 1 seat for e.g. $99, 2 or more for something like $20/month, optional with server for 5 or more and of course the cloud solution for something like $50 per month. But you have to find a way forward which makes Claris happy, yourself happy (with a good margin) and your customers happy. If your solution is not worth the price asked, this may require you to let a few customers go.


FileMaker Stammtische in Bonn und Ulm


Zwei Stammtische an Rhein und Donau laden ein zum Austausch mit anderen FileMaker Entwickler:

Mittwoch, 13. November 2019

19:00 im Restaurant Portofino, St. Augustiner Str. 129, Bonn
Organisiert von Tischler IT-Consulting

siehe filemaker-datenbank.de/fm-stammtisch/

Donnerstag, 14. November 2019

19:00 Uhr im Ristorante Pizzeria Capri, Maximilianstr. 28, 89231 Neu Ulm
Organisiert von Swen Bauer und Fabrice Ricker

siehe filemaker-magazin.de/service/filemaker-stammtische/neu-ulm/

Themen sind die Neuerungen von der FileMaker Konferenz und der FileMake Roadmap. Gerne auch Fragen an uns zum MBS Plugin. Bei Interesse bitte gerne direkt beim Veranstalter anmelden bzw. auf die Mailingliste setzen lassen.

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

PS: Für die MBS Plugin Schulungen bei der Denkform gibt es noch freie Plätze.

MBS FileMaker Plugin 9.5 - More than 5900 Functions In One Plugin


Nickenich, Germany - (November 12th, 2019) -- MonkeyBread Software today is pleased to announce MBS FileMaker Plugin 9.5 for macOS, iOS, 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, macOS, iOS 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 9.5 has been updated and now includes over 5900 different functions, and the versatile plugin has gained more new functions:

Visiting conferences in October in Europe provides a lot of new ideas. This release comes with two enhancements to FileMaker itself (for MacOS), where the ideas came up at the conferences. First we now show you the cursor position above the text fields when entering expressions or custom functions. When you select text, we even show the selection length.

Second, with SyntaxColoring.AddContextMenuCommand method you can define your own commands for the contextual menu in script workspace on MacOS. We provide a few examples in the documentation to edit script steps or insert new ones. As you can leverage the built-in MBS commands in the menu commands, you can use XML transformations, run SQL queries, Shell or AppleScript commands and read/write text files in your expressions. You can define expressions to check syntax and coding standards for scripts, insert common snippets or do search & replace within the script. We hope the FileMaker community will collect useful commands.

The DynaPDF functions can now create XFA stream sections in the PDF document, read and write XFA data. With the DynaPDF.GetUserRights function you can query the permissions the user has on the imported document. We improved the library loading, so you can now just pass "" for the library path. If path is empty, we will use the platform specific default name. And if empty text or just a file name is provided, we look for the library files in the same folder as the plugin.

For Apple maps on MacOS and iOS we have a couple of new properties to set for points including enabling drag with a custom drag image. Points can now change their image and define an extra selected image. Overlays can change colors and line width. Maps can be zoomed programmatically and with MapView.MouseCoordinate function you can query the coordinate below the mouse cursor.

The web viewer on MacOS in FileMaker 16 or newer uses WebKit 2.x. For this version we added Webview.SetPrivateBrowsing function to enable private browsing mode. The Webview.AddUserScript function allows you to inject custom javascript in each website loaded. And Webview.AddScriptMessageHandler function now supports iOS, too.

The list dialog now supports a third button, you can show on screen keyboard via Window.ShowKeyboard function and query whether dark mode is enabled on a Mac. Our preferences dialog now supports dark mode, SmartCard.ReadFile supports more cards, GMImage.NewFromContainer can handle JPEG and PNG passed with wrong type and documentation includes now links to release notes and blog articles.

This version includes a few important bug fixes for running the plugin on a sever. The background threading for CURL and SQL got improved to avoid crashes. Our Linux plugin for FileMaker Cloud for AWS got an important fix to avoid crashes with buffer overrun after several hours of running. Please update your servers to avoid running into those issues.

Finally we updated DynaPDF library to version 4.0.33.95, LibSSH to 1.9.0, openssl to 1.1.1d, SQLAPI to 5.0.1, SQLite to 3.30.0 and zint library to 2.6.7

See release notes for a complete list of changes.

Neues MBS FileMaker Plugin 9.5


12. November 2019 - Monkeybread Software veröffentlicht heute das MBS Plugin für FileMaker in Version 9.5, mit inzwischen über 5900 Funktionen eines der größten FileMaker Plugins überhaupt. Hier einige der Neuerungen:

Bei der FileMaker Konferenz in Hamburg gab es zahlreiche neue Ideen für Pluginfunktionen. Unter anderem auch zwei Wünsche für FileMaker selber, die wir direkt für MacOS umsetzen konnten. Erstens zeigen wir jetzt über einem Eingabefeld für eine Formel oder eine eigene Funktion die Textposition an. Wenn Text ausgewählt ist, zeigen wir die Länge der Auswahl an.

Zweitens können Sie mit der Funktion SyntaxColoring.AddContextMenuCommand eigene Befehle definieren für das Kontextmenü im Skript Arbeitsbereich (bei MacOS). Wir zeigen mit einigen Beispielen in der Dokumentation wie man Skriptschritte ändert oder neue einfügt. Sie können sämtliche MBS Funktionen für die Menübefehle verwenden inklusive XML Transformationen, SQL Abfragen, Shell oder AppleScript Befehle und natürlich auch Textdateien lesen oder schreiben. Sie können Befehle definieren, die ihr Skript auf Fehler analysieren, Standards überprüfen, neue Skriptschritte einfügen und im Skript Suchen & Ersetzen. Interessierte FileMaker Entwickler werden sicher bald selber passende Befehle veröffentlichen, die sie verwenden können.

Die DynaPDF Funktionen können jetzt XFA Daten in ein PDF Dokument einbetten, vorhandene Daten auslesen oder ersetzen. Mit der neuen Funktion DynaPDF.GetUserRights fragen Sie die Zugriffsrechte für das aktuelle PDF ab. Wir haben die Funktionen zum Laden von dynamischen Bibliotheken verbessert, so dass Sie jetzt als Pfad "" angeben können und wir nehmen den Standard Dateiname für die Bibliothek. Und wenn der Dateiname angegeben wird und kein vollständiger Pfad, dann schauen wir im Pluginordner nach.

Für Apple Maps auf MacOS oder iOS haben wir neue Eigenschaften für Punkte inklusive der Möglichkeit Drag & Drop zu aktivieren. Punkte können jetzt ihr Bild ändern und separate Bilder nehmen für normal, angeklickt und Drag & Drop. Overlays können die Farbe und die Linienbreite ändern. Stellen Sie die Vergrößerung für eine Karte per Skript ein und fragen Sie ab, welche Koordinate sich gerade unter dem Mauscursor befindet.

Der Web Viewer unter MacOS in FileMaker 16 oder neuer verwendet WebKit 2.x. Für diese Version haben wir die Funktion Webview.SetPrivateBrowsing hinzugefügt, um den privaten Browsermodus zu aktivieren. Mit der Webview.AddUserScript-Funktion können Sie in jede geladene Website ihr eigenes Javascript einfügen lassen. Die Funktion Webview.AddScriptMessageHandler unterstützt neben MacOS jetzt auch iOS.

Der Listendialog unterstützt jetzt einen dritten Button, Sie können mit dem Window.ShowKeyboard Befehl die Bildschirmtastatur anzeigen lassen und abfragen, ob der Darkmode auf einem Mac aktiviert ist. Unser Einstellungsdialog unterstützt jetzt den Darkmode am Mac, SmartCard.ReadFile unterstützt mehr Karten, GMImage.NewFromContainer kann JPEG und PNG verarbeiten, die mit falschem Typ übergeben wurden, und die Dokumentation enthält jetzt Links zu Versionshinweisen und Blogartikeln.

Diese Version enthält einige wichtige Fehlerbehebungen für die Ausführung des Plugins auf einem Server. Das Threading für CURL und SQL wurde verbessert um Abstürze zu vermeiden. Unser Linux-Plugin für FileMaker Cloud für AWS hat eine wichtige Korrektur erhalten, um Abstürze mit Pufferüberlauf nach mehreren Stunden Laufzeit zu vermeiden. Bitte aktualisieren Sie Ihre Server, um diese Probleme zu vermeiden.

Alle Änderungen in den Release Notes.

Upcoming changes for 2020 in MBS Plugins


Subscription or not?

First we got questions for subscription pricing. First we don't sell the plugin licenses as subscriptions. We ask you to keep the license up to date and buy maintenances. And you can buy them for up to 5 years in the future. But we will continue to have a nice kind of licensing, where we do not technically force you to buy the updates.

You can continue to keep the old license with the old plugin files until they break. Please be aware that newer FileMaker / Xojo versions may break them as well as newer versions of the operation system. Looking on security related changes in the plugin and used libraries, it is highly recommended to keep the plugins updated to get latest versions of them.

If you like to see it as subscription, please consider the update price as subscription price. For first purchase, you pay a year to get current version and a year of updates, which defines the purchase price.

Conference Discount

For the conferences we used to offer 20% on everything as discount. This is a great incentive for visiting the conference and buying some of the software you see for a special show price. With yearly licenses, some people tend to only buy at the conferences and that is the direction we don't like.

Starting with next conferences we limit discount to new licenses only. Also with more conferences here on the horizon, we may reduce the conferences where we have a booth and just put up some posters and be available for questions.

Conference Sponsoring

We'll continue to sponsor as many conferences as possible and prefer to sponsor those where we can attend. If you have details on a conference we may attend or sponsor, please let us know.

Price Changes

As you know we didn't change prices for ten years, but are always looking on fine tuning them. For Xojo plugins, we continue to de-emphasise buying individual parts and prefer to sell Complete plugin set licenses.

With DynaPDF 5 on the horizon, pricing is expect to change and we allow all existing users to order up to 5 years of maintenance for todays prices.

Last versions for 32-bit on MacOS?

Next year, we may upgrade to MacOS Catalina. That could break our ability to build for 32-bit. In that case version 9.5 for FileMaker or 19.5 for Xojo may be the last ones to support 32-bit on macOS. This is just a warning and you should be on our list for FileMaker MacOS 32-bit version or Real Studio Plugin version if you asked for them before.
As all MacOS versions since 10.7 from year 2011 are 64-bit operation systems, 32-bit is only needed for older OS versions. But we only support MacOS 10.9 or newer, so there is hardly any use for 32-bit plugins.

MBS FileMaker Plugin, version 9.5pr8


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

Network share access from script on FileMaker Server


Recently a couple of users asked how to access network shares on a FileMaker Server. The built in commands from FileMaker are all limited to documents and temporary directory. But with the MBS FileMaker Plugin (and other plugins) you can access other places on the server.

A common use case is to put a second hard disk on the server, create a backup folder there and have a scheduled script copy over some files regularly from the documents folder to the external hard disk. You may get a permissions errors. But you can simply solve this by explicitly giving right permissions to the folder to make it accessible for FileMaker server scripting process executing plugin functions.

So let's talk about those accounts. There are various accounts used on a FileMaker Server when working with network shares or folders on disks.
  1. The account your script is logged in to the FileMaker Server, e.g. admin account. Or let's say better a limited account named "backup", which may not need to access all tables in all files. You can query this name with Get(AccountName) in your script.
  2. The account the FileMaker server runs on the system. For MacOS this is usually a separate user named fmserver. You can query this name with MBS( "SystemInfo.UserName" ) function.
  3. The account you login to a remote file server to mount the network share. This may just be a normal login name or with a domain controller something like "SRV2012\bob".
  4. The account of the local admin, who logs into the server to see the desktop.
Now the admin on the machine may use his account (4) to login and see the desktop. He can use FileMaker admin console in the browser and use his account on the file server (3) to mount a network share and optionally attach it to a local drive letter, e.g. Z.

If a script running under the account "backup" (1) on the FileMaker server tries to write to the network share, it only has the permissions of the FileMaker Server scripting process (2). Access is denied as the network share is mounted exclusively for the local admin (4).

There are two solutions:
  1. You can mount a network share both on MacOS and Windows to allow access for all users. This can be tricky and there are various tutorials on the web.
  2. You can use MBS Plugin with Files.Mount function to have your script mount the network share itself, do its business and then unmount it via Files.Unmount function.
We do prefer the second way as it's more secure. The network share is only mounted for a short time period and only accessible to the FileMaker server while mounted. Even if someone is using the computer, they may see the drive letter, but not access it.

If you have questions, please do not hesitate to contact us.

MBS FileMaker Plugin, version 9.5pr7


New in this prerelease of version 9.5 of the MBS FileMaker Plugin:
  • Fixed problem with finding windows in runtime app on Windows.
  • Improved WordFile.GetXML function to work with rels parts in the Word file.
  • Fixed problem with WebView.FindByName function not finding right web viewer on MacOS.
  • Added SelectedOnly parameter for ScriptWorkspace.ScriptText function.
Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

Tip of the day: Shell Execute as one Let statement


You can create a shell, run a command and get the result all in a Let statement or a custom function:

Let ( [

// new Shell

shell = MBS( "Shell.New" );

// run command with parameters

r = MBS( "Shell.Execute"; shell; "/bin/ls"; "/");

// wait for a result up to 5 seconds

r = MBS( "Shell.Wait"; shell; 5);

// read output

error = MBS( "Shell.ReadErrorText"; shell; "UTF-8");

output = MBS( "Shell.ReadOutputText"; shell; "UTF-8")

// free shell

r = MBS("Shell.Release"; shell)

]

 

; output & error ) 

This may be handy to keep this in mind when you need to run a command line tool next time.

PS: We used Command-Option-C shortcut in data viewer to copy formula with styles.


20 Years Monkeybread Software Party


Next year in April our company will turn 20 years old.
We'll plan to have a big party here in Germany near our office with over 100 guests.

Invitations are going out this month in several batches.

If you like to join and you miss an invitation, you can contact us and ask whether your invitation got lost.

As people confirm they are coming, we'll add them to the guest list. If we run out of space, we may put people on the wait list.
If you can't make it, please respond soon, so we don't need to contact you again later.

MBS FileMaker Plugin, version 9.5pr6


New in this prerelease of version 9.5 of the MBS FileMaker Plugin:
  • Changed trace functions to log name of script and file if changed from last MBS call.
  • Changed DLL loading for DynaPDF.Initialize and XL.Initialize functions to look for given DLL path, try 32/64 DLLs. If only file name is given, we look into plugin folder, too. If no file name is given, we try default file name.
  • Fixed bug in CURL.SetInputFile with error message "Uploaded unaligned file size".
  • Improved code for SmartCard.ReadFile to work for more cards.
  • Consolidated debug and release plugin into one, where we can switch on debug logging to help clients.
Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

FileMaker Conferences in 2020


Recently I discussed with a client about FileMaker conferences next year. Currently I know about four conferences to take place in 2020:
EventLanguageDateWhereLinks
dotfmp.berlin English 4th to 6th June 2020 Berlin, Germany dotfmp.berlin
FileMaker Konferenz German 17th to 20th June 2020 Meilen, Liechtenstein filemaker-konferenz.com
Claris Engage USA English 3rd to 6th Aug 2020 Nashville, USA filemaker.com
Claris Engage Europe Multilingual 26th to 28th Oct 2020 Lisbon, Portugal filemaker.com

Those conferences are very different in location, cost, language and what to expect, so lets compare them a bit:

(more)

Archives

Nov 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