Pregunta

Deseo mover/cortar un elemento de la lista en SharePoint a otra lista.Puedo copiar el elemento a una lista y eliminar el original.Lamentablemente el historial de versiones se pierde.

Quiero una manera de poder copiar un elemento de una lista a otra y mantener el historial.He pensado en intentar utilizar el SPExportObject y SPImportObject.

Tengo el siguiente código para crear un elemento de lista como SPExportObject.

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

No estoy seguro de cómo puedo importar exportObject a mi otra lista.

Ambas listas son del mismo tipo.

¿Fue útil?

Solución

SPExportObject/SPImportObject se puede utilizar para migrar el elemento de la lista, pero solo es un problema que necesita cuidarse es si exporta un elemento desde una base de datos (p. ej.una lista) sin exportar su elemento principal, el elemento exportado quedará huérfano en el paquete.Un paquete puede contener varios objetos huérfanos diferentes (p. ej.si exporta varias listas o elementos de lista diferentes).

Sin embargo, un método de importación nos permite definir un nuevo padre para cada objeto huérfano en el paquete de exportación.Vea este ejemplo para el manejo de la crianza de un elemento de la lista: Al utilizar las API de implementación de contenido, los elementos de lista se duplican cuando los documentos no lo están.

Es importante recordar que hay dos configuraciones importantes que se requieren para que esto funcione:

URL web - esta propiedad define la web que se utilizará como nuevo padre para todos los objetos huérfanos en el paquete de exportación.Este método (por ejemplo) no se puede utilizar si el paquete contiene documentos huérfanos, ya que una web no puede ser el padre de un documento.El padre de un documento debe ser una lista o una carpeta.

Retener identidad de objeto - esto define si se conserva la identidad del objeto durante la importación o no.Si el valor es falso, los objetos obtendrán un nuevo Guid generado durante la importación y será posible asignar un nuevo padre a los objetos huérfanos importados.

Stefan de Microsoft tiene un tutorial realmente bueno sobre la API de migración de contenido

Ver Parte 2 y parte 3 para una visión más detallada

Licenciado bajo: CC-BY-SA con atribución
scroll top