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
Set default x axis scrolling position
Enable selection of the default scroll position for the x-axis on a chart. For example, on a line chart with dates as the x-axis, when not all of the data can display in the view at once, the scroll...Lisa_Krieg4 hours agoNew MemberNeeds Votes7.8KViews1154likes104CommentsTable Visual — Rounded Corners and Pill-Style Cell Backgrounds
Add the option to display cell background colors as rounded rectangles or pill-shaped labels within the native Table visual. Currently, applying a background color fills the entire cell with a solid...urawizardharry5 hours agoRegular VisitorNew10Views0likes0CommentsAdd Global Alignment Controls for Power BI Matrix Values and Headers
Please add a global alignment setting for Matrix visuals that allows users to apply the same alignment, left, center, or right, to all measure columns at once. This should apply to column headers, d...AaronReasoner6 hours agoNew MemberNew4Views0likes0CommentsCase sensitive-insensitive option in Power BI
There should be an option in Power BI for the data in the columns to be either case sensitive or insensitive. When one deals with data involving client names or entity names, case sensitivity-sinsens...sohail_syed_moh6 hours agoNew MemberNeeds Votes2.3KViews124likes11CommentsGoverned & Regulation for Publish to Web feature
Notifying certain group of individuals if there is any enhancements performed on the semantic model which already hold an active Publish to Web code in place. This ensure in having more security and...Jaswanth_UNHCR7 hours agoNew MemberNew3Views0likes0Comments