您的位置:首页 > 运维架构 > 网站架构

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

2011-04-06 22:01 621 查看
创建自定义网站工作流活动

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

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

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.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 活动下方。





3. 保存项目

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

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

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

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

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

4. 单击快速启动栏上显示的名为“Announcements Backup”(通知备份)的链接。 请注意,“通知”列表中包含的所有公告已复制到此新列表中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐