Alunos Murilo Lunardon Postado Março 11 Alunos Compartilhar Postado Março 11 Falaaa turmaaa, tudo bom com vocês? Queria saber se é possível eu diminuir esses Steps de ficar abrindo o Records, a api sempre me retorna em nível de hierarquia. Existe alguma função na Linguagem M, que possa resolver? Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Solução Joao Raulino Postado Março 11 Alunos Solução Compartilhar Postado Março 11 Ops... erro meu. Codigo corrigido: Citar (t as table, optional colNum as number) => let colNum = if colNum = null then 0 else colNum, colName = Table.ColumnNames(t){colNum}, colContents = Table.Column(t, colName), colExpand = List.Distinct(List.Combine(List.Transform(colContents, each if _ is record then Record.FieldNames(_) else {} ))), newColNames = List.Transform(colExpand, each colName & "." & _), canExpand = List.Count(colExpand) > 0, expandTable = if canExpand then Table.ExpandRecordColumn(t, colName, colExpand, newColNames) else t, nextColNum = if canExpand then colNum else colNum + 1, repeat = if nextColNum>(Table.ColumnCount(expandTable) - 1) then expandTable else fnExpandAll(expandTable, nextColNum) in repeat Nao esquece de nomear a tua funcao como fnExpandAll para ela ser capaz de chamar ela mesma 😉 Abs! Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Joao Raulino Postado Março 11 Alunos Compartilhar Postado Março 11 (editado) Suave @Murilo Lunardon? Se você já souber qual record você quer expandir, você pode acessar ele diretamente usando a notação 'Tabela'[ColunaPai][ColunaFilho][ColunaNeto...] Com isso da para diminuir bastante o código. Tenta ai e diz se deu certo 😉 Abs! Editado Março 11 por Joao Raulino Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Murilo Lunardon Postado Março 11 Autor Alunos Compartilhar Postado Março 11 4 minutos atrás, Joao Raulino disse: Suave @Murilo Lunardon? Se você já souber qual record você quer expandir, você pode acessar ele diretamente usando a notação 'Tabela'[ColunaPai][ColunaFilho][ColunaNeto...] Com isso da para diminuir bastante o código. Tenta ai e diz se deu certo 😉 Abs! Na verdade, seria todos.. Vou tentar oque você disse. Obrg 😄 Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Joao Raulino Postado Março 11 Alunos Compartilhar Postado Março 11 (editado) Boa @Murilo Lunardon! Nesse caso, se você quer expandir TODAS as colunas você pode usar uma função recursiva do tipo abaixo: Citar (t as table, optional colNum as number) => let colNames = Table.ColumnNames(t), Index = if colNum = null then 0 else colNum, expand = Table.ExpandListColumn(t, colNames{Index}), nextCol = Index+1, repeat = if nextCol < List.Count(colNames) then fnExpandAll(expand, nextCol) else expand in repeat Depois basta criar um novo passo na tua consulta modificando o "UltimoPasso" para o nome do teu ultimo passo: Citar = fnExpandAll(UltimoPasso) Abs! Editado Março 11 por Joao Raulino Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Murilo Lunardon Postado Março 11 Autor Alunos Compartilhar Postado Março 11 6 minutos atrás, Joao Raulino disse: Boa @Murilo Lunardon! Nesse caso, se você quer expandir TODAS as colunas você pode usar uma função recursiva do tipo abaixo: Depois basta criar um novo passo na tua consulta modificando o "UltimoPasso" para o nome do teu ultimo passo: Abs! Consegue implementar nesse cod? let Authorization = "secret_VmZRUcDBck46IHqjUXobeXPFPZGU8iwvlqwoHEdmC4A", query = "", Source = Json.Document( Web.Contents( "https://api.notion.com/v1/", [ RelativePath = "databases/7a49d95be95e4738a36eeeaeaf5c940f/query", Headers = [ #"Notion-Version" = "2022-06-28", #"Authorization" = Authorization, #"Content-Type" = "application/json" ], Content = Text.ToBinary(query) ] ) ), results = Source[results], #"Convertido para Tabela" = Table.FromList(results, Splitter.SplitByNothing(), null, null, ExtraValues.Error), #"Column1 Expandido" = Table.ExpandRecordColumn(#"Convertido para Tabela", "Column1", {"properties"}, {"properties"}), #"properties Expandido" = Table.ExpandRecordColumn(#"Column1 Expandido", "properties", {"Data Entrada", "Status", "Fee Inicial", "ID", "Data Saida", "Fee Atual", "ID_Cliente", "CNPJ", "Cliente"}, {"Data Entrada", "Status", "Fee Inicial", "ID", "Data Saida", "Fee Atual", "ID_Cliente", "CNPJ", "Cliente"}) in #"properties Expandido" Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Joao Raulino Postado Março 11 Alunos Compartilhar Postado Março 11 Fala @Murilo Lunardon! Vi aqui que os teus dados vem como tipo "Record". Nesse caso cria a formula fnExpandAll com o código abaixo: Citar (t as table) => let colNum = 0, colNames = Table.ColumnNames(t){colNum}, colContents = Table.Column(t, colNames), colToExpand = List.Distinct(List.Combine(List.Transform(colContents, each if _ is record then Record.FieldNames(_) else {}))), newColNames = List.Transform(colToExpand, each colNames & "." & _), canExpandColumn = List.Count(colToExpand) > 0, expandedTable = if canExpandColumn then Table.ExpandRecordColumn(t, colNames, colToExpand, newColNames) else t, nextCol = if canExpandColumn then colNum else colNum + 1, repeat = if nextCol > (Table.ColumnCount(expandedTable) - 1) then expandedTable else ExpandAllRecords(expandedTable, null, nextCol) in repeat E o teu código fonte vai ficar assim: Citar let Authorization = "secret_VmZRUcDBck46IHqjUXobeXPFPZGU8iwvlqwoHEdmC4A", query = "", Source = Json.Document( Web.Contents( "https://api.notion.com/v1/", [ RelativePath = "databases/7a49d95be95e4738a36eeeaeaf5c940f/query", Headers = [ #"Notion-Version" = "2022-06-28", #"Authorization" = Authorization, #"Content-Type" = "application/json" ], Content = Text.ToBinary(query) ] ) ), results = Source[results], t = Table.FromList(results, Splitter.SplitByNothing(), null, null, ExtraValues.Error), fnExpandAll = fnExpandAll(t) in fnExpandAll Se essa resposta te ajudou, não esquece de marcar como melhor solução 😉 Abs! Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Murilo Lunardon Postado Março 11 Autor Alunos Compartilhar Postado Março 11 43 minutos atrás, Joao Raulino disse: Fala @Murilo Lunardon! Vi aqui que os teus dados vem como tipo "Record". Nesse caso cria a formula fnExpandAll com o código abaixo: E o teu código fonte vai ficar assim: Se essa resposta te ajudou, não esquece de marcar como melhor solução 😉 Abs! está com esse erro a fn Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Murilo Lunardon
Falaaa turmaaa, tudo bom com vocês?
Queria saber se é possível eu diminuir esses Steps de ficar abrindo o Records, a api sempre me retorna em nível de hierarquia.
Existe alguma função na Linguagem M, que possa resolver?
Link para o comentário
Compartilhar em outros sites
7 respostass a esta questão
Posts Recomendados
Faça login para comentar
Você vai ser capaz de deixar um comentário após fazer o login
Entrar Agora