Functional Mapping to Documentation (Holistic View)¶
Purpose¶
Provide traceability between each functional element listed in the Functional Overview matrix and its detailed documentation location(s), procedures, and tables across the reorganized documentation.
Legend¶
Covered: Narrative page(s) + object docs
Partial: Some coverage exists (procedure/table doc or brief narrative), but more examples or guidance planned
Gap: No current coverage (needs authoring)
External: Object page exists only; narrative integration pending
Metadata Structure¶
Auto create metadata structure tables: Partial — Metadata Structure Tables; object docs: spMFCreateAllMFTables, spMFCreateAllLookups.
Analyse and refresh metadata using SQL: Partial — procedures: spMFSynchronizeMetadata, spMFSynchronizeSpecificMetadata, spMFSynchronizeClasses. Blogs: Metadata Management and data cleansing, Metadata Management and Realignment Case Study. Examples: Example scripts to get started (“01.105.MetadataStructureChanges”).
Drop & recreate metadata: Partial — spMFDropAndUpdateMetadata (add narrative on backups/locks/safety).
Update names and aliases from SQL: Covered — spMFAliasesUpsert. See also fundamentals: Metadata fundamentals.
Insert new value list items from SQL: Covered — Lookup views and metadata search.
Update aliases in bulk: Partial — extend with rollback/performance notes on spMFAliasesUpsert.
Analyse metadata structure relationships: Gap — add recipe queries using
MFvwMetadataStructure
&MFvwClassTableColumns
. Blog: Table relations - views for reporting. Examples: Example scripts to get started (“15.108.Analyse Class table columns”).Show login / user accounts: External — MFLoginAccount, MFUserAccount.
Show workflows & states: Partial — MFWorkflow, MFWorkflowState; add example queries. Blog: Setting up a workflow state change. Examples: Example scripts to get started (“01.200.working with workflows”, “01.201.Resetting workflow state names…”).
Show value lists & items: Partial — MFValueList, MFValueListItems; add usage examples.
Auto create value list / workflow views: External — spMFCreateValueListLookupView, spMFCreateWorkflowStateLookupView.
Show complex ownership relationships: Gap — multi-level ownership recipe planned (anchor under lookup & workflow management).
Explore metadata usage in vault: Partial — fundamentals: Metadata fundamentals (extend with usage density/orphan property queries). Blog: Getting to know MFSQL Connector.
Get metadata structure version: External —
fnMFLastConnectorVersion
(no narrative page).
Class Tables¶
Create new class tables: Covered — spMFCreateTable, spMFInsertClass; overview: Overview.
Drop and re-create all class tables: Partial — spMFDropAllClassTables (add warnings and safe path narrative).
Batch update of records: Partial — spMFUpdateTableinBatches; add tuning & batch sizing guidance. Blogs: Update large tables using batch mode, Updating millions of records. Examples: Example scripts to get started (“03.151.using spmfupdatetableInBatches for batch updates”).
Update only changed records (delta): Partial — spMFUpdateTableWithLastModifiedDate; relate to Update Approaches. Blog: Updating only records that changed. Examples: Example scripts to get started (“02.120.using updatetable filter - last modified date”).
Concurrent update processes: Partial — patterns with MFProcessBatch; add example.
Bi-directional updates (to & from M-Files): Partial — spMFUpdateMFilesToMFSQL (MF→SQL) and spMFUpdateTable / spMFUpdateTableinBatches (SQL→MF).
Update from specific date: Covered — spMFUpdateTableWithLastModifiedDate.
Update with specific ObjIDs: Covered — spMFUpdateTable_ObjIDs_Grouped, spMFUpdateTable_ObjIDs_GetGroupedList.
Update changed by specific SQL user: Gap — recipe using MFUpdateHistory.
Update all included in App tables: Partial — spMFUpdateAllncludedInAppTables (document inclusion flag logic).
Update using filters: Partial — consolidate filter option comparison. Examples: Example scripts to get started (“02.115…ObjID”, “02.120…Last Modified Date”, “10.110…UserID”).
Helper procedures for update filters: Partial — spMFUpdateTable_ObjIDs_GetGroupedList.
Insert new records: Covered — spMFUpdateTable (insert path explained in object docs). Examples: Example scripts to get started (“01.120.Inserting new objects using batch mode”, “03.120.Insert Records with single lookup columns”, “03.115.Inserting new objects using lookup views”, “01.121.new object from SQL with auto numbering”).
Hyperlinks to objects: Covered — functions
fnMFObjectHyperlink
andfnMFExcelObjectHyperlink
(object docs). Blog: Using hyperlinks with MFSQL Connector.Public link hyperlinks: Partial — spMFCreatePublicSharedLink + hyperlink function; add example. Blog: Creating and using public shared link. Examples: Example scripts to get started (“04.150.Create public shared link”).
Change classes and properties: Partial — spMFChangeClass and related; add caution & sequence.
Delete records: Covered — via update procedures; add retention/audit caution. Blog: Deleting duplicate objects. Examples: Example scripts to get started (“01.132.Deleting objects in M-Files”, “01.131 Example of Deleting duplicate objects in MFiles”).
Delete adhoc properties in bulk: Partial — spMFDeleteAdhocProperty + loop pattern.
Get ObjVer of objects: External — object doc (view/procedure only).
Add comments: External — spMFAddCommentForObjects.
Search objects: External — spMFSearchForObject (add small example).
Delete adhoc properties (single): Covered — spMFDeleteAdhocProperty (narrative partial).
Special Functions¶
Delimited string handling: Partial — add parsing & multi-lookup mapping recipe. Blog: Using delimiter functions. Examples: Example scripts to get started (“16.101.Using functions in custom procs”).
HTML conversion for reporting: External — spMFConvertTableToHtml.
Include table in notification: Partial — combine HTML table + email send pattern.
Send HTML formatted email: Partial — spMFSendHTMLBodyEmail; add end-to-end sample.
Remove special characters: Covered — include before/after snippet (function doc). Blog: Illegal XML Characters.
Insert/update multi-lookup values: Partial — add performance note.
Send bulk notifications using templates: Partial — covered conceptually under User messages and notifications (bulk email section); add full recipe.
Files¶
Export files to folders: External — spMFExportFiles, spMFExportFilesMultiClasses. Blog: Exporting files from a vault.
Send bulk emails with attachments: Partial — combine file export + spMFSendHTMLBodyEmail; see bulk email section: User messages and notifications. Examples: Example scripts to get started (“15.102.sending bulk emails with attachments”).
Import files from database blobs: External — spMFImportBlobFilesToMFiles. Examples: Example scripts to get started (“06.103.Uploading Blob Files into M-Files”). Blogs: Importing files into M-Files.
Export / view M-Files event log: Covered — reporting module pages. Blog: Reports from the extended Event log. Examples: Example scripts to get started (“17.101.Export and use M-Files event log”).
Explore column usage & errors: Partial — add troubleshooting queries (relate to logging tables and update history). Blog: Practical use of logging in Procedures. Examples: Example scripts to get started (“15.108.Analyse Class table columns”).
Process log summary (class tables): Partial — summarization pattern via spMFLogProcessSummaryForClassTable. Blog: Practical use of logging in Procedures. Examples: Example scripts to get started (“20.101.Reporting_PerformanceAnalysis”).
Get metadata on files without downloading: Gap — document metadata-only access pattern.
Views & Reporting¶
Explore full metadata structure: Covered — Reporting. Blog: Near real time reporting.
Create views for related lookups in bulk: Partial — usage examples with spMFCreateValueListLookupView.
Class Table statistical report: Gap — produce view/example (consider leveraging spMFClassTableStats).
Explore column usage & errors: Partial — add troubleshooting queries (relate to logging tables and update history).
Explore value list ownership relations: Gap — planned recipe.
Export / view M-Files event log: Covered — reporting module pages.
Export object history: External — spMFGetHistory.
Process log summary (class tables): Partial — summarization pattern via spMFLogProcessSummaryForClassTable.
View Error log: Partial — logging: Logging Tables and Logging and observability.
Get/create comments: External — spMFAddCommentForObjects.
View Update History: Partial — MFUpdateHistory + spMFUpdateHistoryShow.
View Process Batch logs: Covered — Logging and observability and logging tables.
View User Messages: Covered — User messages and notifications.
View Audit History: External — MFAuditHistory (views under /views).
Value Lists & Workflow Items¶
Create value list lookup views: External — spMFCreateValueListLookupView.
Create workflow state lookup views: External — spMFCreateWorkflowStateLookupView.
Create/update/delete value list items: Covered — Lookup views and metadata search. Blogs: Advanced updating of Valuelists from external source, Aligning valuelist items with different owners. Examples: Example scripts to get started (“01.150.Updating ValuelistItems”).
Operations in M-Files¶
Configurable context menu items: Covered — Using the Context Menu. Blog: Status report using context menu. Examples: Example scripts to get started (“90.102..90.106 Custom context menu examples”).
Access Website: Partial — add action type usage example under context menu docs.
Execute procedure on object: Covered — context menu action types.
Execute procedure on workflow trigger: Covered — workflow/event handler docs. Blog: Setting up a workflow state change.
Execute procedure on event handler trigger: Covered — same location. Blog: Using event handler for SQL action.
Show user message: Covered — User messages and notifications.
Synchronous processing: Covered — context menu action types.
Process with feedback message: Partial — add combined example snippet.
Asynchronous processing: Covered — Queues and context menus (queue section). Blog: Create a scheduled pull from M-Files using SQL Server Agent. Examples: Example scripts to get started (“30.104.Example - Start Job Wait - Agent”, “70.100..70.103 Sync Process”).
SQL actions via WebAPI (cloud): Partial — add concise steps (cloud appendix). Blog: RPC over HTTPS setup. Examples: Example scripts to get started (“70.100..70.103 Sync Process”).
Error Handling¶
Email notification of SQL errors: Partial — spMFLogError_EMail usage (expand example).
User Messages: Covered — User messages and notifications.
Error logging: Covered — Logging Tables.
Email sent log: Covered — MFEmailLog.
Process logging: Covered — Logging and observability + logging tables. Blog: Practical use of logging in Procedures.
Show user message from SQL: Partial — snippet invoking spMFResultMessageForUI.
Formatted emailed process results: Partial — combine spMFConvertTableToHtml + spMFSendHTMLBodyEmail.
Show feedback message: Partial — clarify semantics vs user message (add example).
Validate email profile: External — spMFValidateEmailProfile.
Perform Class Table audits: Partial — spMFClassTableStats guidance.
Delete history logs: Covered — spMFDeleteHistory and Agent scheduling and batching.
Special Applications¶
External application user to filter updates: Gap — security pattern.
Action M-Files Reporting Data Export: Partial — link to reporting export flow.
Update metadata on demand: Partial — targeted sync examples (per-doc strict links and agent usage).
Update metadata scheduled: Covered — Agent scheduling and batching.
Change history of any class property: Partial — combine change history procedure + conflict remediation narrative.
Scheduling & Automation¶
Daily incremental updates: Covered — Agent scheduling and batching.
Weekly metadata refresh: Covered — same.
Monthly retention & housekeeping: Covered — same (+ spMFDeleteHistory).
Sync error remediation loop: Covered — Troubleshooting and support (cross-ref synchronize error handling).
Value list synchronization cadence: Covered — Lookup views and metadata search.
Assembly version safeguard: Covered — spMFCheckAndUpdateAssemblyVersion.
Escalation/conflict spike detection: Gap — planned (add escalation script skeleton).
Installation & Upgrade (External)¶
All related procedures and scripts remain in Getting Started sections; cross-link from the matrix where appropriate.
Appendix A: Object-Level Mapping (Snapshot)¶
Legend: T=Table, P=Procedure, F=Function, V=View
Metadata Structure Objects¶
Auto create metadata structure tables: P
spMFCreateAllMFTables
, PspMFCreateAllLookups
; TtbMFClass
,tbMFProperty
,tbMFObjectType
,tbMFValueList
,tbMFValueListItems
,tbMFWorkflow
,tbMFWorkflowState
– Status Partial.Analyse metadata refresh: P
spMFSynchronizeMetadata
, PspMFSynchronizeSpecificMetadata
, PspMFSynchronizeClasses
; VMFvwMetadataStructure
– Partial.Drop & recreate metadata: P
spMFDropAndUpdateMetadata
– Gap.Update names & aliases: P
spMFAliasesUpsert
– Covered.Valuelist item insert/update: P
spMFInsertValueListItems
; TtbMFValueListItems
– Covered.Alias bulk update: P
spMFAliasesUpsert
– Partial.Relationship analysis: V
MFvwMetadataStructure
, VMFvwClassTableColumns
– Gap.Accounts & users: P
spMFInsertLoginAccount
, PspMFInsertUserAccount
– External.Workflows/states: P
spMFInsertWorkflow
, PspMFInsertWorkflowState
– Partial.Complex ownership: (No direct object) – Gap.
Usage analysis: V
MFvwClassTableColumns
– Partial.Structure version: F
fnMFLastConnectorVersion
– External.
Class Table Objects¶
Creation: P
spMFCreateTable
, PspMFInsertClass
– Covered.Recreate all: P
spMFDropAllClassTables
– Gap.Batch update: P
spMFUpdateTableinBatches
; PspMFUpdateTableInternal
– Partial.Delta update: P
spMFUpdateTableWithLastModifiedDate
; PspMFUpdateMFilesToMFSQL
– Partial.Concurrent processing: T
tbMFProcessBatch
; P update procs – Partial.Directional updates: P
spMFUpdateMFilesToMFSQL
(MF→SQL), PspMFUpdateTable
/spMFUpdateTableinBatches
(SQL→MF) – Partial.Date filter: P
spMFUpdateTableWithLastModifiedDate
– Covered.ObjID filter: P
spMFUpdateTable_ObjIDs_Grouped
; PspMFUpdateTable_ObjIDs_GetGroupedList
– Covered.User-based filter: audit tables
tbMFUpdateHistory
– Gap (no dedicated proc).Inclusion flag batch: P
spMFUpdateAllncludedInAppTables
– Partial.Filter helpers: P
spMFUpdateTable_ObjIDs_GetGroupedList
– Partial.Inserts: P
spMFUpdateTable
(insert path) – Covered.Hyperlinks: F
fnMFObjectHyperlink
; FfnMFExcelObjectHyperlink
– Covered.Public link hyperlink: P
spMFCreatePublicSharedLink
+ F hyperlink fn – Partial.Change class/property: P
spMFChangeClass
(and related) – Partial.Delete records: standard update procs with delete flags – Covered.
Bulk adhoc property delete: P
spMFDeleteAdhocProperty
loop – Partial.ObjVer retrieval: (view/proc) – External.
Comments: P
spMFGetAndUpdateObjectComments
– External.Search: P
spMFSearchForObject
– External.Single adhoc property delete: P
spMFDeleteAdhocProperty
– Covered.
Scheduling & Automation Objects¶
Daily/weekly/monthly routines: documented patterns using P
spMFUpdateAllncludedInAppTables
, PspMFDeleteHistory
, PspMFDropAndUpdateMetadata
, PspMFCheckAndUpdateAssemblyVersion
– Covered.Sync error remediation: P
spMFUpdateSynchronizeError
– Covered.Conflict stats: P
spMFClassTableStats
– Covered (monitoring).Value list sync: P
spMFSynchronizeValueListItemsToMFiles
– Covered.Assembly version: P
spMFCheckAndUpdateAssemblyVersion
– Covered.Escalation (planned): new script (Gap).
Error Handling & Logging Objects¶
Synchronization errors: P
spMFUpdateSynchronizeError
; TtbMFProcessBatch
; TtbMFProcessBatchDetail
– Covered (synchronization conflicts deep dive).History retention: P
spMFDeleteHistory
– Covered (automated updates deep dive).Email error notification: P
spMFLogError_EMail
– Partial.
File Pipeline Objects¶
Import/export control & history: T
tbMFFileImport
,tbMFFileExportControl
,tbMFExportFileHistory
– Covered (file ingestion & export pipeline deep dive pending anchor verification).
Appendix B: Remaining Unmapped / Review¶
Procedures needing placement or decision:
- spMFObjectTypeUpdateClassIndex
(metadata usage counts) — candidate under Metadata Structure diagnostics.
- spMFSetAdditionalProperty
(adhoc property management) — integrate under Class Tables property changes.
- spMFSetUniqueIndexes
(index/constraint management) — consider performance subsection.
- spMFUsersByUserGroup
(security introspection) — map to Users & Permissions: Users and permissions.
- spMFsettingsForDBUpdate
/ spMFsettingsForVaultUpdate
(internal) — decide to omit or document as internal.
- spMFUpdateItemByItem
(row-by-row fallback) — performance caveats subsection.
- spMFSynchronizeLookupColumnChange
/ spMFSynchronizeWorkFlowStateColumnChange
— change history / structure drift subsection.
Utility Functions (possible consolidation):
- fnMFVariableTableName
, fnMFGetCulture
, fnMFTextToDate
, fnMFFloatToString
, fnMFCapitalizeFirstLetter
— group under Utility Conversions (or keep external).
- fnMFVaultSettings
— map to settings/metadata structure.
Views / Diagnostics:
- MFvwTableID
— metadata diagnostics; include in Metadata Structure analysis.
Recommendation: treat minor utilities collectively to avoid table bloat; prioritize authoring Gap items tied to safety, data integrity, or core update correctness before cosmetic enhancements.
Next Actions¶
Validate status accuracy; adjust any misclassified items.
Create missing anchors (delta-only updates, alias maintenance, escalation script placeholder, complex ownership examples).
Author Gap content (metadata drop/recreate safety, email sent log, checksum/file metadata access, escalation script, complex ownership).
Merge summarized mapping into functional overview table via footnotes or hover tooltips (future enhancement).
Reassess remaining External items; either keep or integrate if they gain deep-dive coverage.
End of Mapping