Forum Discussion

msksenthil's avatar
msksenthil
Icon for Helper III rankHelper III
4 years ago

M Code Recursive function dynamic column reference

I would like to try dynamic expanding columns in M code.

 

The code is:

fxFactorial = (RowCount as number, Tnumber as number, tbl as table) =>
let
displayname = "disPath" & Text.From(Tnumber),
childrenname = "children" & Text.From(Tnumber),
prevchildname = "children" & Text.From(Tnumber-1) ,
prevstep = tbl ,
Source2 = Table.ExpandListColumn( prevstep, prevchildname),
#"Added disPath2" = Table.AddColumn(Source2, displayname, each Record.Field(prevchildname,"displayPath") ),
#"Added children2" = Table.AddColumn(#"Added disPath2", childrenname, each try Record.Field([children1],"children") otherwise null ),
ColRowCount = List.NonNullCount( #"Added children2"[children2]),
titlenumber = Tnumber + 1,
subresult = if titlenumber > 2 then @fxFactorial(ColRowCount, titlenumber, #"Added children2") else #"Added children2"
in
#"Added disPath2"

 

But, I'm getting an error stating like We cannot convert the value "children1" to Record

 

 

Much appreciated it if someone showed some light on this query.

1 Reply

  • mahoneypat's avatar
    mahoneypat
    Icon for Microsoft Employee rankMicrosoft Employee

    You are using the prevchildname variable (a text value) in a function that expects a record (Record.Field).

     

    Pat