27
Building Workflow Building Workflow Applications With Applications With Microsoft Microsoft ® ® Exchange Exchange 2000 2000 Jim Reitz Jim Reitz Program Manager Program Manager Exchange Enhanced Platform Exchange Enhanced Platform Product Unit Product Unit Microsoft Corporation Microsoft Corporation

Building Workflow Applications With Microsoft Exchange 2000 Jim Reitz Program Manager Exchange Enhanced Platform Product Unit Microsoft Corporation

Embed Size (px)

DESCRIPTION

BackOffice ® Workflow Strategy Simplify adding workflow code to Simplify adding workflow code to  SQL Server ™  Exchange 2000 Work with off-the-shelf applications Work with off-the-shelf applications  File.Save or Post can trigger workflows Focus on team process automation Focus on team process automation  Approval, Review, Routing, Tracking  Target “Office developer” skill set

Citation preview

Page 1: Building Workflow Applications With Microsoft  Exchange 2000 Jim Reitz Program Manager Exchange Enhanced Platform Product Unit Microsoft Corporation

Building Workflow Building Workflow Applications With Applications With MicrosoftMicrosoft®® Exchange 2000 Exchange 2000

Jim ReitzJim ReitzProgram ManagerProgram ManagerExchange Enhanced Platform Exchange Enhanced Platform Product UnitProduct UnitMicrosoft CorporationMicrosoft Corporation

Page 2: Building Workflow Applications With Microsoft  Exchange 2000 Jim Reitz Program Manager Exchange Enhanced Platform Product Unit Microsoft Corporation

Different Kinds Of Different Kinds Of “Workflow”“Workflow” Ad-hoc, unstructuredAd-hoc, unstructured Team process automationTeam process automation Line-of-business, productionLine-of-business, production Inter-OrganizationInter-Organization

Page 3: Building Workflow Applications With Microsoft  Exchange 2000 Jim Reitz Program Manager Exchange Enhanced Platform Product Unit Microsoft Corporation

BackOfficeBackOffice®® Workflow Workflow StrategyStrategy Simplify adding workflow code toSimplify adding workflow code to

SQL ServerSQL Server™™

Exchange 2000Exchange 2000 Work with off-the-shelf applications Work with off-the-shelf applications

File.Save or Post can trigger workflowsFile.Save or Post can trigger workflows Focus on Focus on team process automationteam process automation

Approval, Review, Routing, TrackingApproval, Review, Routing, Tracking Target “Office developer” skill setTarget “Office developer” skill set

Page 4: Building Workflow Applications With Microsoft  Exchange 2000 Jim Reitz Program Manager Exchange Enhanced Platform Product Unit Microsoft Corporation

Exchange 2000 Exchange 2000 InfrastructureInfrastructure Platform enhancements for Platform enhancements for

robust workflowrobust workflow Single store for documents and propertiesSingle store for documents and properties Synchronous store eventsSynchronous store events Multi-object transactionsMulti-object transactions

Page 5: Building Workflow Applications With Microsoft  Exchange 2000 Jim Reitz Program Manager Exchange Enhanced Platform Product Unit Microsoft Corporation

Exchange 2000 Exchange 2000 InfrastructureInfrastructure Platform enhancements for robust Platform enhancements for robust

workflow cont.workflow cont. Document-level access controlDocument-level access control OLE DB and ADO data accessOLE DB and ADO data access Extensible CDO object modelExtensible CDO object model Supports both Web-based and Supports both Web-based and

mail-based appsmail-based apps

Page 6: Building Workflow Applications With Microsoft  Exchange 2000 Jim Reitz Program Manager Exchange Enhanced Platform Product Unit Microsoft Corporation

Exchange 2000 WorkflowExchange 2000 Workflow Extends Exchange 2000 Web Store Extends Exchange 2000 Web Store

for simple workflowfor simple workflow Add workflow to existing folder appsAdd workflow to existing folder apps Works with OutlookWorks with Outlook®® forms, forms,

Web Store forms, etc.Web Store forms, etc.

Page 7: Building Workflow Applications With Microsoft  Exchange 2000 Jim Reitz Program Manager Exchange Enhanced Platform Product Unit Microsoft Corporation

Exchange 2000 WorkflowExchange 2000 Workflow Declarative workflow definitionDeclarative workflow definition

State-machine tableState-machine table Easy for tools to manipulateEasy for tools to manipulate

Page 8: Building Workflow Applications With Microsoft  Exchange 2000 Jim Reitz Program Manager Exchange Enhanced Platform Product Unit Microsoft Corporation

ComponentsComponents Workflow Engine Workflow Engine

Applies state-transition rules Applies state-transition rules (Action Table) to a document(Action Table) to a document

Evaluates conditionsEvaluates conditions Executes actions on transitionsExecutes actions on transitions

Page 9: Building Workflow Applications With Microsoft  Exchange 2000 Jim Reitz Program Manager Exchange Enhanced Platform Product Unit Microsoft Corporation

ComponentsComponents Workflow Event SinkWorkflow Event Sink

Traps changes to items in a folderTraps changes to items in a folder Uses Uses OnSyncSaveOnSyncSave, , OnSyncDeleteOnSyncDelete, , OnTimerOnTimer store events store events

Validates user/author securityValidates user/author security Calls workflow engineCalls workflow engine

Page 10: Building Workflow Applications With Microsoft  Exchange 2000 Jim Reitz Program Manager Exchange Enhanced Platform Product Unit Microsoft Corporation

Exchange Workflow Exchange Workflow DesignerDesigner WF Designer product familyWF Designer product family

Access Workflow Designer Access Workflow Designer for SQL Server for SQL Server

NEW!NEW! Workflow Designer for Workflow Designer for Exchange 2000Exchange 2000

Page 11: Building Workflow Applications With Microsoft  Exchange 2000 Jim Reitz Program Manager Exchange Enhanced Platform Product Unit Microsoft Corporation

Exchange Workflow Exchange Workflow DesignerDesigner Visual editor for workflow codeVisual editor for workflow code

Targets Visual BasicTargets Visual Basic®® Script developers Script developers Exchange WF Designer betaExchange WF Designer beta

in Exchange 2000 RC1in Exchange 2000 RC1 Final packaging TBDFinal packaging TBD

Page 12: Building Workflow Applications With Microsoft  Exchange 2000 Jim Reitz Program Manager Exchange Enhanced Platform Product Unit Microsoft Corporation

Workflow Process DefinitionWorkflow Process Definition Persists a “workflow” as a Persists a “workflow” as a

documentdocument WF Designer creates/editsWF Designer creates/edits

ProcessDefinition documentsProcessDefinition documents

Page 13: Building Workflow Applications With Microsoft  Exchange 2000 Jim Reitz Program Manager Exchange Enhanced Platform Product Unit Microsoft Corporation

Workflow Process DefinitionWorkflow Process Definition Process Definition Elements:Process Definition Elements:

Action TableAction Table CommonScriptURL CommonScriptURL Mode (security)Mode (security) AuditTrailProviderAuditTrailProvider

Page 14: Building Workflow Applications With Microsoft  Exchange 2000 Jim Reitz Program Manager Exchange Enhanced Platform Product Unit Microsoft Corporation

Workflow Action TableWorkflow Action Table Table of valid state-transitionsTable of valid state-transitions Conditions and actions are VBScripts Conditions and actions are VBScripts WF Engine evaluates conditionsWF Engine evaluates conditions WF Engine executes actionsWF Engine executes actions

SubmitSubmit ApproveApprovePendingPending ApprovedApproved

RejectReject

Page 15: Building Workflow Applications With Microsoft  Exchange 2000 Jim Reitz Program Manager Exchange Enhanced Platform Product Unit Microsoft Corporation

ActionsActionsOnCreateOnCreate Document was createdDocument was created

OnChangeOnChange Document was modifiedDocument was modified

OnDeleteOnDelete Document was deletedDocument was deleted

OnEnter / OnExitOnEnter / OnExit New state is entered, old New state is entered, old state is exitedstate is exited

OnExpiryOnExpiry Document has been in Document has been in current state too longcurrent state too long

OnReceiveOnReceive Received e-mail response Received e-mail response correlating to documentcorrelating to document

Page 16: Building Workflow Applications With Microsoft  Exchange 2000 Jim Reitz Program Manager Exchange Enhanced Platform Product Unit Microsoft Corporation

Writing ScriptsWriting Scripts CDO CDO WorkflowSessionWorkflowSession intrinsic intrinsic

objectobject Provides scripts with access to Provides scripts with access to

run-time datarun-time data Provides Provides FieldsFields collection on collection on

workflow itemworkflow item

Page 17: Building Workflow Applications With Microsoft  Exchange 2000 Jim Reitz Program Manager Exchange Enhanced Platform Product Unit Microsoft Corporation

Writing ScriptsWriting Scripts CDO CDO WorkflowSessionWorkflowSession intrinsic intrinsic

objectobject Set item-level ACLs on workflow itemSet item-level ACLs on workflow item Send mail; manage received Send mail; manage received

responsesresponses Provides access to audit loggingProvides access to audit logging

Page 18: Building Workflow Applications With Microsoft  Exchange 2000 Jim Reitz Program Manager Exchange Enhanced Platform Product Unit Microsoft Corporation

Runtime Object ModelRuntime Object ModelWorkflowSessionWorkflowSession

.StateTo.StateTo

.StateFrom.StateFrom

.Sender.Sender

.ErrorNumber.ErrorNumber

.ErrorDescription.ErrorDescription

.ActiveConnection.ActiveConnection

.Domain.Domain

.Server.Server

.TrackingTable.TrackingTable

.ReceivedMessage.ReceivedMessage

.AddAuditEntry().AddAuditEntry()

.GetNewWorkflowMessage().GetNewWorkflowMessage()

.DeleteWorkflowItem().DeleteWorkflowItem()

.DeleteReceivedMessage().DeleteReceivedMessage()

.IsUserInRole().IsUserInRole()

.GetUserProperty().GetUserProperty()

PropertiesPropertiesGetGetPutPut

ItemReaders, ItemAuthorsItemReaders, ItemAuthors

FieldsFields

AddAddDeleteDeleteClearClearCountCount

Same as ADO RecordSame as ADO Record

Page 19: Building Workflow Applications With Microsoft  Exchange 2000 Jim Reitz Program Manager Exchange Enhanced Platform Product Unit Microsoft Corporation

Workflow Engine SecurityWorkflow Engine Security Restricted ModeRestricted Mode

Actions are VBScript onlyActions are VBScript only Script engine “sandboxed”,Script engine “sandboxed”,

no CreateObject()no CreateObject() Only use WorkflowSession objectOnly use WorkflowSession object

Page 20: Building Workflow Applications With Microsoft  Exchange 2000 Jim Reitz Program Manager Exchange Enhanced Platform Product Unit Microsoft Corporation

Workflow Engine SecurityWorkflow Engine Security What can Restricted Mode do?What can Restricted Mode do?

Modify properties on triggering itemModify properties on triggering item Send mail (WorkflowMessage)Send mail (WorkflowMessage) Set item-level ACL on triggering itemSet item-level ACL on triggering item Write to AuditTrailWrite to AuditTrail

Page 21: Building Workflow Applications With Microsoft  Exchange 2000 Jim Reitz Program Manager Exchange Enhanced Platform Product Unit Microsoft Corporation

Workflow Engine SecurityWorkflow Engine Security Privileged ModePrivileged Mode

Actions can be script or COM objectsActions can be script or COM objects Script engine allows CreateObject()Script engine allows CreateObject() Actions execute under privileged Actions execute under privileged

Windows NTWindows NT®® account (in Exchange account (in Exchange Servers group)Servers group)

What can Privileged Mode do?What can Privileged Mode do? Almost anythingAlmost anything

Page 22: Building Workflow Applications With Microsoft  Exchange 2000 Jim Reitz Program Manager Exchange Enhanced Platform Product Unit Microsoft Corporation

Workflow Event SinkWorkflow Event Sink WF Designer automatically WF Designer automatically

registers WF Event Sink in your registers WF Event Sink in your folderfolder

WF Event Sink as COM+ ApplicationWF Event Sink as COM+ Application Manage from Windows 2000 Manage from Windows 2000

Administrative Tools->Component Administrative Tools->Component ServicesServices

Page 23: Building Workflow Applications With Microsoft  Exchange 2000 Jim Reitz Program Manager Exchange Enhanced Platform Product Unit Microsoft Corporation

Workflow Event SinkWorkflow Event Sink WF Event Sink enforces security WF Event Sink enforces security

via COM+ Rolesvia COM+ Roles CanRegisterWorkflowCanRegisterWorkflow PrivilegedWorkflowAuthorsPrivilegedWorkflowAuthors

Configure runtime accountConfigure runtime account

Page 24: Building Workflow Applications With Microsoft  Exchange 2000 Jim Reitz Program Manager Exchange Enhanced Platform Product Unit Microsoft Corporation

ResourcesResources Exchange 2000 RC1Exchange 2000 RC1

Default Exchange 2000 Setup installs Default Exchange 2000 Setup installs WF Engine, WF event sink, CDOWF WF Engine, WF event sink, CDOWF objectsobjects

WF Designer beta included on CDWF Designer beta included on CD \support\workflow directory\support\workflow directory

Page 25: Building Workflow Applications With Microsoft  Exchange 2000 Jim Reitz Program Manager Exchange Enhanced Platform Product Unit Microsoft Corporation

ResourcesResources Exchange 2000 SDKExchange 2000 SDK

SDK setup on RC1 CDSDK setup on RC1 CD \support\sdk directory\support\sdk directory

Important! Follow SDK doc Important! Follow SDK doc instructionsinstructions

Concepts & Architecture\Workflow\Concepts & Architecture\Workflow\DeploymentDeployment

Page 26: Building Workflow Applications With Microsoft  Exchange 2000 Jim Reitz Program Manager Exchange Enhanced Platform Product Unit Microsoft Corporation

Call To ActionCall To Action Build entire application in the Build entire application in the

Web StoreWeb Store Navigate, query, and manipulate the Navigate, query, and manipulate the

Web Store using CDO, ADO 2.5 and Web Store using CDO, ADO 2.5 and OLEDB 2.5OLEDB 2.5

Navigate, query and manipulate the Navigate, query and manipulate the Active DirectoryActive Directory™™ with ADSI with ADSI

Page 27: Building Workflow Applications With Microsoft  Exchange 2000 Jim Reitz Program Manager Exchange Enhanced Platform Product Unit Microsoft Corporation

Call To Action Call To Action Add Store Events and Workflow to Add Store Events and Workflow to

Build Powerful and Reliable Server-Build Powerful and Reliable Server-Side LogicSide Logic

Build rich Web-Based applications Build rich Web-Based applications using Web Store Forms and OWA using Web Store Forms and OWA componentscomponents

Add enhanced collaboration Features Add enhanced collaboration Features to applications to applications Instant Messaging, Wireless, Exchange Instant Messaging, Wireless, Exchange

Conferencing Server and Content IndexingConferencing Server and Content Indexing