lunes, 20 de julio de 2009

Obtener datos de Listas Sharepoint en un XML, tambien con Filtros

Objetivo:
Obtener los datos que contienen las listas SharePoint en formato XML

Ingredientes:
Web Service http://servidor/sites/SitioEjemplo/_vti_bin/owssvr.dll

Receta:
http://servidor/sites/SitioEjemplo/_vti_bin/owssvr.dll?Cmd=Display&XMLDATA=true&List={GUID_DE_LISTA}

Ejemplo:
http://servidor/sites/SitioEjemplo/_vti_bin/owssvr.dll?Cmd=Display&XMLDATA=true&List={5774DA25-8372-4398-91D4-FAF91FD10B51}

Como filtrar ,con un filtro:
http://servidor/sites/SitioEjemplo/_vti_bin/owssvr.dll?Cmd=Display&XMLDATA=true&List={5774DA25-8372-4398-91D4-FAF91FD10B51}&FilterField1=Nombre_Campo_a_Filtrar&FilterValue1=VALOR_PARA_FILTRAR

Como filtrar, con dos filtros:
http://servidor/sites/SitioEjemplo/_vti_bin/owssvr.dll?Cmd=Display&XMLDATA=true&List={5774DA25-8372-4398-91D4-FAF91FD10B51}&FilterField1=Nombre_Campo_a_Filtrar&FilterValue1=VALOR_PARA_FILTRAR_2&FilterField2=Nombre_Campo_a_Filtrar&FilterValue2=VALOR_PARA_FILTRAR_2

Se pueden poner más Filtros, pero siempre hay que empezar por el 1, y recordar que es CaseSensitive ir añadiendo de esta forma:

FilterField{NUMERO}=Nombre_Campo_a_Filtrar&FilterValue{NUMERO}=VALOR_PARA_FILTRAR

Aquí dejo unas imagenes



Posibles Usos:
Cascading Dropdown, Combos Filtrados, Extracción de datos, InfoPath , cualquier cosa que use XML.

Espero que resulte de utilidad
Saludos RobertoMarcos.com

7 comentarios:

  1. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  2. Hola, como puedo hacer esto mismo, pero con una lista que tiene hijas de otras listas?, lo he intentado pero no me muestra nada, parece que el ID de la lista no fuese el correcto.

    ResponderEliminar
  3. No puedes.
    Tienes que recuperar los datos de cada UNA de las TABLAS (listas) y mediante LINQ podrias hacer la query.
    Si lo que quieres hacer es una Join ... no se puede mediante este metodo.

    Unicamente mediante una Subjoined view con designer, pero no es una buena forma de hacerlo, aunque funciona.
    http://office.microsoft.com/en-us/sharepoint-designer-help/add-a-linked-data-source-HA010115404.aspx#BM1

    ResponderEliminar
  4. Genial, gracias por el comentario; pero lo que deseo es poder recuperar datos de una Lista haciendo uso de algun webservice; intente usar este webservice nativo de sharepoint, (pero no entiendo muy bien los parametros):

    ListDataRetrieval http:///_vti_bin/DspSts.asmx.

    Es por ello que luego decidí hacerlo de la forma que propones en este post, trayendo los datos de la lista en XML, pero el problema que me ha surgido es que la lista contiene hijas. Que me sugieres?.

    ResponderEliminar
  5. Hola, trato de obtener los datos de una lista que utilizo para las tareas un workflow, cuando coloco el guid de la lista, me muestra una pagina en blanco, he tratado de hacerlo con otra lista o libreria y si me devuelve datos.
    Que puede estar pasando?
    Gracias por el apoyo de antemano.

    ResponderEliminar
  6. Hola, no me esta funcionando el filtro, puedes colocar un ejemplo de como quedaria filtrado y el resultado que te aroja?

    ResponderEliminar