Release notes for version 15.2 - 6th May 2025
New functions in 15.2 and Announcement in blog.
15.2 - 6th May 2025
- Added AbortProc and an event processing loop to DynaPDF printing to help with updating a progress dialog.
- Added Audit.GetAuditLogTableName and Audit.SetAuditLogTableName functions.
- Added Audit.SetUUIDFields and Audit.GetUUIDFields function.
- Added CURL.SetOptionTCPKeepCount and CURL.SetOptionUploadFlags functions.
- Added DynaPDF.ReadImageFormatFile and DynaPDF.ReadImageResolutionFile function to inspect images files on disk.
- Added DynaPDF.RenderJob function.
- Added DynaPDF.SetBidiMode and DynaPDF.GetBidiMode functions.
- Added ExtensionFilter parameter to Files.ListRecursive function.
- Added flag 128 for matching substring with the ExtensionFilter parameter for the Files.List, Files.ListAsJSON and Files.ListRecursive functions.
- Added Folders.UbiquityContainer function.
- Added JSON.ToCSV function.
- Added ListDialog.GetCancelButtonValue, ListDialog.GetOtherButtonValue and ListDialog.GetSelectButtonValue functions.
- Added ListDialog.SetCancelButtonValue, ListDialog.SetOtherButtonValue and ListDialog.SetSelectButtonValue to set what value is returned by ListDialog.ShowDialog function.
- Added ListDialog.SetOtherButtonNeedsSelection and ListDialog.GetOtherButtonNeedsSelection functions.
- Added ListDialog.SetSwapButtons and ListDialog.GetSwapButtons functions.
- Added MapView.GetWindow function.
- Added more Python functions to query time and library information.
- Added PremulAlpha as a possible raster flag for DynaPDF.RenderPage, DynaPDF.RenderPDFFile and DynaPDF.RenderPDFFileEx functions.
- Added ScriptWorkspace.IsFocusOnScriptList and ScriptWorkspace.SetFocusToScriptList functions.
- Added shortcuts to calculation dialog to pick return type just like field types.
- Added Variable.AppendJSON and Variable.PopJSON functions.
- Added Variable.AppendValue and Variable.PopValue functions.
- Added Variable.ValueCount function.
- Added XL.Sheet.AddTable to add a table to a sheet.
- Added XL.Sheet.SetBorder to set border fo sheet.
- Changed Container.GetHex to have name or index parameter optional.
- Changed shortcut to show invisibles in calculation dialog to using command-option-I.
- Changed shortcut to show ruler in calculation dialog to using command-option-R.
- Changed tooltips for fields to use FieldType() instead of SQL for better performance.
- Changed tracing to log time with start script if Trace.SetWithTimes function.
- Enabled MBS Auto complete for more specify file dialogs, so we can auto complete variable for file paths.
- Fixed a bug in DuckDB client for SQL functions.
- Fixed a bug in DynaPDF.PageStatistics function, so it works on the last page of the document.
- Fixed a bug in Path.LastPathComponent function where the last character got cut off.
- Fixed a bug in Process.GetCurrentDirectory function.
- Fixed a problem with linux and endless loop with BeginLayer function in DynaPDF.
- Fixed an error in XL.Sheet.SetProtectEx function parsing the protection flags.
- Fixed an issue with Audit.BuildCaches function missing the FieldName.
- Fixed an issue with ListDialog.AddSQL function where filename parameter was ignored if no other parameters followed.
- Fixed Archive.Compress to better compress folder itself if file list is empty.
- Fixed link detection to work again in calculations.
- Fixed SQL.ConvertDateTimeFromSQL to return empty result if the date value is not valid.
- Fixed SSH2 library for Windows to use OpenSSL instead of Windows API again. Broken in last release.
- Fixed XL.CopyCellValue, XL.CopyColumn and XL.CopyRow to work if second document has more sheets.
- Implemented a maximum for sockets. Now limited to 1000 concurrent sockets to avoid crashing FileMaker when running out of file handles.
- Implemented text selector for ScriptWorkspace.StyledScriptText function.
- Improved Archive.Compress to compress folder itself if file list is empty.
- Improved auto complete to work better with XL functions.
- Improved Bonjour functions to cleanup threads better.
- Improved Container.GetBase64 to work better if you don't specify a name or index.
- Improved exceptions handling for GraphicsMagick functions.
- Improved functions like Container.ReadFile to return empty result if file size is zero.
- Improved ListDialog.SetOtherButtonEvaluate and ListDialog.SetOtherButtonLabel to allow three other buttons.
- Improved OCR error messages about missing functions to show the function name. you may see such an error if you have an older tesseract or leptonica library, which doesn't contain the functions we look for.
- Improved PDFKit.SelectPrinter to return an error when we fail to create the dialog.
- Improved performance of DynaPDF generating previews for container values for large files.
- Improved showing IDs for Database Design dialog to not rebuild cache for new fields.
- Improved the If/Loop highlighting to also highlight Enter Find Mode and Perform Find.
- Moved FM.Variable* functions into Variable.*. The old names stay valid.
- Rewrote parts of TOTP.Calculate function, broken with Xcode upgrade.
- Updated CURL library to version 8.13.0.
- Updated DynaPDF to version 4.0.100.285.
- Updated expat library to version 2.7.1.
- Updated libarchive to version 3.7.9.
- Updated LibXL to version 4.6.
- Updated plugin SDK.
- Updated Saxon library to 12.6.
- Updated SQLAPI to version 5.3.6.
- Updated to Xcode 16.3 with the newer clang and stdc++ library.
- Upgraded NSAttributedString handling to better work with postscript font names. This affects Clipboard.SetStyledText, Clipboard.GetStyledText and other functions on macOS using styled text.
More details in the Release notes and Announcement in blog.

