我希望将项目从SharePoint中的列表移动/剪切到另一个列表。我可以将项目复制到列表中并删除原始项目。可悲的是版本历史记录丢失。

我想要一种方法,能够将项目从一个列表复制到另一个列表,并保留历史记录。我想过要用 SPExportObjectSPImportObject.

我有以下代码来创建一个列表项作为一个 SPExportObject.

SPExportObject exportObject = new SPExportObject();
exportObject.Id = listItem.UniqueId;
exportObject.Type = SPDeploymentObjectType.ListItem;

我不确定我现在如何将exportObject导入到我的其他列表中。

两个列表都是相同的类型。

有帮助吗?

解决方案

SPExportObject/SPImportObject 可用于迁移列表项,但仅发出您需要 照顾照顾自家。 是如果您从数据库导出项目(例如一个列表)如果不导出它的父项,那么导出的项将在包中成为孤立项。一个包可以包含多个不同的孤立对象(例如如果导出多个不同的列表或列表项)。

但是,导入方法允许我们为导出包中的每个孤立对象定义一个新的父级。有关列表项的父项处理,请参阅此示例: 使用内容部署Api,ListItem是复制的,当文档不是

重要的是要记住,有两个重要的设置需要得到这个工作:

WebUrl -此属性定义将用作导出包中所有孤立对象的新父级的web。如果包包含孤立文档,则不能使用此方法(例如),因为web不能是文档的父级。文档的父级需要是列表或文件夹。

[医]固定性 -这定义是在导入期间保留对象标识还是不保留标识。如果值为false,则对象将在导入期间获得新的生成Guid,并且可以为导入的孤立对象分配新的父级。

来自微软的斯特凡与内容迁移API有很好的步行

第二部份第三部份 更详细的见解

许可以下: CC-BY-SA归因
scroll top