Name : Ted Pattison Title: Author/Instructor Company: Critical Path Training Session Code: OFC320

Preview:

Citation preview

Developing Microsoft Office SharePoint Server 2007 Workflows with Microsoft Visual Studio 2008

Name : Ted PattisonTitle: Author/InstructorCompany: Critical Path TrainingSession Code: OFC320

AgendaWindows Workflow Foundation (WF) PrimerCreating WF programs in Visual StudioCreating workflow templates for WSSWorkflow associations and workflow instancesCreating and waiting on WSS tasksIntegrating workflow input forms

Reactive ProgramsAutomating a business process

Often requires program with episodic behaviorProgram waits around and then reacts to some event

How would you automate document approval?In a Windows Forms applicationIn an ASP.NET Application

Windows Workflow Foundation (WF)What is the Windows Workflow Foundation?

Development platform for building reactive programsSet of development tools integrated with Visual StudioRuntime components that ship with.NET FX 3.0

Windows Workflow Foundation conceptsWF programWorkflow instanceActivities

ActivitiesAn activity is

atomic set instructions used complete a unit of workreusable component used to compose WF programs

Activities are like a controls in forms developmentYou drag and drop them onto a design surfaceYou modify their properties through property sheetYou generate event handlers and write code inside

Activities are different than controlsActivities are resumable

Composite ActivitiesComposite Activities can contain children

Composite activity controls execution of childrenComposite activity can encapsulate control-of-flowExamples: IfElse, While, Sequence, Parallel, Replicator

WF program is itself a composite activityWF program models a tree of activities

WF Base Activity LibraryStandard WF activities provide basic building blocks

WF Program Types

WF provides two main styles of WF programsSequential WF program modeled as flow chartState machine WF program models using states

Visual Studio Workflow Designer

Developing Workflow Programs with Visual Studio 2008

demo

The WF Runtime

WF Runtime ServicesCustom services can be written and plugged in

WSS provides its own persistence service

SharePoint Workflow ConceptsDesign goals for WF integration with WSS

Use WF to attach logic to items and documentsAdd a human dimension on top of WFMaintain self-service capabilities common in WSSCreate strong developer story for custom WF programsProvide valuable WF programs out-of-box with MOSS

The human dimensionAny SharePoint workflow can assign tasks to usersUsers can see the status of any workflow instance

SharePoint Workflow ActorsWorkflow template

WF Program and optionally workflow input forms A feature to install it inside WSS farm

Workflow associationBinding of workflow template to list or content typeA named instance containing parameterized data

Workflow instanceA running instance of a WF program attached to an item

Creating a Workflow Association

Starting a Workflow InstanceUsers can manually start workflows

The Workflow Status Page

Any user can see the status of a workflow instance

Creating and Managing Workflow Associations

demo

WSS/MOSS Workflow Options

Use out-of-box workflow templates from MOSSYou have just seen how easy they are to use

Use SharePoint Designer to create workflowsSPD creates ad-hoc workflow association inside siteEasy to create but hard/impossible to reuse/deploy

Develop custom workflow templates with Visual Studio 2008 which target WSS3 and/or MOSS

This is what this session is all about

Creating a Workflow Template ProjectCreating SharePoint Workflow Project in Visual Studio 2008

Complete the WizardStep 1 – Specify SharePoint URL

Enter the name of the workflowSpecify the URL to SharePoint site

Complete the WizardThe following lists need to be available:

Document LibraryTasks listHistory list

Complete the Wizard Step 2 – select the necessary lists

List or document library to associate workflowHistory listTasks list

Complete the Wizard Step 3 – decision on how to start the workflow

Creating and Debugging a Workflow Template with Visual Studio 2008

demo

Developing the WF Program

Getting around inside the Workflow DesignerLearn to move between Designer view and code ViewGet to Know the Activities in the SharePoint Activity Library

Working in Code ViewHere is what you get as a starting point

SharePoint Activity Library

WSS-specific activities used to create SharePoint WF Programs

Data Bound Properties

WF supports data binding of propertiesAllows for declarative flow of data between activitiesUsed extensively for creating SharePoint WF programs

Generating Event HandlersGenerate event handlers to add code

Event handlers can program against WF objects

Right-click on activity and choose Generate Handlers

Workflow Template DeploymentWorkflow templates are deployed via features

Feature must be scoped to site collection (Scope=Site)Feature may contain multiple workflow templates

Workflow Template DefinitionWorkflow Element defines Workflow Template

Must point to one specific WF programWF program must be compiled into an assembly DLLAssembly DLL must be installed in GAC

Testing 'Hello World' Workflow Template

Creating and Waiting on TasksSharePoint Workflows revolve around tasks

Represent significant value-add WSS brings to WFBased on standard WSS tasks visible/editable by usersUsers update tasks through browser or Office programsYour code automatically wakes up and executes

WSS Tasks are generated with subscriptionsWSS encapsulates the listener mechanismWSS registers event handlers behind the scenesYou just add event activities and write event handlers

Task GUIDs and Correlation TokensWSS sets up subscriptions for tasks

Based on registering event handlersWSS needs way to identify certain task across activitiesEach task is assigned a GUID and a correlation token

Action Activities vs. Event ActivitiesAction activities perform work

Their event handlers fire before work is done

Event activities run code in response to an eventTheir event handlers run after the event has occurred

Action Activitiesare blue

Event Activitiesare green

Initializing a New TaskAdd event handler behind CreateTask activity

This event handler fires before task creationGives you a chance to initialize task properties

Waiting on a Task

Event activity creates subscriptionOnTaskChanged puts activity to sleepEvent handler fires upon modification

While activity used to control flowWhile activity loops until task complete

Creating Workflow Forms with ASP.NETWorkflow input forms can be created in ASP.NET

Benefits to creating workflow forms with ASP.NETCan run from WSS-only farms

Drawback to creating forms with ASP.NETMore coding involved

ASP.NET Workflow Form Integration

Custom taskcontent type

custom ApplicationPages in _layouts

Integrating Workflow Input FormsWorkflow Input Form Types

Association formInitiation formsModification formsTask edit form

Sample ProjectLitwareWorkflows

The Association Form

The Initiation Form

Invoking the Modification Form

There is one link per modification

The Task Edit Form

Creating Workflow Forms with InfoPathWorkflow input forms can be created in InfoPath

Benefits to creating workflow forms with InfoPathSignificantly better forms designer experienceSignificantly less codingForms can be opened directly with Office client apps

Drawback to creating forms with InfoPathWorkflow template will only run in MOSS farmsWorkflow template will not run in WSS-only farms

InfoPath Workflow Form Integration

urn:schemas-microsoft-com:office:infopath:ReviewInitiationForm2:-myXSD-2005-11-22T23-49-53

standard MOSStask content type

standard MOSS application pages

Integrating Workflow Input FormsWorkflow Input Form Types

Association formInitiation formsModification formsTask edit form

Sample ProjectLitwareWorkflows

SummaryWindows Workflow Foundation (WF) PrimerCreating WF programs in Visual StudioCreating workflow templates for WSSWorkflow associations and workflow instancesCreating and waiting on WSS tasksIntegrating workflow input forms

Attend an Interactive Theater Session and enter to win a Microsoft ARC Mouse

Attend any SharePoint Breakout Session day 1 – 4 and check the last slide for a daily picture.

Come to the TLC yellow area, SharePoint booths OFC 4 and 5 to spin the wheel for a chance to win a prize. The wheel only spins when the SharePoint spotlight is flashing. One spin per person.

Collect all four daily SharePoint pictures and enter to win a Microsoft ARC Mouse. Game cards can be picked up at the booth.

Drawing for Mice on Friday at the wheel at 11:30AM.

Monday’s Picture is:

Red Carpet

Collect the SharePoint Session Picture of the Day

Track ResourcesSpin the Wheel: Attend SharePoint breakout sessions Mon-Thurs and collect the picture of the day. Come by the booth for a chance to spin the SharePoint wheel. Collect all 4 pictures and enter to win a Microsoft Arc Mouse, drawing 11:30am on Friday, game cards at the booth.

Product Info http://www.microsoft.com/SharePoint

Dev ResourcesSharePoint MSDN Web Site: http://msdn.microsoft.com/sharepointSharePoint Developer Resources: http://mssharepointdeveloper.com/

SharePoint Conference 2009 www.mssharepointconference.com

ITPro ResourcesSharePoint Tech Center: http://technet.microsoft.com/en-us/office/sharepointserver/SharePoint Best Practices:http://technet.microsoft.com/en-us/office/sharepointserver/bb736746.aspx

www.microsoft.com/teched

Sessions On-Demand & Community

http://microsoft.com/technet

Resources for IT Professionals

http://microsoft.com/msdn

Resources for Developers

www.microsoft.com/learningMicrosoft Certification and Training Resources

www.microsoft.com/learning

Microsoft Certification & Training Resources

Resources

Complete an evaluation on CommNet and enter to win!

© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS,

IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Recommended