March 05, 2012

Creating SharePoint 2010 Workflows: Starting with Visual Studio 2010 Part 3

Go to the Expense Reports list. Select the expense report that you created earlier, and then click the Workflows button on the SharePoint Ribbon, as Figure 23 shows. The Start a New Workflow window, which Figure 24 shows, appears.

Click the Workflow button to start our workflow. Go to the workflow status, and you should see the Hello World message, as Figure 25 shows.


Figure 23: Choosing a workflow in the SharePoint Ribbon


Figure 24: Starting a workflow



Figure 25: Workflow outcome with Hello World


Workflow Features


Workflows that are generated from VS 2010 are logically packaged as site collection features. If the feature is not activated, then the workflow template cannot be used.
Workflows that are generated by VS 2010 are compiled as .dll files that must be installed into the global assembly cache (GAC). Therefore, these kinds of workflows cannot run in the sandbox environment, even if we create custom sandbox activities (as I will illustrate in another article).
If you look at the elements.xml file that describes the workflow feature (Figure 26), you will find the <Workflow> element, which points to the workflow class Name, as well as the placeholder for the assembly name.
New in SharePoint 2010 is the <AssociationCategories> element, which can contain List (if the workflow must be associated with a SharePoint list), Site (if the workflow must be associated with a SharePoint site), or Content Type (if the workflow is associated with a content type, which is an excellent practice).
The <StatusPageUrl> element specifies the .aspx page that is used to display the workflow status. I usually keep the default _layouts/WrkStat.aspx, but you can replace it with a custom page if needed.


Figure 26: Workflow element.xml file

Wizard Setting Configuration


If you want to modify the settings that the VS 2010 SharePoint Configuration Wizard provides, then you can select the workflow SharePoint project item, display its property page (which Figure 27 shows), and change the settings. For instance, you can change the Task List, or you can cancel the automatic association of the workflow with the list (via the Auto Associate property).
If you try to modify the task list, a new SharePoint Customization Wizard window will appear, as Figure 28 shows.


Figure 27: Workflow settings provided by the wizard



Figure 28: Triggering the wizard

Reviewing the Code


If you open the file ExpenseReportWorkflow.cs, you will see a class that is derived from SequentialWorkflowActivity (see Figure 29), which is the root class for Sequential workflows. (There are two kinds of workflows: Sequential and State Machine, which I will illustrate in another article.)
If you open the Designer code, you will see that each activity is a member of this class, which Figure 30 shows.
In the next article of this series, we will enhance this workflow.


Figure 29: Deriving a class from SequentialWorkflowActivity

No comments:

Post a Comment