Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Syndicate_Admin
Administrator
Administrator

Conseguir todos los registros no sólo el primero dinámicamente

En primer lugar, los datos, mi api devuelve esto:

[

{

"resultado": {

"1": "Reparación",

"2": "Revisión",

"3": "Reemplazar",

"4": "Forro",

"5": "Forro",

"6": "Reparación",

"7": "Reparación",

"8": "Reemplazar",

"9": "Revisión",

"10": "Forro"

},

"nombre": "Planificación de la ciudad de Quebec invierno 2020"

},

{

"resultado": {

"11": "Reparación",

"12": "Revisión",

"13": "Reparación",

"14": "Forro",

"15": "Reemplazar",

"16": "Reparación",

"17": "Forro",

"18": "Reparación",

"19": "Reparación",

"20": "Forro"

},

"nombre": "Planificación de la ciudad de Múnich"

}

]

mi resultado final que quiero dinámicamente es el siguiente:
Nombre| id | acción|
planificación de la ciudad de Múnich | 20 | Forro |
..... etc
Planificación del | de la ciudad de Quebec 1 | Reparar |
...... etc

Sin embargo, cuando uso el escritorio para hacer esto cuando expando el registro:

vincentbg123_0-1618614051068.png

Obteré algo como:
expandRecordPipesAndAction = Table.ExpandRecordColumn(expandGradesRecords, "result", {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20"}, {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20"}),

Mi objetivo es expandir los registros dinámicamente, así que probé este enfoque ( fuente : https://www.youtube.com/watch?v=wG3J8lO9d5I )

código:

dejar

url = baseUrl,

json = GetJsonContent(url),

convertToTable = Table.FromList(json, Splitter.SplitByNothing(), null, null, ExtraValues.Error),

#"Convertido a tabla" = Table.FromList(converToTable, Splitter.SplitByNothing(), null, null, ExtraValues.Error),

#"Columna expandida1" = Table.ExpandRecordColumn(#"Convertido a tabla", "Column1", {"result", "name"}, {"result", "name"}),

#"Resultado expandido" = Table.ExpandRecordColumn(#"Expanded Column1", "result", Table.ColumnNames(Table.FromRecords(List.Select(Table.Column(#"Expanded Column1", "result"), cada _ <> null y _ <> ""))), Table.ColumnNames(Table.FromRecords(List.Select(Table.Column(#"Expanded Column1", "result"), cada _ <> null y _ <> ""))))

en

#"Resultado expandido"

Pero no amplía el segundo disco que va 11 a 20 y se ve así:

vincentbg123_1-1618614238337.png

Este es el código codificado duro que funciona para mi resultado final deseado:
dejar
url = baseUrl ,
json = GetJsonContent(url),
convertToTable = Table.FromList(json, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
expandGradesRecords = Table.ExpandRecordColumn(convertToTable, "Column1", {"result", "name"}, {"result", "name"}),
expandRecordPipesAndAction = Table.ExpandRecordColumn(expandGradesRecords, "result", {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20"}, {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20"}),
final_result = Table.UnpivotOtherColumns(expandRecordPipesAndAction, {"name"}, "Pipe Id", "Planning Action")
en
final_result;

Mi pregunta es ¿cómo puedo ampliar los segundos registros dinámicamente y por qué no funciona en este momento?

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

Aquí hay un enfoque ligeramente diferente que no requiere que conozca los nombres de los elementos de registro.

dejar
Fuente = Json.Document( "[
{
""resultado"": {
""1"": ""Reparación"",
""2"": ""Revisión"",
""3"": ""Reemplazar"",
""4"": ""Forro"",
""5"": ""Forro"",
""6"": ""Reparación"",
""7"": ""Reparación"",
""8"": ""Reemplazar"",
""9"": ""Revisión"",
""10"": ""Forro""
},
""nombre": "Planificación de la ciudad de Quebec invierno 2020""
},
{
""resultado"": {
""11"": ""Reparación"",
""12"": ""Revisión"",
""13"": ""Reparación"",
""14"": ""Forro"",
""15"": ""Reemplazar"",
""16"": ""Reparación"",
""17"": ""Forro"",
""18"": ""Reparación"",
""19"": ""Reparación"",
""20"": ""Forro""
},
""nombre": "Planificación de la ciudad de Múnich""
}
]"),
#"Convertido a tabla" = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Columna expandida1" = Table.ExpandRecordColumn(#"Convertido a tabla", "Column1", {"result", "name"}, {"result", "name"}),
#"Added Custom" = Table.AddColumn(#"Expanded Column1", "R", cada Record.FieldNames([result])),
#"Expandido R" = Table.ExpandListColumn(#"Added Custom", "R"),
#"Added Custom1" = Table.AddColumn(#"Expanded R", "S", cada Record.FieldOrDefault([result],[R])),
#"Removed Other Columns" = Table.SelectColumns(#"Added Custom1",{"name", "R", "S"})
en
#"Eliminar otras columnas"

View solution in original post

2 REPLIES 2
Syndicate_Admin
Administrator
Administrator

Aquí hay un enfoque ligeramente diferente que no requiere que conozca los nombres de los elementos de registro.

dejar
Fuente = Json.Document( "[
{
""resultado"": {
""1"": ""Reparación"",
""2"": ""Revisión"",
""3"": ""Reemplazar"",
""4"": ""Forro"",
""5"": ""Forro"",
""6"": ""Reparación"",
""7"": ""Reparación"",
""8"": ""Reemplazar"",
""9"": ""Revisión"",
""10"": ""Forro""
},
""nombre": "Planificación de la ciudad de Quebec invierno 2020""
},
{
""resultado"": {
""11"": ""Reparación"",
""12"": ""Revisión"",
""13"": ""Reparación"",
""14"": ""Forro"",
""15"": ""Reemplazar"",
""16"": ""Reparación"",
""17"": ""Forro"",
""18"": ""Reparación"",
""19"": ""Reparación"",
""20"": ""Forro""
},
""nombre": "Planificación de la ciudad de Múnich""
}
]"),
#"Convertido a tabla" = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Columna expandida1" = Table.ExpandRecordColumn(#"Convertido a tabla", "Column1", {"result", "name"}, {"result", "name"}),
#"Added Custom" = Table.AddColumn(#"Expanded Column1", "R", cada Record.FieldNames([result])),
#"Expandido R" = Table.ExpandListColumn(#"Added Custom", "R"),
#"Added Custom1" = Table.AddColumn(#"Expanded R", "S", cada Record.FieldOrDefault([result],[R])),
#"Removed Other Columns" = Table.SelectColumns(#"Added Custom1",{"name", "R", "S"})
en
#"Eliminar otras columnas"

Funciona como un encanto, gracias !

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.