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.
Solved! Go to Solution.
Hello @primolee ,
are these data sources (xlsx) so different that your are not able to create one function to combine them?
However... this example should help you to create a record based on a Table/List. In my example i have a table with column function name and function.
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45W8ivNTUot0nMrys9V0kHhxepEK4WkVpTA5BDs2FgA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [#"Function name" = _t, Function = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Function name", type text}, {"Function", type text}}),
ChangeToFunction = Table.TransformColumns(#"Changed Type", {"Function", each Expression.Evaluate(_, #shared)}),
CreateRecord= List.Last(List.Generate
(
()=>
[
FinalRecord = [],
Counter = 0
],
each [Counter]<= Table.RowCount(ChangeToFunction),
(x)=>
[
FinalRecord = Record.AddField(x[FinalRecord], ChangeToFunction[Function name]{x[Counter]}, ChangeToFunction[Function]{x[Counter]}),
Counter = x[Counter]+1
],
each [FinalRecord]
))
in
CreateRecord
If this post helps or solves your problem, please mark it as solution.
Kudos are nice to - thanks
Have fun
Jimmy
Hi @primolee ,
Please refer to this article.
Hello,
Thank you for your reply. The link shows how to invoke a function using pre-made functions. What I am looking for is different.
I have .csv/.xlsx reports coming from many different sources, so I have to make custom functions to invoke them accordingly. Because number of sources will keep on increasing, I need to build more and more custom functions in the future.
Depending on source name, I will use corresponding custom function. Therefore, this is what I have now.
functionRecord = [
dataSource01 = dataSource01,
dataSource02 = dataSource02,
dataSource03 = dataSource03,
],
#"Invoke Custom Function" = Table.AddColumn(#"Previous Step", "Processed Tables", Record.Field(functionRecord, [columnSourceName])([Folder Path]&[fileName]),
This codes assume that my custom function name is the same as data source name.
Every time when there is a new source, I need to add a new record into functionRecord. I could simply replace functionRecord with #shared, but #shared does not work in Power BI Service. This is why I pre-build a functionRecord.
Since I have a list of all my source names, I am looking for a way to turn this list into the record I mentioned above.
Now I have nearly 40 custom functions now, and I am writing 40 lines manually...
functionRecord = [
dataSource01 = dataSource01,
dataSource02 = dataSource02,
dataSource03 = dataSource03,
.....,
.....,
dataSource40 = dataSource40,
],
Hope there is a way to do so, or I will simply maintain this record manually. 😛
Thank you. (^_^)
Best regards,
David
Hello @primolee ,
are these data sources (xlsx) so different that your are not able to create one function to combine them?
However... this example should help you to create a record based on a Table/List. In my example i have a table with column function name and function.
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45W8ivNTUot0nMrys9V0kHhxepEK4WkVpTA5BDs2FgA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [#"Function name" = _t, Function = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Function name", type text}, {"Function", type text}}),
ChangeToFunction = Table.TransformColumns(#"Changed Type", {"Function", each Expression.Evaluate(_, #shared)}),
CreateRecord= List.Last(List.Generate
(
()=>
[
FinalRecord = [],
Counter = 0
],
each [Counter]<= Table.RowCount(ChangeToFunction),
(x)=>
[
FinalRecord = Record.AddField(x[FinalRecord], ChangeToFunction[Function name]{x[Counter]}, ChangeToFunction[Function]{x[Counter]}),
Counter = x[Counter]+1
],
each [FinalRecord]
))
in
CreateRecord
If this post helps or solves your problem, please mark it as solution.
Kudos are nice to - thanks
Have fun
Jimmy
Hello
are there any news on this topic? Did solve or help any reply your problem?
If this is the case, please mark it as solution.
Jimmy
Sorry, was busy at something else and forgot about this.
Just gave it a try, it will work but #shared is still used. This will not work in Power BI Service.
I guess there is no way to define type "Function" any other way... But thanks for the help! 🙂
Hello
okay.. .give it a try and give feedback.
Tell me if you need help to implement it.
Bye
Jimmy
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 |
---|---|
99 | |
50 | |
19 | |
12 | |
11 |