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.
Hola
Recientemente encontré el error de Formula Firewall por primera vez y no entiendo completamente cómo resolverlo. Y por lo que puedo ver en las publicaciones de la comunidad, parece que muchos tienen el mismo problema. Creé un conjunto de datos de juguetes que genera este error en dos casos diferentes. Puedo resolver el problema en el caso 1 pero no en el caso 2 y espero que la comunidad pueda ayudar aquí.
Ken Puls tiene un tutorial en el que crea una "etapa de datos" moviendo la fuente de datos externa a una consulta adicional. Hago esto en el caso 1 y en el caso 2, pero no funciona en el caso posterior. ¿Cuál es la forma correcta de hacer esto?
Objetivo:
Quiero aplicar un conjunto de pasos de transformación a varios archivos de una carpeta mediante una función personalizada. La carpeta de datos de ejemplo tiene 3 tablas (Good_Luck_Level, Formula_Firewall_Table_r1 (r1), Formula_Firewall_Table_r2 (r2) ) y quiero escribir una función que combine Good_Luck_Level con una de las tablas Formula_Firewall_Table_r* dependiendo del índice que se le dé a la función como entrada.
Los datos se pueden descargar aquí .
La organización de la consulta tiene este aspecto. Cada caso tiene un problema y un grupo de solución o intento. El orden lógico para estas consultas es de arriba hacia abajo.
Debe agregar la ruta a la carpeta de datos como parámetro para que funcione.
Así es como se ven las tablas (r2 es muy similar a r1 snd no se muestra aquí).
Como dije, recibo el error formula firewall en 2 ocasiones.
Caso 1
El uso de Table.ExpandColumns me da el error
(idx as number,data_path as text) =>
// idx: index of files in directory
// data_path: path to files that are to be loaded
let
Source = Folder.Files(data_path),
#"Filtered Rows" = Table.SelectRows(Source, each Text.Contains([Name],
"Formula_Firewall_Table_r") and Text.Contains([Name], "")),
#"Gefilterte Zeilen1" = Table.SelectRows(#"Filtered Rows", each [Date created] = #"Filtered
Rows"[Date created]{idx}),
#"Filtered Hidden Files1" = Table.SelectRows(#"Gefilterte Zeilen1", each [Attributes]?
[Hidden]? <> true),
#"Invoke Custom Function1" = Table.AddColumn(#"Filtered Hidden Files1", "Transform File",
each #"Transform File"([Content])),
#"Renamed Columns1" = Table.RenameColumns(#"Invoke Custom Function1", {"Name",
"Source.Name"}),
#"Removed Other Columns1" = Table.SelectColumns(#"Renamed Columns1", {"Source.Name",
"Transform File"}),
// This steps generates an error
#"Expanded Table Column1" = Table.ExpandTableColumn(#"Removed Other Columns1", "Transform
File", Table.ColumnNames(#"Transform File"(#"Sample File")))
in
#"Expanded Table Column1"
Puedo resolver el primer problema moviendo Table.ExpandColumns a otra función (expand_table_dyn).
#"Expanded Table Column1" =expand_table_dyn(#"Removed Other Columns1","Transform File")
Caso 2
Después de expandir la tabla, quiero unirla con la tabla Good Luck Level.
(idx as number,data_path as text) =>
// idx: index of files in directory
// data_path: path to files that are to be loaded
let
Source = Folder.Files(data_path),
#"Filtered Rows" = Table.SelectRows(Source, each Text.Contains([Name],
"Formula_Firewall_Table_r") and Text.Contains([Name], "")),
#"Gefilterte Zeilen1" = Table.SelectRows(#"Filtered Rows", each [Date created] = #"Filtered
Rows"[Date created]{idx}),
#"Filtered Hidden Files1" = Table.SelectRows(#"Gefilterte Zeilen1", each [Attributes]?
[Hidden]? <> true),
#"Invoke Custom Function1" = Table.AddColumn(#"Filtered Hidden Files1", "Transform File",
each #"Transform File"([Content])),
#"Renamed Columns1" = Table.RenameColumns(#"Invoke Custom Function1", {"Name",
"Source.Name"}),
#"Removed Other Columns1" = Table.SelectColumns(#"Renamed Columns1", {"Source.Name",
"Transform File"}),
// This steps generates an error
#"Expanded Table Column1" = Table.ExpandTableColumn(#"Removed Other Columns1", "Transform
File", Table.ColumnNames(#"Transform File"(#"Sample File")))
#"Merged Queries" = Table.NestedJoin(#"Expanded Table Column1", {"Town"}, #"staging Good
Luck Level", {"Town"}, "Good Luck Level", JoinKind.LeftOuter)
in
#"Merged Queries"
Intento1
Intenté mover Table.NestedJoin a una función separada "merge"
= (t1 as table, merge_on1 as text,t2 as table, merge_on2 as text, name as text) =>
let
Source = Table.NestedJoin(t1, {merge_on1}, 2, {merge_on2}, name, JoinKind.LeftOuter)
in
Source
e Intento2
Mover table.NestedUnirse a una función independiente y guardarla como una tabla nueva
= (t1 as table, merge_on1 as text,t2 as table, merge_on2 as text, name as text) =>
let
Source = Table.NestedJoin(t1, merge_on1, t2, merge_on2, name, JoinKind.LeftOuter),
#"Expanded something" = expand_table_dyn(Source,name),
out = Table.SelectColumns(#"Expanded something",Table.ColumnNames(#"Expanded something"))
in
out
Realmente aprecio su ayuda y pensamientos aquí.
Hola @Myagi-Do ,
Revise los siguientes enlaces que tienen el problema similar al suyo, espere que su solución pueda ayudarlo a resolver el problema.
Error de Formula.Firewall al hacer referencia a consultas
Método 1: Ignorar los niveles de privacidad
Método 2: Usar una función
Configuración de privacidad de datos en Power BI/Power Query, parte 3: Error de Formula.Firewall
Sí, pude evitarlo hace un momento moviendo efectivamente todos los pasos de la otra consulta a la misma consulta. Esto soluciona el problema, pero es un poco molesto.
Saludos
Hola Rena,
gracias por su respuesta. Lamentablemente, el Método 1 no es una opción para mí y el Método 2 es lo que probé y con lo que estoy luchando. Es por eso que creé un ejemplo de juguete que se puede encontrar aquí https://wetransfer.com/downloads/59020a9bfec7c8703f588f6540f9d3b520220527121004/fecfc0 .
¿Alguna sugerencia sobre cómo solucionar esto?
Todo lo mejor,
Myagi-Do
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
1 | |
1 | |
1 | |
1 |
User | Count |
---|---|
2 | |
2 | |
2 | |
1 | |
1 |