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
Coopa_kid
Frequent Visitor

No se puede expandir la lista nula

Estoy obteniendo datos muy anidados de una api y necesito expandir todas las columnas. Seguí esta guía para dejar de crear nuevas filas de expandirlas y funcionó bien. El problema es que algunas de las listas son nulas. Todos aparecen como tipo List después de comprimir, pero algunos tienen valores nulos. En el editor puedo expandirlos a registros y luego expandirlos aún más, pero por alguna razón cuando intento cargar los datos en el informe obtengo el siguiente error cada vez que intento cambiar a registros y cargar en el informe.

Error OLE DB u ODBC: [Expression.Error] No podemos convertir el valor null en tipo List..

De manera óptima eliminaría las filas con valores nulos ya que no tienen datos, pero no puedo averiguar cómo saber si uno de los elementos de lista no contiene datos y eliminarlos.

Función a continuación (Es una API cerrada):

Dejar
Fuente: Json.Document(Web.Contents(www.API.com, [Headers-[Authorization-"Token"]])),
"Converted to Table" á Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
"Columna expandida1", Table.ExpandRecordColumn(?"Converted to Table", "Column1", "webPathId", "milestones", "Column1.webPathId", "Column1.milestones",),
"Columna expandida1.milestones" á Table.ExpandListColumn("Columna expandida1", "Column1.milestones"),
"Columna expandida1.milestones1" á Table.ExpandRecordColumn(''Expanded Column1.milestones','Column1.milestones','Column1.milestones',''NetworkTiming'', 'serverTiming','serverTiming', "apdexScore', "basePageSize',''statusCode''''
"Columnas combinadas" - Tabla.CombineColumns("Columna expandida1.milestones1", "networkTiming", "serverTiming", "browserTiming", "apdexScore", "basePageSize", "statusCode", cada List.Transform(List.Zip(_), cada Record.FromList(_,-"networkTiming", "serverTiming", "browserTiming", "apdexScore", "basePageSize", "statusCode")))"
"Expandido Expandido" - Table.ExpandListColumn(?"Columnas combinadas", "Combinado")
En
"Expandido Expandido"

9 REPLIES 9
Greg_Deckler
Super User
Super User

Tuve un problema similar a este, voy a tratar de desenterrar mi solución. Pero, en esencia, lo que hice fue condicionar la expansión/conversión lanzando un if then else statemetn en la cláusula each, así que si null entonces null de lo contrario convertir


@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...

Gracias @Greg_Deckler, he estado teniendo problemas incluso decir si una lista es nula ya que está anidada. Pero soy bastante nuevo en Dax, así que puede que esté haciendo algo mal. Ha sido difícil rastrear el problema, ya que solo se produce cuando intento cargarlo en el informe. Es extraño que funcione bien en el editor.

Este es un ejemplo sencillo.

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlSK1YlWAhNGSrGxAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [Column1 = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each if [Column1] = "" then 0 else Number.FromText([Column1]))
in
    #"Added Custom"

Puede crear una nueva columna donde compruebe si la otra columna es null y, si así lo desea, devolver null o "", etc. De lo contrario, (si no) solo conectaría el código de expansión de la lista. @Coopa_kid


@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...

Bueno, eso muestra lo familiarizado que estoy con esto, Power Query entonces.

Todavía estoy un poco perdido. Veo nulos en el editor y los está transformando bien, que es la parte realmente extraña.

Entiendo en principio lo que está diciendo, y eso suena como un buen plan, pero no estoy seguro de cómo hacerlo en este ejemplo. En resumen, tengo una lista que se transforma en 4 listas de valores. Luego los encerraré. Antes de comprimir algunas de las listas eran nulas, pero todavía se mostraban. Una vez comprimido ahora el zip es nulo ya que elimina esa capa superior de listas. Ahora tengo algunas que son listas comprimidas de listas y algunas que son nulas. Intento convertir esas listas en registros para que se puedan expandir y ahí es donde falla. Necesito poder ver si son nulos antes y eliminarlos. He probado List.IsEmpty(), pero eso no parece funcionar

Probé el fragmento de código que enviaste para crear una nueva columna y todos volvieron como no nulos. Probablemente ya que son una lista

Pero..... Decidí usar la lista. IsEmpty() con la creación de una nueva columna y encontré mi problema. Puede que no hayan sido los nulos después de todo.... Parece que dos de las listas comprimidas tienen un error en ellas. Debe haber ocurrido en un paso anterior, pero nunca lo vi ya que no se mostraba como error en la parte superior y nunca miré dentro de todas las listas. Voy a cavar un poco

Así que el error ocurrió antes de comprimir. Nunca lo vi desde que todo estaba comprimido, pero algunas de las listas eran nulas antes de comprimir. Como en ellos mismos son nulos, no llenos de nulos. Así que ahora tengo que quitarlos antes de comprimirlos. ¿Algún consejo?

Bueno, ¡eso fue todo! Finalmente lo consiguió cargar. Gracias por la ayuda @Greg_Deckler . A pesar de que no fue la respuesta fue la única cosa que me permitió encontrar el problema! ¡Gracias!

Bueno, me alegro de que llegamos allí!! 🙂

@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...

Oh, esto no es DAX, esto es Power Query y el error que está recibiendo es un error de Power Query durante la carga de datos. Es probable que no esté sucediendo mientras esté en el editor porque las primeras filas no exhiben una nula, pero las filas posteriores sí. Déjame ver si puedo darte un ejemplo.


@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...

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.