SharePoint 2010 工作流解决方案:创建自定义网站工作流活动


SharePoint 2010 工作流解决方案:创建自定义网站工作流活动
2011年04月06日
  创建自定义网站工作流活动 首先,创建一个用来包含和测试自定义工作流活动的项目。 1.       通过指向"文件"菜单上的"新建"并单击"新建项目",显示"新建项目"对话框。
  2.       展开"Visual C#"下的"SharePoint"节点,然后单击"2010"。
  3.       在"模板"窗格中选择"顺序工作流"。
  4.       在"名称"框中,键入YunCode.WorkFlow.CustomActivity,然后单击"确定"。
  
  这将显示"SharePoint 自定义向导"。
  5.       在"要使用哪个本地网站进行调试?"页中,单击"下一步"
  以接受默认网站。
  此步骤还会将解决方案的信任级别设置为场解决方案(工作流项目的唯一可用选项)。 在"指定用于调试的工作流名称"页上,接受默认名称 (YunCode.WorkFlow.CustomActivity   CAWorkflow)
  6.       将工作流模板类型更改为"网站工作流",然后单击"下一步"。
  7.    单击"完成"以接受剩余的默认设置。
  
  
  添加自定义工作流活动类 接下来,向项目中添加一个类以包含自定义工作流活动的代码。
  1.       单击"项目"菜单上的"添加新项"以显示"添加新项"对话框。
  2.       在"已安装的模板"树视图中,单击"代码"节点,然后在项目项模板列表中单击"类"。使用默认名称 Class1。
  3.       将 Class1 中的所有代码替换为:   using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.SharePoint; namespace YunCode.WorkFlow.CustomActivity { public class Class1 : System.Workflow.ComponentModel.Activity { public Class1() { } protected override System.Workflow.ComponentModel.ActivityExecutionSt atus Execute(System.Workflow.ComponentModel.ActivityExe cutionContext executionContext) { try { SPSite site = new SPSite("http://" + System.Environment.MachineName); SPWeb web = site.OpenWeb("/"); SPList aList = web.GetList("/Lists/Announcements"); try { SPList bList = web.GetList("/Lists/Announcements Backup"); bList.Delete(); } catch { } Guid newAnnID = web.Lists.Add("Announcements Backup", "A backup Announcements list.", SPListTemplateType.Announcements); SPList bakList = web.Lists[newAnnID]; foreach (SPListItem item in aList.Items) { SPListItem newAnnItem = bakList.Items.Add(); foreach (SPField field in aList.Fields) { if (!field.ReadOnlyField) newAnnItem[field.Id] = item[field.Id]; } newAnnItem.Update(); } bakList.OnQuickLaunch = true; bakList.Update(); } catch (Exception errx) { System.Diagnostics.Debug.WriteLine("Error: " + errx.ToString()); } return base.Execute(executionContext); } } }  4.       保存项目,然后单击"生成"菜单上的"生成解决方案"。
  Class1 将作为工具箱中"SharePoint 工作流"选项卡下的"工具箱"中的自定义操作出现。 向网站工作流中添加自定义活动 接下来,向工作流中添加一个活动以包含自定义代码。
  1.       在设计视图中,在工作流设计器内打开 Workflow1。
  2.       单击 Class1 并将其从工具箱中拖放到onWorkflowActivated1活动下方。
  
  
  3.  保存项目
  测试网站工作流自定义活动 紧接着,运行项目并启动网站工作流。自定义活动会创建一个备份的公告列表,然后将当前公告列表中的内容复制到该列表中。在创建备份列表之前,代码还会检查是否已存在备份列表。如果已存在备份列表,则会将其删除。代码还会向 SharePoint 网站的快速启动栏上的新列表中添加链接。
  1.       按 F5 运行项目,并将其部署到 SharePoint。
  2.       在快速启动栏上,单击"列表"以显示 SharePoint 网站中可用的所有列表。请注意,仅有一个名为"公告"的公告列表。
  3.       在 SharePoint 网页顶部,单击"网站操作"按钮,再单击"网站工作流"。在"启动新工作流"部分下,单击YunCode.WorkFlow.CustomActivity   CAWorkflow 的链接。这将启动网站工作流,并运行自定义操作中的代码。
  4.       单击快速启动栏上显示的名为"Announcements Backup"(通知备份)的链接。请注意,"通知"列表中包含的所有公告已复制到此新列表中。  

猜你喜欢

转载自qwp57qwp.iteye.com/blog/1361889
今日推荐