将 .wsp 文件导入到 Visual Studio 中
使用“导入可重用工作流”项目将 .wsp 文件导入到 Visual Studio 中。 此项目将工作流从一个可重用的声明性工作流转换为一个代码工作流。 转换工作流之后,您将使用代码来修改其行为。
从 .wsp 文件导入工作流并进行修改
1. 在 Visual Studio 中,通过指向“文件”菜单上的“新建”并单击“新建项目”,显示“新建项目”对话框。
2. 展开“Visual C#”下的“SharePoint”节点,然后单击“2010”。
3. 在“模板”窗格中单击“导入可重用工作流”,将默认的名称修改为“YunCode.Workflow.WorkflowImport”,再单击“确定”。
这将显示“SharePoint 自定义向导”。
4. 在“指定用于调试的站点和安全级别”页上,为您先前创建的第二个 SharePoint 子站点输入 URL:http://系统名称/SPD2。
5. 在“此 SharePoint 解决方案的信任级别是什么?”部分中,保留选择项为“部署为场解决方案”。
6. 在“指定新项目源”页上,浏览到系统上您先前保存 .wsp 文件的位置,然后单击“下一步”。
7. 这将显示可导入的可重用工作流的列表。
8. 在“选择要导入的项”框中,选择工作流“SPD 任务工作流”,然后单击“完成”。
完成导入操作后,将创建一个名为“YunCode.Workflow.WorkflowImport”的项目,其中包含一个名为“SPD_任务工作流FT”的工作流。 此文件夹中包含工作流的定义文件 Elements.xml 和工作流设计器文件 (.xoml)。 该设计器中包含两个文件:规则文件 (.rules) 和代码隐藏文件
9. 将工作流项目项“YunCode.Workflow.WorkflowImport”设置为启动项。
这将在调试项目时立即显示列表。
10. 由于“导入可重用工作流”不会导入已导入的工作流的关联属性值,因此您必须输入这些值。 具体方法为:
a. 在“解决方案资源管理器”中单击“SPD_Workflow_TestFT”工作流项目项。
b. 单击“target list (目标列表)”属性旁边的省略号按钮或具有省略号按钮的任何其他属性。
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) { try { SPSite site = new SPSite("http://win-3efv2ngqv0h"); SPWeb web = site.OpenWeb("SPD2"); SPList announcementsList = web.Lists["通知"]; SPListItem oListItem = announcementsList.Items.Add(); oListItem["标题"] = "在" + DateTime.Now.ToString() +"分配了一个任务"; oListItem.Update(); } catch (Exception err) { Console.WriteLine("Error: " + err.ToString()); } }
部署项目并关联工作流
接下来,运行 YunCode.WorkFlow.WorkflowImport以将其部署到 SharePoint 站点,然后将工作流与“任务”列表关联起来,以查看和测试经修改的转换后工作流。
1. 在 Visual Studio 中,按 F5 以运行和部署转换的工作流项目。
2. 单击快速启动栏上的“任务”以显示任务列表。
3. 在“列表工具”功能区上单击“项目”,然后单击“新建项目”按钮。
4. 在“任务 - 新建项目”对话框的“标题”框中输入“新任务”,然后单击“保存”。
5. 此时工作流可以自动启动,如果没有自动启动,可按下面步骤手动启动。
6. 单击“新任务”旁边的下拉箭头,并选择“工作流”。
7. 在“开始新工作流”部分中,单击针对“SPD任务工作流”的链接,再单击“启动”以启动工作流。