Para obtener items usando la busqueda de SharePoint y posteriormente mostrar una tabla de resultados debemos seguir dos pasos: Hacer la query y procesar los resultados.
Para realizar la query podéis utilizar una funcion explicada en este post:
http://www.idttechblog.com/powerquery-crear-query-para-usar-la-busqueda-de-sharepoint-con-rest-api/
Una vez creada la función para hacer la query, debemos obtener los resultados y procesar los datos siguiendo estos pasos (Cada paso se traduce en un nuevo Step dentro de la Query en Excel). Debemos tener en cuenta que el nombre de la Query que hemos creado es “QueryData“, que utilizaremos en el primer paso a continuación.
[Nota: El nombre del Step es el que utilizamos en el siguiente paso para referenciar al resultado del mismo. Comprobad como los nombres corresponden en cada formula con el nombre del paso anterior (diferenciado por colores).]
Obtener los resultados
Step: Source
= QueryData(“contenttype:MyContentTypeName”, “Title,CUSTOM_FIELD1,CUSTOMFIELD2”, “https://mytenant.sharepoint.com/sites/mySite”)
Transformar las celdas
Step: AllRows
= List.Transform(Source, each _[Cells])
Transformar las filas en tablas
Step: RowsToTables
= List.Transform(AllRows, each List.Transform(_, each Record.ToTable(_)))
Cambiar la estructura de tabla a lista
Step: SkelToList
= List.Transform(RowsToTables, each Table.FromList(_, Splitter.SplitByNothing(), null, null, ExtraValues.Error))
Limpiar las filas
Step: CleanRows
= List.Transform(SkelToList, each List.Transform(_[Column1], each Table.PromoteHeaders(Table.RemoveLastN( Table.RemoveColumns( _,{“Name”}), 1) ) ) )
Transponer la tabla
Step: TransposeTable
= Table.FromRows(List.Transform(CleanRows, each List.Transform(_, each Record.FieldValues(_{0}){0} )))
Obtener los nombres de las columnas
Step: ColumnRenames
= List.Transform(CleanRows{0}, each { “Column” & Text.From( List.PositionOf(CleanRows{0}, _) + 1), Table.ColumnNames(_){0}})
Renombrar las columnas de la tabla
Step: RenamedTable
= Table.RenameColumns(TransposeTable, ColumnRenames)
A partir de este punto podemos incluir todos los pasos manuales que necesitemos tales como ocultar columnas, fromatear fechas, dividir campos…
También podéis encontrar un ejemplo completo en Making Thiungs Work en GitHub. El ejemplo contempla un escenario donde los resultados exceden el limite de 500 items que la llamada REST puede obtener,, y realiza una iteración para obtenerlos todos: https://github.com/MakingThingsWorkToronto/SharePointSearchPowerQuery
One Response
[…] http://www.idttechblog.com/powerquery-mostrar-content-type-items-usando-la-busqueda-de-sharepoint/ […]