Workflow Engine

Workflow Engine

This content is no longer actively maintained. It is provided as is, for anyone who may still be using these technologies, with no warranties or claims of accuracy with regard to the most recent product version or service release.

Microsoft® Exchange Server 2003 includes an in-process server (CDOWF.DLL) that implements the Advance Method of the IProcessInstance Interface, also known as the workflow engine. The workflow engine controls the state changes to documents in your workflow folder. The workflow event sink (CDOWFEVT.DLL) calls the workflow engine when an event fires in your workflow folder.

The following sequence diagram shows the flow of information between the processes in the workflow run-time environment.

Sequence diagram showing the flow of information between the following in the workflow run-time environment: Client, Exchange Store Folder, Workflow Event Sink, and Workflow Engine

Application developers do not call the workflow engine directly, unless they are writing their own event sink, advanced ASP application, or other middle-tier component. Event sinks, ASP applications, and middle-tier components can use the workflow engine by making direct calls to the Advance Method. The workflow engine maintains document integrity based on the parameters that the event sink passes.

The workflow engine checks your process design when it is notified of an event. You define a workflow process and set it up to be executed based on Exchange store events or system events. The process design encapsulates the logic for advancing the state of your workflow documents. It includes script or Component Object Model (COM) actions and conditions. The following illustration shows an application folder with a default ProcessDefinition and several ProcessInstances.

A workflow enabled folder with a Default ProcessDefinition that controls all of the ProcessInstances in the folder

In the preceding illustration, the workflow engine attempts to find a match between the event notification that it received and a rule in the process logic. When it finds a match, it executes the prescribed action. The workflow engine and the script host run in the event sink process and have access to the ProcessInstance and the user context.

The following illustration shows the event sink process hosting the script host and the workflow engine.

Diagram illustrating the workflow event sink process hosting the workflow engine and script host

When the workflow engine finds a match in the action table and executes the action script or COM object, it passes to the host environment a WorkflowSession object with a Fields collection representing the ProcessInstance undergoing transition. Only the workflow engine can change the status of a ProcessInstance directly. The workflow engine ignores any changes to the current state property made by the user or by a script. The following illustration demonstrates how workflow operates.

Diagram illustrating the data and execution flows between the Client, Process Instance, Workflow Event Sink, Process Definition, Workflow Engine, and Script Host

Send us your feedback about the Microsoft Exchange Server 2003 SDK.

Build: June 2007 (2007.618.1)

© 2003-2006 Microsoft Corporation. All rights reserved. Terms of use.