Quantcast
Channel: Power Query topics
Viewing all articles
Browse latest Browse all 31059

Import JIRA Custom Fields using Powerbi's JIRA Connector

$
0
0

Hi,

I have been using Power Bi for a month or so now and really love it. I have managed to set up a couple of reports/dashboards using the Jira PowerBi content pack and it works great. I have change some of the custom fields to new once using the Jira field Id and get the values into Power Bi properly.

 

First question:

For some columns I get the "Expand" option from the dropdown menu in the graphical interface for editing the query, but for one column (Incident Classification, custom field), I only see "null" values and therefore don't get the expand option. But I know there are [Record] values in that column (it is shown as [Record] in the report). How can I expand that column some how? In Jira it is a custom field where only one value can be selected (from a drop down), so I assume there should be a "name" value in the record to be expanded and shown in the report. Any ideas on how to expand this field?

 

Second question:

I'm running the "Time to SLA" plugin in Jira and then manage to import the cusotm field for "SLA Overdue". Power Bi returns a [List] value. The list contains a text like "P2 Resolution: 2d 4h 30min 12s". I assume it could contains two (or more) values on the same format. I would like to have the list transformed to text format, maybe seperated by some delimiter, but I can't get it to work. I tried changing type but then when getting the data from Jira, I get a lot of errors. Any ideas?

 

Information about my setup

We run Jira on premisis. I'm not that interested in running things in the cloud due to privacy regulations.

 

I don't really understand the advanced query that much but managed to manipulate it a bit to get my custom fields etc. The advanced edit query looks like this:

 

let
    Source = FetchPages("", 500),
    #"Expanded Column1" = Table.ExpandRecordColumn(Source, "Column1", {"expand", "id", "self", "key", "fields"}, {"expand", "id", "self", "key", "fields"}),
    #"Expanded fields" = Table.ExpandRecordColumn(#"Expanded Column1", "fields", {"issuetype", "timespent", "project", "fixVersions", "customfield_10110", "customfield_10111", "aggregatetimespent", "resolution", "customfield_10530", "customfield_14202", "customfield_10511", "customfield_15118", "customfield_10105", "customfield_10106", "customfield_10107", "customfield_10108", "customfield_10109", "resolutiondate", "workratio", "lastViewed", "watches", "created", "priority", "customfield_10100", "customfield_10101", "customfield_10102", "customfield_10103", "labels", "timeestimate", "aggregatetimeoriginalestimate", "versions", "issuelinks", "assignee", "updated", "status", "components", "timeoriginalestimate", "description", "customfield_10006", "customfield_10009", "aggregatetimeestimate", "summary", "creator", "subtasks", "reporter", "customfield_10000", "aggregateprogress", "customfield_10001", "customfield_10004", "customfield_10115", "customfield_10116", "customfield_10117", "environment", "customfield_10118", "customfield_10119", "duedate", "progress", "votes", "parent", "customfield_10005", "customfield_10007", "customfield_10008", "customfield_10002", "customfield_10003"}, {"issuetype", "timespent", "project", "fixVersions", "customfield_10110", "customfield_10111", "aggregatetimespent", "resolution", "customfield_10112", "customfield_10113", "customfield_10114", "customfield_10104", "customfield_10105", "customfield_10106", "customfield_10107", "customfield_10108", "customfield_10109", "resolutiondate", "workratio", "lastViewed", "watches", "created", "priority", "customfield_10100", "customfield_10101", "customfield_10102", "customfield_10103", "labels", "timeestimate", "aggregatetimeoriginalestimate", "versions", "issuelinks", "assignee", "updated", "status", "components", "timeoriginalestimate", "description", "customfield_10006", "customfield_10009", "aggregatetimeestimate", "summary", "creator", "subtasks", "reporter", "customfield_10000", "aggregateprogress", "customfield_10001", "customfield_10004", "customfield_10115", "customfield_10116", "customfield_10117", "environment", "customfield_10118", "customfield_10119", "duedate", "progress", "votes", "parent", "customfield_10005", "customfield_10007", "customfield_10008", "customfield_10002", "customfield_10003"}),
    #"Expanded components" = Table.ExpandListColumn(#"Expanded fields", "components"),
    #"Expanded components1" = Table.ExpandRecordColumn(#"Expanded components", "components", {"name"}, {"components.name"}),
    #"Expanded fixVersions" = Table.ExpandListColumn(#"Expanded components1", "fixVersions"),
    #"Expanded fixVersions1" = Table.ExpandRecordColumn(#"Expanded fixVersions", "fixVersions", {"name"}, {"fixVersions.name"}),
    #"Removed Columns" = Table.RemoveColumns(#"Expanded fixVersions1",{"expand"}),
    #"Filtered Rows" = Table.SelectRows(#"Removed Columns", each [id] <> null and [id] <> ""),
    #"Expanded issuetype" = Table.ExpandRecordColumn(#"Filtered Rows", "issuetype", {"name", "subtask"}, {"issuetype.name", "issuetype.subtask"}),
    #"Renamed Columns" = Table.RenameColumns(#"Expanded issuetype",{{"issuetype.name", "issuetype"}, {"issuetype.subtask", "isSubtask"}}),
    #"Expanded project" = Table.ExpandRecordColumn(#"Renamed Columns", "project", {"id", "key", "name"}, {"project.id", "project.key", "project.name"}),
    #"Expanded watches" = Table.ExpandRecordColumn(#"Expanded project", "watches", {"isWatching"}, {"isWatching"}),
    #"Expanded priority" = Table.ExpandRecordColumn(#"Expanded watches", "priority", {"name"}, {"name"}),
    #"Renamed Columns1" = Table.RenameColumns(#"Expanded priority",{{"name", "priority"}}),
    #"Removed Columns2" = Table.RemoveColumns(#"Renamed Columns1",{"customfield_10102"}),
    #"Expanded labels" = Table.ExpandListColumn(#"Removed Columns2", "labels"),
    #"Removed Columns3" = Table.RemoveColumns(#"Expanded labels",{"labels", "versions", "issuelinks"}),
    #"Expanded assignee" = Table.ExpandRecordColumn(#"Removed Columns3", "assignee", {"name", "emailAddress", "displayName", "active"}, {"assignee.name", "assignee.emailAddress", "assignee.displayName", "assignee.active"}),
    #"Renamed Columns2" = Table.RenameColumns(#"Expanded assignee",{{"assignee.displayName", "assignee"}, {"resolutiondate", "resolution date"}}),
    #"Expanded status" = Table.ExpandRecordColumn(#"Renamed Columns2", "status", {"name", "statusCategory"}, {"status.name", "status.statusCategory"}),
    #"Expanded status.statusCategory" = Table.ExpandRecordColumn(#"Expanded status", "status.statusCategory", {"colorName", "name"}, {"status.statusCategory.colorName", "status.statusCategory.name"}),
    #"Removed Columns4" = Table.RemoveColumns(#"Expanded status.statusCategory",{"subtasks"}),
    #"Expanded reporter" = Table.ExpandRecordColumn(#"Removed Columns4", "reporter", {"name", "emailAddress", "displayName", "active"}, {"reporter.name", "reporter.emailAddress", "reporter.displayName", "reporter.active"}),
    #"Expanded aggregateprogress" = Table.ExpandRecordColumn(#"Expanded reporter", "aggregateprogress", {"progress", "total"}, {"aggregateprogress.progress", "aggregateprogress.total"}),
    #"Expanded progress" = Table.ExpandRecordColumn(#"Expanded aggregateprogress", "progress", {"progress", "total"}, {"progress.progress", "progress.total"}),
    #"Expanded votes" = Table.ExpandRecordColumn(#"Expanded progress", "votes", {"votes"}, {"votes.votes"}),
    #"Expanded parent" = Table.ExpandRecordColumn(#"Expanded votes", "parent", {"id"}, {"parent.id"}),
    #"Changed Type" = Table.TransformColumnTypes(#"Expanded parent",{{"resolution date", type datetimezone}, {"created", type datetimezone}, {"updated", type datetimezone}}),
    #"Inserted Date" = Table.AddColumn(#"Changed Type", "Date", each DateTime.Date([resolution date]), type date),
    #"Renamed Columns3" = Table.RenameColumns(#"Inserted Date",{{"Date", "Resolution Day"}}),
    #"Inserted End of Week" = Table.AddColumn(#"Renamed Columns3", "EndOfWeek", each Date.EndOfWeek([Resolution Day]), type date),
    #"Renamed Columns4" = Table.RenameColumns(#"Inserted End of Week",{{"EndOfWeek", "Resolution Week"}}),
    #"Inserted Date1" = Table.AddColumn(#"Renamed Columns4", "Date", each DateTime.Date([created]), type date),
    #"Renamed Columns5" = Table.RenameColumns(#"Inserted Date1",{{"Date", "Created Day"}}),
    #"Inserted End of Week1" = Table.AddColumn(#"Renamed Columns5", "EndOfWeek", each Date.EndOfWeek([Created Day]), type date),
    #"Renamed Columns6" = Table.RenameColumns(#"Inserted End of Week1",{{"EndOfWeek", "Created Week"}}),
    #"Expanded customfield_10112" = Table.ExpandRecordColumn(#"Renamed Columns6", "customfield_10112", {"value"}, {"customfield_10112.value"}),
    #"Renamed Columns7" = Table.RenameColumns(#"Expanded customfield_10112",{{"customfield_10112.value", "customer.value"}, {"customfield_10113", "SLA_Overdue"}, {"customfield_10114", "Product_Area"}}),
    #"Expanded Product_Area" = Table.ExpandRecordColumn(#"Renamed Columns7", "Product_Area", {"value"}, {"Product_Area.value"}),
    #"Removed Columns1" = Table.RemoveColumns(#"Expanded Product_Area",{"customfield_10003", "customfield_10002", "customfield_10008", "customfield_10007", "customfield_10005"}),
    #"Renamed Columns8" = Table.RenameColumns(#"Removed Columns1",{{"customfield_10104", "Incident_Classification"}}),
    #"Removed Columns5" = Table.RemoveColumns(#"Renamed Columns8",{"customfield_10110", "customfield_10111"}),
    #"Expanded resolution" = Table.ExpandRecordColumn(#"Removed Columns5", "resolution", {"name"}, {"resolution.name"})
in
    #"Expanded resolution"

It's very time consuming to test changes since Power Bi always seems to get all issues and we have around 350 000 issues in Jira so it takes a couple of hours to get the data. For now, I just want to solved my questions below and then I can get this report to the management board and then get a lot more allocated time to work with Power Bi, it has extremely good potential within our company.

 

Please let me know if you have any ideas or questions!

Kind regards, johan

 

 

 

 


Viewing all articles
Browse latest Browse all 31059

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>