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

Enhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.

Reply
gvg
Post Prodigy
Post Prodigy

Invoking custom function from within a query

Hi all,

 

I don't seem to find correct syntax to invoke my custom function from a query. I have this function called xReplace that changes a lot of strings into something else. The function has no parameters - I simply need to place (get executed) instructions of the function so that I do not have to type them again in every query.

 

(mySource) =>
let
    #"Replaced Value" = Table.ReplaceValue(mySource,"ABC","123",Replacer.ReplaceText,{"ProductID"}),
    #"Replaced Value2" = Table.ReplaceValue(#"Replaced Value","DDD","456",Replacer.ReplaceText,{"ProductID"})
 
in
    #"Replaced Value2"

I am trying to do it like this, but Power BI complains, that it cannot convert a value of type Table to type List.

 

let
    Source = ....
    my = Function.Invoke(xReplace,#"Renamed Columns")
in
    my

Any ideas what am I doing wrong here?

1 ACCEPTED SOLUTION
MarcelBeug
Community Champion
Community Champion

Function.Invoke expects a list as second argument.

It should be OK if you put the argument between curly brackets.

 

let
    Source = ....
    my = Function.Invoke(xReplace,{#"Renamed Columns"})
in
    my

 

Otherwise you might consider not to use Function.Invoke and just call the function directly.

I don't think Function.Invoke has any added value in this case.

Specializing in Power Query Formula Language (M)

View solution in original post

5 REPLIES 5
MarcelBeug
Community Champion
Community Champion

Function.Invoke expects a list as second argument.

It should be OK if you put the argument between curly brackets.

 

let
    Source = ....
    my = Function.Invoke(xReplace,{#"Renamed Columns"})
in
    my

 

Otherwise you might consider not to use Function.Invoke and just call the function directly.

I don't think Function.Invoke has any added value in this case.

Specializing in Power Query Formula Language (M)

Great, thanks! How do I call function directly? I thought I should use Invoke?

By the way, for multiple replacements you might consider using List.Accumulate.

You can find an example in my answer on this post on StackOverflow.

Specializing in Power Query Formula Language (M)


@MarcelBeug wrote:

By the way, for multiple replacements you might consider using List.Accumulate.



I understand this is to change individual characters. I need to change the whole phrases.

MarcelBeug
Community Champion
Community Champion

In the example I may have used List.Accumulate to replace single characters.

 

In the video below, you can find more information about List.Accumulate with an explanation on how to change substrings starting at at 3:23.

 

Specializing in Power Query Formula Language (M)

Helpful resources

Announcements
July 2025 community update carousel

Fabric Community Update - July 2025

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

July PBI25 Carousel

Power BI Monthly Update - July 2025

Check out the July 2025 Power BI update to learn about new features.