Microsoft Office SharePoint Catalogue > Open XML Blog > Entradas de blog > Subir un documento a Sharepoint mediante Web Services
Subir un documento a Sharepoint mediante Web Services

Código fuente

Objetivos de esta nota:

  1. Ejemplificar una práctica interesante de uso de Web Services
  2. Proveernos de un modo de acceder a una Biblioteca de Documentos sin necesitar acceso al servidor
  3. Cerrar el último componente necesario como para integrar mis últimos envíos al blog en un paquete de generación automática de documentos en Sharepoint

Lo vamos a hacer mediante los siguientes pasos:

  • Generar la Web Reference en nuestro proyecto Visual Studio
  • Utilizar el método de copia remota
    • Apuntar a una Biblioteca de Documentos determinada
    • Agregar alguna Metadata del documento

Generar la Web Reference en nuestro proyecto Visual Studio

Agregar una Web Reference

 

Utilizar el método de copia remota

Referir a http://SuServidorSharepoint/_vti_bin/Copy.asmx

 

Hecho esto vamos a poder utilizar CopyService para "copiar" el contenido de un archivo a una biblioteca Sharepoint.

Vamos a generar una clase que denominaremos Uploader y en ella un método CopyDocumentToLibrary que haga el trabajo necesario una vez que sepa qué documento procesar y dónde guardarlo dentro de Sharepoint.

Sencillo J

Y por comodidad entonces encabezaremos nuestra clase así:

using System;

using System.IO;

using WSClient.CopyService;

 

Apuntar a una Biblioteca de Documentos determinada

var copyObject = new Copy { Url = "http://moss:20001/_vti_bin/copy.asmx", UseDefaultCredentials = true };

byte[] myBinary = File.ReadAllBytes(fullFilePath);

string sourceUrl = @"http://moss:20001/doclibrary/" + itemName;

string[] destinationUrls = { sourceUrl };

Agregar alguna Metadata del documento

var metaDataTitle = new FieldInformation { DisplayName = "Item", InternalName = "Item", Type = FieldType.Text, Value = itemText };

var metaDataModifier = new FieldInformation { DisplayName = "Modified By", InternalName = "Editor", Type = FieldType.User, Value = "-1;#servername\\Mauricio" };

FieldInformation[] info = { metaDataTitle, metaDataModifier };

Y finalmente con toda la información preparada almacenamos en el servidor:

CopyResult[] result = { resultTest };

copyObject.CopyIntoItems(sourceUrl, destinationUrls, info, myBinary, out result);

Y eso es todo: en la librería doclibrary tendremos un nuevo documento.

Código fuente

Comentarios

Aún no hay comentarios sobre esta entrada de blog.