Actualización programada con fuente web que no funciona

Un usuario Pregunto ✅

Anónimo

Hola a todos,

He creado un informe de PBI en PBI Desktop utilizando la base de datos SQL y la Web como fuentes de datos.

La fuente web se utiliza para llamar a http://useragentstring.com y el informe pasa los valores del agente de usuario en una tabla para extraer datos relacionados con el agente de usuario (a través de la función invocada)

Fuente = Json.Document (Web.Contents («http://useragentstring.com/?uas=» & userAgent_URLEncoded & «& getJSON = all»)),

Todo funciona bien en PBI Desktop; la actualización del informe funciona allí. Sin embargo, no funciona cuando publico el informe en el servidor de informes de PBI local y ejecuto una actualización programada.

El error es:

SessionID: f327bfa4-fb1c-4662-ab33-a1340c81e00f
[0] -1055784932: Credentials are required to connect to the Web source. (Source at http://useragentstring.com/.). The exception was raised by the IDbCommand interface.
[1] -1055129594: The current operation was cancelled because another operation in the transaction failed.
[2] -1055784932: The command has been canceled.. The exception was raised by the IDbCommand interface.

Si voy a Fuentes de datos en el lado izquierdo, solo muestra la fuente de datos SQL allí y la he autenticado usando una cuenta de servicio con éxito.

La fuente web no aparece en esta sección.

Cuando voy a PBI Desktop> Editar consultas> Configuración de fuente de datos, en «Fuentes de datos en el archivo actual», solo muestra la fuente SQL allí, aunque hay una advertencia sobre los botones que dice «Es posible que algunas fuentes de datos no aparezcan porque de consultas escritas manualmente «. No estoy seguro de para qué sirve esta advertencia y si es relevante para este problema.

Si voy a PBI Desktop> Editar consultas> Configuración de fuente de datos, en «Permisos globales», puedo ver http://useragentstring.com/ allí y si hago clic en Editar permisos, el tipo de credenciales es Anónimo con nivel de privacidad = Ninguno.

No estoy seguro de por qué http://useragentstring.com/ está en «Permisos globales» y no en «Fuentes de datos en el archivo actual».

¿Puede ser esta la razón por la que la actualización programada no funciona porque el permiso para esa URL no está configurado explícitamente en el archivo?

Si es así, ¿cómo puedo agregar esta fuente de datos a la sección «Fuentes de datos en el archivo actual»?

Gracias

PD: Si hay una forma mejor (y gratuita) de extraer datos útiles (por ejemplo, tipo de sistema operativo, versión del sistema operativo, información del navegador, etc.) a partir de valores de agente de usuario dados, hágamelo saber también.

Anónimo

En respuesta a Grumelo

Logré resolver el problema con la actualización programada mediante el método de este blog.

https: //blog.crossjoin.co.uk/2016/08/23/web-contents-m-functions-and-dataset-refresh-errors-in-power …

roman_gorbunov

Hola, en mi caso similar, la solución fue la siguiente: se agregaron fuentes web (a través de API) en la sección de conexión de la puerta de enlace (en el servicio PBI) y en la configuración, se omitió la verificación de conexión y el nivel de privacidad es ninguno.

amkhullar

También tengo un problema similar y para resolverlo lo hice a continuación según la publicación de @Anonymous

Tengo una URL de API que funciona así:
https://jira.company.com/rest/api/2/issue/RC-2345/worklog

para obtener los datos de JIRA, el parámetro es «RC-2345» en esta url, el resto es estático, ¿cómo podemos crear una función similar para pasar el JIRAID como parámetro, https://jira.company.com/rest/api / 2 / problema / JIRAID / worklog

Probé la siguiente función de muestra pero no la pasa correctamente.

let WorkLog = (JIRAID as text) =>        
    let Source   = Json.Document(Web.Contents("https://jira.company.com/rest/api/2/issue", [Query=[JIRAID]], [RelativePath="worklog/"]))
    in  Source
in WorkLog

pero me sale el error como

Se produjo un error en la consulta ‘CalcWorkLog’. Expression.Error: se pasaron 3 argumentos a la función que espera entre 1 y 2.
Detalles:
Patrón =
Argumentos =[List]

amkhullar

En respuesta a amkhullar

Pude corregir el error mediante el enfoque a continuación, pero el problema de sincronización aún existe para la actualización de datos:

let WorkLog = (JIRAID as text) =>        
    let Source   = Json.Document(Web.Contents("https://jira.company.com/rest/api/2/issue/" & ""&JIRAID&"", [RelativePath="worklog/"]))
    in  Source
in WorkLog

Creó un parámetro como se muestra en esta URL http://prntscr.com/pm3wod con un valor predeterminado.

El error en la sincronización del conjunto de datos es el siguiente

You can't schedule refresh for this dataset because the following data sources currently don't support refresh:
Data source for "JIRA Sub Task WorkLog"
Data source for "JIRA Main Task WorkLog"
Discover Data Sources
Query contains unsupported function. Function name: Web.Contents

dpombal

En respuesta a amkhullar

El mismo problema … similar al mío … la solución bidax no es válida para mí

Patrick_05

En respuesta a dpombal

Hola,

La actualización de mi programa no funcionará y me da el siguiente error (ver más abajo). Estoy usando el servidor de informes local. La fuente de datos es Smartsheet y SharePoint. Puedo ir manualmente a Power BI Desktop y actualizar el informe; sin embargo, ¿la actualización programada no funcionará en el servidor de informes? ¿No se admite la actualización de la programación en el servidor de informes?

Gracias,

Patricio

Detalles del mensaje de error:

Se produjeron varios errores durante la actualización de datos. Vuelva a intentarlo más tarde o póngase en contacto con su administrador.

[0] -1055784932: Las tablas de Smartsheet de importación no coinciden con las exportaciones. ¿Te perdiste una referencia de módulo?

Smallegrue

@Anónimo, ¡tu solución funcionó a la perfección! ¡Gracias!

Matija

Tengo el mismo problema. Recibo un mensaje sobre el conjunto de datos en el servicio Power BI: La consulta contiene una función no admitida. Nombre de la función: Web.Contents. En la configuración de Data Sorce en Power BI Desktop, veo: «Es posible que algunas fuentes de datos no aparezcan en la lista debido a consultas escritas manualmente», aunque cambié todas las fuentes de datos a Público como se sugiere en este blog.

Aparentemente, recientemente se agregó una función de conexión de prueba de omisión que podría resolver este problema, pero no puedo encontrarla en el servicio Power BI (o en el escritorio para el caso).

¿Alguna idea de poder a la gente?

Matija

En respuesta a Matija

Alguien tiene una idea?

¿Quizás haya una mejor manera de obtener datos de la API, algo que pueda usar en lugar de la función Web.contents?

dpombal

En respuesta a Matija

Hola a todos, tengo los mismos problemas con la actualización programada

En contenido, obtengo el contenido de un archivo de Excel en sharepoint

CUSTOM_FUNCTION

(contenido) =>
dejar
Origen = Excel.Workbook (Web.Contents (contenido), nulo, verdadero),
# «ATR Contract Report_Sheet» = Origen {[Item=»ATR Contract Report»,Kind=»Sheet»]}[Data],
# «XXX» = Table.PromoteHeaders (# «ATR Contract Report_Sheet», [PromoteAllScalars=true]),
# «XX»

dejar
Origen = SharePoint.Files («https://sharepoint.com/teams/XXXXX/», [ApiVersion = 15]),
# «Filas filtradas» = Table.SelectRows (Origen, cada Text.Contains ([Folder Path], «Datos/»)),
# «Otras columnas quitadas» = Table.SelectColumns (# «Filas filtradas2», {«Content», «Name», «Folder Path»}),
# «Columna duplicada» = Table.DuplicateColumn (# «Otras columnas quitadas», «Nombre», «Nombre – Copia»),
# «Valor reemplazado» = Table.ReplaceValue (# «Columna duplicada», «ATRContract_Report _», «», Replacer.ReplaceText, {«Name – Copia»}),
# «Columnas con nombre cambiado» = Table.RenameColumns (# «Valor reemplazado», {{«Nombre – Copia», «Fecha»}}),
# «Primeros caracteres extraídos» = Table.TransformColumns (# «Columnas con nombre cambiado», {{«Fecha», cada Text.Start (_, 8), type text}}),
# «Tipo cambiado» = Table.TransformColumnTypes (# «Primeros caracteres extraídos», {{«Fecha», type date}}),
# «Columnas reordenadas» = Table.ReorderColumns (# «Tipo cambiado», {«Fecha», «Nombre», «Ruta de carpeta», «Contenido»}),
# «Personalizada agregada» = Table.AddColumn (# «Columnas reordenadas», «Personalizado», cada CUSTOM_FUNCTION([Folder Path]Y[Name])),
# «Columnas quitadas» = Table.RemoveColumns (# «Personalizada agregada», {«Ruta de carpeta», «Contenido»}),

Gracias por adelantado

Grumelo

Tengo el mismo problema.

También estoy usando muchas consultas web generadas.

Para algunos de ellos, pasar la credencial en el encabezado http combinado con un trabajo de autenticación anónimo.

Desafortunadamente, la mayoría de mis llamadas de contenido web generadas obtienen los datos de SharePoint en las instalaciones.

La autenticación de la fuente de datos en el servidor de informes de Power BI no es realmente buena.

Deberíamos poder definirlo de la misma manera que los permisos globales en Power BI Desktop.

El concepto de fuente de datos se hereda del servidor de informes que no es capaz de manejar consultas dinámicas.

Realmente se necesita una mejora de Microsoft, este problema es actualmente un factor decisivo para la puesta en marcha de Power BI Report Server en mi empresa.

Anónimo

En respuesta a Grumelo

Logré resolver el problema con la actualización programada mediante el método de este blog.

https: //blog.crossjoin.co.uk/2016/08/23/web-contents-m-functions-and-dataset-refresh-errors-in-power …

danielntamasi

En respuesta a Anónimo

Seguí esto, fue impecable :). ¡Gracias!

Deja un comentario

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