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

Updating incorrect properties across multiple related classes¶

In this case the vault has a valuelist that is used accross multiple classes and object types. The objective is to consolidate and split the use of the valuelist items across all the tables.

  1. To determine in which classes the valuelist is being used, it is best to use a temporary view in M-Files and list all objects where the property in question is not null. Sub group this list by Class

  2. ensure that all the classes in the list created in the Connector as a class table.

  3. if the list of classes included is more than a few, then create a temporary table to set the list of class table that is included in this operation

    1. Create a temp tablewith columns Class_ID, Tablename

      • insert records into TempTable from MFClass where IncludeinApp = 1.  if needed items can be added, or removed from this temp table.

  4. Refresh all class tables with spmfupdatetable or spmfupdateallincludedinAppTables. Note that if this is the first time that the class tables are being updated then it could take a considerable time.

  5. Create a special view to join all the related classes in a single view using union all. Select columns that is common to all the related classes.

  6. Use MFSQL Manager to explore the metadata structure from different angles to assess the required alignments

  7. When an issue is spot in a class then perform a bulk update

    1. When using SQL update, always include process_id = 1

    2. Use spmfupdatetable updatemethod = 0 to process updates.

Next
Updating only records that changed
Previous
Updating a multi lookup property on an object
Copyright © 2023, Laminin Solutions Ltd
Made with Sphinx and @pradyunsg's Furo