<?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>How to deal with the slow Appian grid selection validation?</title><link>https://community.appian.com/discussions/f/user-interface/19869/how-to-deal-with-the-slow-appian-grid-selection-validation</link><description>Hi, 
 I have a grid based on a RecordType, and I have coded a multi-selection mecanism inside the selectionSaveInto portion code. 
 When I select a line, some tests are made, but Appian takes 2 seconds to accept the selection (even if I do nothing, just</description><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>RE: How to deal with the slow Appian grid selection validation?</title><link>https://community.appian.com/thread/77674?ContentTypeID=1</link><pubDate>Fri, 06 Nov 2020 18:24:21 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:84a50c73-be24-48d2-b40b-4d59c71ae2dd</guid><dc:creator>cedric02</dc:creator><description>&lt;p&gt;Ok Richard, no problem.&lt;br /&gt;Thank you for&amp;nbsp;your help :-)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to deal with the slow Appian grid selection validation?</title><link>https://community.appian.com/thread/77669?ContentTypeID=1</link><pubDate>Fri, 06 Nov 2020 15:00:17 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:b9d5a684-580d-45b6-9d6c-3b8781fb21d7</guid><dc:creator>Richard Michaelis</dc:creator><description>&lt;p&gt;smart approach.&lt;br /&gt;and i totally agree that it should not be the case.&lt;br /&gt;&lt;br /&gt;i asked a friend who is working on cloud. he couldn&amp;#39;t reproduce it neither.&lt;br /&gt;so -&amp;gt; i am out. sorry that i couldnt help more :)&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to deal with the slow Appian grid selection validation?</title><link>https://community.appian.com/thread/77668?ContentTypeID=1</link><pubDate>Fri, 06 Nov 2020 14:44:50 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:939e045f-ba59-4170-a207-c0bbee695fa3</guid><dc:creator>cedric02</dc:creator><description>&lt;p&gt;Thank you Mike, I&amp;#39;m happy to see that someone else has reproduced it.&lt;br /&gt;We are indeed working on Appian Cloud.&lt;br /&gt;And with recordType grid you do not need to make &amp;quot;super quick clicks&amp;quot; to reproduce this issue.&amp;nbsp;For these reason, I believe it is as bug.&lt;br /&gt;&lt;br /&gt;So&amp;nbsp;we have changed our validation strategy. (we will validate all the rows only at the end) when the user click on submit.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to deal with the slow Appian grid selection validation?</title><link>https://community.appian.com/thread/77666?ContentTypeID=1</link><pubDate>Fri, 06 Nov 2020 14:41:25 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:407b2b25-c37f-4216-8fc4-2ca913512de2</guid><dc:creator>cedric02</dc:creator><description>&lt;p&gt;Sorry Richard, I should have told you that.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to deal with the slow Appian grid selection validation?</title><link>https://community.appian.com/thread/77665?ContentTypeID=1</link><pubDate>Fri, 06 Nov 2020 14:39:46 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:7a560853-2b0f-4641-a327-d829070963ed</guid><dc:creator>Richard Michaelis</dc:creator><description>&lt;p&gt;you all using cloud, right? I am on premise.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to deal with the slow Appian grid selection validation?</title><link>https://community.appian.com/thread/77664?ContentTypeID=1</link><pubDate>Fri, 06 Nov 2020 14:35:45 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:fd308b97-b070-4c17-a108-638100f2782e</guid><dc:creator>Mike Schmitt</dc:creator><description>&lt;p&gt;I can reproduce this behavior in Chrome on Appian Cloud.&amp;nbsp; I&amp;#39;m not sure it&amp;#39;s a bug per se - variable evaluation is quick but not guaranteed to be instantaneous.&amp;nbsp; You might want to just set up validation on the grid to handle cases where someone &amp;quot;super-clicks&amp;quot; the rows.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to deal with the slow Appian grid selection validation?</title><link>https://community.appian.com/thread/77663?ContentTypeID=1</link><pubDate>Fri, 06 Nov 2020 14:31:36 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:0b14c3b4-7a78-43fd-be3d-87ce6365414f</guid><dc:creator>Richard Michaelis</dc:creator><description>&lt;p&gt;okay, then it is really a performance issue and no appian bug. at least one conclusion here.&lt;br /&gt;at first, lets try the sail performance tab. Then we can check one by one other possible sources, to verify it.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;img alt=" " src="/resized-image/__size/320x240/__key/communityserver-discussions-components-files/13/pastedimage1604673150517v1.png" /&gt; in your case its written &amp;quot;performance&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;for comparison reasons: my chrome version&amp;nbsp;is &amp;quot;v&lt;span&gt;ersion 86.0.4240.75 (Official Build) (32-Bit)&amp;quot;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to deal with the slow Appian grid selection validation?</title><link>https://community.appian.com/thread/77662?ContentTypeID=1</link><pubDate>Fri, 06 Nov 2020 14:25:25 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:90da5b94-ab55-404d-b304-53d50aa3b912</guid><dc:creator>cedric02</dc:creator><description>&lt;p&gt;Hi Kais,&lt;/p&gt;
&lt;p&gt;I&amp;#39;m using&amp;nbsp;&lt;span&gt;&amp;nbsp;Chrome 85.0.4183.102&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;@Richard, with Chrome I don&amp;#39;t see the loading bar with this little example, it is for this reason I have to click&amp;nbsp;super quick to reproduce it.&lt;br /&gt;&lt;br /&gt;I&amp;#39;ve just tried with Mozilla, and it&amp;#39;s worth... I can see&amp;nbsp;the loading&amp;nbsp;bar, so it is&amp;nbsp;very easily to reproduce.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Which performance screen do you want to see? (admin console\monitoring...)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;maybe could you try on Mozilla?&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to deal with the slow Appian grid selection validation?</title><link>https://community.appian.com/thread/77661?ContentTypeID=1</link><pubDate>Fri, 06 Nov 2020 14:13:35 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:a0ad7a71-f1ad-4863-bb42-5f2a129003ba</guid><dc:creator>kais</dc:creator><description>&lt;p&gt;Hi Cedric,&lt;/p&gt;
&lt;p&gt;which browser and version are you using?&lt;/p&gt;
&lt;p&gt;//Kai&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to deal with the slow Appian grid selection validation?</title><link>https://community.appian.com/thread/77660?ContentTypeID=1</link><pubDate>Fri, 06 Nov 2020 14:12:15 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:441e8b42-b6c4-4b44-9a69-fdcff7896a6c</guid><dc:creator>Richard Michaelis</dc:creator><description>&lt;p&gt;Hi cedric,&lt;br /&gt;even if i click super quick, starting by the bottom, it is not going to break in my case. absolutly like expected.&lt;br /&gt;so perhaps a performance issue in your evironment? Are the loading bar appearing? Can you show your performance stats? perhaps we can get a clue there?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to deal with the slow Appian grid selection validation?</title><link>https://community.appian.com/thread/77658?ContentTypeID=1</link><pubDate>Fri, 06 Nov 2020 14:05:49 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:fba65aca-6df5-49d7-bffc-a69b6535b44a</guid><dc:creator>cedric02</dc:creator><description>&lt;p&gt;Hi&amp;nbsp;Richard,&lt;/p&gt;
&lt;p&gt;Thank you for your reply. Unfortunately, I can confirm that I can reproduce the same issue (please see the picture below).&lt;/p&gt;
&lt;p&gt;To reproduce it, you must select very very quickly the 4 lines 10,20,30,40 (then the fourth line is unselected at the end).&lt;/p&gt;
&lt;p&gt;Another way to reproduce it easier, is to select the 40 row line&amp;nbsp;(so total max is reached), and then click quickly on 2 other lines.&lt;/p&gt;
&lt;p&gt;I can reproduce this issue on 2 different Appian environnments, so I don&amp;#39;t think it is linked to my environment.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;Another way to reproduce it easily, is to plug the grid on a RecordType with a big table.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src="/resized-image/__size/640x480/__key/communityserver-discussions-components-files/13/pastedimage1604671174681v1.png" alt=" " /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to deal with the slow Appian grid selection validation?</title><link>https://community.appian.com/thread/77656?ContentTypeID=1</link><pubDate>Fri, 06 Nov 2020 13:55:21 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:79f4e6eb-a74e-4df7-a4b2-b0adc33e6832</guid><dc:creator>Richard Michaelis</dc:creator><description>&lt;p&gt;Hi cedric,&lt;br /&gt;I see no real reason why it should not work.&lt;br /&gt;i took your code and created a pretty similar code to test it myself. it is working perfectly in my environment.&lt;br /&gt;can you check if it is behaving the same way in your environment or do you see any difference which are perhaps important for your question? I didnt see anything major different. (our appian verison is 20.2 on premise&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;a!localVariables(
  local!product:{&amp;quot;tape&amp;quot;,&amp;quot;brush&amp;quot;,&amp;quot;paint&amp;quot;,&amp;quot;bucket&amp;quot; },
  local!price: {10,20,20,40},
  local!datasubset: a!datasubset(
    startIndex: 1,
    batchsize: 1,
    data: {
      a!forEach(
        items: local!product,
        expression: {
          product:fv!Item,
          price:index(local!price,fv!Index,null)
        }
      )
    },
    identifiers: {1,2,3,4}
  ),
  local!maxPrice: 40,
  local!selection,
  local!selectedProduct,
  a!sectionLayout(
    contents: {
      a!columnsLayout(
        columns: {
          a!columnLayout(
            contents: {
              a!cardLayout(
                contents: {
                  a!gridField(
                    label: &amp;quot;Read-only Grid&amp;quot;,
                    labelPosition: &amp;quot;ABOVE&amp;quot;,
                    data: local!datasubset.data,
                    columns: {
                      a!gridColumn(
                        label: &amp;quot;product&amp;quot;,
                        value: fv!row.product
                      ),
                      a!gridColumn(
                        label: &amp;quot;price&amp;quot;,
                        value: fv!row.price
                      ),
                    },
                    selectable: true,
                    selectionStyle: &amp;quot;ROW_HIGHLIGHT&amp;quot;,
                    selectionValue: local!selection,
                    selectionSaveInto: {
                      local!selection,
                      a!save(
                        target: local!selectedProduct,
                        value: append(
                          local!selectedProduct, 
                          fv!selectedRows
                        )
                      ),
                      a!save(
                        target:local!selectedProduct, 
                        value: difference(
                          local!selectedProduct, 
                          fv!deselectedRows
                        )
                      ),

                      a!localVariables(
                        local!maxValueAccepted: if(
                            not(isnull(local!selectedProduct)),
                            sum(
                              a!forEach(
                                items: local!selectedProduct,
                                expression: fv!item.price
                              )
                            ),
                            0
                        ),

                        if (local!maxValueAccepted &amp;gt; local!maxPrice,
                        {
                          a!save(local!selection, remove(local!selection, length(local!selection))), 
                          a!save(local!selectedProduct, remove(local!selectedProduct, length(local!selectedProduct))),
                        },
                        null
                        )
                      ),

                      /*a!save(ri!selectedVehicleIds, local!selection)*/

                    },
                    validations: {}
                  )
                },
                height: &amp;quot;AUTO&amp;quot;,
                style: &amp;quot;NONE&amp;quot;,
                marginBelow: &amp;quot;STANDARD&amp;quot;
              ),

            }
          ),
          a!columnLayout(
            contents: {}
          )
        }
      ),
      a!paragraphField(
        label:&amp;quot;local!selectedProduct&amp;quot;,
        value: local!selectedProduct
      )
    },
    showWhen: true
  )
)&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to deal with the slow Appian grid selection validation?</title><link>https://community.appian.com/thread/77641?ContentTypeID=1</link><pubDate>Fri, 06 Nov 2020 09:13:30 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:1a500be6-2d6c-4120-b454-b140814652b7</guid><dc:creator>cedric02</dc:creator><description>&lt;p&gt;Thanks a lot Mike for your reply, but sorry, your code is great but does not reply to my question.&lt;br /&gt;I need to know why with my little (of course not optimized) example, I&amp;#39;m succeeding in tricking&amp;nbsp;Appian?&lt;br /&gt;&lt;br /&gt;I&amp;#39;ve tested your code and the issue is exactly the same here:&lt;br /&gt;If I select successively (and slowly) these 3 rows :&amp;nbsp;Ford, Volvo, Chevy,&amp;nbsp;all works fine, as the last row can not be selected.&lt;/p&gt;
&lt;p&gt;But... If I select very quickly these 4 rows, the issue is still present (as my picture below).&lt;br /&gt;The code optimization&amp;nbsp;aspect has nothing to do with that strange behavior.&lt;br /&gt;&lt;br /&gt;Is it an Appian bug?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="/resized-image/__size/640x480/__key/communityserver-discussions-components-files/13/pastedimage1604652999900v1.png" alt=" " /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to deal with the slow Appian grid selection validation?</title><link>https://community.appian.com/thread/77638?ContentTypeID=1</link><pubDate>Thu, 05 Nov 2020 21:42:01 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:1120e711-6b02-45d6-9307-e1942e4d02d1</guid><dc:creator>Mike Schmitt</dc:creator><description>&lt;p&gt;See my dramatically simplified example for some other options.&amp;nbsp; Instead of doing 6 consecutive saves in your SaveInto, we simply save the row ID of the selected vehicle, then use some evaluation chaining in the local variables to resolve things like selected vehicle CDT list as well as calculated selected value sums.&amp;nbsp; I&amp;#39;m not exactly clear on how you want to restrict row selection precisely, so I&amp;#39;ve given you 2 different options within the &amp;quot;disableRowSelectionWhen&amp;quot; parameter - basically one which will limit any new selections once the max has been exceeded, and a secondary measure which will prevent any item from &lt;em&gt;being&lt;/em&gt; selected if it would cause the total value to exceed your limit.&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="java"&gt;a!localVariables(
  local!vehicles: {
    {
      id: 1,
      make: &amp;quot;Ford&amp;quot;,
      model: &amp;quot;Taurus&amp;quot;,
      value: &amp;quot;$200&amp;quot;
    },
    {
      id: 2,
      make: &amp;quot;Volvo&amp;quot;,
      model: &amp;quot;760 TI&amp;quot;,
      value: &amp;quot;$1500&amp;quot;
    },
    {
      id: 3,
      make: &amp;quot;Chevy&amp;quot;,
      model: &amp;quot;Impala&amp;quot;,
      value: &amp;quot;$11,000&amp;quot;
    }
  },
  
  local!selection: {},
  
  local!selectedVehicles: if(
    rule!PIRS_RULE_General_isListEmpty(local!selection),
    {},
    index(
      local!vehicles,
      local!selection
    )
  ),
  
  local!valMaxAuto: 5000,
  local!totalValueSelected: if(
    not(rule!PIRS_RULE_General_isListEmpty(local!selectedVehicles)),
    sum(
      a!forEach(
        items: local!selectedVehicles,
        expression: tointeger(fv!item.value)
      )
    ),
    0
  ),
  local!maxValueReached: local!totalValueSelected &amp;gt; local!valMaxAuto,
  
  
  a!sectionLayout(
    contents: {
      a!columnsLayout(
        columns: {
          a!columnLayout(
            contents: {
              a!cardLayout(
                contents: {
                  a!gridField(
                    label: &amp;quot;Read-only Grid&amp;quot;,
                    labelPosition: &amp;quot;ABOVE&amp;quot;,
                    data: local!vehicles,
                    columns: {
                      a!gridColumn(
                        label: &amp;quot;Make&amp;quot;,
                        value: fv!row.make
                      ),
                      a!gridColumn(
                        label: &amp;quot;Model&amp;quot;,
                        value: fv!row.model
                      ),
                      a!gridColumn(
                        label: &amp;quot;Value&amp;quot;,
                        value: fv!row.value
                      ),
                    },
                    selectable: true,
                    disableRowSelectionWhen: or(
                      
                      /* allow rows to be un-selected, but no new rows to be selected, when max value is passed */
                      and(
                        not(contains(tointeger(local!selection), fv!identifier)),
                        local!maxValueReached
                      ),
                      
                      /* un-comment the following row to selectively disable rows that would cause max value to be exceeded */
                      /*local!totalValueSelected + fv!row.value &amp;gt; local!valMaxAuto*/
                    ),
                    selectionStyle: &amp;quot;ROW_HIGHLIGHT&amp;quot;,
                    selectionValue: local!selection,
                    
                    selectionSaveInto: {
                      
                      /* you can basically just use this - since my example is using a dictionary, the index of the row will be saved -- when using a queried datasubset, you may need to adjust accordingly since the saved value will use the identifier instead */
                      local!selection

                    },
                    validations: {}
                  )
                },
                height: &amp;quot;AUTO&amp;quot;,
                style: &amp;quot;NONE&amp;quot;,
                marginBelow: &amp;quot;STANDARD&amp;quot;
              ),

            }
          ),
          a!columnLayout(
            contents: {}
          )
        }
      ),
      
      a!paragraphField(
        label:&amp;quot;ri!selectedVehicle&amp;quot;,
        value: local!selectedVehicles
      )
    },
    showWhen: true
  )
)&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to deal with the slow Appian grid selection validation?</title><link>https://community.appian.com/thread/77636?ContentTypeID=1</link><pubDate>Thu, 05 Nov 2020 21:05:36 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:d721b132-47a9-4597-bf0d-de2e9b484131</guid><dc:creator>Mike Schmitt</dc:creator><description>&lt;p&gt;One potential issue here is that in your grid selection saveInto, you&amp;#39;re doing maybe 5 or 6 consecutive operations for every single click, when you could probably accomplish the same thing in 1 or 2 operations.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to deal with the slow Appian grid selection validation?</title><link>https://community.appian.com/thread/77633?ContentTypeID=1</link><pubDate>Thu, 05 Nov 2020 19:14:52 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:6c44483c-ea3d-4998-8df7-3ec1d7f71b63</guid><dc:creator>cedric02</dc:creator><description>&lt;p&gt;Yes, you&amp;#39;re right, here is my sample code:&lt;br /&gt;In my example, you can select some lines&amp;nbsp;while total value of rows is less or equal to 50.&lt;br /&gt;&lt;br /&gt;So, if you select the &amp;quot;make4&amp;quot; row, you can not select another row (unless you unselect this row).&lt;br /&gt;But, if you click very quickly and successively on these 3 rows :&amp;nbsp;&amp;quot;make4&amp;quot;, &amp;quot;make3&amp;quot;, &amp;quot;make2&amp;quot;, you will obtain the selection like the picture below : &amp;quot;make3&amp;quot; and &amp;quot;make4&amp;quot;&amp;nbsp;rows are wrongly selected&amp;nbsp;and the total is 70, so it should not be possible.&lt;br /&gt;&lt;br /&gt;In reference of what Danny said, you can easier testing&amp;nbsp;this using a&amp;nbsp;database view or large table,&amp;nbsp;with a lot more grid columns.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;img alt=" " src="/resized-image/__size/640x480/__key/communityserver-discussions-components-files/13/pastedimage1604603329210v2.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="ui-code" data-mode="text"&gt;a!localVariables(
  local!saveSelectedVehicles: null,
  local!selection: ri!selectedVehicleIds,
  local!valMaxAuto: 50, 

  a!sectionLayout(
    contents: {
      a!columnsLayout(
        columns: {
          a!columnLayout(
            contents: {
              a!cardLayout(
                contents: {
                  a!gridField(
                    label: &amp;quot;Read-only Grid&amp;quot;,
                    labelPosition: &amp;quot;ABOVE&amp;quot;,
                    data: ri!vehicles,
                    columns: {
                      a!gridColumn(
                        label: &amp;quot;Make&amp;quot;,
                        value: fv!row.make
                      ),
                      a!gridColumn(
                        label: &amp;quot;Model&amp;quot;,
                        value: fv!row.model
                      ),
                      a!gridColumn(
                        label: &amp;quot;Value&amp;quot;,
                        value: fv!row.value
                      ),
                    },
                    selectable: true,
                    selectionStyle: &amp;quot;ROW_HIGHLIGHT&amp;quot;,
                    selectionValue: local!selection,
                    selectionSaveInto: {
                      local!selection,
                      a!save(
                        ri!selectedVehicles, append(
                          ri!selectedVehicles, cast(
                            &amp;#39;type!{urn:com:appian:types:cjt2}CJT2_Vehicles?list&amp;#39;,
                            fv!selectedRows
                          )
                        )
                      ),
                      a!save(
                        ri!selectedVehicles, 
                        difference(
                          ri!selectedVehicles, 
                          cast(
                            &amp;#39;type!{urn:com:appian:types:cjt2}CJT2_Vehicles?list&amp;#39;,
                            fv!deselectedRows
                          )
                        )
                      ),

                      /* Manage selection acceptance */
                      a!localVariables(
                        local!maxValueAccepted: if (not(isnull(ri!selectedVehicles)),
                        sum(
                          a!forEach(
                            items: ri!selectedVehicles,
                            expression: fv!item.value
                          )
                        ),
                        0
                        ),

                        if (local!maxValueAccepted &amp;gt; local!valMaxAuto,
                        {
                          a!save(local!selection, remove(local!selection, length(local!selection))), 
                          a!save(ri!selectedVehicles, remove(ri!selectedVehicles, length(ri!selectedVehicles))),
                        },
                        null
                        )
                      ),

                      a!save(ri!selectedVehicleIds, local!selection)

                    },
                    validations: {}
                  )
                },
                height: &amp;quot;AUTO&amp;quot;,
                style: &amp;quot;NONE&amp;quot;,
                marginBelow: &amp;quot;STANDARD&amp;quot;
              ),

            }
          ),
          a!columnLayout(
            contents: {}
          )
        }
      ),
      a!paragraphField(
        label:&amp;quot;ri!selectedVehicle&amp;quot;,
        value: ri!selectedVehicles
      )
    },
    showWhen: true
  )
)
&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to deal with the slow Appian grid selection validation?</title><link>https://community.appian.com/thread/77632?ContentTypeID=1</link><pubDate>Thu, 05 Nov 2020 17:59:22 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:50061db8-d3ab-4ce7-bd38-f8c4ea906639</guid><dc:creator>Mike Schmitt</dc:creator><description>&lt;p&gt;Without posting a sample of your SAIL code like Danny mentioned, we can&amp;#39;t really help you without just guessing.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to deal with the slow Appian grid selection validation?</title><link>https://community.appian.com/thread/77628?ContentTypeID=1</link><pubDate>Thu, 05 Nov 2020 16:06:23 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:717ea369-cfb5-4fef-bd90-46960baf4a18</guid><dc:creator>cedric02</dc:creator><description>&lt;p&gt;Thank you Danny but I do not need to allow single row selection.&lt;br /&gt;I have to deal with muli-selection, but each time I select row, I have to wait 2 seconds.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to deal with the slow Appian grid selection validation?</title><link>https://community.appian.com/thread/77624?ContentTypeID=1</link><pubDate>Thu, 05 Nov 2020 15:26:44 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:721a9262-0fad-4576-a9e5-afd1d67cd388</guid><dc:creator>Danny Verb</dc:creator><description>&lt;p&gt;Can you paste the SAIL code you have? There is an easy way in SAIL to only allow single row selection. Some reasons why the section might be slow:&lt;/p&gt;
&lt;p&gt;1. Your record type is referencing a database view or large table&lt;/p&gt;
&lt;p&gt;2. Your grid is querying extra columns from the database&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>