Manejar la paginación en Zendesk Basic Auth

Un usuario Pregunto ✅

Anónimo

Queridos,

Necesito su ayuda en este Power Query, ya me conecté a MI API de Zendesk y obtuve los datos de ellos y, como saben, solo recupera una página a la vez, así que estoy tratando de recorrer todas las páginas y exportar datos de su . pero tengo un error: «Expresión.Error: el encabezado ‘Autorización’ solo se admite cuando se conecta de forma anónima. Estos encabezados se pueden usar con todos los tipos de autenticación: Aceptar, Aceptar juego de caracteres, Aceptar codificación, Aceptar idioma, Control de caché, Tipo de contenido, Si -Modificado-Desde, Preferir, Rango, Referidor»

que está relacionado con el usuario/contraseña de acceso «autenticación» el código no puede procesar y otorgarles el procesamiento.

este es mi código:

let 
    BaseUrl         = "https://yourdomain.zendesk.com/api/v2/tickets?",
	User		="yourusername",
	Password		="yourpassword",
    EntitiesPerPage = 100,
 
    GetJson = (Url) =>
        let Options = [Headers=[ #"Authorization" = "Basic " & User &":" & Password ]],
            RawData = Web.Contents(Url, Options),
            Json    = Json.Document(RawData)
        in  Json,
 
    GetEntityCount = () =>
        let Url   = BaseUrl & "$count=true&$top=0",
            Json  = GetJson(Url),
            Count = Json[#"@odata.count"]
        in  Count,
 
    GetPage = (Index) =>
        let Skip  = "$skip=" & Text.From(Index * EntitiesPerPage),
            Top   = "$top=" & Text.From(EntitiesPerPage),
            Url   = BaseUrl & Skip & "&" & Top,
            Json  = GetJson(Url),
            Value = Json[#"value"]
        in  Value,
 
    EntityCount = List.Max({ EntitiesPerPage, GetEntityCount() }),
    PageCount   = Number.RoundUp(EntityCount / EntitiesPerPage),
    PageIndices = { 0 .. PageCount - 1 },
    Pages       = List.Transform(PageIndices, each GetPage(_)),
    Entities    = List.Union(Pages),
    Table       = Table.FromList(Entities, Splitter.SplitByNothing(), null, null, ExtraValues.Error)
in
    Table

¿Podría ayudarme con esto? No soy tan experto en la consulta M.

el objetivo es recorrer todas las páginas para obtener los datos.

Muchas gracias.

@v-shex-msft

@v-chuncz-msft

@pdbenbow

Fowmy

@Anónimo

Consulte este video de Miguel Escobar
Puede adaptarlo para que funcione en su escenario.

https://www.youtube.com/watch?v=vhr4w5G8bRA

________________________

Si mi respuesta fue útil, considere Acéptalo como la solución. para ayudar a los otros miembros a encontrarlo

Clickea en el Icono de pulgar hacia arriba si te gusta esta respuesta 🙂

Youtube LinkedIn

Anónimo

En respuesta a Fowmy

@Fowmy muchas gracias por su respuesta, ya pasé por la solución de Matt y es realmente útil.

Pero a lo que me enfrento ahora que, como se ve en el archivo adjunto «(paso ‘Páginas’) está accediendo a fuentes de datos que tienen niveles de privacidad que no se pueden usar juntos. Reconstruya esta combinación de datos». cuando revisé los pasos de carga, todas las páginas se recuperan, ahora son aproximadamente 92 páginas «URL» en mi caso, pero se detuvo en este paso.

número de páginas.PNG

y en el último paso para TableFormList da este error y creo que se debe al error anterior: «Expresión.Error: la fuente de importación no coincide con las exportaciones. ¿Perdió una referencia de módulo?»

¿Alguna idea sobre esto, por favor?

pdbenbow

En respuesta a Anónimo


@Anonimo escribió:

Pero a lo que me enfrento ahora que, como se ve en el archivo adjunto «(paso ‘Páginas’) está accediendo a fuentes de datos que tienen niveles de privacidad que no se pueden usar juntos. Reconstruya esta combinación de datos». cuando revisé los pasos de carga, todas las páginas se recuperan, ahora son aproximadamente 92 páginas «URL» en mi caso, pero se detuvo en este paso.


@Anónimo, consulte este artículo: https://www.poweredsolutions.co/2019/03/12/data-privacy-and-the-formula-firewall/

Del artículo:

“En resumen, lo que está pasando es que dentro de la misma consultaestás tratando de acceder a múltiples fuentes de datos y han sido creados con niveles de privacidad incompatibles, lo que significa que debe dirigirse a la ventana Configuración de fuente de datos y configurar TODAS sus fuentes de datos en esa consulta con el mismo nivel de privacidad; ya sea TODO público o TODO organizacional».

Le recomendamos que cambie todas sus fuentes de datos al nivel de privacidad «Organizacional».

Anónimo

En respuesta a pdbenbow

Muchas gracias, los he revisado todos, y todos iguales. Reescribiré el código y los cargaré en lotes y veré.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *