Working with Workflows

This example demonstrates how to work with workflows and workflow states, including creating lookup views and updating aliases.

Workflows and States Join

SELECT *
FROM dbo.MFWorkflowState AS MWS
INNER JOIN dbo.MFWorkflow AS MW ON MWS.MFWorkflowID = MW.ID;

Create Workflow State Lookup View

EXEC dbo.spMFCreateWorkflowStateLookupView
    @WorkflowName = N'Contract Approval Workflow',
    @ViewName = N'MFvwContractApproval',
    @Debug = 0;

SELECT * FROM MFvwContractApproval;

Update Workflow State Alias

UPDATE dbo.MFWorkflowState
SET Alias = 'ws.' + dbo.fnMFReplaceSpecialCharacter(Name)
WHERE MFWorkflowID = 14;

EXEC dbo.spMFSynchronizeSpecificMetadata
    @Metadata = 'state',
    @Debug = 0,
    @IsUpdate = 1;

Update Workflow Alias

UPDATE dbo.MFWorkflow
SET Alias = 'wf.' + dbo.fnMFReplaceSpecialCharacter(Name)
WHERE MFID = 107;

EXEC dbo.spMFSynchronizeSpecificMetadata
    @Metadata = 'workflow',
    @Debug = 0,
    @IsUpdate = 1;

Update Workflow and State on Record

 SELECT * FROM dbo.MFClass AS MC WHERE Name = 'Drawing';
 EXEC dbo.spMFCreateTable @ClassName = N'Drawing', @Debug = 0;
 EXEC dbo.spMFUpdateTable @MFTableName = N'MFDrawing', @UpdateMethod = 1;
 SELECT workflow, workflow_ID, state, state_ID, * FROM dbo.MFDrawing AS MD;

 INSERT INTO dbo.MFDrawing (
     Customer_ID,
     Drawing_Type_ID,
     Name_Or_Title,
     Project_ID,
     State_ID,
     Workflow_ID,
     Process_ID
 ) VALUES (
     149, 1, 'TestWorkflow', 5, NULL, NULL, 1
 );

 EXEC dbo.spMFUpdateTable @MFTableName = N'MFDrawing', @UpdateMethod = 0;
WHERE

    [MFID] = 107;