Merge function usage with dynamic list

Certified Lead Developer

Hello techies, 

I need to use the merge() function on a dynamic list but it isn't proving easy. 

Please check the following code snippet and suggest applying it on the dynamic list local!a.b

a!localVariables(
local!a: {
{ a: 1, b: { 1, 2, 3 } },
{ a: 2, b: { "asdf", 5, 6 } },
{ a: 1, b: { 7, 8 } }
},
{
merge({ 1, 2, 3 }, { "asdf", 5, 6 }, { 7, 8 }), /*working*/
merge(local!a.b[1], local!a.b[2], local!a.b[3]), /*not working*/
merge(a!forEach(local!a.b, fv!item)) /*incorrect result*/

}
)

  Discussion posts and replies are publicly visible

Parents Reply
  • +1
    Certified Senior Developer
    in reply to TJ

    In that case, this will work for you - 



    a!localVariables(
      local!a: {
        { a: 1, b: { 1, 2, 3 } },
        { a: 2, b: { "asdf", 5, 6 } },
        { a: 1, b: { 7, 8 } }
      },
      a!forEach(
        items: enumerate(count(local!a.b)) + 1,
        expression: a!localVariables(
          local!index: fv!item,
          a!forEach(
            items: local!a.b,
            expression: if(
              local!index > count(fv!item),
              "",
              fv!item[local!index]
            )
          )
        )
      )
    )


    Note - Here I am assuming that you require the output in the "List of Variant" type. If you want output as a "list of text" or only 3 values then wrap the inner forEach() in the joinArray() with a separator ",".

Children