SharePoint 2010 工作流解决方案:创建和调试 SharePoint 工作流解决方案

来源:互联网 发布:电脑软件培训班 编辑:程序博客网 时间:2024/04/29 10:05

SharePoint 文档库中添加栏

1.       打开一个 SharePoint 网站

2.       新建一个文档库。 文档库的名字可取为“共享文档”

3.       库工具功能区上单击,然后单击该功能区上的创建列按钮以创建新列。

 

4.       将该列命名为文档状态,将其类型设置为选项(要从中选择的菜单)”,指定以下三个选项,然后单击确定

·         需要评审

·         评审完成

·         请求更改

5.       再创建两列并将它们命名为受理人评审注释 受理人列类型设置为单行文本,将评审注释列类型设置为多行文本。

使文档无需签出即可编辑

如果无需签出文档即可进行编辑,则测试工作流模板会更容易一些。 在下一个过程中,您将配置 SharePoint 网站以达到此目的。

1.       单击共享文档

2.       库工具功能区上单击,然后单击库设置按钮以显示文档库设置页。

3.       常规设置部分中,单击版本控制设置以显示版本控制设置页。

4.       验证要求先签出文档然后再对其进行编辑的设置是否为 如果不是这样,请将其更改为,然后单击确定

创建 SharePoint 顺序工作流项目

顺序工作流是按顺序执行直到最后一个活动完成的一组步骤。 在此过程中,我们将创建一个将应用于共享文档列表的顺序工作流。 利用此工作流向导,您可以将工作流与网站定义或列表定义关联,并可以确定工作流的启动时间。

启动 Visual Studio,然后通过指向文件菜单上的新建并单击项目,显示新建项目对话框。

1.       展开“Visual C#”下的“SharePoint”节点,然后单击“2010”

2.       模板窗格中选择顺序工作流

3.       名称框中,键入 MySharePointWorkflow,然后单击确定

这将显示“SharePoint 自定义向导

4.       要使用哪个本地网站进行调试?”页中,单击下一步以接受默认网站。

5.       指定用于调试的工作流名称页上,接受默认名称(“MySharePointWorkflow - Workflow1”)。 保留默认工作流模板类型值列表工作流,然后单击下一步

 

 

6.       是否希望 Visual Studio 在调试会话中自动关联工作流?”页中,单击下一步以接受所有默认设置。 此步骤会自动将工作流与共享文档库关联。

 

7. 在指定确定工作流启动方式的条件页上,将您希望如何启动工作流?”部分中的默认选项保持选中状态,然后单击完成

可利用此页指定工作流启动的时间。 默认情况下,当用户在 SharePoint 中手动启动工作流时,或在创建与工作流关联的项时,工作流将启动。

 

 

创建工作流活动

工作流包含一个或多个表示要执行的操作的活动。 使用工作流设计器可为工作流安排活动。 在此过程中,我们将向工作流中添加两个活动:HandleExternalEventActivity OnWorkFlowItemChanged 这些活动将监视共享文档列表中文档的评审状态。

1.       工作流应显示在工作流设计器中。 如果不是这样,请双击解决方案资源管理器中的“Workflow1.cs”以打开工作流。

 

 

2.       在设计器中,单击选择“OnWorkflowActivated1”活动。

3.       属性窗口中,在“Invoked”属性旁键入 onWorkflowActivated,然后按 Enter

代码编辑器将会打开,一个名为“onWorkflowActivated”的事件处理程序方法被添加到 Workflow1 代码文件中。

 

4.       切换回工作流设计器,打开工具箱,然后展开“Windows Workflow v3.0”节点。

5.       工具箱“Windows Workflow v3.0”节点拖动一个“While”活动,并将该活动与“onWorkflowActivated1”活动下的行连接。

 

 

 

6.       单击选择“WhileActivity1”活动。

7.       属性窗口中,将“Condition”设置为代码定义

8. 展开“Condition”属性,在“Condition”属性旁键入 isWorkflowPending,然后按 Enter

代码编辑器将会打开,一个名为 isWorkflowPending 的方法被添加到 Workflow1 代码文件中。

 

 

9.    切换回工作流设计器,打开工具箱,然后展开“SharePoint 工作流节点。

10.       工具箱“SharePoint 工作流节点拖动一个“OnWorkflowItemChanged”活动,并将该活动与“whileActivity1”活动中的行连接。

 

11.       单击选择“onWorkflowItemChanged1”活动。

2.       属性窗口中,如下表所示设置属性。

属性

CorrelationToken

workflowToken

Invoked

onWorkflowItemChanged

 

 

处理活动事件

最后,检查每个活动后文档的状态。 如果文档已经过评审,则工作流将完成。

1.       Workflow1.cs中,将以下字段添加到 Workflow1 类的顶部。 在活动中使用此字段可确定工作流是否已完成。

Boolean workflowPending = true;

2.       将下面的方法添加到 Workflow1 类中。 此方法检查文档列表的文档状态属性的值,以确定文档是否已评审。 如果“文档状态”属性设置为 “评审完成”,checkStatus 方法就将 workflowPending 字段设置为 false 以指示工作流可以完成。

private void checkStatus()

{

    if ((string)workflowProperties.Item["文档状态"] == "评审完成")

    workflowPending = false;

}

3.       将下面的代码添加到 onWorkflowActivated onWorkflowItemChanged 方法以调用 checkStatus 方法。 当工作流开始时,onWorkflowActivated 方法调用 checkStatus 方法以确定文档是否已评审。 如果文档尚未评审,则工作流继续。 保存文档时,onWorkflowItemChanged 方法再次调用 checkStatus 方法以确定文档是否已评审。 如果 workflowPending 字段设置为 true,则工作流继续运行。

private void onWorkflowActivated(object sender, ExternalDataEventArgs e)

{

// Check the status.

checkStatus();

}

 

private void onWorkflowItemChanged(object sender, ExternalDataEventArgs e)

{

// Check the status.

checkStatus();

}

4.       isWorkflowPending 方法中添加以下代码以检查 workflowPending 属性的状态。 每次保存文档时,“whileActivity1”活动都会调用 isWorkflowPending 方法。 此方法检查 ConditionalEventArgs 对象的 Result 属性,以确定“WhileActivity1”活动应继续还是完成。 如果该属性设置为 true,则活动继续。 否则,活动完成并且工作流也完成。

private void isWorkflowPending(object sender, ConditionalEventArgs e)

{

    e.Result = workflowPending;

}

5.       保存项目。

测试 SharePoint 工作流模板

启动调试器时,Visual Studio 将工作流模板部署到 SharePoint Server,并将该工作流与共享文档列表相关联。 若要测试工作流,请从共享文档列表中的某个文档启动工作流的一个实例。

1.       Workflow1.cs中,在“onWorkflowActivated”方法旁设置一个断点。

2.       F5 生成并运行解决方案。 SharePoint 网站将出现。

3.       SharePoint 中的导航窗格中单击共享文档

4.       共享文档页中,单击库工具选项卡上的文档,然后单击上载文档按钮以上载文档。

5.       上载文档对话框中,单击浏览按钮,选择任何文档文件,单击打开,然后单击确定

这会将选定文档上载到共享文档列表中并启动工作流。

6.       Visual Studio 中,确认调试器是否在 onWorkflowActivated 方法旁的断点处停止。

7.       F5 继续执行。

8.       虽然您可以在此处更改文档的设置,但此时请单击保存以保留这些文档设置的默认值。

这将返回到默认 SharePoint 网站的共享文档页。

9.       共享文档页中,验证“MySharePointWorkflow”列下方的值是否设置为正在进行中 这指示工作流正在进行中,文档在等待评审。

10.    共享文档页中,指向该文档,单击向下箭头,然后单击编辑属性

11.    文档状态设置为评审完成,然后单击保存

这将返回到默认 SharePoint 网站的共享文档页。

12.    共享文档页中,验证“MySharePointWorkflow”列下方的值是否设置为评审完成 这指示工作流已完成,文档已评审。

 

本文参考msdn文档完成。

  

原创粉丝点击