我已经创建了两个自定义列表,并且能够使用 sharepoint Designer 2010 中的工作流程将列表项从一个列表复制到另一个列表。但我的要求是使用工作流程将一个列表中的所有项目复制到另一个列表中。我在谷歌上搜索过相同的,我没有找到正确的解决方案,任何人都可以提出相同的想法吗?
提前致谢。
我已经创建了两个自定义列表,并且能够使用 sharepoint Designer 2010 中的工作流程将列表项从一个列表复制到另一个列表。但我的要求是使用工作流程将一个列表中的所有项目复制到另一个列表中。我在谷歌上搜索过相同的,我没有找到正确的解决方案,任何人都可以提出相同的想法吗?
提前致谢。
您应该创建一个新的自定义工作流活动来执行此操作。这是执行此操作的示例代码。有关创建新工作流活动的更多信息,请查看此链接: http: //msmvps.com/blogs/sundar_narasiman/archive/2010/12/26/develop-custom-workflow-activity-for-sharepoint-2010-workflow.aspx
private void ProcessActivity(ISharePointService service)
{
using (SPWeb web = (SPWeb)(SPContext.Current.Web))
{
SPList sourceList = web.Lists[sourceListid];
SPListItemCollection ic = sourceList.Items;
foreach (SPItem i in ic)
{
SPListItem item = sourceList.Items.GetItemById(Convert.ToInt32(i.["ID"].ToString()));
CopyItems(item,DestinationListName);
}
}
}
private SPListItem CopyItems(SPListItem sourceItem, string destinationListName)
{
//Copy sourceItem to destinationList
SPList destinationList = sourceItem.Web.Lists[destinationListName];
SPListItem targetItem = destinationList.Items.Add();
foreach (SPField f in sourceItem.Fields)
{
//Copy all except attachments.
if (!f.ReadOnlyField && f.InternalName != "Attachments"
&& null != sourceItem[f.InternalName])
{
targetItem[f.InternalName] = sourceItem[f.InternalName];
}
}
targetItem.Update();
return targetItem;
}
祝你好运。