您的位置:首页 > 其它

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

2011-01-21 11:11 423 查看
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文档完成。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐