Estuve investigando un poco para explorar una lista o librería desde los web services y me parecio bien hacer una compilacion de los recaudos a tener en cuenta a la hora de trabajar con este servicio. Primero, el metodo que voy a usar es Lists.GetListItems, la documentación oficial en MSDN la pueden encontrar acá:
http://msdn.microsoft.com/en-us/library/lists.lists.getlistitems.aspx
Primero vamos a la invocacion del metodo, nos pide una serie de parametros que debemos usar de la siguiente manera:
Podemos ver que tenemos varias opciones, pero nos concentraremos particularmente en 4 de los parametros, dejando WebID, ViewName y rowLimit en null, usando los 3 parametros que debemos pasar en formato XmlNode y listName, que indicará el nombre de la lista.
Los parametros que pasaremos en XmlNode son los siguientes:
Query: Una consulta CAML que filtrará la lista. Para los que no hayan trabajado con CAML pueden pueden generar las consultas con una practica herramientita desarrollada por la gente de u2u: http://www.u2u.be/res/Tools/CamlQueryBuilder.aspx (si usan la herramienta asegurense de ingresar la consulta sin el tag )
ViewFields: Aunque de una forma u otra nos devolverá muchisimos atributos 'obligatorios', aquí especificamos cuales queremos utilizar, especificandolos por ejemplo de la siguiente manera para leer los campos ID y Título, cabe destacar, que debemos utilizar los internal names y no el display name:
http://msdn.microsoft.com/en-us/library/lists.lists.getlistitems.aspx
Primero vamos a la invocacion del metodo, nos pide una serie de parametros que debemos usar de la siguiente manera:
Lists.GetListItems(string listName, string viewName, XmlNode query, XmlNode viewFields, string rowLimit, XmlNode queryOptions, string webID)
Podemos ver que tenemos varias opciones, pero nos concentraremos particularmente en 4 de los parametros, dejando WebID, ViewName y rowLimit en null, usando los 3 parametros que debemos pasar en formato XmlNode y listName, que indicará el nombre de la lista.
Los parametros que pasaremos en XmlNode son los siguientes:
Query: Una consulta CAML que filtrará la lista. Para los que no hayan trabajado con CAML pueden pueden generar las consultas con una practica herramientita desarrollada por la gente de u2u: http://www.u2u.be/res/Tools/CamlQueryBuilder.aspx (si usan la herramienta asegurense de ingresar la consulta sin el tag
ViewFields: Aunque de una forma u otra nos devolverá muchisimos atributos 'obligatorios', aquí especificamos cuales queremos utilizar, especificandolos por ejemplo de la siguiente manera para leer los campos ID y Título, cabe destacar, que debemos utilizar los internal names y no el display name:
QueryOptions: En este parametro, definimos una serie de opciones que nos permitiran hilar un poco mas fino con nuestra consulta como por ejemplo:
Entre otros que no voy a explicar en este post.
Una vez que realizamos la llamada al metodo, este nos devuelve un XmlNode, con el resultado de la consulta en el siguiente formato:
observando con detenimiento, cada item es devuelto en un tag z:row, y las columnas de nuestra lista son traidos como atributos del nodo en la forma ows_internalName.
Por ultimo algunas consideraciones para poder traer todos nuestros items. Prestemos atención a las columnas FSObjType, que sera 1 si nuestro item es de tipo Folder, y FileRef si trabajamos con document libraries, nos dara el path completo de nuestro archivo relativo a la DL.
0 comments:
Post a Comment