Join us for an expert-led overview of the tools and concepts you'll need to pass exam PL-300. The first session starts on June 11th. See you there!
Get registeredPower BI is turning 10! Let’s celebrate together with dataviz contests, interactive sessions, and giveaways. Register now.
Hola a todos,
Recientemente comencé a usar Asana para el seguimiento del tiempo, pero rápidamente me di cuenta de que sus opciones de informes son bastante limitadas. Aunque hay un conector nativo de Power BI, solo está disponible para planes empresariales, lo que significa que tengo que configurar la conexión a la API desde cero.
Tengo un enlace a la documentación de la API de Asana, que describe los campos disponibles, pero no estoy seguro de cómo configurar Power BI para extraer estos datos a través de la API.
En concreto, me gustaría:
¿Alguien ha hecho esto antes o se ha encontrado con una guía detallada sobre cómo configurar la conexión API base para Asana en Power BI? Si has creado algo similar, me encantaría ver un fragmento de código M de ejemplo o instrucciones paso a paso para empezar.
¡Cualquier ayuda sería muy apreciada!
Nota: Soy consciente de que hay un conector nativo, pero solo trae tareas, por lo que es muy limitado y solo está disponible para clientes empresariales.
Este es el enlace a la documentación de la API: https://forum.asana.com/t/native-time-tracking-read-data/261390/9
¡Gracias de antemano!
Hola @Kaycee ,
En este artículo, se proporciona una guía paso a paso sobre la integración de Power BI con Asana, que incluye cómo conectarse, las características clave y los casos de uso.
Saludos
Esteban Tao
Si esta publicación ayuda, considere Acéptalo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente
Hola @v-stephen-msft,
Gracias por tomarse el tiempo de responder. Esas instrucciones son para la integración nativa de Power BI con Asana. Sin embargo, esto se limita a la información de la tarea y solo está disponible para los clientes Enterprise. Para obtener información de seguimiento del tiempo, Asana recomienda configurar una API.
Kaycee
Hola @Kaycee
Vi su consulta y estaba intrigado por tratar de averiguar esto.
Advertencia: No me especializo en consultar API con Power Query, pero he trabajado anteriormente en la creación de algunas consultas para la API REST de Power BI.
He adjuntado un archivo PBIT (en un archivo ZIP) con algunas consultas iniciales sugeridas. Por favor, eche un vistazo al código M para ver cómo se arma 🙂
Para probar estas consultas:
1. Deberá tener un Token de acceso personal (PAT) de Asana, que puedes generar desde el Consola para desarrolladores de Asana.
2. Cuando abra el PBIT, introduzca el token de acceso personal en el cuadro de diálogo de parámetros.
En este PBIT, el parámetro se almacena directamente como un parámetro, pero, en producción, sugeriría usar un almacén de claves de algún tipo para acceder al PAT.
3. Haga clic en Cargar, luego se actualizarán las tablas cargadas.
4. Las tablas de origen de Asana en este modelo de prueba son:
Mesa | Punto de conexión de API utilizado |
Espacios de trabajo | https://app.asana.com/api/1.0/espacios de trabajo |
Proyectos | https://app.asana.com/api/1.0/projects |
Tareas |
https://app.asana.com/api/1.0/projects
https://app.asana.com/api/1.0/Proyectos/{project_gid}/Tareas
|
Seguimiento del tiempo |
https://app.asana.com/api/1.0/projects
https://app.asana.com/api/1.0/Proyectos/{project_gid}/Tareas
https://app.asana.com/api/1.0/Tareas/{task_gid}/time_tracking_entries
|
Notas sobre las consultas
Las propias consultas se crean a partir de funciones que toman el token y uno o varios otros parámetros.
Por ejemplo, get-Projects es:
let
output = (Token as text) =>
let
structure = [Headers = [accept = "application/json", authorization = "Bearer " & Token]],
apiCall = Json.Document(Web.Contents("https://app.asana.com/api/1.0/projects", structure)),
data = apiCall[data],
resultTable = Table.FromRecords(
data,
type table [gid = text, name = text, resource_type = text]
),
renamedColumns = Table.RenameColumns(
resultTable,
{
{"gid", "Project ID"},
{"name", "Project Name"},
{"resource_type", "Project Resource Type"}
}
)
in
renamedColumns
in
output
La función get-TaskTimeTracking contiene un ejemplo de paginación. La función List.Generate controla la paginación, de forma similar a un bucle while. Fue un poco complicado construir la consulta de tal manera que Power BI no la viera como un "origen de datos dinámico", lo que causaría problemas con la actualización.
Actualización en Power BI Service
Pude actualizar todas las consultas de este PBIT en el servicio Power BI.
Para que la actualización funcione:
La configuración debería tener un aspecto similar al siguiente:
Otras notas:
¡Esperemos que sea lo suficientemente útil para comenzar!
Saludos
Owen