let Source = Json.Document(Web.Contents("https://rally1.rallydev.com/slm/webservice/v2.0/portfolioitem/feature?workspace=https://rally1.rallydev.com/slm/webservice/v2.0/workspace/999999999&query=(Release.Name%20contains%20%22Harry%20Potter%22)&fetch=true&start=1&pagesize=2000",[Headers=[ZSESSIONID="xxxxxxxxxxxxxxxxxxx"]])), QueryResult = Source[QueryResult], Results = QueryResult[Results], #"Converted to Table" = Table.FromList(Results, Splitter.SplitByNothing(), null, null, ExtraValues.Error), #"Expanded Column1" = Table.ExpandRecordColumn(#"Converted to Table", "Column1", {"_ref", "c_Tier", "c_PPMNotes", "c_CustomerField1", "c_CustomerField2", "c_CustomerField3", "_refObjectName", "CreationDate", "CreatedBy", "Description", "Discussion", "DisplayColor", "Expedite", "FormattedID", "Milestones", "Name", "Notes", "Owner", "Project", "Ready", "Tags", "ActualEndDate", "ActualStartDate", "DirectChildrenCount", "JobSize", "LeafStoryCount", "LeafStoryPlanEstimateTotal", "PercentDoneByStoryCount", "PercentDoneByStoryPlanEstimate", "PlannedEndDate", "PlannedStartDate", "PortfolioItemType", "PortfolioItemTypeName", "PreliminaryEstimate", "PreliminaryEstimateValue", "RefinedEstimate", "Risks", "StateChangedDate", "TimeCriticality", "UserBusinessValue", "ValueScore", "WSJFScore", "c_AcceptanceCriteria", "c_Application", "c_BenefitStatement", "c_Blocked", "c_BusinessOwner", "c_BusinessRequestor", "c_BusinessValueActual", "c_BusinessValuePlanned", "c_CapitalizableSoftware", "c_Comments", "c_CoPKanbanState", "c_EAState", "c_Enabler", "c_EpicDeliveryManager", "c_EpicDeliveryManagerold", "c_EpicHealth", "c_EpicHealthReason", "c_EpicHealthReasonold", "c_EpicKanbanState", "c_EpicType", "c_FeatureKanbanState", "c_FundingSource", "c_Improvement", "c_Involves3rdPartyVendor", "c_InvolvesFISTeamnotinRally", "c_InvolvesVendorFISTeamName", "c_IterationForecast", "c_IterationPlanned", "c_JobSize", "c_PIBeginning", "c_PIEnding", "c_PIObjective", "c_Portfolio", "c_Product", "c_ProjectID", "c_ReasonforClosure", "c_RequestedDeliveryDate", "c_Requestor", "c_Score", "c_ServiceNowID", "c_TShirtSizing", "LateChildCount", "Release", "State", "UserStories", "_type", "LastUpdateDate", "Parent"}, {"_ref", "c_Tier", "c_PPMNotes", "c_CustomerField1", "c_CustomerField2", "c_CustomerField3", "_refObjectName", "CreationDate", "CreatedBy", "Description", "Discussion", "DisplayColor", "Expedite", "FormattedID", "Milestones", "Name", "Notes", "Owner", "Project", "Ready", "Tags", "ActualEndDate", "ActualStartDate", "DirectChildrenCount", "JobSize", "LeafStoryCount", "LeafStoryPlanEstimateTotal", "PercentDoneByStoryCount", "PercentDoneByStoryPlanEstimate", "PlannedEndDate", "PlannedStartDate", "PortfolioItemType", "PortfolioItemTypeName", "PreliminaryEstimate", "PreliminaryEstimateValue", "RefinedEstimate", "Risks", "StateChangedDate", "TimeCriticality", "UserBusinessValue", "ValueScore", "WSJFScore", "c_AcceptanceCriteria", "c_Application", "c_BenefitStatement", "c_Blocked", "c_BusinessOwner", "c_BusinessRequestor", "c_BusinessValueActual", "c_BusinessValuePlanned", "c_CapitalizableSoftware", "c_Comments", "c_CoPKanbanState", "c_EAState", "c_Enabler", "c_EpicDeliveryManager", "c_EpicDeliveryManagerold", "c_EpicHealth", "c_EpicHealthReason", "c_EpicHealthReasonold", "c_EpicKanbanState", "c_EpicType", "c_FeatureKanbanState", "c_FundingSource", "c_Improvement", "c_Involves3rdPartyVendor", "c_InvolvesFISTeamnotinRally", "c_InvolvesVendorFISTeamName", "c_IterationForecast", "c_IterationPlanned", "c_JobSize", "c_PIBeginning", "c_PIEnding", "c_PIObjective", "c_Portfolio", "c_Product", "c_ProjectID", "c_ReasonforClosure", "c_RequestedDeliveryDate", "c_Requestor", "c_Score", "c_ServiceNowID", "c_TShirtSizing", "LateChildCount", "Release", "State", "UserStories", "_type", "LastUpdateDate", "Parent"}), #"Renamed Columns" = Table.RenameColumns(#"Expanded Column1", {{"_refObjectName", "Feature Name"}}), #"Expanded CreatedBy" = Table.ExpandRecordColumn(#"Renamed Columns", "CreatedBy", {"_refObjectName"}, {"CreatedBy._refObjectName"}), #"Changed Type" = Table.TransformColumnTypes(#"Expanded CreatedBy", {{"CreationDate", type datetimezone}}), #"Duplicated Column1" = Table.DuplicateColumn(#"Changed Type", "_ref", "_ref - Copy"), #"Split Column by Delimiter1" = Table.SplitColumn(#"Duplicated Column1", "_ref - Copy", Splitter.SplitTextByEachDelimiter({"/"}, QuoteStyle.Csv, true), {"_ref - Copy.1", "_ref - Copy.2"}), #"Renamed Columns15" = Table.RenameColumns(#"Split Column by Delimiter1", {{"_ref - Copy.2", "Feature Object"}}), #"Removed Columns12" = Table.RemoveColumns(#"Renamed Columns15", {"_ref - Copy.1"}), #"Renamed Columns1" = Table.RenameColumns(#"Removed Columns12", {{"CreatedBy._refObjectName", "Created By"}, {"_ref", "Object"}}), #"Split Column by Delimiter" = Table.SplitColumn(#"Renamed Columns1", "Object", Splitter.SplitTextByEachDelimiter({"/"}, QuoteStyle.Csv, true), {"Object.1", "Object.2"}), #"Removed Columns11" = Table.RemoveColumns(#"Split Column by Delimiter", {"Object.1"}), #"Renamed Columns14" = Table.RenameColumns(#"Removed Columns11", {{"Object.2", "Object"}}), #"Removed Columns" = Table.RemoveColumns(#"Renamed Columns14", {"Discussion"}), #"Expanded Milestones" = Table.ExpandRecordColumn(#"Removed Columns", "Milestones", {"_rallyAPIMajor", "_rallyAPIMinor", "_ref", "_type", "_tagsNameArray", "Count"}, {"Milestones._rallyAPIMajor", "Milestones._rallyAPIMinor", "Milestones._ref", "Milestones._type", "Milestones._tagsNameArray", "Milestones.Count"}), #"Expanded Milestones._tagsNameArray" = Table.ExpandListColumn(#"Expanded Milestones", "Milestones._tagsNameArray"), #"Expanded Milestones._tagsNameArray1" = Table.ExpandRecordColumn(#"Expanded Milestones._tagsNameArray", "Milestones._tagsNameArray", {"Name", "_ref", "DisplayColor", "TargetDate", "FormattedID"}, {"Milestones._tagsNameArray.Name", "Milestones._tagsNameArray._ref", "Milestones._tagsNameArray.DisplayColor", "Milestones._tagsNameArray.TargetDate", "Milestones._tagsNameArray.FormattedID"}), #"Changed Type1" = Table.TransformColumnTypes(#"Expanded Milestones._tagsNameArray1", {{"Milestones._tagsNameArray.TargetDate", type datetimezone}}), #"Renamed Columns2" = Table.RenameColumns(#"Changed Type1", {{"Milestones._tagsNameArray.FormattedID", "Milestone ID"}, {"Milestones._tagsNameArray.TargetDate", "Milestone Target Date"}}), #"Removed Columns1" = Table.RemoveColumns(#"Renamed Columns2", {"Milestones._rallyAPIMajor", "Milestones._rallyAPIMinor", "Milestones._ref", "Milestones._type", "Milestones._tagsNameArray.Name", "Milestones._tagsNameArray._ref", "Milestones._tagsNameArray.DisplayColor"}), #"Replaced Errors" = Table.ReplaceErrorValues(#"Removed Columns1", {{"Description", ""}}), #"Removed Columns3" = Table.RemoveColumns(#"Replaced Errors", {"Name"}), #"Expanded Owner" = Table.ExpandRecordColumn(#"Removed Columns3", "Owner", {"_refObjectName"}, {"Owner._refObjectName"}), #"Renamed Columns4" = Table.RenameColumns(#"Expanded Owner", {{"Owner._refObjectName", "Owner"}}), #"Expanded Project" = Table.ExpandRecordColumn(#"Renamed Columns4", "Project", {"_refObjectName"}, {"Project._refObjectName"}), #"Renamed Columns5" = Table.RenameColumns(#"Expanded Project", {{"Project._refObjectName", "Project"}}), #"Expanded Tags" = Table.ExpandRecordColumn(#"Renamed Columns5", "Tags", {"_tagsNameArray"}, {"_tagsNameArray"}), #"Expanded _tagsNameArray" = Table.ExpandListColumn(#"Expanded Tags", "_tagsNameArray"), #"Expanded _tagsNameArray1" = Table.ExpandRecordColumn(#"Expanded _tagsNameArray", "_tagsNameArray", {"Name", "_ref"}, {"Name", "_ref"}), #"Renamed Columns6" = Table.RenameColumns(#"Expanded _tagsNameArray1", {{"Name", "Tags"}}), #"Removed Columns5" = Table.RemoveColumns(#"Renamed Columns6", {"_ref"}), #"Changed Type2" = Table.TransformColumnTypes(#"Removed Columns5", {{"ActualEndDate", type datetimezone}, {"ActualStartDate", type datetimezone}, {"PercentDoneByStoryCount", Percentage.Type}, {"PercentDoneByStoryPlanEstimate", Percentage.Type}, {"PlannedEndDate", type datetimezone}, {"PlannedStartDate", type datetimezone}}), #"Removed Columns6" = Table.RemoveColumns(#"Changed Type2", {"PortfolioItemType"}), #"Expanded PreliminaryEstimate" = Table.ExpandRecordColumn(#"Removed Columns6", "PreliminaryEstimate", {"_refObjectName"}, {"_refObjectName"}), #"Renamed Columns7" = Table.RenameColumns(#"Expanded PreliminaryEstimate", {{"_refObjectName", "TShirt Sizing"}}), #"Removed Columns7" = Table.RemoveColumns(#"Renamed Columns7", {"Risks", "StateChangedDate", "c_Application", "c_EAState", "c_EpicDeliveryManager", "c_EpicDeliveryManagerold", "c_EpicHealthReasonold", "c_FundingSource", "c_Improvement", "c_Involves3rdPartyVendor", "c_InvolvesFISTeamnotinRally", "c_InvolvesVendorFISTeamName", "c_IterationForecast", "c_Portfolio", "c_Product", "c_Requestor", "c_Score", "c_TShirtSizing"}), #"Expanded Release" = Table.ExpandRecordColumn(#"Removed Columns7", "Release", {"_refObjectName"}, {"_refObjectName"}), #"Renamed Columns9" = Table.RenameColumns(#"Expanded Release", {{"_refObjectName", "Release"}}), #"Expanded State" = Table.ExpandRecordColumn(#"Renamed Columns9", "State", {"_refObjectName"}, {"_refObjectName"}), #"Renamed Columns10" = Table.RenameColumns(#"Expanded State", {{"_refObjectName", "Kanban State"}}), #"Removed Columns10" = Table.RemoveColumns(#"Renamed Columns10", {"_type"}), #"Cleaned Text" = Table.TransformColumns(#"Removed Columns10",{{"c_AcceptanceCriteria", Text.Clean, type text}}), #"Duplicated Column" = Table.DuplicateColumn(#"Added Conditional Column", "ActualStartDate", "ActualStartDate - Copy"), #"Calculated Age" = Table.TransformColumns(#"Duplicated Column", {{"ActualStartDate - Copy", each DateTimeZone.LocalNow() - _, type duration}}), #"Changed Type3" = Table.TransformColumnTypes(#"Calculated Age", {{"ActualStartDate - Copy", type number}}), #"Renamed Columns13" = Table.RenameColumns(#"Changed Type3", {{"ActualStartDate - Copy", "Work Aging (Days)"}, {"PortfolioItemTypeName", "Type"}}), #"Added Custom" = Table.AddColumn(#"Renamed Columns13", "Part1", each "https://rally1.rallydev.com/#/xxxxxxxxxxxxxxxxxxx/portfolioitemstreegrid?detail=%2Fportfolioitem%2Ffeature%2F"), #"Added Custom1" = Table.AddColumn(#"Added Custom", "Part2", each "&view=0436d85b-1baa-4bb0-a3ff-0a9e28d3a7c3&fdp=true?fdp=true)"), #"Merged Columns" = Table.CombineColumns(#"Added Custom1", {"Part1", "Object", "Part2"}, Combiner.CombineTextByDelimiter("", QuoteStyle.None), "Link"), #"Changed Type4" = Table.TransformColumnTypes(#"Merged Columns", {{"Expedite", Int64.Type}, {"Ready", Int64.Type}, {"c_Blocked", Int64.Type}, {"c_Enabler", Int64.Type}}), #"Transform columns" = Table.TransformColumnTypes(#"Changed Type4", {{"Feature Name", type text}, {"Created By", type text}, {"DisplayColor", type text}, {"FormattedID", type text}, {"Milestone ID", type text}, {"Milestones.Count", type text}, {"Owner", type text}, {"c_CustomerField1", type text}, {"c_CustomerField2", type text}, {"c_CustomerField3", type text}, {"Project", type text}, {"Tags", type text}, {"DirectChildrenCount", type text}, {"JobSize", type text}, {"LeafStoryCount", type text}, {"LeafStoryPlanEstimateTotal", type text}, {"Type", type text}, {"TShirt Sizing", type text}, {"PreliminaryEstimateValue", type text}, {"RefinedEstimate", type text}, {"TimeCriticality", type text}, {"UserBusinessValue", type text}, {"ValueScore", type text}, {"WSJFScore", type text}, {"c_BenefitStatement", type text}, {"c_BusinessOwner", type text}, {"c_BusinessRequestor", type text}, {"c_BusinessValueActual", type text}, {"c_BusinessValuePlanned", type text}, {"c_CapitalizableSoftware", type text}, {"c_Comments", type text}, {"c_CoPKanbanState", type text}, {"c_EpicHealth", type text}, {"c_EpicHealthReason", type text}, {"c_EpicKanbanState", type text}, {"c_EpicType", type text}, {"c_FeatureKanbanState", type text}, {"c_IterationPlanned", type text}, {"c_JobSize", type text}, {"c_PIBeginning", type text}, {"c_PIEnding", type text}, {"c_PIObjective", type text}, {"c_ProjectID", type text}, {"c_ReasonforClosure", type text}, {"c_ServiceNowID", type text}, {"LateChildCount", type text}, {"Release", type text}, {"Kanban State", type text}, {"UserStories", type text}, {"Description", type text}, {"Notes", type text}, {"c_PPMNotes", type text}}), #"Replace errors" = Table.ReplaceErrorValues(#"Transform columns", {{"Feature Name", null}, {"Created By", null}, {"DisplayColor", null}, {"FormattedID", null}, {"Milestone ID", null}, {"Milestones.Count", null}, {"Owner", null}, {"Project", null}, {"Tags", null}, {"DirectChildrenCount", null}, {"JobSize", null}, {"LeafStoryCount", null}, {"LeafStoryPlanEstimateTotal", null}, {"Type", null}, {"TShirt Sizing", null}, {"PreliminaryEstimateValue", null}, {"RefinedEstimate", null}, {"TimeCriticality", null}, {"UserBusinessValue", null}, {"ValueScore", null}, {"WSJFScore", null}, {"c_BenefitStatement", null}, {"c_BusinessOwner", null}, {"c_BusinessRequestor", null}, {"c_BusinessValueActual", null}, {"c_BusinessValuePlanned", null}, {"c_CapitalizableSoftware", null}, {"c_Comments", null}, {"c_CoPKanbanState", null}, {"c_EpicHealth", null}, {"c_EpicHealthReason", null}, {"c_EpicKanbanState", null}, {"c_EpicType", null}, {"c_FeatureKanbanState", null}, {"c_IterationPlanned", null}, {"c_JobSize", null}, {"c_PIBeginning", null}, {"c_PIEnding", null}, {"c_PIObjective", null}, {"c_ProjectID", null}, {"c_ReasonforClosure", null}, {"c_RequestedDeliveryDate", null}, {"c_ServiceNowID", null}, {"LateChildCount", null}, {"Release", null}, {"Kanban State", null}, {"UserStories", null}, {"Description", null}, {"Notes", null}}), #"Changed column type" = Table.TransformColumnTypes(#"Replace errors", {{"LastUpdateDate", type datetime}, {"CreationDate", type datetime}}), #"Changed column type 1" = Table.TransformColumnTypes(#"Changed column type", {{"ActualStartDate", type datetime}, {"Feature Object", Int64.Type}, {"PlannedEndDate", type datetime}, {"PlannedStartDate", type datetime}}), #"Transform columns 1" = Table.TransformColumnTypes(#"Changed column type 1", {{"c_RequestedDeliveryDate", type text}}), #"Replace errors 1" = Table.ReplaceErrorValues(#"Transform columns 1", {{"c_RequestedDeliveryDate", null}}), #"Renamed columns" = Table.RenameColumns(#"Replace errors 1", {{"c_Tier", "Dependency'"}}), #"Transform columns 2" = Table.TransformColumnTypes(#"Renamed columns", {{"Dependency'", type text}}), #"Replace errors 2" = Table.ReplaceErrorValues(#"Transform columns 2", {{"Dependency'", null}}), #"Removed duplicates" = Table.Distinct(#"Replace errors 2", {"FormattedID"}), #"Expanded Parent" = Table.ExpandRecordColumn(#"Removed duplicates", "Parent", {"_refObjectName"}, {"Parent._refObjectName"}), #"Renamed columns 1" = Table.RenameColumns(#"Expanded Parent", {{"Parent._refObjectName", "Epic_Name"}}), #"Transform columns 3" = Table.TransformColumnTypes(#"Renamed columns 1", {{"Epic_Name", type text}}), #"Replace errors 3" = Table.ReplaceErrorValues(#"Transform columns 3", {{"Epic_Name", null}}), #"Transform columns 4" = Table.TransformColumnTypes(#"Inserted conditional column", {{"Train", type text}}), #"Transform columns 6" = Table.TransformColumnTypes(#"Inserted conditional column 2", {{"Obj End Date", type text}}), #"Replace errors 6" = Table.ReplaceErrorValues(#"Transform columns 6", {{"Obj End Date", null}}) in #"Replace errors 6"