本演练演示了如何创建基本的顺序工作流模板。 工作流会检查共享文档库的属性,以确定文档是否已被审阅。 如果文档已被审阅,则工作流将完成。
本演练演示以下任务:
在 Visual Studio 中创建 SharePoint 列表定义顺序工作流项目。
创建工作流活动。
处理工作流活动事件。
注意
虽然本演练使用顺序工作流项目,但该过程对状态机工作流项目而言是相同的。
此外,以下说明中的某些 Visual Studio 用户界面元素在计算机上出现的名称或位置可能会不同。 这些元素取决于你所使用的 Visual Studio 版本和你所使用的设置。 有关详细信息,请参阅个性化设置 Visual Studio IDE。
先决条件
您需要满足以下条件才能完成本演练:
支持的 Microsoft Windows 和 SharePoint 版本。
Visual Studio。
将属性添加到 SharePoint 共享文档库
为了跟踪共享文档库中文档的审阅状态,我们将在 SharePoint 网站上为共享文档创建三个新属性:Status、Assignee 和 Review Comments。 我们将这些属性定义在共享文档库中。
将属性添加到 SharePoint 共享文档库
在 Web 浏览器中打开 SharePoint 网站,如http://<system name>/SitePages/Home.aspx。
在快速启动栏上,选择“SharedDocuments”。
在“库工具”功能区上选择“库”,然后选择功能区中的“创建列”按钮,以创建新列。
将列命名为“文档状态”,将其“类型”设置为“选择(可供选择的菜单)”,指定以下三个选项,然后选择“确定”按钮:
需要审阅
审阅完成
已请求更改
再创建两列,将其分别命名为“代理人”和“查看注释”。 将“代理人”列类型设置为单行文本,将“查看注释”列类型设置为多行文本。
无需签出文档即可对其进行编辑
如果无需签出文档即可对其进行编辑,就可以更轻松地测试工作流模板。在下一过程中,你将配置 SharePoint 站点以启用该功能。
无需签出文档即可对其进行编辑
在快速启动栏上,选择“共享文档”链接。
在“库工具”功能区上,选择“库”选项卡,然后选择“库设置”按钮以显示“文档库设置”页。
在“常规设置”部分中,选择“版本控制设置”链接,以显示“版本控制设置”页。
确认“要求必须在编辑文件前将其签出”的设置为“否”。 如果不是,请将其更改为“否”,然后选择“确定”按钮 。
关闭浏览器。
创建 SharePoint 顺序工作流项目
顺序工作流是一组步骤,这些步骤按顺序执行,直到最后一个活动完成。 在此过程中,我们将创建一个将应用于共享文档列表的顺序工作流。 工作流向导允许你将工作流与网站定义或列表定义关联起来,并使你能够确定工作流的启动时间。
创建 SharePoint 顺序工作流项目
启动 Visual Studio。
在菜单栏上,选择“文件”>“新建”>“项目”,打开“新建项目”对话框。
展开“Visual C#”或“Visual Basic”下的“SharePoint”节点,然后选择“2010”节点。
在“模板”窗格中,选择“SharePoint 2010 项目”模板 。
在“名称”框中,输入“MySharePointWorkflow”,然后选择“确定”按钮 。
“SharePoint 自定义向导”随即出现。
在“为调试指定站点和安全级别”页上,选择“部署为场解决方案”选项按钮,然后选择“完成”按钮以接受信任级别和默认站点 。
此步骤将解决方案的信任级别设置为场解决方案,这是工作流项目的唯一可用选项。 有关详细信息,请参阅沙盒解决方案注意事项。
在解决方案资源管理器中,选择项目节点,然后在菜单栏上选择“项目”>“添加新项” 。
展开“Visual C#”或“Visual Basic”下的“SharePoint”节点,然后选择“2010”节点。
在“模板”窗格中,选择“顺序工作流(仅场解决方案)”模板,然后选择“添加”按钮。
“SharePoint 自定义向导”随即出现。
在“指定用于调试的工作流名称”页上,接受默认名称 (MySharePointWorkflow - Workflow1)。 保留默认工作流模板类型值“列表工作流”,然后选择“下一步”按钮。
在“是否希望 Visual Studio 在调试会话中自动关联工作流?”页上,选择“下一步”按钮以接受所有默认设置。
此步骤会自动将工作流与共享文档库相关联。
在“指定工作流的启动方式的条件”页上,保留“你希望工作流如何启动?”部分中选择的默认选项,然后选择“完成”按钮。
此页面允许你指定工作流的启动时间。 默认情况下,当用户在 SharePoint 中手动启动工作流或创建与工作流关联的项时,工作流将启动。
创建工作流活动
工作流包含一个或多个表示要执行的操作的活动。 使用工作流设计器可以为工作流安排活动。 在此过程中,我们将向工作流添加两个活动:HandleExternalEventActivity 和 OnWorkFlowItemChanged。 这些活动用于监视“共享文档”列表中文档的审阅状态
创建工作流活动
工作流应显示在工作流设计器中。 如果不是,则在“解决方案资源管理器”中打开“Workflow1.cs”或“Workflow1.vb”。
在设计器中,选择“OnWorkflowActivated1”活动。
在“属性”窗口中,在“调用”属性旁输入“onWorkflowActivated”,然后选择 Enter 键。
将打开代码编辑器,并将名为 onWorkflowActivated 的事件处理程序方法添加到 Workflow1 代码文件中。
切换回工作流设计器,打开工具箱,然后展开“Windows Workflow v3.0”节点。
在“工具箱”的“Windows Workflow v3.0”节点中,执行以下一组步骤 :
打开“While”活动的快捷菜单,然后选择“复制” 。 在工作流设计器中,打开“onWorkflowActivated1”活动下方的行的快捷菜单,然后选择“粘贴” 。
将“工具箱”的“While”活动拖动到工作流设计器,并将活动连接到“onWorkflowActivated1”活动下方的行 。
选择“WhileActivity1”活动。
在“属性”窗口中,将“条件”设置为代码条件 。
展开“条件”属性,在“条件”子属性旁输入“isWorkflowPending”,然后选择 Enter 键。
将打开代码编辑器,并将名为 isWorkflowPending 的方法添加到 Workflow1 代码文件中。
切换回工作流设计器,打开工具箱,然后展开“SharePoint 工作流”节点。
在“工具箱”的“SharePoint 工作流”节点中,执行以下一组步骤 :
打开“OnWorkflowItemChanged”活动的快捷菜单,然后选择“复制” 。 在工作流设计器中,打开“whileActivity1”活动内行的快捷菜单,然后选择“粘贴” 。
将“工具箱”的“OnWorkflowItemChanged”活动拖动到工作流设计器,并将活动连接到“whileActivity1”活动内的行 。
选择“onWorkflowItemChanged1”活动。
在“属性”窗口中,如下表中所示设置属性。
属性 值 CorrelationToken workflowToken Invoked onWorkflowItemChanged
处理活动事件
最后,检查每个活动中文档的状态。 如果文档已被审阅,则工作流将完成。
处理活动事件
在“Workflow1.cs”或“Workflow1.vb”中,将以下字段添加到
Workflow1类的顶部。 此字段用于活动中,以确定工作流是否已完成。将以下方法添加到
Workflow1类。 此方法检查“文档”列表的Document Status属性的值,以确定文档是否已被审阅。 如果Document Status属性设置为Review Complete,则checkStatus方法将workflowPending字段设置为 false,以指示工作流已准备就绪。将以下代码添加到
onWorkflowActivated和onWorkflowItemChanged方法,以调用checkStatus方法。 工作流启动时,onWorkflowActivated方法会调用checkStatus方法,以确定该文档是否已被审阅。 如果尚未审阅,则工作流将继续。 保存文档时,onWorkflowItemChanged方法会再次调用checkStatus方法,以确定该文档是否已被审阅。 当workflowPending字段设置为 true 时,工作流将继续运行。将以下代码添加到
isWorkflowPending方法以检查属性workflowPending的状态。 每次保存文档时,whileActivity1 活动都会调用isWorkflowPending方法。 此方法检查 ConditionalEventArgs 对象的 Result 属性,以确定 WhileActivity1 活动是应继续还是完成。 如果将该属性设置为 true,则活动将继续。 否则,活动将完成,工作流也将完成。保存项目。
测试 SharePoint 工作流模板
启动调试器时,Visual Studio 将工作流模板部署到 SharePoint 服务器,并关联工作流与“共享文档”列表。 若要测试工作流,请从“共享文档”列表中的文档启动工作流的实例。
测试 SharePoint 工作流模板
在“Workflow1.cs”或“Workflow1.vb”中,将断点设置在“onWorkflowActivated”方法旁。
选择 F5 键生成并运行解决方案。
SharePoint 网站随即出现。
在 SharePoint 的导航窗格中选择“共享文档”链接。
在“共享文档”页中,在“库工具”选项卡上选择“文档”链接,然后选择“上传文档”按钮。
在“上传文档”对话框中,依次选择“浏览”按钮、任何文档文件、“打开”按钮和“确定”按钮。
这会将所选文档上传到“共享文档”列表并启动工作流。
在 Visual Studio 中,确认调试程序在
onWorkflowActivated方法旁的断点处停止。按 F5 键继续执行。
可在此处更改文档的设置,但通过选择“保存”按钮暂时将其保留为默认值。
这会将你返回到默认 SharePoint 网站的“共享文档”页。
在“共享文档”页中,确认“MySharePointWorkflow - Workflow1”列下方的值是否设置为“正在进行”。 这表示工作流正在进行中,并且文档正在等待审阅。
在“共享文档”页中,依次选择文档、出现的箭头,然后选择“编辑属性”菜单项。
将“文档状态”设置为“审阅完成”,然后选择“保存”按钮。
这会将你返回到默认 SharePoint 网站的“共享文档”页。
在“共享文档”页中,确认“文档状态”列下方的值是否设置为“审阅完成”。 刷新“共享文档”页,并确认“MySharePointWorkflow - Workflow1”列下方的值是否设置为“已完成”。 这表示工作流已完成,并且文档已被审阅。
后续步骤
可从以下主题了解有关如何创建工作流模板的详细信息:
若要详细了解 SharePoint 工作流活动,请参阅 SharePoint Foundation 的工作流活动。
若要详细了解 Windows Workflow Foundation 活动,请参阅 System.Workflow.Activities 命名空间。