<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://community.appian.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Merge muliple columns from resultset dynamically</title><link>https://community.appian.com/discussions/f/rules/11229/merge-muliple-columns-from-resultset-dynamically</link><description>I have a datasubset DS containing properties X, Y and others. I am trying to take the property X and Y dynamically and do the merge ( property names are passed dynamically ). 
 Below script didnt work because apply is returning a single array with all</description><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>RE: Merge muliple columns from resultset dynamically</title><link>https://community.appian.com/thread/49381?ContentTypeID=1</link><pubDate>Thu, 12 Oct 2017 18:14:29 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:847ac648-9304-4777-a8d9-4e1abd96f8f3</guid><dc:creator>Vinay Kumar Rai</dc:creator><description>&lt;p&gt;Ok please find the below code, hope this will work&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;with(
  local!data: {
    {X: &amp;quot;x1&amp;quot;,Y: &amp;quot;Y1&amp;quot;,Z: &amp;quot;Z1&amp;quot;},
    {X: &amp;quot;x2&amp;quot;,Y: &amp;quot;Y2&amp;quot;,Z: &amp;quot;Z2&amp;quot;},
    {X: &amp;quot;x3&amp;quot;,Y: &amp;quot;Y3&amp;quot;,Z: &amp;quot;Z3&amp;quot;},
    {X: &amp;quot;x4&amp;quot;,Y: &amp;quot;Y4&amp;quot;,Z: &amp;quot;Z4&amp;quot;},
    {X: &amp;quot;x5&amp;quot;,Y: &amp;quot;Y5&amp;quot;,Z: &amp;quot;Z5&amp;quot;}
  },
  local!DS_ds: a!dataSubset(
    startIndex: 1,
    batchSize: 100,
    totalCount: 5,
    data: local!data,
    identifiers: local!data.X
  ),
  local!propertyName_txts: {
    &amp;quot;X&amp;quot;,
    &amp;quot;Z&amp;quot;
  },
 
  
local!DynamicData:
      apply(
       index( local!DS_ds.data,_,{}),
       local!propertyName_txts
      ),
      
apply(
  rule!FormatDetail(
    Index:_,
    Array:local!DynamicData
  ),
  1 + enumerate(local!DS_ds.totalCount)
)      
 
 
)
  
&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;New Rule&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;FormatDetail&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;/*
Inputs
  Index : Number
  Array : AnyType
*/

=with(
  {
    ri!Array[1][ri!Index],
    ri!Array[2][ri!Index] 
  }
  
)&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Merge muliple columns from resultset dynamically</title><link>https://community.appian.com/thread/49373?ContentTypeID=1</link><pubDate>Thu, 12 Oct 2017 17:16:52 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:43d2b117-e53b-4cac-a0a7-22bc422f15f3</guid><dc:creator>Bala K</dc:creator><description>Hi Vinay, I will be passing the properties X and Y dynamically, it could be X and Z (or) X and Y based on scenarios. I need to do the merge of these dynamically passed properties in the datasubset.&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Merge muliple columns from resultset dynamically</title><link>https://community.appian.com/thread/49366?ContentTypeID=1</link><pubDate>Thu, 12 Oct 2017 14:38:44 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:e36efdaa-314e-466b-9cb4-ac8dbbf02f49</guid><dc:creator>Vinay Kumar Rai</dc:creator><description>&lt;p&gt;Create a new rule :&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;/*
  Rule Name : FormatDetail
  Input1 : TEXT
  Input2 : TEXT
*/

=with(
  {
    ri!Input1,
    ri!Input2
  }
)&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;/* Calling rule */

apply(
  rule!FormatDetail(
    _,
    _
 ),
    merge(
     property( local!DS_ds.data,&amp;quot;X&amp;quot;,{}),
     property( local!DS_ds.data,&amp;quot;Y&amp;quot;,{})
    )
)&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Merge muliple columns from resultset dynamically</title><link>https://community.appian.com/thread/49363?ContentTypeID=1</link><pubDate>Thu, 12 Oct 2017 13:43:16 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:7c126c16-0d66-42b7-8404-db029f38a7d3</guid><dc:creator>Bala K</dc:creator><description>Thanks for your response. I needed below output and I am using 16.2 version. &lt;br /&gt;
&lt;br /&gt;
{{&amp;quot;x1&amp;quot;,&amp;quot;Y1&amp;quot;},&lt;br /&gt;
{&amp;quot;x2&amp;quot;,&amp;quot;Y2&amp;quot;},&lt;br /&gt;
{&amp;quot;x3&amp;quot;,&amp;quot;Y3&amp;quot;},&lt;br /&gt;
{&amp;quot;x4&amp;quot;,&amp;quot;Y4&amp;quot;},&lt;br /&gt;
{&amp;quot;x5&amp;quot;,&amp;quot;Y5&amp;quot;}}&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Merge muliple columns from resultset dynamically</title><link>https://community.appian.com/thread/49347?ContentTypeID=1</link><pubDate>Wed, 11 Oct 2017 22:11:42 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:97fb3d5a-3ac6-4bda-b1a1-37927cdb1552</guid><dc:creator>josep</dc:creator><description>&lt;p&gt;Hello Bbalasubramanik,&lt;/p&gt;
&lt;p&gt;which version of Appian are you using?&lt;/p&gt;
&lt;p&gt;I don&amp;#39;t fully understand what you want to achieve. But I did the test and I&amp;nbsp;got the following:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;with(
local!data :{{X:&amp;quot;x1&amp;quot;, Y:&amp;quot;Y1&amp;quot;, Z:&amp;quot;Z1&amp;quot;},
{X:&amp;quot;x2&amp;quot;, Y:&amp;quot;Y2&amp;quot;, Z:&amp;quot;Z2&amp;quot;},
{X:&amp;quot;x3&amp;quot;, Y:&amp;quot;Y3&amp;quot;, Z:&amp;quot;Z3&amp;quot;},
{X:&amp;quot;x4&amp;quot;, Y:&amp;quot;Y4&amp;quot;, Z:&amp;quot;Z4&amp;quot;},
{X:&amp;quot;x5&amp;quot;, Y:&amp;quot;Y5&amp;quot;, Z:&amp;quot;Z5&amp;quot;}} ,
local!DS_ds:a!dataSubset(startIndex:1,batchSize:100, totalCount:5, data:local!data, identifiers:local!data.X),
local!propertyName_txts: {
    &amp;quot;X&amp;quot;,
    &amp;quot;Y&amp;quot;
  },
  merge(
    apply(
      fn!property(
        local!DS_ds.data,
        _
      ),
      local!propertyName_txts
    )
  )

 )&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;This is what I Got&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;Test OutputHide section contents

Time	
2 ms
Type	
List of Variant
Value	
List of Variant: 2 items
    List of Variant: 5 items
        &amp;quot;x1&amp;quot;
        &amp;quot;x2&amp;quot;
        &amp;quot;x3&amp;quot;
        &amp;quot;x4&amp;quot;
        &amp;quot;x5&amp;quot;
    List of Variant: 5 items
        &amp;quot;Y1&amp;quot;
        &amp;quot;Y2&amp;quot;
        &amp;quot;Y3&amp;quot;
        &amp;quot;Y4&amp;quot;
        &amp;quot;Y5&amp;quot;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;What are you expecting to get?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;This is what I got&lt;br /&gt;{&lt;br /&gt;{&amp;quot;x1&amp;quot;, &amp;quot;x2&amp;quot;, &amp;quot;x3&amp;quot;, &amp;quot;x4&amp;quot;, &amp;quot;x5&amp;quot;},&lt;br /&gt;{&amp;quot;Y1&amp;quot;, &amp;quot;Y2&amp;quot;, &amp;quot;Y3&amp;quot;, &amp;quot;Y4&amp;quot;, &amp;quot;Y5&amp;quot;}&lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;do you want to obtain something like this?&lt;/p&gt;
&lt;p&gt;{{&amp;quot;x1&amp;quot;,&amp;quot;Y1&amp;quot;},&lt;br /&gt;{&amp;quot;x2&amp;quot;,&amp;quot;Y2&amp;quot;},&lt;br /&gt;{&amp;quot;x3&amp;quot;,&amp;quot;Y3&amp;quot;},&lt;br /&gt;{&amp;quot;x4&amp;quot;,&amp;quot;Y4&amp;quot;},&lt;br /&gt;{&amp;quot;x5&amp;quot;,&amp;quot;Y5&amp;quot;}}&lt;/p&gt;
&lt;p&gt;If you are using V17.2 maybe this will help&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;with(
  local!data: {
    {X: &amp;quot;x1&amp;quot;,Y: &amp;quot;Y1&amp;quot;,Z: &amp;quot;Z1&amp;quot;},
    {X: &amp;quot;x2&amp;quot;,Y: &amp;quot;Y2&amp;quot;,Z: &amp;quot;Z2&amp;quot;},
    {X: &amp;quot;x3&amp;quot;,Y: &amp;quot;Y3&amp;quot;,Z: &amp;quot;Z3&amp;quot;},
    {X: &amp;quot;x4&amp;quot;,Y: &amp;quot;Y4&amp;quot;,Z: &amp;quot;Z4&amp;quot;},
    {X: &amp;quot;x5&amp;quot;,Y: &amp;quot;Y5&amp;quot;,Z: &amp;quot;Z5&amp;quot;}
  },
  local!DS_ds: a!dataSubset(
    startIndex: 1,
    batchSize: 100,
    totalCount: 5,
    data: local!data,
    identifiers: local!data.X
  ),
  local!propertyName_txts: {
    &amp;quot;X&amp;quot;,
    &amp;quot;Y&amp;quot;
  },
  a!forEach(
    items: local!DS_ds.data,
    expression: {
      with(
        local!tempData: fv!item,
        a!forEach(
          items: local!propertyName_txts,
          expression: with(
            local!propertyName: fv!item,
            property(
              local!tempData,
              local!propertyName
            )
          )
        )
      )
    }
  )
)&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Jose Perez&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>