what online getitems for sharepoint csom

getitems - sharepoint online javascript client object model



SharePoint CSOM, recuperando colecciones de sitios. Limitado a 300? (2)

Estoy tratando de recuperar la lista de colecciones de sitios de un dominio de SharePoint Online.

Estoy usando C # y el modelo de objetos del cliente.

El siguiente código devuelve solo 300 colecciones de sitios.

var tenant = new Tenant(ctx); spp = tenant.GetSiteProperties(0, true); ctx.Load(spp); ctx.ExecuteQuery();

¿Alguna idea sobre cómo recuperar TODAS las colecciones de sitios con CSOM?

Gracias


Encontré la respuesta a esta pregunta,

el primer parámetro del método GetSiteProperties es el índice desde el que se inicia la recuperación de la colección de sitios.

Probé el siguiente comando spp = tenant.GetSiteProperties (300, verdadero);

que devolvió las colecciones de sitios del índice 300.

Así que aquí está mi código para obtener todas las colecciones de sitios de sharepoint en línea

SPOSitePropertiesEnumerable spp = null; var tenant = new Tenant(ctx); int startIndex = 0; while (spp == null || spp.Count > 0) { spp = tenant.GetSiteProperties(startIndex, true); ctx.Load(spp); ctx.ExecuteQuery(); foreach (SiteProperties sp in spp) siteCols.Add(new SiteCol(sp.Title, sp.Url)); startIndex += spp.Count; }

Por cierto, las colecciones de sitios están actualmente limitadas a 10000.


Supongo que NextStartIndex no existía en el momento en que se solicitó, hoy en día se puede hacer:

SPOSitePropertiesEnumerable sites; List<string> allSites = new List<string>(); int startIndex = 0; do { sites = tenant.GetSiteProperties(startIndex, false); ctx.Load(sites); ctx.ExecuteQuery(); allSites.AddRange(sites.Select(s => s.Url)); startIndex = sites.NextStartIndex; } while (sites.NextStartIndex > 0);