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

创建自定义网站工作流活动

首先,创建一个用来包含和测试自定义工作流活动的项目。

创建网站工作流自定义活动项目

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

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

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

4.       名称框中,键入 YunCode.WorkFlow.CustomActivity,然后单击确定

SharePoint 2010 工作流解决方案:创建自定义网站工作流活动_第1张图片

这将显示“SharePoint 自定义向导

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

此步骤还会将解决方案的信任级别设置为场解决方案(工作流项目的唯一可用选项)。

指定用于调试的工作流名称页上,接受默认名称 (YunCode.WorkFlow.CustomActivity – CAWorkflow)

6.       将工作流模板类型更改为网站工作流,然后单击下一步

7.    单击完成以接受剩余的默认设置。

SharePoint 2010 工作流解决方案:创建自定义网站工作流活动_第2张图片

SharePoint 2010 工作流解决方案:创建自定义网站工作流活动_第3张图片

 

添加自定义工作流活动类

接下来,向项目中添加一个类以包含自定义工作流活动的代码。

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.ActivityExecutionStatus Execute(System.Workflow.ComponentModel.ActivityExecutionContext 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 活动下方。

SharePoint 2010 工作流解决方案:创建自定义网站工作流活动_第4张图片

SharePoint 2010 工作流解决方案:创建自定义网站工作流活动_第5张图片

3.  保存项目

 

 

测试网站工作流自定义活动

紧接着,运行项目并启动网站工作流。 自定义活动会创建一个备份的公告列表,然后将当前公告列表中的内容复制到该列表中。 在创建备份列表之前,代码还会检查是否已存在备份列表。 如果已存在备份列表,则会将其删除。 代码还会向 SharePoint 网站的快速启动栏上的新列表中添加链接。

1.       F5 运行项目,并将其部署到 SharePoint

2.       在快速启动栏上,单击列表以显示 SharePoint 网站中可用的所有列表。 请注意,仅有一个名为公告的公告列表。

3.       SharePoint 网页顶部,单击网站操作按钮,再单击网站工作流 启动新工作流部分下,单击 YunCode.WorkFlow.CustomActivity – CAWorkflow 的链接。 这将启动网站工作流,并运行自定义操作中的代码。

4.       单击快速启动栏上显示的名为“Announcements Backup”(通知备份)的链接。 请注意,通知列表中包含的所有公告已复制到此新列表中。  

你可能感兴趣的:(工作,活动,公告,Class,SharePoint,2010)