Example of SyncPrecedence 0 (SQL takes precedence)¶
These scripts prepare and show how Sync Precedence for SQL taking precedence operate
The expectation is that if SQL presedence is set ( set to 0 in MFClass for class table) then an update from SQL to MF should be processed, irrespective of any changes in M-Files. No error report is produced.)
the example use MFCustomer table with objid id 135
SELECT mc.Address_Line_2, mc.Process_ID, mc.MFVersion, mc.ObjID FROM dbo.MFCustomer AS mc
WHERE objid = 135
SELECT * FROM dbo.MFClass AS mc
-- set precendence for the MFCustomer table
update dbo.MFClass
SET SynchPrecedence = 0
WHERE MFID = 78
-- make a change in SQL
UPDATE dbo.MFCustomer
SET Process_ID = 1, Address_Line_2 = 'New Address 2.134', autoCalc = 'aut0', Address_Line_1 = 'New 5'
WHERE objid = 135
-- make change to objid 135 in M-Files. Take note of the version no.
-- execute an update. Note that spMFUpdateSynchronizeError must be included in the script just after the execution of spmfupdatetable
DECLARE @Update_ID INT, @ProcessBatch_ID int
EXEC spmfupdatetable @MFTableName = 'MFCustomer',@UpdateMethod = 0, @Update_IDOut = @Update_ID OUTPUT, @ProcessBatch_ID = @ProcessBatch_ID OUTPUT, @Debug = 0
SELECT * FROM dbo.MFProcessBatchDetail AS mpbd WHERE mpbd.ProcessBatch_ID = @ProcessBatch_ID
-- check the result
-- note from the Update_ID and process log that the update procedure ran a second time to set the sync error to the correct precedence.
SELECT mc.Address_Line_2, mc.Process_ID, mc.MFVersion, mc.ObjID ,*
FROM dbo.MFCustomer AS mc
WHERE objid = 135
-- check M-Files - Refresh item to pull through the update. Take note of the version no after the update. It should show the update from SQL.
-- note that no error messages was generated for the sync error
-- note the version has changed from the version when the update was made in M-Files.
SELECT TOP 3 * FROM MFLog ORDER BY logid desc