yeiei.net

Integración Continua, QA, Docker,...

Consultas directas a JIRA desde Power BI

A día de hoy, el conector de JIRA con Power BI, no permite hacer consultas en formato JQL para obtener datos. Sería genial poder consultar lo que quieras desde Power BI a JIRA, ¿verdad? Pues te cuento como hacerlo. Solo tienes que seguir este tutorial.

Pasos

Abre Power BI  para escritorio y haz click en Obtener datos -> Consulta en blanco:

Añade dos parámetros con Administrar Parámetros -> Nuevo parámetro. El nombre de los parámetros debe ser:

  • JIRA_URL: La URL de tu instancia de JIRA
    • Por ejemplo: https://jira.atlassian.com
  • QUERY: La consulta que quieras hacer en formato JQL
    • Por ejemplo: project=CLOUD and fixVersion in (releasedVersions()) and type=Improvement and resolution=Fixed

Los parámetros serán de tipo «Texto«:

Haz click con el botón derecho sobre la consulta y ve a Editor Avanzado. Pega este código:

let
Source = Json.Document(Web.Contents(JIRA_URL & "/rest/api/2/search?jql=" & QUERY)),
#"Converted to Table" = Record.ToTable(Source),
#"Transposed Table" = Table.Transpose(#"Converted to Table"),
#"Promoted Headers" = Table.PromoteHeaders(#"Transposed Table", [PromoteAllScalars=true]),
#"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"expand", type text}, {"startAt", Int64.Type}, {"maxResults", Int64.Type}, {"total", Int64.Type}, {"issues", type any}}),
#"Removed Other Columns" = Table.SelectColumns(#"Changed Type",{"total"}),
#"total" = #"Removed Other Columns"{0}[total],
#"startAt List" = List.Generate(()=>0, each _ < #"total", each _ +100),
#"Converted to Table1" = Table.FromList(#"startAt List", Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Renamed Columns" = Table.RenameColumns(#"Converted to Table1",{{"Column1", "startAt"}}),
#"Added Custom" = Table.AddColumn(#"Renamed Columns", "URL", each JIRA_URL & "/rest/api/2/search?maxResults=100&jql=" & QUERY & "&startAt=" & Text.From([startAt])),
data = List.Transform(#"Added Custom"[URL], each Json.Document(Web.Contents(_))),
#"Converted to TableQuery" = Table.FromList(data, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Expanded ColumnIssues" = Table.ExpandRecordColumn(#"Converted to TableQuery", "Column1", {"issues"}, {"issues"}),
#"Expanded issues" = Table.ExpandListColumn(#"Expanded ColumnIssues", "issues"),
#"Expanded issues1" = Table.ExpandRecordColumn(#"Expanded issues", "issues", {"id", "fields"}, {"id", "fields"})
in
#"Expanded issues1"

El crédito del script es para Tiago Machado, que lo compartió en el foro de Power BI. Yo solo le he añadido el uso de parámetros.

En este punto deberías ver algo como esto:

Haz click en el icono para expandir la columna «fields«. En este punto ya puedes seleccionar los valores que quieras importar de JIRA, en forma de columnas de datos.

Para este ejemplo yo he seleccionado «priority» y «resolutiondate«.

Al expandir, verás que el campo «priority» muestra Record en lugar de su valor.

La solución es volver a expandirlo y seleccionar «name» en la lista de columnas:

Pues ya casi está, sólo falta indicarle a Power BI que la columna resolutiondate es de tipo Fecha/Hora y la columna priority es de tipo texto.

Al hacer click en Cerrar y Aplicar, se ejecutará la consulta y se traerá los datos de JIRA.

Como ejemplo, puedes elegir un gráfico de Columnas Apiladas, y mostrar por años la prioridad de las mejoras desarrolladas:

Seguridad

Lo más probable es que tu instancia de JIRA pida nombre de usuario y contraseña para tener permisos para hacer consultas.

Para introducir tus credenciales debes ir a:

  • Configuración de origen de datos -> Selecciona tu URL de JIRA y Editar Permisos
  • En el apartado Credenciales, click en Editar
  • En la pantalla siguiente lo más habitual es el tipo Básico. Escribe tu nombre de usuario y contraseña
  • Personalmente utilizo el modo API Web con un token asociado a mi usuario, así no tengo que actualizar mi configuración cada vez que cambio la contraseña

Espero que esta guía te sea útil. ¡Hasta la próxima!

 

4 Comentarios

  1. Hi! I tried to put your lines and I coudnt, because the POWER BI says an error:
    Expression.Error: A cyclic reference was encountered during evaluation.

    Could you help me?

    • jaruzafa

      19/05/2019 at 07:31

      Hi,
      I’ve tested with the latest Power BI version (2.69.5467.1751 May 2019) and it works ok for me.
      Have you created the JIRA_URL and QUERY parameters before pasting the code?
      If it still doesn’t work, could you give me more details?

      Regards!

  2. Luis Jáuregui

    19/07/2019 at 23:52

    Hola, me pareció muy bueno tu post y lo mejor es que funciona. Sólo una consulta, encontré todos los campos menos el issue key, sabrás cómo puedo encontrarlo?
    Gracias

  3. Lina Quintero

    25/01/2021 at 18:01

    Hola, la autenticación no funciona, me puedes ayudar.

Deja un comentario

© 2024 yeiei.net

Tema por Anders NorenArriba ↑

Si continuas utilizando este sitio aceptas el uso de cookies. más información

Los ajustes de cookies de esta web están configurados para "permitir cookies" y así ofrecerte la mejor experiencia de navegación posible. Si sigues utilizando esta web sin cambiar tus ajustes de cookies o haces clic en "Aceptar" estarás dando tu consentimiento a esto.

Cerrar