Estoy utilizando el servicio web GetListItems y solo devuelve aproximadamente el 50% de los resultados almacenados. ¿Existe un límite en la cantidad de datos que se pueden devolver? ¿Hay de todos modos alrededor de esto?Sharepoint Web Service GetListItems no devuelve todas las filas
Respuesta
El método recupera solo el número de filas en la vista predeterminada de la lista. Para resolver este problema, simplemente puede aumentar el recuento de filas en su vista predeterminada, o mejor aún, usar consultas CAML. He aquí un artículo sobre el uso de CAML con los servicios web: http://dotnet.org.za/zlatan/archive/2007/08/01/collaborative-application-markup-language-caml-and-webservices-in-sharepoint-2007.aspx
Ese enlace está roto. Gorrón. –
Consulte this el número de filas devueltas se basa en la Vista que ha utilizado, Cambie el límite de línea en la Vista.
Prueba de esto, SharePoint List Web Service GetListItems
Desde mi experiencia que usted tiene dos opciones: 1. Cambiar la vista que se utiliza cuando se llama al método GetListItems a la vista correcta que devuelve todas las filas 2. Compruebe y vea si colocó un límite de línea en su método getlistitems. Si desea devolver todo lo que tiene en la vista actual, puede usar "0", consulte el siguiente ejemplo: XmlNode doc = doclist.GetListItems ("Mi lista", "Mi vista", consulta, campos de visión, "0", queryOptions , nulo);
También puede intentar ir a su sitio de SharePoint, ir a la lista desde la que está seleccionando configuraciones y modificar la vista predeterminada/crear su propia vista y expandir el grupo de Totales. Debajo del grupo Totales, busque un identificador único para su lista (por ejemplo, ID) y luego, en el menú desplegable junto a él, seleccione COUNT y luego guarde su vista. Una vez que la lista vuelva a cargar, compare el número total que ahora se mostrará en esta vista con la cantidad de elementos devueltos por su consulta. Avíseme si todavía no son lo mismo. :)
GetListItems() limita los resultados en función del Límite de fila de la Vista que está utilizando como el segundo parámetro en la llamada al método. Si tiene que ser devueltas todas las filas:
- ir a su sitio de SharePoint usando su favorito (o menos favorito) Navegador Web
- Navegar hasta la Lista
- seleccionar la vista que se corresponde con el GUID que está utilizando como el segundo parámetro de su llamada al método GetListItems() (vea el ejemplo a continuación)
- Seleccione (del menú desplegable Ver) "Modifique esta vista"
- Desplácese hasta el final y expanda "Límite del artículo" "
- conjunto un número alto (utilicé 9000) como "Número de elementos para mostrar" y seleccione "Limitar el número total de elementos devueltos a la cantidad especificada".
Haga clic en Aceptar.
Service.GetListItems (ListGuid, ViewGuid, consulta, ViewFields, RowLimit, queryOptions, null);
Si el parámetro método RowLimit es inferior a limitar la vista de fila se había establecido en SharePoint, a continuación, los resultados se limitan al valor del parámetro.
Solo como referencia para otras personas que llegan desde Google.
Necesito extraer datos de un sistema heredado y tengo este mismo problema exacto. La diferencia es que no tenía control sobre la lista de sharepoints, así que no puedo cambiar la vista predeterminada.
var items = listSvc.GetListItems(listname, null, null, null, null, null);
var pager = items.ChildNodes[1].Attributes["ListItemCollectionPositionNext"] != null ? items.ChildNodes[1].Attributes["ListItemCollectionPositionNext"].Value : string.Empty;
var pagerXml = new XmlDocument();
pagerXml.InnerXml = "<QueryOptions><Paging ListItemCollectionPositionNext=\"\" /></QueryOptions>";
var pagerNode = pagerXml.GetElementsByTagName("QueryOptions")[0];
while (!string.IsNullOrEmpty(pager))
{
pagerNode.ChildNodes[0].Attributes[0].Value = pager;
var temp = listSvc.GetListItems(listname, null, null, null, null, pagerNode);
foreach (XmlNode c in temp.ChildNodes[1].ChildNodes)
{
var c2 = items.OwnerDocument.ImportNode(c, true);
items.ChildNodes[1].AppendChild(c2);
}
pager = temp.ChildNodes[1].Attributes["ListItemCollectionPositionNext"] != null ? temp.ChildNodes[1].Attributes["ListItemCollectionPositionNext"].Value : string.Empty;
}
Este es un código de uso del tiempo, así que lo dejo al lector para poner en orden para arriba: D
pero la esencia es, si no se puede conseguir en una llamada, sólo conseguirlo en lotes usando el tamaño de página de vista como el tamaño del lote. El último argumento de GetListItems()
acepta un parámetro XmlNode
y se puede pasar algo como:
<QueryOptions><Paging ListItemCollectionPositionNext="{paging-option}" /></QueryOptions>
donde {paging-option}
es el valor del atributo (mismo nombre) de rs:data
Conjunto RowLimit a 0
var rowLimit = "0";
var result = client.GetListItems("ListName", null, query, viewFields, rowLimit, queryOptions, null);
Tenga cuidado con los tiempos de espera. Si tiene muchos elementos en su lista de SharePoint, puede presionar http timeout. Los tiempos de espera se pueden cambiar en IIS y web.config de su sitio de SharePoint
- 1. función exec no devuelve todas las filas
- 2. combinación izquierda no devolver todas las filas
- 3. mySQL devuelve todas las filas cuando campo = 0
- 4. get_posts no devuelve todas las publicaciones
- 5. devolver todas las filas duplicadas
- 6. sqlalchemy, seleccione todas las filas
- 7. Left Outer Join no devuelve todas las filas de mi tabla izquierda?
- 8. Web Service wrapper
- 9. .Net Web Service Logging
- 10. SOA/Web Service Pagination
- 11. Eliminar filas duplicadas (no eliminar todas las duplicadas)
- 12. ¿Por qué mi consulta con LIKE '% \ _' devuelve todas las filas y no solo las que terminan en un guión bajo?
- 13. Actualizar una columna, todas las filas
- 14. Java: Eliminar todas las filas de DefaultTableModel
- 15. Obtener todas las filas creadas hoy
- 16. Cómo desmarcar todas las filas usando UITableViewCellAccessoryCheckmark
- 17. Borrar todas las filas en la tabla
- 18. Obtenga todas las filas editadas en jqgrid
- 19. cómo borrar todas las filas de UITableView
- 20. ¿Cómo mostrar todas las filas en jqGrid?
- 21. actualizar una columna para todas las filas
- 22. SQL borrar todas las filas excepto algunos
- 23. SOAP Web Service/VS2010 Add Service Reference
- 24. Android Web Service Tutorial
- 25. Sharepoint: ¿cómo puedo encontrar todas las páginas que alojan un elemento web en particular?
- 26. Recibir sesión en .NET ASMX web-service
- 27. ¿Por qué column = NULL no devuelve filas?
- 28. wcf json web service
- 29. Adjuntar EventReceiver a todas las listas de un sitio sharepoint
- 30. Mysql recuperar todas las filas con límite de
Podría compartir el mecanismo (código, si es posible) que está utilizando para recuperar los datos. Además, ¿cuántos elementos está recuperando y cuántos totales hay en la lista? –