Forum Discussion
null input parameters custom function
- Anonymous1 year ago
Hi Mic1979
could you please provide sample of your tables?
Hello dufoq3
Thanks, but why when I invoke the function in this way:
let
Source = MergeLP_3(Total_Sales_DOLLARS_TEST, PCBA_Type_List_Price_Adder, "Region", "Project_Step", "Fail_Safe_Description", null, null, null, "Region", "Project_Step", "Fail_Safe_Description", null, null, null, "Adder")
in
Source
I get this:
Because you haven't used optional keyword i.e.:
(tbl1 as table, tbl2 as table, optional col1 as text, optional col2 as text)=>
And again:
- optional parameters have to be defined last.
- my recommendation: do not use custom functions. You do not need them in 99% of tasks.
- Mic19791 year agoPost Partisan
Hello dufoq3
thanks for your recommendation, I will use it.
However, I still have problems with this code.
I am writing down the final code I have and how I am invoking it:
(
Input_Table as table,
Adder_Table as table,Input_Table_Column1 as text,
Input_Table_Column2 as text,
Input_Table_Column3 as text,
Adder_Table_Column1 as text,
Adder_Table_Column2 as text,
Adder_Table_Column3 as text,
Adder as text,optional Input_Table_Column4 as text,
optional Input_Table_Column5 as text,
optional Adder_Table_Column4 as text,
optional Adder_Table_Column5 as text
) =>let
Input_Table_Helper_Column = Table.AddColumn(Input_Table, "HelperLPInput", each
Text.Combine(List.Select({
Record.FieldOrDefault(_, Input_Table_Column1,""),
Record.FieldOrDefault(_, Input_Table_Column2,""),
Record.FieldOrDefault(_, Input_Table_Column3,""),
Record.FieldOrDefault(_, Input_Table_Column4,""),
Record.FieldOrDefault(_, Input_Table_Column5,"")
}, each _ <> null), " "), type text),Adder_Table_Helper_Column = Table.AddColumn(Adder_Table, "HelperLPAdder", each
Text.Combine(List.Select({
Record.FieldOrDefault(_, Adder_Table_Column1,""),
Record.FieldOrDefault(_, Adder_Table_Column2,""),
Record.FieldOrDefault(_, Adder_Table_Column3,""),
Record.FieldOrDefault(_, Adder_Table_Column4,""),
Record.FieldOrDefault(_, Adder_Table_Column5,"")
}, each _ <> null), " "), type text),// Merge and Expand
Merged_Table = Table.NestedJoin(
Input_Table_Helper_Column,
{"HelperLPInput"},
Adder_Table_Helper_Column,
{"HelperLPAdder"},
"Adder",
JoinKind.LeftOuter
),Input_Table_Headers = Table.ColumnNames(Input_Table),
Adder_Table_Headers = Table.ColumnNames(Adder_Table),
List_Header_Difference = List.Difference(Adder_Table_Headers, Input_Table_Headers),Expanded_Merged_Table = Table.ExpandTableColumn(
Merged_Table,
Adder,
List_Header_Difference,
List_Header_Difference
),Remove_HelperLPInput = Table.RemoveColumns(Expanded_Merged_Table, "HelperLPInput")
in
Remove_HelperLPInputInvoking
let
Source = MergeLP_3_Test(Total_Sales_DOLLARS_TEST, PCBA_Type_List_Price_Adder, "Region", "Project_Step", "Fail_Safe_Description", "Region", "Project_Step", "Fail_Safe_Description", "Adder")
in
SourceThanks for your help.
- dufoq31 year agoCommunity Champion
Hi Mic, I'm sorry but I won't help you with this. You should use advantage of Power Query which is separating every single step. This would help you to debug your code and find parts with issu immediately. The way how you use power query won't help you to understand how it works because you will struggle with messy code again and again.
- Mic19791 year agoPost Partisan
Ok no problem, I understand.
Thanks.