Forum Discussion

primolee's avatar
primolee
Helper V
6 years ago
Solved

Calling function using Record.Field without using #shared

Hello everyone,

 

First of all, I would like to thank jborro and artemus for the great help that they contributed in my other post.  I think I am nearly there and I am posting this because this would be a different Power Query question.

 

I have learnt how to generate a record of my custom-made function names using the following, where GoogleXXXProcessors are the functions I made:

Output =
    [
        GoogleGSMDailyProcessor = (fileName as text, publisherName as text) => GoogleGSMDailyProcessor,
        GoogleGSMHourProcessor = (fileName as text, publisherName as text) => GoogleGSMHourProcessor,
        GoogleGDNDailyProcessor = (fileName as text, publisherName as text) => GoogleGDNDailyProcessor,
        GoogleGDNAdGroupProcessor = (fileName as text, publisherName as text) => GoogleGDNAdGroupProcessor,
        GoogleGDNSizeProcessor = (fileName as text, publisherName as text) => GoogleGDNSizeProcessor
    ]

 

As #shared will not work in Power BI Service, I need to manually build this record.

 

Original code:

#"Invoked Custom Function" = 
        Table.AddColumn(#"Previous Step", "Processed Tables", each Record.Field(#shared, _[Processor])(_[Folder Path] & _[Name], _[Publisher]))

Then I will get a column with Table as values:

 

Code using manually-created record Output:

#"Invoked Custom Function" = 
        Table.AddColumn(#"Previous Step", "Processed Tables", each Record.Field(Output, _[Processor])(_[Folder Path] & _[Name], _[Publisher]))

Then I will get a column with Function as values:

 

 

What should I do to make the value of this column to table as it should be?

 

Thank you so much for your help.

 

Best regards,

David

  • I think I found the solution...

     

    Simply modify the Output record code to the following, no need to put parameters at all.

        Output =
        [
            GoogleGSMDailyProcessor = GoogleGSMDailyProcessor,
            GoogleGSMHourProcessor = GoogleGSMHourProcessor,
            GoogleGDNDailyProcessor = GoogleGDNDailyProcessor,
            GoogleGDNAdGroupProcessor = GoogleGDNAdGroupProcessor,
            GoogleGDNSizeProcessor = GoogleGDNSizeProcessor
        ],

     

2 Replies

Replies have been turned off for this discussion
  • v-frfei-msft's avatar
    v-frfei-msft
    Community Support

    Hi primolee ,

     

    Thanks for share your solution here. That will help other members here if they have the same request.

     

     

  • I think I found the solution...

     

    Simply modify the Output record code to the following, no need to put parameters at all.

        Output =
        [
            GoogleGSMDailyProcessor = GoogleGSMDailyProcessor,
            GoogleGSMHourProcessor = GoogleGSMHourProcessor,
            GoogleGDNDailyProcessor = GoogleGDNDailyProcessor,
            GoogleGDNAdGroupProcessor = GoogleGDNAdGroupProcessor,
            GoogleGDNSizeProcessor = GoogleGDNSizeProcessor
        ],