- Added List.Find and QuickList.Find functions.
- Added Archive.CompressContainer function.
- Added DynaPDF.Table.SetCellStyledText function.
- Improved error message for Files.MoveToTrash when file to delete is in use.
- Added option to have links to functions generated as Dash links.
- Added SyntaxColoring.GetFormulasWithDashLinks and SyntaxColoring.SetFormulasWithDashLinks functions.
- Fixed issue where Copy Script button won't work if script is open in a new window.
- Updated DynaPDF to version 126.96.36.199.
- Added Windows support for PKCS12.ShowDialog and X509.ShowDialog functions.
- Added FillColor and FillColorSpace options for DynaPDF.GetImage function.
- Added RegEx.DataDetector function.
- Added timeout for loop/if check to exit after 10 ms to avoid longer delays.
- Added CoreLocation.requestLocation for macOS 10.14 or newer.
- Added CoreLocation.requestWhenInUseAuthorization, CoreLocation.startUpdatingHeading and CoreLocation.dismissHeadingCalibrationDisplay for macOS 10.15 or newer.
- Added App.Exit to quit current FileMaker process. Allows to restart server scripting engine.
- Added CoreLocation.requestTemporaryFullAccuracyAuthorization function for iOS.
- Added Plugin.PrepareForUpdate function.
- Added Math.FormatNumber function.
- Changed variable check to disable for Script Workspace windows in the background.
- Added Windows support for WebView.StopLoading function.
- Changed SQL functions to ignore or add @ in parameter name if needed.
- Added Barcode.Modulo10Checksum function.
- Fixed problem in QLPreviewPanel.Show function.
- Added QLPreviewPanel.GetEditingAllowed, QLPreviewPanel.SavedFiles, QLPreviewPanel.SetDismissTrigger and QLPreviewPanel.SetEditingAllowed functions to use markup editing of documents on iOS.
- Updated plugin SDK for version 19.2.
- Added RegEx.Extract function.
A client asked for adding annotations to a PDF right on the iPhone or iPad with their custom FileMaker iOS SDK based application. We through first to use our PDFKit or DynaPDF functions. Those can do things like merge or render PDF documents. And DynaPDF has quite a few functions to create annotations via script. Great if you automatically want to do things, like adding clickable links via script. (see older blog posts). But this is all via script and the user wants to annotate manually with his finger (or a pencil). Recreating all the markup tools with native code or a web viewer is a lot of work.
When I asked what it should do exactly, the client opened the standard markup dialog in Apple Mail and said to do just use this one. And it turns out, we can do exactly that!
For next MBS FileMaker Plugin, we add this to our QuickLook functions. You can now use QLPreviewPanel.SetEditingAllowed function to allow editing. With QLPreviewPanel.SetDismissTrigger function you define the script to run when dialog is done and there you can query QLPreviewPanel.SavedFiles to get the saved file (if changes are made). Then import the PDF back into your FileMaker field.
The great thing is that you get all the markup features in FileMaker to work on PDF documents, add annotations, fill a form with text or draw something with an Apple Pencil.
Read more about Markup feature on Apple's website.
Coming soon with next pre-release and we made you a nice example database to try. Please do not hesitate to send us comments, questions or feedback.
Have you wondered how this works?
Apple provides data detectors in their frameworks to identify those data bits. We just added a new function RegEx.DataDetector to use those in FileMaker. While you can do a lot with regular expressions yourself, these pre-built detectors are convenient to use as they are. Here is our new function:
MBS( "RegEx.DataDetector"; CheckingType; Text )
You tell what to look for, either Date, Address, Link, PhoneNumber or TransitInformation. You can combine those types and look for multiple things together. The plugin then uses Apple's framework and returns the result as JSON for you to inspect. Let's take an example:
MBS( "RegEx.DataDetector"; "PhoneNumber"; "Phone us at (123)456-789 later!" )
With this result:
[As you see we have a JSON array with results. Each result has always the text found with the position and length to define the range in the original text. Then we provide the type of item found and type specific information. For a phone number this is simply an entry PhoneNumber with the number. If you need to format the phone number, check Using libPhoneNumber for phone number formatting. For an address, you may see Name, JobTitle, Organization, Street, City, State, ZIP and Country listed. Date results come with date, time zone and duration while links comes with an URL.
"length" : 12,
"position" : 13,
"text" : "(123)456-789",
"type" : "PhoneNumber",
"PhoneNumber" : "(123)456-789"
Please try those functions later this week with our next pre-release and let us know how they work for you.
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!
Die MBS Plugin Schulung vorher findet voraussichtlich am statt im gleichen Hotel am
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.
Hoffen wir, dass sich im Frühjahr die Corona Lage verbessert und die Konferenz stattfinden kann.
As you see we added a white box for the result and put a place holder text inside. And we had to do code to dynamically look for what controls FileMaker places there and measure their size to place our box between controls on the left and controls on the right. Let us know if we got it wrong in your FileMaker version or language.
Check 11.1pr4 to try this feature. Looks like the features work even in lots of older FileMaker versions down to version 14.
Please do not hesitate to contact us with questions.
- Changed result box in Custom Functions Editor to be a white box and no longer extend below buttons.
- Updated LibXL to version 3.9.4.
- Applied SQLAPI patch for SQL Server precision for number types (Int64 vs. Numeric).
- Changed custom function extension to use /// to define variables and not confuse with your comments.
- Added the same tools to several Calculation Dialogs.
- Added Speech.Stop function.
- Added SyntaxColoring.SetDebuggerTooltipsEnabled and SyntaxColoring.GetDebuggerTooltipsEnabled functions to configure the new debugger tooltip feature.
- DynaPDF works with ZUGFeRD 2.1.1.
- Adjusted plugin for newer plugin interfaces in FileMaker 19.1 and 19.2 releases.
We got an idea for FileMaker. The macOS NSView class allows an application developer to register a function to provide a tooltip on demand. Instead of filling tooltips earlier, you can later decide on the value and generate it on the fly. (more)
First of all I want to write the text for the mail in my project and have the possibility to attach attachments. The mail should automatically be displayed as a preview in a Web Viewer with the header and footer. With a click of a button the mail should be sent to a list of email addresses. The header and footer as well as the data to send our e-mail (username, password and mail server) are located in fields.
Let's start with the preview
To do this, we first read our formatting text from our textview. The text is converted into HTML with the GetAsCSS function. The header is placed before our text and the footer is after our text. So let's first build in placeholders, which we will replace later. Around this text we can then build the HTML structure with HTML and body tag.
Then we replace the placeholders in our HTML and insert the images. So we set image containers with the images. We must then Processes image references in HTML. That means all cid: links are found. : and / are replaced with dash.
Set Variable [ $HTML ; Value: GetAsCSS ( Emails::Text ) ]
Set Variable [ $HTML ; Value: "$$Header$$" & $HTML & "$$Footer$$" ]
Set Variable [ $HTML ; Value: ""&$HTML&"" ]
Set Variable [ $HTML ; Value: Substitute($HTML; "$$Header$$"; "<img src=\"cid:Header.png\">") ]
Set Variable [ $HTML ; Value: Substitute($HTML; "$$Footer$$"; "<img src=\"cid:Footer.png\">") ]
Set Variable [ $HTML ; Value: MBS("EmailParser.ProcessImageReferences"; $html) ]
We need all our sources in one folder. Because this we add a folder Email in the temporary Folder and write the HTML as file and the Footer and Header to this folder. We give the following names to the image files: cid:Header.png and cid:Footer.png. We need the cid in front of the name to include the inline graphic.
If we work on a windows system we need to adjust the file paths.
Set Variable [ $htmlFile ; Value: Substitute($htmlFile; "\\"; "/") ]
On Mac we need to make an URL out of the File path:
Set Variable [ $htmlFile ; Value: MBS( "Path.FilePathToFileURL"; $htmlFIle )
This Path we then set to the WebViewer and can see the Preview. (more)
You may have seen the video from Claris Inc. about their recent Claris Platform Vision 2021 webinar. Watch it on YouTube.
From the webinar, you can learn their development plans around their Claris products, improvements to FileMaker Pro & Server.
Relative to MBS FileMaker Plugin are a few highlights:
- Claris works on support for Apple M1 and future Apple Silicon Macs. Exact date not given, but it may be later in 2021. We will try to support this as soon as we get a new plugin SDK with Apple Silicon support. Actually we were ready in July 2020 and a few weeks ago built it: MBS FileMaker Plugin for Apple Silicon
- There was no announcement so far about enhancements to the plugin SDK. We would like to see more there, like loading plugins into the Data API process to use it in scripts triggered via Data API.
- There was also no announcements on the FileMaker iOS SDK. This SDK allows advanced FileMaker developers to build custom branded iOS apps, which replace FileMaker Go with a more tailored experience. For example you can provide a local database pre-installed and opening automatically. It can connect to the server for the company and be used without ever entering the server URL and credentials.
- In several places Claris mentioned to work on Android. But details are missing whether there will be a ready to use FileMaker Go for Android. If not, everyone my need to use SDK with Android build tools to make a custom application. And unclear is whether we can provide plugins somehow. Read more about our thoughts and fears on FileMaker and Android.
- Claris is aware of the changes with CentOS distribution. If they choose a different Linux distribution or do something different like VM containers, we may need to adjust the plugin to the new environment.
As with all changes coming, this may require you to update your MBS FileMaker Plugin. If needed also update the license to cover newer version.
Beside those we look forward to more news from Claris, especially on the upcoming conference in October.
Let me know if I missed a fact somewhere.
- Added buttons for custom function dialog to check syntax or execute a test case.
- Added emojis to the documentation to clearer show what items are supported for each platform.
- Added SyntaxColoring.GetCustomFunctionToolsEnabled and SyntaxColoring.SetCustomFunctionToolsEnabled functions.
- Rewrote SystemInfo.IsAdminUser function to work again on macOS.
- Updated dyncall library to version 1.2.
- Updated LCMS to version 2.12.
As you see we got two new buttons for the custom script editor dialog in FileMaker Pro. When you click Check Syntax, we take your expression and build a test expression around it. We wrap it in a Let statement to define the parameters as local variable and then we let FileMaker's Evaluate() function check for errors without executing it.
The second button executes the script. If you have comment lines starting with /// followed by the parameter name and an equal sign, we will take those to initialize the parameters. The result is shown in the dialog left to the buttons. If text is longer, you can scroll the area via mouse wheel. Please note that this will show result as text and looses formatting.
Please note that the variable assignments can use other custom functions. But if any of the functions call itself, you will call the version before your modifications. If Claris someday implements this into FileMaker Pro, they may do some trick to temporary replace the function with your edits to make sure recursion runs the new version. Please avoid endless loops or endless recursion as you may need to wait a long time.
Please try the new feature later this week with 11.1pr3. Let us know what you think. If you like to try it earlier, please contact us.
Update: Based on user feedback we will use /// to mark parameter assignments. This should avoid confusion with existing comments.
What we have for iOS
Current for iOS every user can go to the iOS App Store and download FileMaker Go application. It's a stand alone app everyone can use locally with a FileMaker database downloaded somewhere. Like you find an interesting database, download the app and use it on the iOS device, e.g. to track your stuff.
If customers have a FileMaker Server with a solution, they can allow access, enter URL for the database on the server, enter credentials and connect to the solution. Easy to use. Admins in bigger companies can pre-install FileMaker Go on all devices in the company, so fmp:// URLs start working to open database right from links in emails or the browser.
For developers there is a FileMaker iOS SDK to download. This allows a developer to create a customized application for clients. Those apps can be branded with their own icon, own name and a custom start database. Distribution can be with App Store or without App Store, e.g. by Mobile Device Management. Beta version can be distributed via Test Flight.
If you like to use plugin functions on iOS, you can embed a plugin into the custom application. The plugin needs to be copied in the right folder, code signed by you and shipped with the application package.
By having both ways, Claris platform provides a lot of flexibility to create solutions and if needed, brand them. Your local database in FileMaker Go our your own app can connect to a server, you can provide updated versions of the local database and if needed even have clients connect to nearby servers if you have more than one. (more)
We got a new video for you about the Communication with an API with help of JSON and made an English and a German version.
Claris accepted the German version for their localized content for Claris Engage a few weeks ago.
You find this and other videos on our FileMaker video website. Enjoy is and if you have questions, please don't hesitate to contact us.
- Added Files.FileNameWithoutExtension function.
- Added PageSize setting for PDFKit.SetPrintSetting and PDFKit.GetPrintSetting functions.
- Fixed memory leak in Archive.Content function.
- Fixed memory leak in CURL.GetResultAsEMailList function.
- Fixed memory leak in FM.SQL.JSONRecord and Matrix.JSONRecord functions.
- Updated CURL library to version 7.75.
- Updated DynaPDF to version 188.8.131.52.
- Updated openssl to version 1.1.1i.
- Added checkbox for variable check in debugger to preferences dialog.
- Added extra line to CURL debug log to indicate the version of MBS FileMaker Plugin, CURL library used and what OS is used and FileMaker application. See CURL.CreateDebugOutputFile and CURL.GetDebugAsText functions.
- Added functions for iOS applications to catch URL requests: iOSApp.InstallOpenURLHandler, iOSApp.LastURL, iOSApp.SetDidOpenURLEvaluate and iOSApp.SetDidOpenURLScript.
- Added iOSApp.ClearLastURL function.
- Added Math.NormInv function.
- Added new socket functions to set send/receive buffer size: Socket.GetReceiveBufferSize, Socket.GetSendBufferSize, Socket.SetReceiveBufferSize, Socket.SetSendBufferSize.
- Changed color for MBS function in Dark Mode to be a lighter blue.
- Changed Script ID column for Script Workspace to be a few pixel wider.
- Fixed a text encoding problem with our built-in default rules for SyntaxColoring.FactoryDefaults, so they work better with asian languages.
- Fixed alpha channel handling for passing colors to GraphicsMagick functions.
- Fixed an issue with searching umlauts with filter in ListDialog functions.
- Fixed bug in DynaPDF.SaveAndSignFileExt function.
- Fixed parameters for Matrix.Evaluate function.
- Fixed preferences dialog for Windows to show more text.
- Improved ListDialog functions on Windows to not redraw list while filling it. A massive performance improvment!
- Updated DynaPDF to version 184.108.40.206.
- Updated LCMS to version 2.12rc1.
- Updated LibXML to version 2.9.10.
- Updated LibXSLT to version 1.1.34.
- Updated to Xcode 12.4.