Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Grow your Fabric skills and prepare for the DP-600 certification exam by completing the latest Microsoft Fabric challenge.

Reply
Syndicate_Admin
Administrator
Administrator

Límite de tiempo en la API

Hola

Soy muy nuevo en Power BI y trato de aprender en el trabajo

He heredado algunas consultas de Power BI que necesito actualizar, pero la persona que las escribió ya no está con la organización, por lo tanto, ¡¡me ayuda un poco!!

Estoy obteniendo datos de una base de datos de Assetic (Enterprise Asseet Management Software) y los estoy incorporando a Power BI

Este es el código que tengo:

dejar
Assetic base URL
asseticUrl = "https://*************.assetic.net",

GUID del perfil de búsqueda avanzada de Assetic
asseticSearchGuid = "*************",

Nombre de usuario de Assetic
asseticNombre de usuario = "****************",

Token de autorización de Assetic
asseticToken = "*************",

Credenciales básicas HTTP Base-64 codificadas

base64Auth = Binary.ToText(

Text.ToBinary(asseticUsername & ":" & asseticToken), BinaryEncoding.Base64

),

Encabezados HTTP

httpHeaders = [

ContentType = "Aplicación/JSON",

Autorización = "Básico" & base64Auth

],

Exportar resultados de perfil de búsqueda avanzada (POST /api/v2/search/{id}/export)

asseticTaskId = Json.Document(

Web.Contents(

asseticUrl,

[

Encabezados = httpHeaders,

RelativePath = "api/v2/search/" & asseticSearchGuid & "/export",

Contenido = Json.FromValue("{}")

]

)

),


Obtener el estado de la exportación (GET /api/v2/backgroundtask/{id})

getAsseticTask = () = > Json.Document(

Web.Contents(

asseticUrl,

[

Encabezados = httpHeaders,

RelativePath = "api/v2/backgroundworker/" & asseticTaskId,

IsRetry = verdadero

]

)

),

Devuelve true si la tarea de exportación se completa dentro de 'n' x 'm' secs

asseticTaskComplete = List.MatchesAny(

List.Repeat({5}, 30),

cada Function.InvokeAfter(() => getAsseticTask(), #duration(0, 0, 0, _)

)[Estado] = "Completado"

),

Espere hasta que se complete la exportación de los resultados

asseticTask = si asseticTaskComplete

entonces

getAsseticTask()

más

error ("La tarea de exportación de Assetic no pudo recuperar los resultados"),

Descargar documento (GET /api/v2/document/{documentId}/file)

asseticFileCsv = Csv.Document(

Web.Contents(

asseticUrl,

[

Encabezados = httpHeaders,

RelativePath = "api/v2/document/" & asseticTask[DocumentId] & "/file"

]

)

),

Promover la primera fila de valores como encabezados de columna

Source = Table.PromoteHeaders(asseticFileCsv)

en

Fuente

La parte del código con la que tengo problemas está en fuente roja. Necesito extender el límite de tiempo antes de que aparezca el mensaje de error "La tarea de exportación de Assetic no pudo recuperar los resultados"

¡Cualquier ayuda es apreciada!

Gracias

GT

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

List.Repeat({5}, 30), 
each Function.InvokeAfter(() => getAsseticTask(), #duration(0, 0, 0, _)

Lo intenta 30 veces y espera cinco segundos entre intentos. Aumentaría un poco el valor de los segundos, ¿realmente necesita verificar cada cinco segundos?

View solution in original post

2 REPLIES 2
Syndicate_Admin
Administrator
Administrator

Gracias Ibendlin

Intentaré aumentar el valor de los segundos. No estoy seguro de por qué se configuró en 5 segundos

Bien

GT

Syndicate_Admin
Administrator
Administrator

List.Repeat({5}, 30), 
each Function.InvokeAfter(() => getAsseticTask(), #duration(0, 0, 0, _)

Lo intenta 30 veces y espera cinco segundos entre intentos. Aumentaría un poco el valor de los segundos, ¿realmente necesita verificar cada cinco segundos?

Helpful resources

Announcements
RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

MayPowerBICarousel1

Power BI Monthly Update - May 2024

Check out the May 2024 Power BI update to learn about new features.