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