Contents Menu Expand Light mode Dark mode Auto light/dark, in light mode Auto light/dark, in dark mode Skip to content
MFSQL Connector 5.13.37.81 documentation
Light Logo Dark Logo
MFSQL Connector 5.13.37.81 documentation

FAQ:

  • Frequently asked questions
    • Advanced FAQ (Deep Dive Cross-Refs)

MFSQL Connector Guide:

  • Introduction to MFSQL
    • Introducing MFSQL Connector
    • System Requirements
    • MFSQL Connector modules
    • Functional Overview
      • Functional Mapping to Documentation (Holistic View)
      • Appendix A: Object-Level Mapping (Snapshot)
      • Appendix B: Remaining Unmapped / Review
    • Practical tips and Use Cases
    • Licensing
      • MFSQL Connector License Agreement
    • Installing MFSQL Connector
  • Getting Started
    • Planning and prerequisites
    • Install
      • Common installation notes
        • On‑premises: single server
        • On‑premises: split servers
        • Cloud
          • Cloud: install connector
          • Cloud: install Web API
            • Installing the Web API - Detail Steps
          • Cloud: VAF configuration
        • High availability (SQL cluster)
        • Manual installation path
          • Manual installation using scripts
            • Content Package installation
      • On‑premises: single server
      • On‑premises: split servers
      • Cloud
        • Cloud: install connector
        • Cloud: install Web API
          • Installing the Web API - Detail Steps
        • Cloud: VAF configuration
      • High availability (SQL cluster)
      • Manual installation path
        • Manual installation using scripts
          • Content Package installation
      • Package installation - step by step
    • Post-install
      • License management (Post-Install)
      • Configure the context menu
      • Connection and Web API
      • Enable VAF logging
      • Configuration and setup (legacy)
        • Update settings
        • Installing the Context Menu
        • Enabling and configuring the VAF logging
        • Database Mail
        • Using Agent for automated updates
          • Prevent agent job to run
          • View to check if job is running
          • View to check if job is running
          • Prevent agent job to run
        • Setup powershell utilities
          • Setup database script
          • Validate table procedure
      • Database Mail
      • Using Agent for automated updates
        • Prevent agent job to run
        • View to check if job is running
        • View to check if job is running
        • Prevent agent job to run
      • Setup powershell utilities
        • Setup database script
        • Validate table procedure
    • Validate and smoke tests
    • Upgrades and hotfixes
      • Moving the Connector Database
    • Upgrade to Release 5
    • Next Steps after installation
    • Common installation errors and resolutions
      • Install package with logging
    • Example scripts to get started
      • Getting Started
      • Updating settings
      • Quick startup for multiple class tables
      • Initialize the application
      • Metadata Structure Changes
      • Metadata Update Development: Practical Example
      • Working with All Metadata Update Procedures
      • Aliases: Examples and Updates
      • Bulk Updating of aliases
      • Inserting New Objects Using Batch Mode
      • Creating New Objects with Auto Numbering
      • Deleting Duplicate Objects in M-Files
      • Deleting Objects in M-Files
      • Get Deleted Objects
      • Destroy Object Versions in M-Files
      • Create Lookup Views for Value Lists and Workflow States
      • Updating Value List Items
      • Working with Workflows
      • Resetting Workflow State Names on All Class Tables
      • Using update filters: ObjIDs
      • Using update filters: last modified date
      • Ad hoc columns on class tables
      • inserting new objects using transaction update
      • Inserting new objects using lookup views
      • Insert Records with single lookup columns
      • using spmfupdatetableInbatches for batch updates
      • Comparing procedures for large volume updating
      • Using multilookup upsert
      • using record by record update
      • Create public shared link
      • Get Object History records
      • Adding comments to object
      • Get Comments using Change History
      • Get Workflow state changes using Change History
      • Get all changes for object with Change History
      • Delete history logging tables
      • understanding history tables
      • Uploading Blob Files into M-Files
      • Updating the ContextMenu
      • Getting ready for reporting
      • using Search object
      • using updatetable filters - UserID
      • Using user messaging
      • sending bulk emails with attachements
      • using auto correction of synchronization errors
      • TableAudit and classtablestats
      • Example of SyncPrecedence 0 (SQL takes precedence)
      • Example of SyncPrecedence 1 (MF takes precedence)
      • Analyse Class table columns with spMFClassTableColumns
      • Explorer impact of multi lookup property changes
      • Using functions in custom procs
      • Reporting_PerformanceAnalysis
      • Example - Start Job Wait - Agent
      • agent for update context menmu queue
      • Example - Sync Procesure
      • 70 101 Example - Sync Process - Test wLogging
      • Example - Sync Process - Test
      • Example - Sync Process - Check Progress
      • Template - custom procedure
      • custom DoCMObjectAction
      • custom DoCMAction
      • custom DoCMObjectActionForWorkFlowState
      • custom DoCMAsyncAction
      • Custom CMMFiles_UpdateSQL
      • Custom DoAccountConfirmationEmail
      • Export and use M-Files event log
  • MFSQL Data Exchange and Reporting Connector
    • Working with Metadata
      • Overview
      • Structure tables
      • Core synchronization procedures
      • Selective and Advanced Synchronization
      • automation-and-operations
      • change-management-and-vault-moves
      • Troubleshooting and Diagnostics
      • Recipes and Examples
    • Working with Class Tables
      • Overview
      • Preparing Class Tables
      • Synchronization Strategies
      • Update Approaches
      • Performance and Scaling
      • Troubleshooting
      • Practical Examples
      • Reference Map
    • Using the Context Menu
      • overview
      • action-types-and-behavior
      • Security and Permissions
      • Creating Menu Items
      • Workflow and Event Handlers
      • queue-and-logging
      • troubleshooting-and-diagnostics
      • example-reset-and-sample-scripts
    • Reporting
      • Reporting Overview
      • Class Tables and Data Flow
      • Quick Start
      • Initial Load and Scheduling
      • Tools and Examples
      • Event Log Reporting
      • Performance and Optimization
      • Troubleshooting and Sample Queries
      • Reporting - getting started
      • Reporting : Quick start
      • Using Power BI for reporting
      • M-Files event log
  • MFSQL Integration Connector
    • Exploring metadata
    • Building custom applications and integrations
    • Working with Metadata
      • 1. Metadata fundamentals
      • 2. Lookup views and metadata search
      • 3. Working with files and object versioning
      • 4. Users and permissions
      • This content has moved
      • This content has moved
      • Update / Create Valuelist Items from SQL
      • This content has moved
      • This content has moved
    • Operations and Automation
      • 1. Agent scheduling and batching
      • 2. Queues and context menus
      • 3. User messages and notifications
      • 4. Operational tips
    • Administration
      • 1. Deployments and vault changes
      • 2. Logging and observability
      • 3. Troubleshooting and support
      • Logging Tables
      • Enabling and configuring the VAF logging
    • MFSQL Connector addons and utilities
  • Release 5
    • Future enhancements
  • The Connector Framework
    • Architecture
    • Connector Content
      • Assemblies
      • Metadata Structure Tables
      • Class tables
      • Utility Tables
      • Logging Tables
      • Procedures and Functions
        • spMFCreateObjectInternal
        • Parameters
        • CLR and internal procedures
      • M-Files Installation
      • Context Menu
      • Supporting Applications
        • Custom tables, views, procedures and functions
      • MFSQL Connector Operations
    • Connector Database
      • Using CLR
      • M‑Files API version and CLR assembly updates
    • Enabling the database
    • Licensing
    • Security
      • Schemas
  • Version Control
    • Version Control — Release 4
    • Version Control — Release 5

Blog:

  • List of blogs
    • Advanced updating of Valuelists from external source
    • Align metadata from an external source with data in M-Files
    • Aligning valuelist items with different owners
    • Perform a background operation in SQL on workflow change
    • Building applications around M-Files
    • Certified Application Developer presentation
    • Changing the class of an object
    • Changing from single lookup to multi lookup
    • Considerations for deleted records
    • Considerations for large volume vault
    • Create a scheduled pull from M-Files using SQL Server Agent
    • Creating and using public shared link
    • Creating multiple related objects on file import
    • CRM and Emailer Management
    • Deleting duplicate objects
    • Exporting files from a vault
    • ExternalID versus DisplayID versus Objid
    • Explore all the objects in the vault
    • Get number of records in Class
    • Working with object change history
    • Getting started with a custom application
    • Getting to know MFSQL Connector
    • How to generate a quick follow up list
    • Illegal XML Characters
    • Importing files into M-Files
      • Example procedure for importing sales invoices on demand
        • Custom Procedure - DoUpsertVendorInvoice
    • Insert new records from SQL
    • Integration for vendor approval
      • Custom Procedure - DoVendorUpsert
      • Custom Procedure - DoNewERPVendor
      • Custom Procedure - UpdateERPVendor
    • Integration whitepaper
    • Integration with SAGE 200 - Case Management
    • Integration with SAGE 50
    • Integration with test equipment
    • Integration with Vendor Management and Purchasing with Epicor Enterprise
    • Mark for Archiving using Class Table
    • Metadata Management and data cleansing
    • Metadata Management and Realignment Case Study
    • MF-Last-Modified-User in action
    • Moving documents from one class to another
    • Moving metadata from text properties to Valuelist items
    • MultiSelectLookups
    • Near real time reporting
    • Online Ordering of special stock
    • Online Quote System
    • Practical use of logging in Procedures
    • Processing scanned documents
    • Properties with multi lookup datatypes
    • Limitations of real datatype
    • Report designers and the Connector
    • Reports from the extended Event log
    • Restore MFSQL database to a different server
    • RPC over HTTPS setup
    • Setting up a workflow state change
    • Setup Agent Proxy for MFSQLConnect
    • Status report using context menu
    • Table relations - views for reporting
    • Update large tables using batch mode
    • Updating a multi lookup property on an object
    • Updating incorrect properties across multiple related classes
    • Updating only records that changed
    • Updating millions of records
    • Using delimiter functions
    • Using event handler for SQL action
    • Using hyperlinks with MFSQL Connector
    • Using M-Files External Connector
    • Using spMFClassTableStats
    • Using the External_ID to match third party app tables
    • Using windows authentication
    • Working with Additional Properties
    • Working with checked Out objects
    • Working with date and time
    • Working with Document Collections

SQL Components:

  • Procedures
    • spMFAddCommentForObjects
    • spMFAliasesUpsert
    • spMFChangeClass
    • spMFCheckAndUpdateAssemblyVersion
    • spMFCheckLicenseStatus
    • spMFClassTableColumns
    • spMFClassTableStats
    • spMFConnectionTest
    • spMFContextMenuActionItem
    • spMFContextMenuHeadingItem
    • spMFConvertTableToHtml
    • spMFCreateAllLookups
    • spMFCreateAllMFTables
    • spMFCreatePublicSharedLink
    • spMFCreateTable
    • spMFCreateValueListLookupView
    • spMFCreateWorkflowStateLookupView
    • spMFDeleteAdhocProperty
    • spMFDeleteHistory
    • spMFDeleteObject
    • spMFDeleteObjectList
    • spMFDeleteObjectVersionList
    • spMFDeploymentDetails
    • spMFDropAllClassTables
    • spMFDropAndUpdateMetadata
    • spMFExportFiles
    • spMFExportFilesMultiClasses
    • spMFGetDataExport
    • spMFGetDeletedObjects
    • spMFGetHistory
    • spMFGetLicense
    • spMFGetMFilesAssemblyVersion
    • spMFGetMfilesLog
    • spMFGetObjectvers
    • spMFGetProcedurePerformance
    • spMFImportBlobFilesToMFiles
    • spMFInsertClass
    • spMFInsertClassProperty
    • spMFInsertLoginAccount
    • spMFInsertObjectType
    • spMFInsertProperty
    • spMFInsertUserAccount
    • spMFInsertUserMessage
    • spMFInsertValueList
    • spMFInsertValueListItems
    • spMFInsertWorkflow
    • spMFInsertWorkflowState
    • spMFLogError_EMail
    • spMFLogProcessSummaryForClassTable
    • spMFObjectTypeUpdateClassIndex
    • spMFProcessBatchDetail_Insert
    • spMFProcessBatch_Upsert
    • spMFProcessBatch_Mail
    • spMFRemoveAdditionalProperties
    • spMFResultMessageForUI
    • spMFSearchForObject
    • spMFSearchForObjectbyPropertyValues
    • spMFSendHTMLBodyEmail
    • SpmfSetAdditionalProperty
    • spMFSetContextMenuQueue
    • spMFSetUniqueIndexes
    • spMFSetup_Reporting
    • spMFSynchronizeClasses
    • spMFSynchronizeFilesToMFiles
    • spMFSynchronizeLoginAccount
    • spMFSynchronizeLookupColumnChange
    • spMFSynchronizeMetadata
    • spMFSynchronizeObjectType
    • spMFSynchronizeProperties
    • spMFSynchronizeSpecificMetadata
    • spMFSynchronizeUserAccount
    • spMFSynchronizeValueList
    • spMFSynchronizeValueListItems
    • spMFSynchronizeValueListItemsToMfiles
    • spMFSynchronizeWorkFlowStateColumnChange
    • spMFSynchronizeWorkflow
    • spMFSynchronizeWorkflowsStates
    • spMFTableAudit
    • spMFUnDeleteObject
    • spMFUpdateAllncludedInAppTables
    • spMFUpdateAssemblies
    • spMFUpdateAssemblyLog
    • spMFUpdateContextMenuQueue
    • spMFUpdateExplorerFileToMFiles
    • spMFUpdateHistoryShow
    • spMFUpdateItemByItem
    • spMFUpdateMFilesToMFSQL
    • spMFUpdateObjectChangeHistory
    • spMFUpdateSynchronizeError
    • spMFUpdateTable
    • spMFUpdateTableInternal
    • spMFUpdateTableWithLastModifiedDate
    • spMFUpdateTable_ObjIDs_GetGroupedList
    • spMFUpdateTable_ObjIDs_Grouped
    • spMFUpdateTableinBatches
    • spMFUsersByUserGroup
    • spMFValidateEmailProfile
    • spMFVaultConnectionTest
    • spMFsettingsForDBUpdate
    • spMFsettingsForVaultUpdate
  • Tables
    • MFAuditHistory
    • MFAuthenticationType
    • MFObjectChangeHistoryUpdateControl
    • MFClass
    • MFClassProperty
    • MFContextMenu
    • MFContextMenuQueue
    • MFDataType
    • MFDeploymentDetail
    • MFEmailTemplate
    • MFEmailLog
    • MFEventLog_OpenXML
    • MFExportFileHistory
    • MFFileExportControl
    • MFFileImport
    • MFLog
    • MFLoginAccount
    • MFObjectChangeHistory
    • MFObjectType
    • MFProcessBatch
    • MFProcessBatchDetail
    • MFProperty
    • tbMFProtocolType
    • MFPublicLink
    • MFSearchLog
    • MFSettings
    • MFUpdateHistory
    • MFUserAccount
    • MFValueList
    • MFValueListItems
    • tbMFVaultSettings
    • MFWorkflow
    • MFWorkflowState
    • MFilesEvents
  • Functions
    • fnMFCapitalizeFirstLetter
    • fnMFExcelObjectHyperlink
    • FnMFFloatToString
    • FnMFGetCulture
    • fnMFLastConnectorVersion
    • fnMFMultiLookupUpsert
    • fnMFObjectHyperlink
    • fnMFParseDelimitedString
    • fnMFRemoveIllegalXMLCharacters
    • fnMFReplaceSpecialCharacter
    • fnMFSplit
    • fnMFSplitPairedStrings
    • fnMFSplitString
    • fnMFTextToDate
    • fnMFVariableTableName
    • fnMFVaultSettings
  • Views
    • MFvwAuditSummary
    • MFvwClassTableColumns
    • MFvwLogTableStats
    • MFvwMetadataStructure
    • MFvwObjectChangeHistory
    • MFvwObjectTypeSummary
    • MFvwTableID
  • Triggers
    • tMFProcessBatch_UserMessage
Back to top

Creating multiple related objects on file import¶

In this use case we will review how to setup depended objects when importing a file from an external source such as a scanning process or getting a file into M-Files from a third party system.

This use case is of particular value when the scanned document have complex metadata to be associated with the document or has dependent objects that requires staging in sequence for the file document to be associated with. The M-Files importing tool may not be the best vehicle to accomplish advanced file scans and imports.

The routine to import the scanned document into M-Files and associating the metadata with the object is divorced. The file is scanned and imported using the scanning software, Importing Tool or Folderwatcher. The only key requirements is that a unique reference is available to link the file with the associated metadata. This unique reference can be built into the name of the file when it is saved by the scanning software, or alternatively simple OCR recognition can be used to pick up the unique reference from the content of the file. MFSQL Connector automatically creates a property “MFSQL File Unique Ref” that can be used for updating this unique key. If the name of the file is used to carry the unique reference then we would recommend to populate this special property, in addition to using it for the file name. The name or title of the object is often changed or automated. This could break the link of the file to the underlying metadata during processing.

The metadata related to the file, including details of any dependent objects can then be processed in SQL. It is often feasible for the scanning software to save the scanned document details directly to a SQL table. The metadata may be partially dependent on third party systems. it may be necessary to get some data from M-Files before the metadata of the file can be finalized.

The different stages required for processing would depend on each individual case but in essence would involve pulling the file object metadata into SQL using MFSQL Connector, updating any associated class tables (such as vendor master), get the data from the scanning process, and finally pulling data from the third party system.

All of these processes are then streamed in custom store procedures in SQL to build the related data, create the dependent objects, and update the file metadata with the related properties.

The trigger to start the process is likely to be the importing of the file. We recommend to use MFSQL Connector Context Menu capability to start a SQL procedure to initiate the matching. Context Menu allows for an action to start a context sensitive SQL procedure as a workflow step, event handler or initiated by a user in M-Files by picking an option in the action menu.

Next
CRM and Emailer Management
Previous
Creating and using public shared link
Copyright © 2023, Laminin Solutions Ltd
Made with Sphinx and @pradyunsg's Furo