У меня есть список элементов (ключей проекта), по которым мне нужно выполнить итерацию и вызвать API для возврата JSON полезной нагрузки (имена отрядов). Эти ответы должны храниться в таблице, в которой также есть элемент из списка, сгенерировавший его следующим образом ...
Project Key | Squad
--------------------
ProjectA | Squad1
ProjectA | Squad2
ProjectB | Squad2
Мой текущий запрос работает в режиме DOG медленно и выглядит следующим образом ...
let
Source = Excel.CurrentWorkbook(){[Name="projectList"]}[Content],
#"Promoted Headers" = Table.PromoteHeaders(Source, [PromoteAllScalars=true]),
#"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"Project Key", type text}, {"Found in Jira", type logical}}),
#"Filtered Rows" = Table.SelectRows(#"Changed Type", each ([Found in Jira] = true)),
#"Removed Columns" = Table.RemoveColumns(#"Filtered Rows",{"Found in Jira"}),
tableOfProjects = #"Removed Columns",
listOfProjects = Table.ToList(tableOfProjects),
GetSquadValues = (ProjectKey) =>
let
SquadSource = Json.Document(Web.Contents("http://localhost:3000/rest/api/2/issue/createmeta?projectKeys=" & ProjectKey & "&issuetypeNames=Epic&expand=projects.issuetypes.fields")),
projects = SquadSource[projects],
projects1 = projects{0},
issuetypes = projects1[issuetypes],
issuetypes1 = issuetypes{0},
fields = issuetypes1[fields],
#"Converted to Table" = Record.ToTable(fields),
#"Filtered Rows1" = Table.SelectRows(#"Converted to Table", each ([Name] = "customfield_10293")),
#"Removed Columns" = Table.RemoveColumns(#"Filtered Rows1",{"Name"}),
#"Expanded Value" = Table.ExpandRecordColumn(#"Removed Columns", "Value", {"allowedValues"}, {"allowedValues"}),
#"Expanded allowedValues" = Table.ExpandListColumn(#"Expanded Value", "allowedValues"),
#"Expanded allowedValues1" = Table.ExpandRecordColumn(#"Expanded allowedValues", "allowedValues", {"value"}, {"allowedValues.value"}),
#"Renamed Columns" = Table.RenameColumns(#"Expanded allowedValues1",{{"allowedValues.value", "allowedValues"}}),
tableOfProjectSquads = Table.AddColumn(#"Renamed Columns", "Project Key", (row) => ProjectKey)
in
tableOfProjectSquads,
listOfSquads = List.Generate(
() => [i=-1, table=#table({},{})], // initialize loop variables
each [i] < List.Count(listOfProjects),
each [
i=[i]+1,
table=GetSquadValues(listOfProjects{i})
],
each [table]
),
#"Converted to Table" = Table.FromList(listOfSquads, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Expanded Column1" = Table.ExpandTableColumn(#"Converted to Table", "Column1", {"allowedValues", "Project Key"}, {"allowedValues", "Project Key"}),
#"Reordered Columns" = Table.ReorderColumns(#"Expanded Column1",{"Project Key", "allowedValues"})
в # "Переупорядоченные столбцы"
Будем весьма благодарны за любые предложения по улучшению производительности!