Metadata Update Development: Practical Example
Template showing targeted metadata sync, property column renames, class table setup, and index creation.
Synchronize Metadata
EXEC dbo.spMFDropAndUpdateMetadata @IsReset = 0; -- Set to 1 if want to start over
--EXEC dbo.spMFSynchronizeMetadata;
EXEC dbo.spMFSynchronizeSpecificMetadata @Metadata = 'Properties';
--EXEC dbo.spMFSynchronizeSpecificMetadata @Metadata = 'Class';
--EXEC dbo.spMFSynchronizeSpecificMetadata @Metadata = 'ValueList';
--EXEC dbo.spMFSynchronizeSpecificMetadata @Metadata = 'ValueListItems';
--EXEC dbo.spMFSynchronizeSpecificMetadata @Metadata = 'User';
--EXEC dbo.spMFSynchronizeSpecificMetadata @Metadata = 'Login';
--EXEC dbo.spMFSynchronizeSpecificMetadata @Metadata = 'Workflow';
--EXEC dbo.spMFSynchronizeSpecificMetadata @Metadata = 'State';
Update Property Column Names
UPDATE dbo.MFProperty
SET ColumnName = 'Epicor_Process'
WHERE name = 'Process ID';
View Class Tables and Properties
SELECT Class, Class_Alias, class_MFID, TableName, Property, Property_alias, Property_MFID, Property_ID, ColumnName,
PredefinedOrAutomatic, Required, Valuelist, Valuelist_Alias, Valuelist_ID, Valuelist_MFID, Valuelist_Owner,
Valuelist_Owner_MFID, Valuelist_OwnerAlias, IncludeInApp, Workflow, Workflow_Alias, Workflow_MFID, ObjectType,
ObjectType_Alias, ObjectType_MFID, SQLDataType, MFDataType
FROM dbo.MFvwMetadataStructure
WHERE Class_Alias IN ('cARCreditMemoDoc', 'cARInvoiceDoc', 'cARStatementDoc', 'cCustomer')
ORDER BY Class_Alias, Property_alias;
Class Table Setup Example: CLCustomer
BEGIN
SET NOCOUNT ON;
PRINT 'Initializing CLCustomer';
UPDATE dbo.MFClass
SET TableName = 'CLCustomer'
WHERE Name = 'Customer';
IF OBJECT_ID('CLCustomer') IS NOT NULL
DROP TABLE dbo.CLCustomer;
EXEC dbo.spMFCreateTable @ClassName = 'Customer';
-- Setup index on Class table
CREATE INDEX UDX_CLCustomer
ON dbo.CLCustomer (Epicor_Company_ID, Customer_Code);
DECLARE @Update_IDOut INT, @ProcessBatch_ID INT;
EXEC dbo.spMFUpdateTable @MFTableName = 'CLCustomer',
@UpdateMethod = 1, -- M-Files To MFSQL
@Update_IDOut = @Update_IDOut OUTPUT,
@ProcessBatch_ID = @ProcessBatch_ID OUTPUT;
SET NOCOUNT OFF;
SELECT * FROM dbo.CLCustomer;
END
GO