SharePoint 2010工作流解决方案之将SharePoint Designer可重用工作流导

将 SharePoint Designer 可重用工作流导入 Visual Studio

在 SharePoint Designer 中创建的工作流(即,声明性工作流)由 XML 语句组成,而非由代码组成。 SharePoint Designer 2010 引入了可重用工作流,它们是可由 SharePoint 站点中的不同列表使用的可移植的声明性工作流。

在 Visual Studio 2010 中创建的工作流(如顺序工作流和状态机工作流)称为“代码工作流”。 代码工作流由 XML 文件和代码模块组成,用户可以在这些文件和模块中自定义工作流的行为。

通过 Visual Studio 2010,您可以导入在 SharePoint Designer 2010 中创建的可重用工作流,并将其转换为代码工作流,以便在 SharePoint 站点中使用。  

创建目标 SharePoint 子站点

首先创建两个新的 SharePoint 子站点:一个用于承载来自 SharePoint Designer 的可重用工作流,另一个用于承载转换后的工作流。

1.在 SharePoint Designer 2010 中,单击“文件”菜单上的“打开站点”。

537x214

2.在“打开站点”对话框中,浏览至要在其中创建工作流的 SharePoint 站点,或者使用默认值 http://系统名称/,然后单击“打开”。

5.在“指定您的网站位置”框中,用 SPD1 替换 URL 中的“子网站”一词,然后单击“确定”。

这将在 SharePoint Designer 中打开新的子站点。 关闭此 SharePoint Designer 实例并返回到第一个实例(首要站点)。

6.重复步骤 3 至步骤 5 以创建第二个子站点,这次将用 SPD2 替换 URL 中的“子网站”一词。

创建 SharePoint Designer 可重用工作流

由于 SharePoint 不包括可用于此示例的任何可重用工作流,因此您将创建一个可重用工作流。 在此简单工作流中,当某个用户在“任务”列表中输入某个具有特定标题的新任务时,将向该用户分配此任务。

1.在“子站点”部分中单击“SPD1”站点以对其进行修改。

2.单击功能区上的“可重用工作流”。

471x99

将出现“创建可重用工作流”向导。

3.在“名称”框中,键入“SPD 任务工作流”。 在“内容类型”框中,单击“任务”,再单击“确定”。

该工作流将在 SharePoint Designer 工作流设计器中打开。

538x365

7.单击条件语句下面的行,再单击功能区上的“操作”按钮,然后从操作列表中选择“设置当前项目中的域”。

588x152

8.单击“将域设置为值”操作中的“域”链接,然后选择“分配对象”。

9.单击“将域设置为值”操作中的“值”链接,从现有用户和组的列表中选择“创建当前项目的用户”,单击“添加”按钮,再单击“确定”。

480x328

操作语句现在显示为“将分配对象设置为当前项目:创建者”。

590x153

保存并部署可重用工作流

由于 Visual Studio 只能导入 .wsp 文件,因此必须先将可重用工作流另存为 .wsp 文件,并将其部署到 SharePoint,然后

能将其导入 Visual Studio 中。

1.单击 SharePoint Designer 顶部的“保存”按钮保存您的进度,然后单击“发布”按钮将工作流部署到 SharePoint 站点“SPD1”。

2.在导航窗格中单击“工作流”。

3.单击“可重用工作流”下的“SPD 任务工作流”。

4.在功能区中,单击“另存为模板”,以将工作流另存为 .wsp 文件。

707x102

5.在浏览器中,打开“SPD1”SharePoint 站点,查看 SharePoint 中的 .wsp 文件。

6.在快速启动栏上单击“库”。

7.在“文档库”部分中单击“网站资产”。

877x177

“SPD 任务工作流”文件将与其他站点资产一起列出。

552x90

8.在列表中单击其名称,这将显示“文件下载”对话框。

9.在“文件下载”对话框中单击“保存”按钮,将 .wsp 文件保存到系统上。

4.确保选中步骤 1 并单击功能区上的“条件”按钮,然后从条件列表中选择“如果当前项目域等于值”。

条件语句现在显示为“如果当前项:标题等于新任务”。

590x147

6.单击“如果字段等于值”条件中的“值”链接。 在框中输入“新任务”。

589x148

5.单击“如果字段等于值”条件中的“域”链接。 单击“标题”

589x147

593x369

这将添加名为“如果域等于值”的新条件。

4.在“新建”对话框中,选择左窗格中的“SharePoint 模板”,再选择右窗格中的“工作组站点”。

614x414

3.在“子站点”部分中,单击“新建”。

372x106

将 .wsp 文件导入到 Visual Studio 中

使用“导入可重用工作流”项目将 .wsp 文件导入到 Visual Studio 中。 此项目将工作流从一个可重用的声明性工作流转换为一个代码工作流。 转换工作流之后,您将使用代码来修改其行为。

从 .wsp 文件导入工作流并进行修改

1.在 Visual Studio 中,通过指向“文件”菜单上的“新建”并单击“新建项目”,显示“新建项目”对话框。

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

3.在“模板”窗格中单击“导入可重用工作流”,将默认的名称修改为“YunCode.Workflow.WorkflowImport”,再单击“确定”。

954x527

这将显示“SharePoint 自定义向导”。

4.在“指定用于调试的站点和安全级别”页上,为您先前创建的第二个 SharePoint 子站点输入 URL:http://系统名称/SPD2。

5.在“此 SharePoint 解决方案的信任级别是什么?”部分中,保留选择项为“部署为场解决方案”。

6.在“指定新项目源”页上,浏览到系统上您先前保存 .wsp 文件的位置,然后单击“下一步”。

7.这将显示可导入的可重用工作流的列表。

8.在“选择要导入的项”框中,选择工作流“SPD 任务工作流”,然后单击“完成”。

完成导入操作后,将创建一个名为“YunCode.Workflow.WorkflowImport”的项目,其中包含一个名为“SPD_任务工作流FT”的工作流。 此文件夹中包含工作流的定义文件 Elements.xml 和工作流设计器文件 (.xoml)。 该设计器中包含两个文件:规则文件 (.rules) 和代码隐藏文件

400x104

343x136

9.将工作流项目项“YunCode.Workflow.WorkflowImport”设置为启动项。

这将在调试项目时立即显示列表。

10.由于“导入可重用工作流”不会导入已导入的工作流的关联属性值,因此您必须输入这些值。 具体方法为:

a.在“解决方案资源管理器”中单击“SPD_Workflow_TestFT”工作流项目项。

b.单击“target list (目标列表)”属性旁边的省略号按钮或具有省略号按钮的任何其他属性。

809x111

299x182

c.在“SharePoint 自定义向导”中填入缺少的值。 完成上述操作后,单击“完成”。

11.右击 .xoml 文件并选择“查看设计器”,以便在工作流设计器中查看导入的工作流。

12.在“工具箱”的“Windows Workflow v3.0”部分中,将“代码”活动拖至设计器并将其放置在“SequenceActivity1”活动之下。

这将在工作流设计器中添加一个名为“CodeActivity1”的活动。 在此活动中,您将添加一个代码操作,当用户启动工作流时,该操作会在“通知”列表中创建一个公告。

13.双击“CodeActivity1”以生成事件处理程序并查看代码。

14. 在现有using 或 Imports 语句的下方添加以下内容:

using Microsoft.SharePoint;

using System;

15.用以下内容替换 codeActivity1_ExecuteCode:

private void codeActivity1_ExecuteCode(object sender, System.EventArgs e)<br />
       {<br />
           try<br />
           {<br />
               SPSite site = new SPSite("http://win-3efv2ngqv0h");<br />
               SPWeb web = site.OpenWeb("SPD2");<br />
               SPList announcementsList = web.Lists["通知"];<br />
<br /><br />                SPListItem oListItem = announcementsList.Items.Add();<br />
               oListItem["标题"] = "在" + DateTime.Now.ToString() +"分配了一个任务";<br />
               oListItem.Update();<br />
           }<br />
           catch (Exception err)<br />
           {<br />
               Console.WriteLine("Error: " + err.ToString());<br />
           }<br />
       }

部署项目并关联工作流

接下来,运行 YunCode.WorkFlow.WorkflowImport以将其部署到 SharePoint 站点,然后将工作流与“任务”列表关联起来,以查看和测试经修改的转换后工作流。

1.在 Visual Studio 中,按 F5 以运行和部署转换的工作流项目。

2.单击快速启动栏上的“任务”以显示任务列表。

3.在“列表工具”功能区上单击“项目”,然后单击“新建项目”按钮。

4.在“任务 - 新建项目”对话框的“标题”框中输入“新任务”,然后单击“保存”。

5.此时工作流可以自动启动,如果没有自动启动,可按下面步骤手动启动。

6.单击“新任务”旁边的下拉箭头,并选择“工作流”。

7.在“开始新工作流”部分中,单击针对“SPD任务工作流”的链接,再单击“启动”以启动工作流。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值