Metadata Structure Changes
Refresh and iterate on metadata while developing vault structures. Includes narrow-sync options and structural inspections.
Synchronize Metadata
Synchronize metadata during iterative vault development.
EXEC spMFSynchronizeMetadata;
EXEC spMFDropAndUpdateMetadata;
EXEC dbo.spMFDropAndUpdateMetadata @IsResetAll = 1;
EXEC spMFSynchronizeSpecificMetadata 'Class';
EXEC dbo.spMFSynchronizeSpecificMetadata @Metadata = 'User', @IsUpdate = 0, @ItemName = NULL, @Debug = 0;
Inspect Metadata Tables
SELECT TOP 100 * FROM dbo.MFProperty;
SELECT TOP 100 * FROM dbo.MFClass;
SELECT TOP 100 * FROM dbo.MFValueList;
SELECT TOP 100 * FROM dbo.MFValueListItems;
SELECT TOP 100 * FROM dbo.MFWorkflow;
SELECT TOP 100 * FROM dbo.MFWorkflowState;
SELECT TOP 100 * FROM dbo.MFObjectType;
SELECT TOP 100 * FROM dbo.MFUserAccount;
SELECT TOP 100 * FROM dbo.MFLoginAccount;
Update Specific Metadata
EXEC dbo.spMFSynchronizeSpecificMetadata @Metadata = 'Valuelist', @ItemName = 'Country';
Process Logging
DECLARE @ProcessBatch_ID INT;
EXEC dbo.spMFDropAndUpdateMetadata @IsResetAll = 0, @ProcessBatch_ID = @ProcessBatch_ID OUTPUT, @Debug = 0;
SELECT * FROM dbo.MFProcessBatchDetail AS mpbd
INNER JOIN dbo.MFProcessBatch AS mpb ON mpb.ProcessBatch_ID = mpbd.ProcessBatch_ID
WHERE mpb.ProcessBatch_ID = @ProcessBatch_ID;
Explore Metadata Structure
SELECT * FROM dbo.MFClass;
-- Property/Class relationship via MFClassProperty
SELECT *
FROM MFProperty AS mp
INNER JOIN MFClassProperty AS mcp ON mcp.MFProperty_ID = mp.ID
INNER JOIN MFClass AS mc ON mcp.MFClass_ID = mc.ID
WHERE mc.Name = 'Customer';
-- Valuelist / Valuelist items
SELECT * FROM dbo.MFValueList AS mvl
INNER JOIN dbo.MFValueListItems AS mvli ON mvli.MFValueListID = mvl.ID
WHERE mvl.Name = 'Country';
-- Workflow and states
SELECT *
FROM dbo.MFWorkflow AS mw
INNER JOIN dbo.MFWorkflowState AS mws ON mws.MFWorkflowID = mw.ID
WHERE mw.Name = 'Processing job applications';
-- Using the structure view variants
SELECT * FROM dbo.MFvwMetadataStructure WHERE class = 'Customer';
SELECT * FROM dbo.MFvwMetadataStructure WHERE Property = 'Customer';
SELECT * FROM dbo.MFvwMetadataStructure WHERE Valuelist = 'country';
SELECT * FROM dbo.MFvwMetadataStructure WHERE Workflow = 'Processing job applications';
Making Structure Changes
EXEC spMFClassTableStats;
EXEC dbo.spMFClassTableStats @ClassTableName = N'MFCustomer';
EXEC dbo.spMFClassTableStats @ClassTableName = N'MFCustomer', @IncludeOutput = 1, @Debug = 0;
SELECT * FROM ##spmfclasstablestats;
EXEC dbo.spMFDropAllClassTables @IncludeInApp = 1;
EXEC dbo.spMFDropAndUpdateMetadata @IsReset = 1, @Debug = 0;
-- Change class table name then recreate and update
UPDATE dbo.MFClass SET TableName = 'MyAgenda' WHERE mfid = 15;
EXEC dbo.spMFCreateTable @ClassName = N'Agenda', @Debug = 0;
EXEC dbo.spMFUpdateTable @MFTableName = N'MyAgenda', @UpdateMethod = 1;
-- Change a column name
UPDATE MFProperty SET ColumnName = 'PostalCode' WHERE ID = 591;
DROP TABLE IF EXISTS MFCustomer;
EXEC spMFCreateTable 'Customer';
EXEC dbo.spMFDropAndUpdateMetadata @IsReset = 0, @Debug = 0;
-- Full logging example
DECLARE @ProcessBatch_ID INT;
EXEC dbo.spMFDropAndUpdateMetadata @IsReset = 1, @Debug = 0, @ProcessBatch_ID = @ProcessBatch_ID OUTPUT;
SELECT * FROM dbo.MFProcessBatchDetail WHERE ProcessBatch_ID = @ProcessBatch_ID;
EXEC dbo.spMFCreateTable @ClassName = N'Agenda', @Debug = 0;
SELECT * FROM MyAgenda;
EXEC dbo.spMFDropAndUpdateMetadata @IsReset = 1, @Debug = 0;