omeallynile
Oigan todos,
He estado tratando de aprovechar el historial de revisión de Sharepoint para comparar un informe que recibimos diariamente con datos históricos. Escribí algunas cosas en REST y logré aislar las URL para versiones anteriores, y si abro ese enlace en un navegador, de hecho obtiene la versión anterior.
Sin embargo, cuando paso eso a Web.Contents(), insiste en ‘ayudar’ e intenta usar GetByServerRelativeUrl(‘_vti_history/…/file.xlsx’)/$value. Entiendo que si fuera para un archivo actual estaría bien, pero para el historial de versiones no lo es.
Por el momento, lo he engañado para que funcione usando http en lugar de https, pero ¿alguien tiene alguna idea de cómo hacer que funcione correctamente o es esta mi única opción?
v-shex-msft
Hola @omeallynile,
¿Puede explicar más acerca de cómo dividir dos versiones? ¿Quiso decir que los datos históricos se basan en el archivo actual y algún filtro?
Saludos,
Xiaoxin-sheng
omeallynile
En respuesta a v-shex-msft
Hola @v-shex-msft,
Gracias por responder,
El archivo PiwerBi hace referencia a un archivo de Excel en SharePoint. Ese archivo de Excel se nos envía por correo electrónico todos los días y se coloca en SharePoint usando Flow.
Hemos habilitado el control de versiones, de modo que cuando se copia ese archivo, sobrescribe el archivo existente y lo guarda como una nueva versión. Esto significa que podemos ver versiones anteriores a voluntad.
La API REST puede devolver información de versión para cualquier archivo dado, con un enlace a ese archivo en sí mismo, que se parece a ‘https://tenant.sharepoint.com/_vti_history/[version]/[path]’.
Ese archivo descarga la versión con la que corresponde. No hay problema allí. Esto tiene los datos históricos porque es una versión antigua del mismo archivo. Me siento cómodo con ese proceso. Avíseme si necesito reformular esta parte.
Sin embargo, mi problema es la forma en que PowerBi maneja ese camino. Si estuviera descargando un archivo normal en reposo, usaría ‘https://tenant.sharepoint.com/_api/GetFileByServerRelativeUrl(‘[path]’)/$valor’. Para versiones anteriores, no puedo usar esto. Tengo que usar la ruta absoluta como se mencionó anteriormente. PowerBi intenta ayudarme utilizando la parte relativa al servidor de la ruta anterior, excepto que no puede hacerlo con _vti_history.
Entonces, lo que necesito es que básicamente use la URL que le doy y no intente ayudarme. Lo único que parece que puedo hacer que esto funcione es usar http en lugar de https. Me pregunto si hay otra manera.
¡Ojalá eso tenga un poco más de sentido!
v-shex-msft
En respuesta a omeallynile
Hola @omeallynile,
¿Cómo obtuvo los datos del archivo anterior? Tal vez pueda intentar usar el conector web con la opción ‘ruta relativa’:
let Source = Web.Contents("https://tenant.sharepoint.com", [Headers=[#"key"=mykey], RelativePath="/_api/GetFileByServerRelativeUrl('[path]')/$value"]) in Source
Saludos,
Xiaoxin-sheng