Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.
Hola
Uso una consulta llamando a otra consulta, a través de la API y no puedo actualizar los datos en Power BI.
En Power Query funciona normalmente, pero para ello, para que en Power Query pudiera ejecutar la "consulta desde la consulta" tenía que realizar los siguientes cambios en mi proyecto:
1 - Borre los permisos globales y los permisos locales en la configuración del origen de datos.
2 - Configuración del origen de datos >> Editar permisos: Cambié al nivel de privacidad: ninguno y Credenciales: ninguno
3 - En el menú Opciones >> Privacidad, revisé el elemento: "ignorar siempre la configuración del nivel de privacidad"
Al cambiar los elementos anteriores, en Power Query, mi consulta funciona correctamente. Sin embargo, al intentar aplicar estos cambios al Panel, aparece el siguiente mensaje de error:
- Mi consulta enumera alrededor de 30 mil filas, y noté que si limito mi consulta a la mitad de los datos, funciona normalmente sin el error anterior, en el panel del panel, actualizando los datos correctamente.
Mi pregunta es si hay alguna limitación de límite de datos para cargar en el panel? Y si es así, ¿cómo puedo resolver este problema?
Si no es una limitación de las líneas en la carga, ¿qué podría estar sucediendo para que mi panel no se actualice?
Mi consulta:
let
ufnCallAPI = (numPedido) =>
let
result = Json.Document(Web.Contents("https://api.vhsys.com/", [RelativePath="v2/pedidos/" & Number.ToText(numPedido) & "/produtos",
Headers=[#"access-token"="OCKNYbAMaDgLBZBSQPCOGPWOXGSbdO", #"secret-access-token"="xxxxxxxx"]]))
in
result,
pageRange = listaPedidos_Aquiles2, /* MY OTHER QUERY */
pages = List.Transform(pageRange, each ufnCallAPI(_)),
pages2 = Table.FromList(pages, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
pages3 = Table.ExpandRecordColumn(pages2, "Column1", {"code", "status", "data"}, {"code", "status", "data"}),
pages4 = Table.ExpandListColumn(pages3, "data"),
pages5 = Table.RemoveColumns(pages4,{"code", "status"}),
#"data Expandido" = Table.ExpandRecordColumn(pages5, "data", {"id_ped_produto", "id_pedido", "id_produto", "desc_produto", "qtde_produto", "desconto_produto", "ipi_produto", "icms_produto", "valor_unit_produto", "valor_custo_produto", "valor_total_produto", "valor_desconto", "peso_produto", "peso_liq_produto", "info_adicional", "xPed_produto", "nItem_produto"}, {"id_ped_produto", "id_pedido", "id_produto", "desc_produto", "qtde_produto", "desconto_produto", "ipi_produto", "icms_produto", "valor_unit_produto", "valor_custo_produto", "valor_total_produto", "valor_desconto", "peso_produto", "peso_liq_produto", "info_adicional", "xPed_produto", "nItem_produto"}),
#"Personalização Adicionada" = Table.AddColumn(#"data Expandido", "Empresa", each "Aquiles")
in
#"Personalização Adicionada"
¡Muchas gracias!
Hola @emerson89 ,
¿Lo estás paginando? Intente ejecutarlo con 1 o 2 páginas, sólo para comprobar si recibe este error.
Hola @camargos88 ,
Sí, Mi consulta listaPedidosAquiles es paginate, pero, solo, este trabajo está bien. Lo probé dividiendo la cantidad de página por la mitad, y funcionó bien. Lo probé en 4 páginas también, por ejemplo, y todo funciona normalmente. El problema se produce cuando intento enumerar todos los datos. ¿Alguna idea?
Gracias
Sospecho que el código intenta obtener más páginas que la cantidad disponible.
¿Cómo se define la cantidad de páginas?
Hola @camargos88 ,
Realmente, su observación tiene sentido, sin embargo, cuando ejecuto la consulta que utilizo para separar los números (solicitudes) que se utilizarán como parámetro para la segunda consulta, funciona perfectamente.
Aquí está mi primera consulta:
let
ufnCallAPI = (nPage) =>
let
result = Json.Document(Web.Contents("https://api.vhsys.com/", [RelativePath="v2/pedidos?offset=" & Number.ToText(nPage) & "&limit=250&status=Atendido",
Headers=[#"access-token"="OCKNYbAMaDgLBZBSQPCOGPWOXGSbdO", #"secret-access-token"="xxxxxxxxx"]]))
in
result,
tmpResult = ufnCallAPI(1),
auxTotal1 = Record.ToTable(tmpResult),
Value = auxTotal1{2}[Value],
auxTotal2 = Value[total],
totalItems = auxTotal2,
pageRange = {0..Number.RoundUp(totalItems / 250)-1},
aux = List.Transform(pageRange, each ufnCallAPI(_*250)),
aux2 = Table.FromList(aux, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
aux3 = Table.ExpandRecordColumn(aux2, "Column1", {"code", "status", "paging", "data"}, {"Column1.code", "Column1.status", "Column1.paging", "Column1.data"}),
aux4 = Table.ExpandListColumn(aux3, "Column1.data"),
aux5 = Table.RemoveColumns(aux4,{"Column1.code", "Column1.status", "Column1.paging"}),
aux6 = Table.ExpandRecordColumn(aux5, "Column1.data", {"id_ped", "id_pedido", "id_cliente", "nome_cliente", "id_local_retirada", "id_local_cobranca", "vendedor_pedido", "vendedor_pedido_id", "listapreco_produtos", "valor_total_produtos", "desconto_pedido", "desconto_pedido_porc", "peso_total_nota", "peso_total_nota_liq", "frete_pedido", "valor_total_nota", "valor_baseICMS", "valor_ICMS", "valor_baseST", "valor_ST", "valor_IPI", "condicao_pagamento_id", "condicao_pagamento", "frete_por_pedido", "transportadora_pedido", "id_transportadora", "data_pedido", "prazo_entrega", "referencia_pedido", "obs_pedido", "obs_interno_pedido", "status_pedido", "contas_pedido", "comissao_pedido", "estoque_pedido", "ordemc_emitido", "data_cad_pedido", "data_mod_pedido", "id_aplicativo", "id_pedido_aplicativo", "lixeira"}, {"id_ped", "id_pedido", "id_cliente", "nome_cliente", "id_local_retirada", "id_local_cobranca", "vendedor_pedido", "vendedor_pedido_id", "listapreco_produtos", "valor_total_produtos", "desconto_pedido", "desconto_pedido_porc", "peso_total_nota", "peso_total_nota_liq", "frete_pedido", "valor_total_nota", "valor_baseICMS", "valor_ICMS", "valor_baseST", "valor_ST", "valor_IPI", "condicao_pagamento_id", "condicao_pagamento", "frete_por_pedido", "transportadora_pedido", "id_transportadora", "data_pedido", "prazo_entrega", "referencia_pedido", "obs_pedido", "obs_interno_pedido", "status_pedido", "contas_pedido", "comissao_pedido", "estoque_pedido", "ordemc_emitido", "data_cad_pedido", "data_mod_pedido", "id_aplicativo", "id_pedido_aplicativo", "lixeira"}),
listPedidos = aux6[id_ped]
in
listPedidos
Este código devuelve una lista para mí, por ejemplo:
Lista
1
2
3
48
56
88
89
100
Los números anteriores son números que paso como parámetro en la consulta siguiente llamando a la consulta 1 (listaPedidos_Aquiles):
let
ufnCallAPI = (numPedido) =>
let
result = Json.Document(Web.Contents("https://api.vhsys.com/", [RelativePath="v2/pedidos/" & Number.ToText(numPedido) & "/produtos",
Headers=[#"access-token"="OCKNYbAMaDgLBZBSQPCOGPWOXGSbdO", #"secret-access-token"="xxxxxxxx"]]))
in
result,
pageRange = listaPedidos_Aquiles,
pages = List.Transform(pageRange, each ufnCallAPI(_)),
pages2 = Table.FromList(pages, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
pages3 = Table.ExpandRecordColumn(pages2, "Column1", {"code", "status", "data"}, {"code", "status", "data"}),
pages4 = Table.ExpandListColumn(pages3, "data"),
pages5 = Table.RemoveColumns(pages4,{"code", "status"}),
#"data Expandido" = Table.ExpandRecordColumn(pages5, "data", {"id_ped_produto", "id_pedido", "id_produto", "desc_produto", "qtde_produto", "desconto_produto", "ipi_produto", "icms_produto", "valor_unit_produto", "valor_custo_produto", "valor_total_produto", "valor_desconto", "peso_produto", "peso_liq_produto", "info_adicional", "xPed_produto", "nItem_produto"}, {"id_ped_produto", "id_pedido", "id_produto", "desc_produto", "qtde_produto", "desconto_produto", "ipi_produto", "icms_produto", "valor_unit_produto", "valor_custo_produto", "valor_total_produto", "valor_desconto", "peso_produto", "peso_liq_produto", "info_adicional", "xPed_produto", "nItem_produto"}),
#"Personalização Adicionada" = Table.AddColumn(#"data Expandido", "Empresa", each "Aquiles")
in
#"Personalização Adicionada"
Con los códigos de pedido enviados por parámetros, la API me devuelve la lista de productos para esos pedidos.
Cuando pongo a prueba con pocos datos, todo funciona. Si pruefio con todo el contenido (alrededor de 30 mil líneas), el sistema aparentemente comienza a hacer la operación, veo en el mensaje que todo se está generando correctamente, pero al final, obtengo el mensaje de error.
En realidad puede haber más elementos que devolver, que páginas, pero en este caso, no puedo encontrar el error, porque en esta consulta2, no paso el parámetro de paginación como envío solicitud por solicitud (número), diferente de la consulta 1, que devuelvo una cantidad de elementos por página.
Muchas gracias.
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
1 | |
1 | |
1 | |
1 |