Version Control — Release 5

Purpose

This page tracks Release 5 versions and changes. It mirrors the Release 4 approach (published versions summary, release numbering notes, and a chronological change log), but reflects the Release 5 architecture (UIX v2, optimized ODBC/Web API, decision to consolidate operations).

Scope and principles

  • Keep the log consumer-focused: what changed, why it matters, and any operator action required.

  • Group changes by package (SQL scripts, Assemblies, Vault application, Web API) when helpful.

  • Prefer short bullet points with links to detailed object docs (procedures, tables, functions).

  • Use absolute docnames for cross-references, e.g. spMFUpdateMFilesToMFSQL.

Published

Component

Version

Date

SQL scripts

5.13.38.82

2026-07-30

Assemblies

5.38

2026-07-30

Vault application

5.13.24

2025-08-20

UIX package

5.13.24

2025-08-20

Release numbering

Release 5 retains the four-part numbering from Release 4:

  • 1st digit: major release (5.x.x.x)

  • 2nd digit: M-Files application changes

  • 3rd digit: Assembly changes

  • 4th digit: SQL changes (monotonic across packages)

Installed releases

  • Latest release installed: SELECT * FROM dbo.MFDeploymentDetail

  • Latest release per object: SELECT * FROM setup.MFSQLObjectsControl WHERE Name = ‘ObjectName’

  • Package file version: Windows Explorer > Properties > Details

  • Assembly version: .NET Reflector or similar tool

  • Vault application version: M-Files Admin > Applications > Details

Change control summary

Each procedure, table, or function has its own change control section; see the relevant object docs. Summaries below capture the highlights per release.

Note

From 5.13.38.82, per-release highlights are grouped by change type — New features, Changed, Fixed, Deprecated, and Operator action — rather than a single flat list, so it is clear at a glance what is new, what behaviour changed, and what is a fix. Each item links to its object page for full detail.

5.13.38.82

Focus of this release: decouple M-Files Interop assembly loading from the M-Files install layout so the connector survives M-Files upgrades without manual intervention, plus a license-expiry date-parsing fix. For the full interop-loading redesign and step-by-step operator guidance see M-Files Interop Loading Redesign (Release 5.13.38.82).

Component versions: SQL scripts 5.13.38.82, Assemblies 5.38, Vault application 5.13.24, UIX package 5.13.24.

New features

  • Automatic assembly reload on M-Files upgrade (WMI alert, job WMI Update Alert (Integration Connector) ). On an M-Files version change the connector detects the registry change within seconds and reloads its assemblies automatically, instead of waiting for the daily health check. Integration Connector only; requires SQL Server Agent (not available on SQL Express — see Operator action).

  • New MFSettings diagnostics: MFilesInteropPath (the resolved Interop DLL path at the last reload) and MFilesUpdatePending (0/1 flag indicating a reload is pending).

  • Assembly-reload audit logging through ProcessBatch, gated by App_DetailLogging; fatal failures continue to log to MFLog and raise the email alert.

Changed

  • spMFUpdateAssemblies — locates Interop.MFilesAPI.dll dynamically at runtime (M-Files registry → MFSettingsAssemblyInstallPath fallback) instead of a fixed install path, so the connector keeps working when M-Files reshuffles its folders between versions (supersedes the earlier \Bin\X64 path workaround).

  • spMFCheckAndUpdateAssemblyVersion — reads the installed M-Files version from the Windows registry (no CLR call), so the daily health check still works when the CLR is in a broken state; reloads assemblies on mismatch and logs to MFLog on failure.

Fixed

  • New installs — fixes a rare case where a brand-new install’s first metadata sync could be skipped, leaving class tables empty even though the install itself reported success. Only affected new installs where the connected vault’s metadata had never had a structural change since the vault was created; existing installs and upgrades were never affected.

  • spMFGetLicense — three fixes this release:

    • License-expiry date parsing made robust across regional date formats. A TRY_CONVERT cascade handles dot (dd.mm.yyyy), dash (dd-mm-yyyy) and slash separators, and resolves slash-delimited dates by value: when the leading number is greater than 12 the date is parsed as day-first (dd/mm/yyyy) regardless of server culture; otherwise the vault culture decides (en-gbdd/mm/yyyy, en-usmm/dd/yyyy). Replaces the prior TRY/CATCH around CONVERT that could silently misread or fail on some formats. Why it matters: customers in day-first-date regions get reliable license-expiry handling. (2026-05-06)

    • Fixes a false “unable to validate license” result for license modules that have no license configured. Instead of reporting that cleanly, the procedure raised an unhelpful, empty error. License checks now correctly distinguish “no license installed” from an actual license-validation problem. (2026-07-29)

    • Fixes a no-license module being reported as an expired license. Following the fix above, a module with no license configured was classified as expired rather than not licensed, because the check treated a missing expiry date the same as a date that had already passed. The two states are now reported distinctly, so the log tells you whether a licence needs renewing or was never installed. (2026-07-30)

  • spMFDeleteHistoryfixes a potential infinite loop in the batch-delete loops. When a DELETE returned zero rows (empty table, race condition, or concurrent deletion) the remaining-rows counter never decremented, so the loop could not terminate. A zero-rowcount BREAK guard was added to all four batch-delete loops. (2026-05-20)

  • spMFUpdateObjectChangeHistory — corrected incremental change-history class scoping and batch boundaries, and null-proofed the class-id debug log messages. (2026-05-28)

  • spMFDeleteObject and spMFDeleteObjectListdelete failures now explain themselves outside debug mode. Both procedures computed the underlying error message and then discarded it unless @Debug was switched on, so a routine call got back only a numeric status code with no indication of what went wrong. spMFDeleteObject now always returns the message in @Output, and spMFDeleteObjectList writes its batch summary to the process batch log on every run rather than only in debug runs — its closing log entry also reports the actual success and error counts, which previously came out blank. Why it matters: a failed delete or destroy can be diagnosed from the returned message and the process batch log as it happens, instead of being reproduced with debugging turned on. If your own code treats an empty @Output as “no problem”, note that it is now populated whenever the connector has something to report. (2026-05-22)

  • spMFDeploymentDetailsfixes a deployment-logging failure on current wrapper builds. The procedure recorded each assembly’s version as a 4-part string built from its Major/Minor/Build/Revision numbers; the column widths assumed every part fit in 3 digits, which is no longer true for current builds, and the resulting overflow made every call fail. Column widths widened so deployment details are logged reliably again. (2026-07-29)

  • Version-change detection jobs (WMI Update Alert (Integration Connector), Validate M-Files Version Agent) — job owner corrected to a sysadmin login (sa) so version-change detection can perform the reload.

  • All three Agent jobs (Delete History Agent, WMI Update Alert (Integration Connector), Validate M-Files Version Agent) — SQL Server Express edition guard added: each skips cleanly (severity 10) instead of aborting a deployment when SQL Server Agent isn’t present (Express has none).

  • Wrapper (CLR) — NULL boolean values are preserved (tri-state) in generated XML and on property assignment, so SQL receives NULL rather than a defaulted 0 for unassigned properties.

Deprecated

  • spMFSettingsForDBUpdate parameter @MFInstallationPath — retained for backward compatibility but no longer used for Interop DLL resolution.

Operator action

  • Existing installs: no manual job maintenance is required. Both the WMI Update Alert (Integration Connector) alert job and the Validate M-Files Version Agent daily job now detect when their step content predates the installed release and recreate themselves with the current step body on upgrade. This replaces the previous requirement to drop and recreate both jobs by hand after every release.

  • Per application database: run the WMI Update Alert (Integration Connector) script once for each MFSQL application database on the server.

  • SQL Express: WMI auto-detection is unavailable (no SQL Server Agent); run spMFUpdateAssemblies manually after an M-Files upgrade.

  • The WMI Update Alert (Integration Connector) job and alert are new in this release. They are created for you with these names — no manual setup, and nothing to reconcile against a previous release:

    • Job: MFSQL <database> - Set Assembly Update Flag

    • Alert: MFSQL <database> - M-Files Update Detected

    Note them if you add the job to monitoring or scripted health checks.

5.13.37.81 (Initial published Release 5)

Summary

  • New Context Menu implementation using UIX v2 for the M-Files New Desktop. Classic desktop does not show buttons; a UIX v1 workaround is available. See Installing the Context Menu.

  • Operations consolidated into three execution types: object-focused, non-object operations, and workflow/event-triggered SQL execution.

  • End-to-end logging improvements for traceability across M-Files → task handoff → MFSQL ProcessBatch execution. See Using and managing logs (moved).

  • Performance and reliability optimizations for ODBC and Web API transactions.

  • Upgrade scope covers VAF, UIX, assemblies, SQL procedures, and Web API. See Upgrade to Release 5.

Component changes

  • VAF (Vault Application Framework) - Target framework version aligned with M-Files 25 (VAF 25.3). - Logging expanded to trace task lifecycle and outcomes for context menu operations. - Harmonized routing for the three execution types to simplify configuration and troubleshooting.

  • UIX (User Interface eXtensions) - Adopted UIX v2 for the New Desktop experience; actions exposed through the new context menu. - Classic Desktop limitation: buttons are not rendered; use the UIX v1 package as a temporary workaround when Classic is required.

  • Web API - Tuned for reduced latency and improved resiliency when invoking server-side operations. - Aligned with VAF updates for consistent parameter handling and logging correlation.

  • Wrapper assemblies (.NET) - Upgraded to .NET Framework 4.8. - Stability and performance improvements when marshalling parameters and processing results. - Logging enriched to surface actionable error details to SQL-side logs and VAF traces.

  • SQL (procedures, tables, functions) - Adjustments to support consolidated operation types and improved correlation IDs in logs. - Procedures invoked via context menu and workflow/event triggers aligned with updated routing. - No behavioral changes required for standard table updates; review individual object docs for specifics, e.g. spMFUpdateTable, spMFUpdateMFilesToMFSQL.

SQL object changes (highlights)

The following procedure/function updates were made as part of the initial Release 5 rollout. See each object page for full details.

  • spMFDeleteHistory — Add @BatchSize parameter (default 2000), switch to batched deletes to reduce locks, improved error handling and progress logging. (2025-01-05)

  • spMFProcessBatchDetail_Insert — Returns ProcessBatchDetail_ID to enable accurate duration calculation at detail step level. (2025-07-02)

  • spMFLogProcessSummaryForClassTable — Handle MFSQL_Message being NULL when composing log summaries. (2025-07-30)

  • spMFCheckLicenseStatus — Reduce ProcessBatchDetail log noise during routine checks. (2025-05-27)

  • spMFGetLicense — Culture-safe datetime formatting for license expiry handling. (2025-01-07)

  • spMFDropAndUpdateMetadata — Include Text and Multi-line Text in WithColumnReset processing. (2025-05-06)

  • spMFUpdateTableinBatches — Fix: updates from SQL→MF when only new objects present in list (2025-05-21); Guard: prevent update when @objids is NULL; suppress unwanted messages (2025-04-30)

  • fnMFRemoveIllegalXMLCharacters — New helper to sanitize illegal XML characters in strings. (2025-06-13)

  • fnMFObjectHyperlink — Update to support new-style web hyperlinks. (2025-08-19)

  • fnMFExcelObjectHyperlink — Update to render new-style web hyperlinks in Excel-friendly output. (2025-08-19)

Compatibility and prerequisites

  • Windows Server 2022 or later (installer uses 64‑bit ODBC).

  • M-Files New Desktop (UIX v2). Classic desktop requires the UIX v1 workaround.

  • .NET Framework 4.8.

Deployment impact

Run the upgrade on:

  • SQL Server (database objects and assemblies)

  • M-Files Server (VAF and UIX)

  • Web Server (if Web API is used)

Planned changes (next releases)

Release 5 are planned for iterative updates. Details and sequencing may evolve; refer to the Roadmap for the latest status. Items on that page are not committed product — see the forward-looking statement there.

The following changes where also included in this release:

  1. spMFCommentForObjects: remove redundant code

  2. spMFCheckLicenseStatus: code formatting changes; removed variable @LastcheckedDate_txt

  3. spMFExportFiles: (fix bug where name_or_property column has been changed)

  4. spMFCommentForObjects: remove redundant code

  5. spMFCheckLicenseStatus: code formatting changes; removed variable @LastcheckedDate_txt

  6. spMFExportFiles: (fix bug where name_or_property column has been changed)

  7. spMFGetLicense: 2025-01-07 add culture check in datetime formatting; 2024-12-31 add additional variations of converting datetime for license; 2024-12-13 add additional debugging

  8. spMFGetObjectvers: update notes; set default LastModifiedDate to ‘1985-01-01’

  9. spMFInsertClass (Update MFObjectType_ID and Deleted in MFClass update (merge))

  10. spMFUpdateMFilesToMFSQL: Improve handling of change history to suppress processing if no change history required

  11. spMFUpdateObjectChangeHistory: 2024-04-28 resolve bug with batch item selection

  12. spMFUpdateTableinBatches: update notes; resolve bug to stop full update when objid is null

  13. Assembly LSConnectMFilesAPIWrapper: changes to elliminate illegal XML characters

  14. MFLog: Quoted_Identifier is set to off

  15. resolve issue that some of changes in previous version did not pull through in the package