Similar to the #shared record, which contians all functions plus all tables created in PowerBI, create a #default (controlled) record of default functions available in powerBI Power Query that can be used in conjunction with Expression.Evaluate.
While #shared could be used at the moment, using #shared will cause Dynamic Data source errors when publishing a report to a workspace, meaning reports that use #shared cannot be auto-refreshed. Creating a #default list of Microsoft controlled functions (like Table.AddColumn, etc) excluding user generated queries could be implemented that people can use without having the dynamic data source restrictions and as it is Microsoft controlled, this could be implemented as "Safe" to limit dynamic data source issues.
Currently the workaround would be to create a manual record, like
Expression.Evaluate(Source,[...])with the record containing a large list of every default function used in the function that is evaluated, for example (for Text funcitons only):
[
Text.AfterDelimiter=Text.AfterDelimiter,
Text.At=Text.At,
Text.BeforeDelimiter=Text.BeforeDelimiter,
Text.BetweenDelimiters=Text.BetweenDelimiters,
Text.Clean=Text.Clean,
Text.Combine=Text.Combine,
Text.Contains=Text.Contains,
Text.End=Text.End,
Text.EndsWith=Text.EndsWith,
Text.Format=Text.Format,
Text.From=Text.From,
Text.FromBinary=Text.FromBinary,
Text.InferNumberType=Text.InferNumberType,
Text.Insert=Text.Insert,
Text.Length=Text.Length,
Text.Lower=Text.Lower,
Text.Middle=Text.Middle,
Text.NewGuid=Text.NewGuid,
Text.PadEnd=Text.PadEnd,
Text.PadStart=Text.PadStart,
Text.PositionOf=Text.PositionOf,
Text.PositionOfAny=Text.PositionOfAny,
Text.Proper=Text.Proper,
Text.Range=Text.Range,
Text.Remove=Text.Remove,
Text.RemoveRange=Text.RemoveRange,
Text.Repeat=Text.Repeat,
Text.Replace=Text.Replace,
Text.ReplaceRange=Text.ReplaceRange,
Text.Reverse=Text.Reverse,
Text.Select=Text.Select,
Text.Split=Text.Split,
Text.SplitAny=Text.SplitAny,
Text.Start=Text.Start,
Text.StartsWith=Text.StartsWith,
Text.ToBinary=Text.ToBinary,
Text.ToList=Text.ToList,
Text.Trim=Text.Trim,
Text.TrimEnd=Text.TrimEnd,
Text.TrimStart=Text.TrimStart,
Text.Type=Text.Type,
Text.Upper=Text.Upper
] This puts the onus on end users maintaining a list, while the list should already be available.
Recent ideas
Access Variable Library in Semantic Models
Enable the Variable Library as a centralized location for storing all environment‑specific variables, allowing us to adjust them for promotion scenarios (e.g., from dev to prod) without relying on de...FreddyH7 hours agoAdvocate IINew919Views31likes2CommentsEnhance Fabric Pipeline Monitoring with Parent-Child Pipeline Lineage and Parameter Visibility
Currently, Microsoft Fabric Pipeline monitoring lacks several capabilities that are available in Azure Data Factory, making troubleshooting and operational support challenging in enterprise environme...dwramreddy8 hours agoRegular VisitorNew8Views0likes0CommentsDynamic ADLS-Gen2 path input for Spark Jobs Main definition file
I would like the ability to add a dynamic input box on a spark job definition's "Main Definition File" "ADLS-Gen2 path". this would be useful to set base and variable paths across all spark jobs...mfink_db12 hours agoNew MemberNew238Views2likes2CommentsReintroduce Tenant/Capacity Switch to Control "Users can create Plan items" Post-GA
During the Preview phase of Fabric Plan items, administrators had access to a dedicated tenant/capacity setting: "Users can create Plan items". With General Availability (GA), this granular administr...Sri-Surendra_Ku15 hours agoNew MemberNew106Views14likes1Comment